var cNavObject = document.getElementById("cnavigator");
var nclnd = new Array(49);

var cn_month = new Array('Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь');
var cn_dow = new Array('Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс');

var local_date = new Date();
var cur_date = new Date(local_date.getFullYear(), local_date.getMonth(), local_date.getDate());
var lastDay = new Date(cur_date.getFullYear(), cur_date.getMonth()+1, 0);

var searchDate = /date=([0-9]+)-([0-9]+)-([0-9]+)/i.exec(window.location.search);
if (searchDate==null) {
	var sel_date = new Date();
	sel_date.setTime(cur_date.getTime());
}
else {
	var sel_date = new Date(searchDate[1], searchDate[2]-1, searchDate[3]);
}

function cn_redirect_to_date(year, month, day) {
	var redir_date = 'date='+year+'-'+(month+1)+'-'+day;
	var anchor = window.location.hash;
	var query = window.location.search;
	if (query=='') {
		redir_to = '?'+redir_date;
	}
	else {
		var parseGet = /\?(.*)date=[\-0-9]+(.*)$/i.exec(query);
		if (parseGet==null) {
			redir_to = query+'&'+redir_date;
		}
		else {
			redir_to = '?'+parseGet[1]+redir_date+parseGet[2];
		}
	}
	window.location.href = redir_to+window.location.hash;
	return false;
}

function show_calendar(y, m) {
	var date1=new Date(y, m, 1);
	var month = date1.getMonth();
	var year  = date1.getFullYear();
	var dow1  = date1.getDay();
	dow1=dow1?dow1:7;

c ='<table cellpadding="0" cellspacing="0" id="cn_all"><tr><td>';
	c+='<table cellpadding="0" cellspacing="0" id="cn_top" width="100%">';
	c+='<tr>'
		+'<td class="cn_nav" width="14" onClick="return show_calendar('+(year-1)+','+month+');"><img src="img/ly.gif" height="23" width="14" border="0" alt="Предыдущий год"></td>'
		+'<td class="cn_nav" width="14" onClick="return show_calendar('+year+','+(month-1)+');"><img src="img/lm.gif" height="23" width="14" border="0" alt="Предыдущий месяц"></td>'
		+'<td id="cn_date" width="*"><div id="cn_date_text">'+(month<9?'0':'')+(month+1)+'.'+year+'</div></td>'
		+'<td class="cn_nav" width="14" onClick="return show_calendar('+year+','+(month+1)+');"><img src="img/nm.gif" height="23" width="14" border="0" alt="Следующий месяц"></td>'
		+'<td class="cn_nav" width="14" onClick="return show_calendar('+(year+1)+','+month+');"><img src="img/ny.gif" height="23" width="14" border="0" alt="Следующий год"></td>'
		+'</tr>';
	c+='</table>';
c+='</td></tr><tr><td>';
	c+='<table cellpadding="0" cellspacing="0" id="cn_bottom">';
	c+='<tr>';
	for (var d=0; d<7; d++) c+='<th class="'+(d<5?'w_day':'h_day')+'">'+cn_dow[d]+'</th>';
	c+='</tr>';
	var d=-dow1+1;
	var id=0;
	for (var j=1; d<=lastDay.getDate() /*cn_month_dcnt[month]*/; j++) {
		c+='<tr height="15">';
		for (var i=1; i<=7; i++) {
			d++;
			this_date = new Date(year, month, d);
			nclnd[id] = this_date;
			this_class = ((i>5)?'h':'w') + ((this_date-sel_date==0) ? 's' : (this_date-cur_date==0) ? 'c' : (this_date.getMonth()==month ? '' : 'o'));
			c+='<td id="'+id+'" class="'+this_class+'" onClick="return cn_redirect_to_date('+this_date.getFullYear()+','+this_date.getMonth()+','+this_date.getDate()+')">'+this_date.getDate()+'</td>';
			id++;
		}
		c+='</tr>';
	}
	c+='</table>';
c+='</td></tr></table>';
	cNavObject.innerHTML = c;
	return false;
}
show_calendar(sel_date.getFullYear(), sel_date.getMonth());
