function GetAbsolutePosition(o){
	var w = o.offsetWidth;
    var h = o.offsetHeight;
    var l = 0;
    var t = 0;
    while (o){
        l += o.offsetLeft;
        t += o.offsetTop;
        o = o.offsetParent;
    }
    return {"x":l, "y":t, "Width": w, "Height":h};
}
function CalendarBox(Obj,fDates){
	var $Box=null;
	var $OpenBox=null;
	var $CurrentDate=new Date();
	this.Value=null;
	var FDates=new Array();
	if(fDates){
		var i,xx,xxx,d1,d2,d,dd;
		var x=fDates.split(';');
		for(i in x){
			if(!x[i]) continue;
			xx=x[i].split('-');
			xxx=xx[0].split('.');
			d=new Date(xxx[0],xxx[1],xxx[2]);
			xxx=xx[1].split('.');
			d2=new Date(xxx[0],xxx[1],xxx[2]);
			while(!(d.getFullYear()==d2.getFullYear()&&d.getMonth()==d2.getMonth()&&d.getDate()==d2.getDate())){
				dd=new Date(d.getFullYear(),d.getMonth(),d.getDate());
				FDates.push(dd);
				d.setDate(d.getDate()+1);
			}
			FDates.push(d2);
		}
	}
	var Days = {
		0	:	'Пн',
		1	:	'Вт',
		2	:	'Ср',
		3	:	'Чт',
		4	:	'Пт',
		5	:	'Сб',
		6	:	'Вс'
	};
	var Months = {
		0	:	'Январь',
		1	:	'Февраль',
		2	:	'Март',
		3	:	'Апрель',
		4	:	'Май',
		5	:	'Июнь',
		6	:	'Июль',
		7	:	'Август',
		8	:	'Сентябрь',
		9	:	'Октябрь',
		10	:	'Ноябрь',
		11	:	'Декабрь'
	};
	var Opened=false;
	this.GetHTMLObject = function(){
		var s=document.createElement('DIV');
		s.className='Calendare';
		s.style.cursor='default';
		s.style.border='1px solid #555555';
		$Box=s;
		document.body.appendChild(s);
		this.FillDates();
		return s;
	}

	function CheckDate(d,sv,sx){
		var i,d2;
		for(i in FDates){
			d2=FDates[i];
			if(sv&&sx){
				if(
				(d.getFullYear()>=d2.getFullYear()&&d.getMonth()>=d2.getMonth()&&d.getDate()>=d2.getDate())
				&&
				(sv.getFullYear()<=d2.getFullYear()&&sv.getMonth()<=d2.getMonth()&&sv.getDate()<=d2.getDate())
				) return true;
			}
			if(d.getFullYear()==d2.getFullYear()&&d.getMonth()==d2.getMonth()&&d.getDate()==d2.getDate()) {return true;}
		}
		return false;
	}
	this.FillDates = function(){
		var i,j,no,dd,r,t;
		$Box.innerHTML='';
		var T=this;
		var tb=document.createElement('TABLE');
		var dayStartOfMonth = $CurrentDate.getDay();
		if(dayStartOfMonth==0) dayStartOfMonth=7;
		dayStartOfMonth--;
		var cMonth=$CurrentDate.getMonth();
		var cYear=$CurrentDate.getFullYear();
		r=tb.insertRow(-1);
		t=r.insertCell(-1);
		var dtb=document.createElement('TABLE');
		dtb.cellSpacing=0;
		dtb.className='Header';
		t.appendChild(dtb);
		r=dtb.insertRow(-1);
		t=r.insertCell(-1);
		t.innerHTML='ad';
		t.onmousedown=function(){$CurrentDate.setMonth(cMonth-1);T.FillDates();}
		t=r.insertCell(-1);
		t.innerHTML=Months[cMonth]+' '+cYear;
		t.className='c';
		t=r.insertCell(-1);
		t.innerHTML='>';
		t.onmousedown=function(){$CurrentDate.setMonth(cMonth+1);T.FillDates();}
		r=tb.insertRow(-1);
		t=r.insertCell(-1);
		dtb=document.createElement('TABLE');
		t.appendChild(dtb);
		r=dtb.insertRow(-1);
		for(i=0;i<7;i++){
			t=r.insertCell(-1);
			t.innerHTML=Days[i];
		}
		//alert(dayStartOfMonth)
		no=-dayStartOfMonth;
		var toDay=new Date();
		toDay.setDate(toDay.getDate());
		var tt=toDay.getTime();
		var X=true;var sx=false;var x;
		var sv=null;
		if(this.S&&this.S.Value) sv=this.S.Value;
		for(i=0;i<6;i++){
			r=dtb.insertRow(-1);
			for(j=0;j<7;j++){
				no++;
				dd=new Date(cYear,cMonth)
				dd.setDate(no);
				t=r.insertCell(-1);
				//(function(dd){t.onclick=function(){T.Selection(dd);}})(dd);
				t.innerHTML=dd.getDate();
				var q=1;
				if(tt<=dd.getTime()&&X){
					if(sv){
						q=0;
						if(!sx){
							if(sv.getFullYear()<=dd.getFullYear()&&sv.getMonth()<=dd.getMonth()&&sv.getDate()<=dd.getDate()){
								sx=true;
							}
						}
						if(sx) q=1;
					}
					if(CheckDate(dd,sv,sx)){q=0;}
					if(q==1){
						(function(dd){t.onmousedown=function(){T.Value=dd;Obj.value=ParseDate(dd);}})(dd);
						t.onmouseover=function(){this.className='Over';}
						t.onmouseout=function(){this.className='';}
					}else{
						if(sx) {X=false;}
					}
				}else{
					q=0;
				}
				if(q==0){

					//t.onmousedown=function(){Obj.focus();};
					//t.style.border='1px solid red';
					t.className='Disabled';
				}

			}
		}
		$Box.appendChild(tb);
		Obj.focus();
	}
	this.Open = function(){
		if(this.S&&!this.S.Value) return;
		if($OpenBox){
			$OpenBox.style.display='';
			this.FillDates();
			return;
		}
		var s=document.createElement('DIV');
		s.className='Calendare';
		s.style.cursor='default';
		s.style.position='absolute';
		s.style.zIndex=99999;
		var ev=window.event;
		var xy=GetAbsolutePosition(Obj);
		s.style.left=xy.x;
		s.style.top=xy.y+xy.Height;
		s.style.background='white';
		if(Obj.value) {
			var x=Obj.value.split('.');
			$CurrentDate=new Date(x[2],x[1],x[0]);
		}
		$OpenBox=s;
		s.appendChild(this.GetHTMLObject());
		document.body.appendChild(s);
	}
	function ParseDate(D){
		var s='';
		var d=D.getDate();
		var m=D.getMonth()+1;
		if(d<10) d='0'+d;
		if(m<10) m='0'+m;
		s=d;
		s+='.'+m;
		s+='.'+D.getFullYear();
		return s;
	}
	this.Close = function(){
		$OpenBox.style.display='none';
		//Obj.focus();
	}
}
function get_http(){
    var xmlhttp;
    /*@cc_on
    @if (@_jscript_version >= 5)
        try {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlhttp = new
                ActiveXObject("Microsoft.XMLHTTP");
            } catch (E) {
                xmlhttp = false;
            }
        }
    @else
        xmlhttp = false;
    @end @*/
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
        try {
            xmlhttp = new XMLHttpRequest();
        } catch (e) {
            xmlhttp = false;
        }
    }
    return xmlhttp;
}

 function lookup(url,func) {

		if(!this.http){
            this.http = get_http();
            this.working = false;
        }
        if (!this.working && this.http) {

            var http = this.http;
			this.http.open("GET", url, true);
            this.http.onreadystatechange = function() {
           // alert(url);
     			if (http.readyState == 4) {
                    this.working = false;
						//alert(http.responseText);//http.responseText);
						eval(func+"(http.responseText)");
				}
            }
            this.working = true;
            this.http.send(null);
        }
        if(!this.http){
              alert('Ошибка при создании XMLHTTP объекта!')
        }
    }

