var Sc=1000;
var Mn=Sc*60;
var Hr=Mn*60;
var Dy=Hr*24;
var Wk=Dy*7;

var Months;//=new Array('Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь');
var Weeks;//=new Array('вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб');
var Today=new Date();

function GetDateObject(time)
{
	var result=new Date();
	return result.setTime(time);
}

function GetURLDate(url, dateobj)
{
	var datestr;
	if(dateobj=="none")datestr=dateobj;
	else
	{
		var year=dateobj.getYear();
		if(!isIE)year+=1900;
		datestr=year+'-'+(dateobj.getMonth()+1)+'-'+dateobj.getDate();
	}
	if(url.substring(url.length-10, url.length)=="index.html")
	{
		url=url.substring(0, url.length-10);
		datestr+="/index.html";
	}
	var result=url+datestr;
	return result;
}
function GetCalendarBody(time, sf, toYear, toMonth, toDay, url)
{
	var html, DateObject=new Date(), DateObject2=new Date(), bf=sf?0:1, ld=sf?6:0, lb, islast, link;

	DateObject.setTime(time);
	DateObject.setDate(1);

	var curMonth=DateObject.getMonth();
	if(url)
	{
		DateObject2.setYear(isIE?toYear:(toYear+1900));
		DateObject2.setMonth(toMonth-1);
		DateObject2.setDate(toDay);
		DateObject2.setHours(23);
		DateObject2.setMinutes(59);
		DateObject2.setSeconds(59);
	}

	html='<table cellspacing="0" cellpadding="0" border="0" width="100%" class="calendarTable">';
	html+='	<tr>'+(sf?('<td class="calendarWSU calendarHL" align="right">'+Weeks[0]+'</td>'):'')+'<td class="calendarWWD'+(sf?'':' calendarHL')+'" align="right">'+Weeks[1]+'</td><td class="calendarWWD" align="right">'+Weeks[2]+'</td><td class="calendarWWD" align="right">'+Weeks[3]+'</td><td class="calendarWWD" align="right">'+Weeks[4]+'</td><td class="calendarWWD" align="right">'+Weeks[5]+'</td><td class="calendarWST'+(sf?' calendarHR':'')+'" align="right">'+Weeks[6]+'</td>'+(sf?'':('<td class="calendarWSU calendarHR" align="right">'+Weeks[0]+'</td>'))+'</tr><tr>';
		
	lb=(!sf&&!DateObject.getDay())?7:DateObject.getDay();

	for(var i=bf; i<lb; i++)html+='<td class="calendarBD">&nbsp;</td>';

	for(; DateObject.getMonth()==curMonth; DateObject.setTime(DateObject.getTime()+Dy))
	{
		var isToday=false;
		if(DateObject.getDate()==Today.getDate()&&DateObject.getMonth()==Today.getMonth()&&DateObject.getYear()==Today.getYear())isToday=true;

		switch(DateObject.getDay())
		{
			case 0:
				var tdclass=isToday?"calendarSUa":"calendarSU";
				var aclass="calendarSU";
				break;
			case 6:
				var tdclass=isToday?"calendarSTa":"calendarST";
				var aclass="calendarST";
				break;
			default:
				var tdclass=isToday?"calendarWDa":"calendarWD";
				var aclass="calendarWD";
		}
		if((DateObject.getDay()==0&&!sf)||(DateObject.getDay()==6&&sf))tdclass+=' calendarR';
		if((DateObject.getDay()==0&&sf)||(DateObject.getDay()==1&&!sf))tdclass+=' calendarL';

		islast=false;
		link=false;
		if(url&&(DateObject.getTime()<DateObject2.getTime()))link='<a href="'+GetURLDate(url, DateObject)+'" class="'+aclass+'">';

		html+='<td align="right" class="'+tdclass+'">'+(link?link:'')+DateObject.getDate()+(link?'</a>':'')+'</td>';
		if(DateObject.getDay()==ld)
		{
			html+='</tr><tr>';
			islast=true;
		}
	}

	if(!islast)
	{
		for(; DateObject.getDay()!=ld; DateObject.setTime(DateObject.getTime()+Dy))html+='<td class="calendarBD">&nbsp;</td>';
		if(DateObject.getDay()==ld&&DateObject.getMonth()!=curMonth)html+='<td class="calendarBD">&nbsp;</td><tr>';
	}

	html+='</table>';
	return html;
}
function SetCalendarYear(name, year, sf, toYear, toMonth, toDay, url)
{
	var html, DateObject=new Date();
	DateObject.setTime(document.getElementById(name+"_calendarBody").time);
	DateObject.setYear(year);
	document.getElementById(name+"_calendarBody").innerHTML=GetCalendarBody(DateObject, sf, toYear, toMonth, toDay, url);
	document.getElementById(name+"_calendarBody").time=DateObject.getTime();
}
function SetCalendarMonth(name, month, sf, toYear, toMonth, toDay, url)
{
	var html, DateObject=new Date();
	DateObject.setTime(document.getElementById(name+"_calendarBody").time);
	DateObject.setMonth(month);
	document.getElementById(name+"_calendarBody").innerHTML=GetCalendarBody(DateObject, sf, toYear, toMonth, toDay, url);
	document.getElementById(name+"_calendarBody").time=DateObject.getTime();
}
function GetNavigator(name, time, fromYear, toYear, toMonth, toDay, sf, url)
{
	var html, DateObject=new Date();
	DateObject.setTime(time);

	html='<select name="'+name+'_calendarMonth" class="calendar" onchange="SetCalendarMonth(\''+name+'\', this.value, '+sf+', '+toYear+', '+toMonth+', '+toDay+', \''+url+'\');">';
	for(var i=0; i<Months.length; i++)html+='<option value="'+i+'" class="calendar" '+(DateObject.getMonth()==i?'selected':'')+'>'+Months[i]+'</option>';
	html+='</select>&nbsp;<select name="'+name+'_calendarYear" class="calendar" onchange="SetCalendarYear(\''+name+'\', this.value, '+sf+', '+toYear+', '+toMonth+', '+toDay+', \''+url+'\');">';
	for(var i=fromYear; i<=toYear; i++)html+='<option class="calendar" value="'+i+'" '+((DateObject.getYear()==i||DateObject.getYear()+1900==i)?'selected':'')+'>'+(i<1000?i+1900:i)+'</option>';
	html+='</select>';
	return html;
}
function GetCalendar(name, time, sf, fromYear, toYear, toMonth, toDay, url)
{
	if(url.indexOf('index.html?')!=-1)
	{
		var arr=url.split("index.html?");
		var arr2=arr[1].split("&");
		for(var i=0; i<arr2.length; i++)
		{
			var arr3=arr2[i].split("=");
			arr[0]+=arr3[0]+"/";
			if(arr3[1]!='')arr[0]+=arr3[1]+"/";
		}
		url=arr[0]+"index.html";
	}

	if(!isIE&&toYear<1900)
	{
		toYear+=1900;
		fromYear+=1900;
	}

	var html;
	html='<table cellpadding="1" cellspacing="0" border="0" class="calendarBodyTable"><tr><td class="calendarHead">'+(url?('[<a href="'+GetURLDate(url, "none")+'" class="calendarHead">x</a>]'):'')+'</td><td class="calendarHead" align="right" nowrap>';
	html+=GetNavigator(name, time, fromYear, toYear, toMonth, toDay, sf, url);
	html+='</td></tr><tr><td colspan="2"><div id="'+name+'_calendarBody">';
	html+=GetCalendarBody(time, sf, toYear, toMonth, toDay, url);
	html+='</div></td></tr></table>';

	setTimeout('document.getElementById("'+name+'_calendarBody").time='+time+';', 210);

	return html;
}