function redirect(url){
	document.location = url;
}
function days_in_month(month, year){
	if(month!=''){
		var months = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 30, 31);
		var d = months[month-1];
		if((month==2) && ((year%4)==0)) {d++;}
		return d;
	}
}
function generateCalendar(year, month, day){
	var d_now = new Date();
	var curr_year = d_now.getFullYear();
	var curr_month = d_now.getMonth()+1;
	var curr_day = d_now.getDate();
	
	var d = new Date(year, month-1, day);
	var d1 = new Date(year, month-1, 1);
	var days = '';
	var months = new Array('январь', 'февраль', 'март', 'апрель', 'май', 'июнь', 'июль', ' август', ' сентябрь', ' октябрь', ' ноябрь', ' декабрь');
	var wd = d1.getDay(); if(wd==0) {wd=7;}
	var letter='';
	for(var i=1; i<=7; i++){
		switch(i){case(1):letter='п';break;case(2):letter='в';break;case(3):letter='с';break;case(4):letter='ч';break;case(5):letter='п';break;case(6):letter='с';break;case(7):letter='в';break;}
		days += '<td class=calendarF'+((((i%7)==6) || ((i%7)==0))?'67':'')+'>'+letter+'</td>';
	}
	days += '</tr><tr>';
	for(var i=1; i<wd; i++){days += '<td class=calendarTD'+((((i%7)==6) || ((i%7)==0))?'67':'')+'>&nbsp;</td>';}
	for(var i=1; i<=days_in_month(month, year); i++){
		if(((wd+i-1)%7)==1) {days += '</tr><tr>';}
		days += '<td '+(((year==curr_year) && (month==curr_month) && (i==curr_day))?'class=calendarCurrTD':'class=calendarTD'+(((((wd+i-1)%7)==6) || (((wd+i-1)%7)==0))?'67':''))+' onMouseOver="this.className=\'calendarTD'+(((((wd+i-1)%7)==6) || (((wd+i-1)%7)==0))?'67':'')+'_hov\'" onMouseOut="this.className=\''+(((year==curr_year) && (month==curr_month) && (i==curr_day))?'calendarCurrTD':'calendarTD'+(((((wd+i-1)%7)==6) || (((wd+i-1)%7)==0))?'67':''))+'\'" onClick="'+calendar_event.replace(/@@year@@/g,year).replace(/@@month@@/g,month).replace(/@@day@@/g,i)+'">'+i+'</a></td>';
	}
	d1 = new Date(year, month-1, days_in_month(month, year));
	var wd = d1.getDay(); if(wd==0) {wd=7;}
	for(var i=(wd+1); i<=7; i++){days += '<td class=calendarTD'+((((i%7)==6) || ((i%7)==0))?'67':'')+'>&nbsp;</td>';}
	var switch_type = 2;
	days = '<table cellpadding=0 cellspacing=0 class=calendarTable onMouseOver="clearInterval(calendarEv)">' +
				'<tr><td colspan=7>' +
					'<table cellpadding=0 cellspacing=0 width=100% class=calendarTable>' +
					'<tr>' +
						'<td class=calendarArrow><a href=./ onClick="generateCalendar('+((month==1)?(year-1):year)+', '+((month==1)?12:(month-1))+', '+day+');return false">&lt;&lt;</a></td>' +
						'<td width=100% class=calendarHeader>'+months[month-1]+'&nbsp;'+year+'</td>' +
						'<td class=calendarArrow>'+(((year==curr_year) && (month==curr_month))?'<span style=\'color:#808080\'>&gt;&gt;</span>':'<a href=./ onClick="generateCalendar('+((month==12)?(year+1):year)+', '+((month==12)?1:(month+1))+', '+day+');return false">&gt;&gt;</a>')+'</td>' +
					'</tr>' +
					'</table>' +
				'</td></tr>' +
				'<tr>' +
				days +
				'</tr></table>' +
				'';
	// alert(days);
	document.getElementById(div_id).innerHTML = days;
	switchCalendar(1);
	return false;
}

function switchCalendar(mode){
	document.getElementById(div_id).style.display = (mode?'block':'none');
}