function add_obj(act,id,cat){
var r=Math.random();
if(act){act=1;}else{act=0;}
//alert('/templates_rus/inc/add_obj.php?act='+act+'&id='+id+'&t='+r);
lookup('/templates_rus/inc/add_obj.php?cat='+cat+'&act='+act+'&id='+id+'&t='+r,'upd_obj');
}

/**
 *
 * @access public
 * @return void
 **/
function stopMus(s){
	document.getElementById('music').removeNode(true);
}

function upd_obj(text){
//alert(text);
eval(text);
if(t=='2'){
document.getElementById('sel_obj1').style.display='block';
document.getElementById('sel_obj2').style.display='block';
}

if(t=='1'){
if(document.getElementById('obj_hidden').value==1) document.location.href='/catalog/'+cat+'/';
document.getElementById('sel_obj1').style.display='none';
document.getElementById('sel_obj2').style.display='none';

var i=1;
while (document.getElementById('cb_'+i)) {
    document.getElementById('cb_'+i).checked=false;
    i++;
}


}

}

var imgId=0;

function hide_pick(){
var objOverlay = document.getElementById('photogal');
var objLightbox = document.getElementById('lightbox');
document.getElementById('photogal_img').style.display='none';
objOverlay.style.display='none';
objLightbox.style.display = 'none';
showSelectBoxes();
objLightbox.style.width=150;
objLightbox.style.height=200;
document.getElementById('photogal_pagesdiv').style.display='none';
document.getElementById('photogal_img').innerHTML ='';
}


