var _txt=''; function wr(text) {_txt+=text;}

function IsLeapYear (Year) {
  return ((Year % 4) == 0) && (((Year % 100) != 0) || ((Year % 400) == 0))
}

function DaysPerMonth (Year, Month) {
  Month-=1;
  DaysInMonth = new Array (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
  if (Month == -1) Month = 11
  days=DaysInMonth [Month]
  if ((Month == 1) && IsLeapYear(Year)) {days++}
  return days
}

function DayDate (Year, Month, Day) {
	Month-=1;
  var dt=new Date(Year, Month, Day); 
	var dday=dt.getDay(); if (dday==0) {dday=7} 
	return dday;
}

function DateDelta (year, month, day, dy, dm, dd) {
  var nm=month+dm; if (nm>12) {dy++; nm-=12;} else if (nm<1) {dy--; nm+=12;}
  var ny=year+dy;
	var dt=new Array(ny, nm, 1);
  return dt;
} 



function Calendar (Year, Month, ct, SelDay) {
	var Month=parseInt(Month); var Year=parseInt(Year);
  wr(ct[13]);

  obj = new Date();
  curMonth = obj.getMonth() + 1;
  curDay = obj.getDate();

	var dim=DaysPerMonth(Year, Month);
	var dd_1=DayDate(Year, Month, 1);
	var dd_n=DayDate(Year, Month, dim);
	// начало
	if (dd_1>1) {
		var dt_pre=DateDelta(Year, Month, 1, 0, -1, 0); var dim_pre=DaysPerMonth(dt_pre[0], dt_pre[1]);
		for (var i=dim_pre-(dd_1-1-1); i <=dim_pre ; i++) {
			_cal_td(dt_pre[0], dt_pre[1], i, 'hid', ct, 0);
		}
	}
	// центр
	for (var i=1; i <=dim ; i++) {
	if((i == curDay) && (Month == curMonth)) {
	  _cal_td(Year, Month, i, 'act', ct, SelDay);
	} else {
	  _cal_td(Year, Month, i, 'nrm', ct, SelDay);
	}
	}
	// конец
	if (dd_n<7) {
	  var dd_nr=7-dd_n;
		var dt_next=DateDelta(Year, Month, 1, 0, +1, 0);
	  for (var i=1; i <=dd_nr ; i++) {
			_cal_td(dt_next[0], dt_next[1], i, 'hid', ct, 0);
		}
	}
	wr(ct[14]);
	// выводим в объект
	if (document.all) {document.all['calendar'].innerHTML=_txt;} else {document.getElementById('calendar').innerHTML=_txt;} _txt='';
}

function _cal_td (Year, Month, i, type, ct, SelDay) {
  var dd_c=DayDate(Year, Month, i);

      obj = new Date();
	  curMonth = obj.getMonth() + 1;
      curDay = obj.getDate();

	var is_holy=0; 
	if (dd_c==6 || dd_c==7) {is_holy=1}
	var href=ct[0]+Year+'-'+Month+'-'+i+'/';
	if (dd_c==1) {wr(ct[11])}
	if (i==SelDay) {wr(ct[9]+href+'">'+i+ct[10])}
	else if (is_holy==1 && type=='nrm') {wr(ct[1]+href+'">'+i+ct[2])} 
	else if (is_holy==1 && type=='hid') {wr(ct[3]+href+'">'+i+ct[4])} 
	else if (is_holy==0 && type=='nrm') {wr(ct[5]+href+'">'+i+ct[6])} 
	else if (type=='act') {wr(ct[5]+href+'">'+ '<div id=active>' + i + '</div>' + ct[6])} 
	else if (is_holy==0 && type=='hid') {wr(ct[7]+href+'">'+i+ct[8])} 

}

function m_over (tdobj, classname) {tdobj.className=classname;}


