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(div_id, year, month, day, event){
	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 class=calendarTD'+(((((wd+i-1)%7)==6) || (((wd+i-1)%7)==0))?'67':'')+' onMouseOver=`this.className=&#039;calendarTD'+(((((wd+i-1)%7)==6) || (((wd+i-1)%7)==0))?'67':'')+'_hov&#039;` onMouseOut=`this.className=&#039;calendarTD'+(((((wd+i-1)%7)==6) || (((wd+i-1)%7)==0))?'67':'')+'&#039;` onClick=`'+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>' +
				'<tr><td colspan=7>' +
					'<table cellpadding=0 cellspacing=0 width=100% class=calendarTable>' +
					((switch_type==1)?('' +
					'<tr>' +
						'<td class=calendarArrow>'+((year==0)?'&lt;&lt;':'<a href="./" onClick=`generateCalendar(&#039;'+div_id+'&#039;, '+(year-1)+', '+month+', '+day+', &#039;'+event+'&#039;);return false`>&lt;&lt;</a>')+'</td>' +
						'<td width=100% class=calendarHeader>'+year+'</td>' +
						'<td class=calendarArrow>'+((year==9999)?'&gt;&gt;':'<a href="./" onClick=`generateCalendar(&#039;'+div_id+'&#039;, '+(year+1)+', '+month+', '+day+', &#039;'+event+'&#039;);return false`>&gt;&gt;</a>')+'</td>' +
					'</tr>' +
					'<tr>' +
						'<td class=calendarArrow>'+((month==1)?'&lt;&lt;':'<a href="./" onClick=`generateCalendar(&#039;'+div_id+'&#039;, '+year+', '+(month-1)+', '+day+', &#039;'+event+'&#039;);return false`>&lt;&lt;</a>')+'</td>' +
						'<td width=100% class=calendarHeader>'+months[month-1]+'</td>' +
						'<td class=calendarArrow>'+((month==12)?'&gt;&gt;':'<a href="./" onClick=`generateCalendar(&#039;'+div_id+'&#039;, '+year+', '+(month+1)+', '+day+', &#039;'+event+'&#039;);return false`>&gt;&gt;</a>')+'</td>' +
					'</tr>' +
					''):('' +
					'<tr>' +
						'<td class=calendarArrow><a href="./" onClick=`generateCalendar(&#039;'+div_id+'&#039;, '+((month==1)?(year-1):year)+', '+((month==1)?12:(month-1))+', '+day+', &#039;'+event+'&#039;);return false`>&lt;&lt;</a></td>' +
						'<td width=100% class=calendarHeader>'+months[month-1]+'&nbsp;'+year+'</td>' +
						'<td class=calendarArrow><a href="./" onClick=`generateCalendar(&#039;'+div_id+'&#039;, '+((month==12)?(year+1):year)+', '+((month==12)?1:(month+1))+', '+day+', &#039;'+event+'&#039;);return false`>&gt;&gt;</a></td>' +
					'</tr>' +
					'')) +
					'</table>' +
				'</td></tr>' +
				'<tr>' +
				days +
				'</tr></table>' +
				'';
	document.getElementById(div_id).innerHTML = days;
}
*/

function fix_days(frm, vname, name){
	if((name.indexOf('mm_')!=-1) || (name.indexOf('yy_')!=-1)) {
		eval('var m_val = frm.mm_'+vname+'.value');
		eval('var y_val = frm.yy_'+vname+'.value');
		eval('var d = frm.dd_'+vname);
		var d_val = d.value;
		d.length = 0;
		for (var i=1;i<=days_in_month(m_val, y_val);i++) {
			d.options[i-1] = new Option(((i<10)?'0':'')+i,((i<10)?'0':'')+i);
		}
		d.options[d_val-1].selected = true;
	}
}

function fix_date(frm, vname, name){
	fix_days(frm, vname, name);
	eval('frm.'+vname+'.value = frm.yy_'+vname+'.value+"-"+frm.mm_'+vname+'.value+"-"+frm.dd_'+vname+'.value');
}

function fix_datetime(frm, vname, name){
	fix_days(frm, vname, name);
	eval('frm.'+vname+'.value = frm.yy_'+vname+'.value+"-"+frm.mm_'+vname+'.value+"-"+frm.dd_'+vname+'.value+" "+frm.h_'+vname+'.value+":"+frm.m_'+vname+'.value+":"+frm.s_'+vname+'.value');
}

function set_curr_datetime(frm, vname){
	var d = new Date();
	eval('var y_frm = frm.yy_'+vname);
	for(var i=0; i<y_frm.length; i++)
		y_frm.options[i].selected = (y_frm.options[i].value==d.getFullYear());
	eval('frm.mm_'+vname+'.options['+d.getMonth()+'].selected = true');
	eval('frm.dd_'+vname+'.options['+(d.getDate()-1)+'].selected = true');
	eval('frm.h_'+vname+'.options['+d.getHours()+'].selected = true');
	eval('frm.m_'+vname+'.options['+d.getMinutes()+'].selected = true');
	eval('frm.s_'+vname+'.options['+d.getSeconds()+'].selected = true');
	eval('frm.'+vname+'.value = frm.yy_'+vname+'.value+"-"+frm.mm_'+vname+'.value+"-"+frm.dd_'+vname+'.value+" "+frm.h_'+vname+'.value+":"+frm.m_'+vname+'.value+":"+frm.s_'+vname+'.value');
}


function showAlert(msg){
	alert(msg.replace(/<br \/>/g, '\n').replace(/&nbsp;/g, ' '));
}
