var holidays = new Array;

function showpic(src) {
	w=360;
	h=200;
	t=(screen.height-h-130)/2; if (t<0) {t=0;}
	l=(screen.width-w)/2; if (l<0) {l=0;}
	var showpic = window.open('/cgi-bin/showpic.cgi?'+src, 'showpic', 'width='+w+',height='+h+',top='+t+',left='+l+',resizable=1,status=0,toolbar=0,menubar=0,location=0,scrollbars=auto');
	showpic.focus()
}


var nf=document.getElementById("NewsOnDate")
function main_go (date) {
	nf.Date.value=date;
	nf.submit();
}


var a_days = new Array();
function get_day (i, j) {
	if ((i<0) || (i>5)) { return 'w'; }
	return a_days[i*7+j];
}
function get_v_class (p, c, n) {
	p=(p<0)?('w'):((p>0)?('h'):(p));
	c=(c<0)?('w'):((c>0)?('h'):(c));
	n=(n<0)?('w'):((n>0)?('h'):(n));
	if (c!='w') {
		if ((p=='w') && (n=='w')) { 
			return 'v';
		} else if ((p=='h') && (n=='h')) {
			return 'v2';
		} else if  (p=='h') {
			return 'v3';
		} else {
			return 'v1';
		}
	}
	return '';
}
function set_day (i, j, k) { a_days[i*7+j]=k; }

function start_calendar (id, year, mon, cur) {

	var cur_date = new Date();

	if (!year) {
		mon   = cur_date.getMonth();
		year  = cur_date.getYear();
		if (year < 1000) { year+=1900 }
	}

	var cur_day = (mon==cur_date.getMonth())?(cur_date.getDate()):(100);

	var cal_date = new Date(year, mon, 1);
	var nday = cal_date.getDay();
	if (nday==0) { nday=7; }
	if (nday==1) { nday=8; }

	var days = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	var months = new Array('Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь');


	var header='<div id="left_h1">Календарь</div>'+
		'<table><tr><th class="left">'+
		'<a href="" title="Год назад" onclick="start_calendar (\''+id+'\', '+(year-1)+', '+mon+'); return false">&lt;&lt;</a> '+
		'<a href="" title="Месяц назад" onclick="start_calendar (\''+id+'\', '+((mon==0)?(year-1):(year))+', '+((mon==0)?(11):(mon-1))+'); return false">&lt;</a>'+
		'</th><th class="center">'+
		months[mon]+" "+year+
		'</th><th class="right">'+                                                                      	
		'<a href="" title="Месяц вперед" onclick="start_calendar (\''+id+'\', '+((mon==11)?(year+1):(year))+', '+((mon==11)?(0):(mon+1))+'); return false">&gt;</a> '+
		'<a href="" title="Год вперед" onclick="start_calendar (\''+id+'\', '+(year+1)+', '+mon+'); return false">&gt;&gt;</a>'+
		'</th></tr></table>';
	var str='<table id="'+id+'" class="calendar"><tr><th nowran="nowrap" colspan="7">'+header+'</th></tr><tr><th>Пн</th><th>Вт</th><th>Ср</th><th>Чт</th><th>Пт</th><th class="v">Сб</th><th class="v">Вс</th></tr>';

//	var a='';
	for (var i=0; i<6; i++) {
//		var suf='';
		for (var j=0; j<7; j++) {
			var h=(j>4)?('h'):('w');
			var t_day=i*7+j-(nday-2);
			var t_mon=mon;
			var t_year=year;
			if (t_day<1) {
				t_mon=(mon==0)?(11):(mon-1);
				t_day=days[t_mon]+t_day;
			} else if (t_day>days[mon]) {
				t_mon=(mon==11)?(0):(mon+1);
				t_day=(t_day-days[mon])
			}
			var t_h=holidays[t_day+'.'+t_mon+'.'+t_year];
			if (!t_h) t_h=holidays[t_day+'.'+t_mon];
			if (t_h) { h=((h=='h')&&(t_h<0))?(-t_h):(t_h); }
			set_day(i,j,h);
//			a=a+suf+h;
//			suf=', ';
		}
//		a=a+'\n';
	}

	for (var i=0; i<6; i++) {
		str=str+"<tr>";
		for (var j=0; j<7; j++) {
			var day=i*7+j-(nday-2);
			var v_class=get_v_class(get_day(i-1,j), get_day(i,j), get_day(i+1,j));
			if (day<1) {
				day='<td class="'+v_class+'">'+(days[(mon==0)?(11):(mon-1)]+day)+'</td>';
			} else if (day>days[mon]) {
				day='<td class="'+v_class+'">'+(day-days[mon])+'</td>';
			} else if (day==cur) {
				day='<td><b>'+day+'</b></td>';
			} else {
				var h=get_day(i,j);
				if ((h>0)||(h<0)) {
//					alert ("h="+h+", i="+i+", j="+j);
					day='<a href="'+day+'.'+mon+'.'+year+'" onclick="return holiday('+((h>0)?(h):(-h))+')">'+day+'</a>';
				}
				day='<td class="cur'+((v_class)?(' '+v_class):(''))+'">'+day+'</td>';
			}
			str=str+day;
		}
		str=str+"</tr>";
	}
	str=str+"</table>";
	document.getElementById(id).innerHTML=str;

//	alert(a);
}