var endWidth=660;
var endHeight=500;
var step=10;
var interval=5;
var stop=0;

function show_img(step){
var f=1;
var count=document.getElementById('photogal_count').value;
var nid=imgId+step;
if(nid>count)f=0;
if(nid<1)f=0;
if(f){
imgId=nid;
var img=document.getElementById('img_'+nid).src;
img=img.replace("/preview/","/");
var title=document.getElementById('imgtitle_'+nid).innerHTML;
document.getElementById('photogal_pagesdiv').style.display='none';
document.getElementById('lightbox').style.height=endHeight;
document.getElementById('photogal_img').innerHTML = '<img src='+img+'></img>';
document.getElementById('photogal_img').style.display='block';
//document.getElementById('photogal_title').innerHTML = title;
show_pick(0);
}
}

function mkPages(){
	var count=document.getElementById('photogal_count').value;
	document.getElementById('photogal_title').innerHTML=document.getElementById('imgtitle_'+imgId).innerHTML;
	document.getElementById('photogal_pages').innerHTML = imgId+' <font color="#000000">из '+count+'</font>';
	document.getElementById('photogal_pagesdiv').style.display='block';
}


function start(id){
var sizes=getPageSize();
var objOverlay = document.getElementById('photogal');
var objLightbox = document.getElementById('lightbox');
objOverlay.style.width=sizes[0];
objOverlay.style.height=sizes[1];

objLightbox.style.top=(sizes[3]-550)/2+document.body.scrollTop;
objLightbox.style.left=(sizes[0]-150)/2+document.body.scrollLeft;
hideSelectBoxes();
document.getElementById('lightbox').style.display = 'block';
document.getElementById('photogal').style.display = 'block';
imgId=id;
animate(endHeight);
}



function animate(){
	var box=document.getElementById('lightbox');
	//alert(box.offsetHeight);
	if(box.offsetHeight>=endHeight){
	if(box.offsetWidth>=endWidth){stop=1;}else{box.style.left=box.offsetLeft-step/2;box.style.width=box.offsetWidth+step;}
	}else{box.style.height=box.offsetHeight+step;}
	if(stop){stop=0;show_img(0);}else{setTimeout("animate();", interval);}
}

function show_pick(op){
var nop=op+2;
imgdiv=document.getElementById('photogal_img');
imgdiv.style.filter='alpha(opacity='+nop+')';
//imgdiv.style.opacity=nop;
//imgdiv.style.-moz-opacity=nop;
//imgdiv.style.filters["alpha"].opacity=nop; //IE
imgdiv.style.MozOpacity=nop/100; //Mozilla
imgdiv.style.opacity=nop/100 //Opera
if(nop>=100){stop=1;}
var box=document.getElementById('lightbox');
	if(box.offsetHeight<endHeight+50){box.style.height=box.offsetHeight+1;}

if(stop){stop=0;mkPages();}else{setTimeout("show_pick("+nop+");", interval);}
}

function showSelectBoxes(){
	var selects = document.getElementsByTagName("select");
	for (i = 0; i != selects.length; i++) {
		selects[i].style.visibility = "visible";
	}
}

// ---------------------------------------------------

function hideSelectBoxes(){
	var selects = document.getElementsByTagName("select");
	for (i = 0; i != selects.length; i++) {
		selects[i].style.visibility = "hidden";
	}
}