function holiday (h_id) {
	makeRequest("/cgi-bin/open_ajax.cgi?mod=holidays&id="+h_id, 600,150);
	return false;
}

function hide_popup() {
	document.getElementById("popup").className="";
	return false;
}

function alertContents(http_request) {

	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			document.getElementById("popup").className="on";
			document.getElementById("popup").innerHTML=http_request.responseText;
        	} else {
			alert('There was a problem with the request.');
		}
	}
		
}


function makeRequest(url, x, y) {
	var http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			// See note below about this line
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	
	if (!http_request) {
		alert('Giving up :( Ошибка загрузки (Cannot create an XMLHTTP instance)');
		return false;
	}
	http_request.onreadystatechange = function() { 
		alertContents(http_request); 
	};
	http_request.open('GET', url, true);
	http_request.send(null);
	
}
	
function go () {	
	var obl =document.getElementById("obl").value;
	var rows=document.getElementById("rows").value;
	var str = location.href;
	var url = '';
	var flag;
	if (str.indexOf('?') != -1) {
		for (i = 0; i < str.length; i++) {
			if (str.charAt(i) == "?"){
				flag = 1;
			}
			if(!flag && str.charAt(i)){
				url += str.charAt(i);
			}
		}
	} else {
		url = str;
	}
	document.location.href=url+"?rows="+rows+"&obl="+obl;
}

function go1 () {
	var rows=document.getElementById("rows").value;
	var url =document.getElementById("url").value;
	document.location.href=url+"?rows="+rows;
}

function go2 () {
	var obl =document.getElementById("obl").value;
	var rows=document.getElementById("rows").value;
	var type=document.getElementById("type").value;
	var name=document.getElementById("name").value;
	var url =document.getElementById("url").value;
	document.location.href=url+"?rows="+rows+"&obl="+obl+"&type="+type+"&name="+name;
}

function foo(px,py,pw,ph,baseElement,fid)
{
		var win = document.getElementById(this.fid);
}


function dropdown_menu_hack(el)
{
	if(el.runtimeStyle.behavior.toLowerCase()=="none"){return;}
	el.runtimeStyle.behavior="none";

	var ie5 = "";
	el.ondblclick = function(e)
	{
		window.event.returnValue=false;
		return false;
	}

	if(window.createPopup==null)
	{

		var fid = "dropdown_menu_hack_" + Date.parse(new Date());

		window.createPopup = function()
		{
			if(window.createPopup.frameWindow==null)
			{
					el.insertAdjacentHTML("AfterEnd","<iframe   id='"+fid+"' name='"+fid+"' src='about:blank'  frameborder='1' scrolling='no'></></iframe>");
					var f = document.frames[fid];
					f.document.open();
					f.document.write("<html><body></body></html>");
					f.document.close();
					f.fid = fid;


					var fwin = document.getElementById(fid);
					fwin.style.cssText="position:absolute;top:0;left:0;display:none;z-index:99999;";


					f.show = function(px,py,pw,ph,baseElement)
					{
						py = py + baseElement.getBoundingClientRect().top + Math.max( document.body.scrollTop, document.documentElement.scrollTop) ;
						px = px + baseElement.getBoundingClientRect().left + Math.max( document.body.scrollLeft, document.documentElement.scrollLeft) ;
						fwin.style.width = pw + "px";
						fwin.style.height = ph + "px";
						fwin.style.posLeft =px ;
						fwin.style.posTop = py ;
						fwin.style.display="block";
					}


					f_hide = function(e)
					{
						if(window.event && window.event.srcElement	&& window.event.srcElement.tagName && window.event.srcElement.tagName.toLowerCase()=="select"){return true;}
						fwin.style.display="none";
					}
					f.hide = f_hide;
					document.attachEvent("onclick",f_hide);
					document.attachEvent("onkeydown",f_hide);

			}
			return f;
		}
	}

	function showMenu()
	{

		function selectMenu(obj)
			{
				var o = document.createElement("option");
				o.value = obj.value;
				o.innerHTML = obj.innerHTML;
				while(el.options.length>0){el.options[0].removeNode(true);}
				el.appendChild(o);
				el.title =  o.innerHTML;
				el.contentIndex = obj.selectedIndex  ;
				el.menu.hide();
				go2 ();
			}


		el.menu.show(0 , el.offsetHeight , 10,  10, el);
		var mb = el.menu.document.body;

		mb.style.cssText ="border:solid 1px black;margin:0;padding:0;overflow-y:auto;overflow-x:auto;background:white;text-aligbn:center;font-family:Verdana;font-size:12px;";
		var t = el.contentHTML;
		t = t.replace(/<select/gi,'<ul');
		t = t.replace(/<option/gi,'<li');
		t = t.replace(/<\/option/gi,'</li');
		t = t.replace(/<\/select/gi,'</ul');
		mb.innerHTML = t;


		el.select = mb.all.tags("ul")[0];
		el.select.style.cssText="list-style:none;margin:0;padding:0;";
		mb.options = el.select.getElementsByTagName("li");

		for(var i=0;i<mb.options.length;i++)
		{
			mb.options[i].selectedIndex = i;
			mb.options[i].style.cssText = "list-style:none;margin:0;padding:1px 2px;width/**/:100%;cursor:hand;cursor:pointer;white-space:nowrap;"
			mb.options[i].title =mb.options[i].innerHTML;
			mb.options[i].innerHTML ="<nobr>" + mb.options[i].innerHTML + "</nobr>";
			mb.options[i].onmouseover = function()
				{
					if( mb.options.selected ){mb.options.selected.style.background="white";mb.options.selected.style.color="black";}
					mb.options.selected = this;
					this.style.background="#333366";this.style.color="white";
				}

			mb.options[i].onmouseout = function(){this.style.background="white";this.style.color="black";}
			mb.options[i].onmousedown = function(){selectMenu(this);	}
			mb.options[i].onkeydown = function(){selectMenu(this);	}


			if(i == el.contentIndex)
			{
				mb.options[i].style.background="#333366";
				mb.options[i].style.color="white";
				mb.options.selected = mb.options[i];
			}
		}


		var mw = Math.max(   ( el.select.offsetWidth + 22 ), el.offsetWidth + 22  );
			 mw = Math.max(  mw, ( mb.scrollWidth+22) );
		var mh =  mb.options.length * 15  + 8 ;

		var mx = (ie5)?-3:0;
		var my = el.offsetHeight -2;
		var docH =   document.documentElement.offsetHeight ;
		var bottomH = docH  - el.getBoundingClientRect().bottom ;

		mh = Math.min(mh, Math.max(( docH - el.getBoundingClientRect().top - 50),100)		);

		if(( bottomH < mh) )
		{

			mh = Math.max( (bottomH - 12),10);
			if( mh <100 )
			{
				my = -100 ;

			}
			mh = Math.max(mh,100);
		}


		self.focus();

		el.menu.show( mx , my ,  mw, mh , el);
		sync=null;
		if(mb.options.selected)
		{
			mb.scrollTop = mb.options.selected.offsetTop;
		}




		window.onresize = function(){el.menu.hide()};
	}

	function switchMenu()
	{
		if(event.keyCode)
		{
			if(event.keyCode==40){ el.contentIndex++ ;}
			else if(event.keyCode==38){ el.contentIndex--; }
		}
		else if(event.wheelDelta )
		{
			if (event.wheelDelta >= 120)
			el.contentIndex++ ;
			else if (event.wheelDelta <= -120)
			el.contentIndex-- ;
		}else{return true;}




		if( el.contentIndex > (el.contentOptions.length-1) ){ el.contentIndex =0;}
		else if (el.contentIndex<0){el.contentIndex = el.contentOptions.length-1 ;}

		var o = document.createElement("option");
			 o.value = el.contentOptions[el.contentIndex].value;
			 o.innerHTML = el.contentOptions[el.contentIndex].text;
			 while(el.options.length>0){el.options[0].removeNode(true);}
			 el.appendChild(o);
			 el.title =  o.innerHTML;
	}

	if(dropdown_menu_hack.menu ==null)
	{
		dropdown_menu_hack.menu =  window.createPopup();
		document.attachEvent("onkeydown",dropdown_menu_hack.menu.hide);
	}
	el.menu = dropdown_menu_hack.menu ;
	el.contentOptions = new Array();
	el.contentIndex = el.selectedIndex;
	el.contentHTML = el.outerHTML;

	for(var i=0;i<el.options.length;i++)
	{
		el.contentOptions [el.contentOptions.length] =
		{
			"value": el.options[i].value,
			"text": el.options[i].innerHTML
		}

		if(!el.options[i].selected){el.options[i].removeNode(true);i--;};
	}


	el.onkeydown = switchMenu;
	el.onclick = showMenu;
	el.onmousewheel= switchMenu;

}