function select_metro(elem)
{
var arr;
switch (elem.id)
{
case "all":
arr = new Array();
opt = document.getElementById("metro_s");

len = opt.options.length;

for (var i = 0; i < len; i++)
{
	arr[i] = opt.options[i].value;
}
document.getElementById("metro3").options.length=0;
for(i=1;i<=12;i++) document.getElementById("m"+i).checked=elem.checked;
document.getElementById("center").checked=elem.checked;
document.getElementById("center3").checked=elem.checked;
break;

case "center":
arr = new Array(7, 134, 136, 35, 117, 48, 137, 75, 87, 12, 132, 122, 100, 28, 52, 133, 71, 8, 118, 175, 174, 33, 103, 34, 74, 32, 73, 49, 10, 31, 9, 119, 72, 53, 30, 120, 159, 158, 161, 160, 29, 121, 88, 11,102);
break;

case "center3":
arr = new Array(70, 69, 68, 4, 5, 6, 116, 115, 114, 106, 105, 104, 36, 37, 38, 47, 46, 45, 85, 84, 86, 76, 77, 78, 138, 139, 140, 13, 14, 15, 123, 124, 125, 99, 98, 97, 27, 26, 157, 54, 55, 56, 171, 170, 169, 162, 163);
break;

case "m1":
arr = new Array(40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 157, 25, 24, 23, 196, 189, 190, 191, 192, 193, 194, 195);
break;

case "m2":
arr = new Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 18, 15, 19, 20, 21, 22);
break;

case "m3":
arr = new Array(41, 42, 43, 44, 45, 46, 47, 48, 49, 159, 160, 52, 171, 170, 169, 168, 167, 166);
break;

case "m4":
arr = new Array(62, 61, 60, 59, 58, 57, 56, 55, 54, 52, 161, 158, 53);
break;

case "m5":
arr = new Array(48, 35, 136, 134, 7, 133, 52, 28, 100, 132, 12, 75);
break;

case "m6": //Калужско-Рижская
arr = new Array(89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 88, 74, 103, 102, 136, 104, 105, 106, 107, 108, 109, 110);
break;

case "m7":
arr = new Array(63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 165);
break;

case "m8":
arr = new Array(173, 82, 83, 84, 85, 86, 87, 88);
break;

case "m9":
arr = new Array(182, 181, 180, 179, 178, 172, 156, 155, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 131, 135);
break;

case "m10": //Люблинская
arr = new Array(177, 176, 175, 174, 137, 138, 139, 140, 144, 141, 142, 143, 145, 146);
break;

case "m11": //Каховская
arr = new Array(17, 164, 15);
break;

case "m12": //Московский монорельс
arr = new Array(183,184,185,186,187,188);
break;

}

l=arr.length;
if (elem.checked){
for (var i = 0; i < l; i++)
{
var elem = document.getElementById("pp"+arr[i]);
//elem.style.display = "none";
checkMetro(arr[i],'none');
}
}else{
for (var i = 0; i < l; i++){
var elem = document.getElementById("pp"+arr[i]);
//elem.style.display = "block";
checkMetro(arr[i],'block');
}
}
document.getElementById("all").checked=false;
for(i=1;i<=12;i++) if(!document.getElementById("m"+i).checked) return;
if(!document.getElementById("center").checked) return;
if(!document.getElementById("center3").checked) return;
document.getElementById("all").checked=true;
document.getElementById("center").checked=true;
document.getElementById("center3").checked=true;
}

function checkMetro(m_id,act)
{
//alert(act)
var elem = document.getElementById("pp"+m_id);
if(typeof act=='undefined') act=elem.style.display;
if (act == "none")
{
if(elem.style.display=='block') return;
elem.style.display = "block";

opt = document.getElementById("metro_s");
opt2 = document.getElementById("metro3");

len = opt.options.length;
len2 = opt2.options.length;

var op_num = -1;
for(var i = 0; i < len; i++)
{
    if(opt.options[i].value == m_id)
    {
        op_num = i;
        break;
    }
}
if (op_num != -1)
{
    opt2.options[len2] = new Option(opt.options[op_num].text, opt.options[op_num].value);
}
}
else
{
if(elem.style.display=='none') return;
elem.style.display = "none";

opt = document.getElementById("metro3");
opt2 = document.getElementById("metro_s");


len = opt.options.length;
len2 = opt2.options.length;

var op_num = -1;
for(var i = 0; i < len; i++)
{
    if(opt.options[i].value == m_id)
    {
        op_num = i;
        break;
    }
}
if (op_num != -1)
{
    opt.removeChild(opt.options[op_num]);
}
}
}

function add_m()
{
opt = document.getElementById("metro_s");
opt2 = document.getElementById("metro3");

num_s = opt.options.selectedIndex;
m_id = opt.options[num_s].value;

if (opt.options.selectedIndex!=-1)
{
var elem = document.getElementById("pp"+m_id);
var len_d = opt2.options.length;

if(elem.style.display == "none")
{
    opt2.options[len_d] = new Option(opt.options[num_s].text, opt.options[num_s].value);
    elem.style.display = "block";
}
}
}

function del_m()
{
opt2 = document.getElementById("metro_s");
opt = document.getElementById("metro3");

num_s = opt.options.selectedIndex;
m_id = opt.options[num_s].value;

if (opt.options.selectedIndex != -1)
{
var elem = document.getElementById("pp"+m_id);
if(elem.style.display != "none")
{
    opt.removeChild(opt.options[num_s]);
    opt.blur();
    elem.style.display = "none";
}
}
}

function checkMapValues(aForm){
if(!document.getElementById("all").checked){
opt = document.getElementById("metro3");
var l=opt.length;
for (i = 0; i < l; i++){opt.options[i].selected = true;}
}
return true;
}

function getElementById(id){
	return document.getElementById(id);
}