	var obj_name;
	var IntervalCalendar = 4;
	var TimeoutCalendar;
	function CalendarTimeout()
	{
		clearTimeout(TimeoutCalendar);
		TimeoutCalendar=setTimeout("PutDataDate()",IntervalCalendar*1000);
	}
	function dateOnly(evt) {
	  evt = (evt) ? evt : event;
	   var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0));
	   if (charCode != 35 && charCode != 36 && charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 46 && charCode != 39 && charCode != 37 && charCode != 8)
			return false;
	  return true;
	}
	function showCalendar(p_item,form_name) 
	{
		obj_name = p_item.name;
		str = p_item.value;
		var	month = str.substr(3,2);
		var	year = str.substr(6,4);
		if (month.charAt(0)=='0')month = month.substr(1,1);
		
		var ii = p_item.parentNode;
		ii = document.getElementById('exat');
		var elem = document.getElementById("calendarForm");
		if (elem){
			if (elem.style.visibility=="hidden"){
				elem.parentNode.removeChild(elem);
			}
			else{
				elem.style.visibility="hidden";
				ret = false;
				if (elem.className=="calendarForm "+p_item.name) ret = true;
				elem.parentNode.removeChild(elem);
				if (ret) return false;
			}
		}
		var new_div = document.createElement("DIV");
		new_div.zIndex = 2;
		new_div.className = "calendarForm "+p_item.name;
		new_div.id = "calendarForm";
		new_div.style.display = "none";
		ii.appendChild(new_div);
		//TimeoutCalendar=setTimeout("PutDataDate()",IntervalCalendar*1000);
		DCID(form_name,p_item.name,new_div.id,month,year,"DD.MM.YYYY");
		var IE = navigator.appName=="Microsoft Internet Explorer";
		var IEver = '';
		var iframe = document.getElementById("iframe-calendar");
		if (IE){
		IEver = navigator.appVersion.substr(navigator.appVersion.search(/MSIE/)+5);
		IEver = IEver.substr(0,IEver.search(/;/));
		if (IEver!="7.0") iframe.style.display="block";
		}
		new Effect.BlindDown('calendarForm');
		CalendarTimeout();
	}
	function PutDataDate()
	{
		clearTimeout(TimeoutCalendar);
		var elem = document.getElementById("calendarForm");
		if (elem){
			
			elem.style.visibility="hidden";	
		}
		return;
	}
	function	calendarGetDays(amonth,ayear)
	{
		var	month = amonth;
		var	year = ayear;
		if (month<0){month=11;year--;}
		if (month>11){month=0;year++;}
		var	DOMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
		var	lDOMonth = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
		if ((year % 4) == 0) {if ((year % 100) == 0 && (year % 400) != 0)return DOMonth[month];return lDOMonth[month];} else return DOMonth[month];
	}	
	function	calendarMonth(month)
	{
		var	Months = ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"];
		return	Months[month];
	}
	function	calendarPrevious()
	{
		c_m--;
		if (c_m<0)
		{
			c_y--;
			c_m=11;
		}
		CalendarTimeout();
		calendarRebuild();
		OutputDate(obj_name);
	}
	function	calendarNext()
	{
		c_m++;
		if (c_m>11)
		{
			c_y++;
			c_m=0;
		}
		CalendarTimeout();
		calendarRebuild();
		OutputDate(obj_name);
	}
	function	calendarToDayClick(day)
	{
		var cc = c_d;
		c_d = day;
		calendarIncompleteRebuild(cc,day);
		OutputDate(obj_name);
		PutDataDate();
	}
	function	calendarToDayDblClick(day)
	{
		var cc = c_d;
		c_d = day;
		calendarIncompleteRebuild(cc,day);
		OutputDate(obj_name);
		PutDataDate();
	}
	function	OutputDate(obj_name)
	{
		var my_c_d=0;
		var my_c_m=0;
		c_m=c_m+1;
				if ((c_m=="1") || (c_m=="1") || (c_m=="2") ||(c_m=="3") ||(c_m=="4") ||(c_m=="5") ||(c_m=="6") ||(c_m=="7") ||(c_m=="8") ||(c_m=="9")) 
				{
					var tmp_m = c_m+1;
					my_c_m="0"+c_m; 
					if (my_c_m=="0") my_c_m="12";
				}
				else my_c_m = c_m;
					if (my_c_m=="0") my_c_m="12";
				if ((c_d=="1") || (c_d=="2") || (c_d=="3") || (c_d=="4") || (c_d=="5") || (c_d=="6") || (c_d=="7") || (c_d=="8") || (c_d=="9"))
					my_c_d="0"+c_d;
				else 
					my_c_d = c_d;
		c_m=c_m-1;
		document.getElementsByName(obj_name).item(0).value = my_c_d+'.'+my_c_m+'.'+c_y;
	}
	function	calendarDayCode(day)
	{
			if (day==c_d)	return '<div class="active" onmouseover="CalendarTimeout();" ondblclick="calendarToDayDblClick('+day+');">'+day+'</div>';
			else			return '<input type="button" onmouseover="CalendarTimeout();" value="'+day+'" onfocus="this.blur();" ondblclick="calendarToDayDblClick('+day+');" onclick="calendarToDayClick('+day+');">';
	}
	function	calendarIncompleteRebuild(from_day, to_day)
	{
		document.getElementById('current').innerHTML = calendarMonth(parseInt(c_m))+'&nbsp;'+parseInt(c_y);
		var	days = document.getElementById('days');
		var	pDays = calendarGetDays(parseInt(c_m)-1,parseInt(c_y));
		var vDate = new Date(parseInt(c_y),parseInt(c_m),1);
		var vFirstDay=vDate.getDay();if(vFirstDay == 0) vFirstDay = 6;else vFirstDay--;
		
		var vDay=1;
		var vLastDay=calendarGetDays(c_m,c_y);
		var vOnLastDay=0;

		for (var j=vFirstDay; j<7; j++){if ((vDay==from_day)||(vDay==to_day)){days.rows[1].cells[j].innerHTML = calendarDayCode(vDay);}vDay++;}
		
		for (var k=2; k<7; k++) 
		{
			for (j=0; j<7; j++){if ((vDay==from_day)||(vDay==to_day))days.rows[k].cells[j].innerHTML = calendarDayCode(vDay);vDay++;if (vDay > vLastDay) {vOnLastDay = 1;break;}}
			if (vOnLastDay == 1)break;
		}
	}
	function	calendarRebuild()
	{
		var		dt = new	Date();
		var nowDay = parseInt(dt.getDate(),10);
		var nowMonth = parseInt(dt.getMonth(),10);
		var nowYear = parseInt(dt.getFullYear(),10);
		var prev_href = true;
		//if (parseInt(c_y,10)<nowYear) prev_href = false;
		//if (parseInt(c_m,10)<nowMonth) prev_href = false;
		var next_href = true;
		//if ((parseInt(c_y,10)==nowYear) && (parseInt(c_m,10)>(nowMonth+5))) next_href = false;
		//if ((parseInt(c_y,10)>nowYear) && ((parseInt(c_m,10)+11-nowMonth)>5)) next_href = false;
		var prev_code = (prev_href)?'<a href="javascript:calendarPrevious();" onfocus="this.blur()"><img src="/pics/v/mleft.gif" alt=\"Предыдущий месяц\" width=\"17\" height=\"17\"></a>':'<a onfocus="this.blur()"><img src="/pics/clear.gif" alt=\"\" width=\"17\" height=\"17\"></a>';
		var next_code = (next_href)?'<a href="javascript:calendarNext();" onfocus="this.blur()"><img src="/pics/v/mright.gif" alt=\"Следующий месяц\" width=\"17\" height=\"17\"></a>':'<a onfocus="this.blur()"><img src="/pics/clear.gif" alt=\"\" width=\"17\" height=\"17\"></a>';
		document.getElementById('previous').innerHTML = prev_code;
		document.getElementById('next').innerHTML = next_code;
		document.getElementById('current').innerHTML = calendarMonth(parseInt(c_m))+'&nbsp;'+parseInt(c_y);
		var	days = document.getElementById('days');

		var	pDays = calendarGetDays(parseInt(c_m)-1,parseInt(c_y));
		
		var vDate = new Date(parseInt(c_y),parseInt(c_m),1);
		var vFirstDay=vDate.getDay();if(vFirstDay == 0) vFirstDay = 6;else vFirstDay--;
		
		var vDay=1;
		var vLastDay=calendarGetDays(c_m,c_y);
		var vOnLastDay=0;

		for (var i=0; i<vFirstDay; i++)	days.rows[1].cells[i].innerHTML = '<span>'+(pDays-vFirstDay+i+1)+'</span>';
		for (var j=vFirstDay; j<7; j++) {
			
			days.rows[1].cells[j].innerHTML = calendarDayCode(vDay);
		vDay++;}
		
		for (var k=2; k<7; k++) 
		{
			for (j=0; j<7; j++)
			{
				days.rows[k].cells[j].innerHTML = calendarDayCode(vDay);
				vDay++;if (vDay > vLastDay) {vOnLastDay = 1;break;}
			}
			if (vOnLastDay == 1)break;
		}
		for (m=1; m<(7-j); m++)days.rows[k].cells[j+m].innerHTML = '<span>'+m+'</span>';
		if (k!=6) for (j=0; j<7; j++) days.rows[k+1].cells[j].innerHTML = '<span>'+(m+j)+'</span>';
	}
	function	DCID(form_name,obj_name, display_id, month, year, format)
	{
		var display = document.getElementById(display_id);
		var	display_code = "";

		if(document.getElementsByName(obj_name).item(0).value.search(/\d{1,2}[.]\d{1,2}[.]\d{4}/)==-1)
		{
			errdate = new Date();
			c_d = errdate.getDate();
			c_m = errdate.getMonth();
			c_y = errdate.getFullYear();
			 
			OutputDate(obj_name);
		}
		c_y = document.getElementsByName(obj_name).item(0).value.substr(6,4);
		c_m = document.getElementsByName(obj_name).item(0).value.substr(3,2)-1;
		c_d = document.getElementsByName(obj_name).item(0).value.substr(0,2);
		display_code += '<iframe id="iframe-calendar"></iframe><table cellspacing="0" cellpadding="0" border="0"><tr><td id="calendar">';
		display_code += DCID_DrawNav(form_name,obj_name, display_id, month, year, format);
		display_code += DCID_DrawDates(form_name,obj_name, display_id, month, year, format);
		display_code +='</td></tr>'+
	'</table>';
		display.innerHTML = display_code;
		calendarRebuild();
	}
	function	DCID_DrawNav(form_name,obj_name,display_id,month, year, format)
	{
		MouseOnCalendar = false;
		var		dt = new	Date();
		var	ret_code = "";
		ret_code +='<table id="months" cellspacing="0" cellpadding="0" border="0" onmouseover="CalendarTimeout();">'+
						'<tr>'+
							'<td id="previous"></td>'+
       						'<td id="current">'+calendarMonth(month)+'&nbsp;'+dt.getFullYear()+'</td>'+
	 						'<td id="next"></td>'+
						'</tr>'+
					'</table>';
		return	ret_code;
	}
	function	DCID_DrawDates(form_name,obj_name,display_id,month,year,format)
	{
		var ret_code='<table id="days" cellspacing="0" cellpadding="0" border="0" onmouseover="CalendarTimeout();">'+
				'<tr><th>Пн</th><th>Вт</th><th>Ср</th><th>Чт</th><th>Пт</th><th class="weekend">Сб</th><th class="weekend">Вс</th></tr>'+
				'<tr><td></td><td></td><td></td><td></td><td></td><td class="weekend"></td><td class="weekend"></td></tr>'+
				'<tr><td></td><td></td><td></td><td></td><td></td><td class="weekend"></td><td class="weekend"></td></tr>'+
				'<tr><td></td><td></td><td></td><td></td><td></td><td class="weekend"></td><td class="weekend"></td></tr>'+
				'<tr><td></td><td></td><td></td><td></td><td></td><td class="weekend"></td><td class="weekend"></td></tr>'+
				'<tr><td></td><td></td><td></td><td></td><td></td><td class="weekend"></td><td class="weekend"></td></tr>'+
				'<tr><td></td><td></td><td></td><td></td><td></td><td class="weekend"></td><td class="weekend"></td></tr>'+
			'</table>'
		return ret_code;
	}
	function validateFirstDate(obj_name)
	{
		if(document.getElementsByName(obj_name).item(0).value.search(/\d{2}[.]\d{2}[.]\d{4}/)==-1)
		{
			errdate = new Date();
			c_d = errdate.getDate();
			c_m = errdate.getMonth();
			c_y = errdate.getFullYear();
			 
			OutputDate(obj_name);
			return false;
		}
		else
		{
			c_y = document.getElementsByName(obj_name).item(0).value.substr(6,4);
			c_m = document.getElementsByName(obj_name).item(0).value.substr(3,2)-1;
			c_d = document.getElementsByName(obj_name).item(0).value.substr(0,2);
			if (c_m>11)
				c_m=11;
			if (c_m<1)
				c_m=0;
			koldays=calendarGetDays(c_m,c_y);
			if (c_d>koldays)
				c_d=koldays;
			if (c_d<1)
				c_d=1;
			OutputDate(obj_name);
		}
	}
	function validateSmallReserv(obj)
	{
		if(obj.datefrom.value.search(/\d{2}[.]\d{2}[.]\d{4}/)==-1) {alert("Неверно указана дата заезда"); return false;};
		if(obj.dateto){
			if(obj.dateto.value.search(/\d{2}[.]\d{2}[.]\d{4}/)==-1) {alert("Неверно указана дата выезда"); return false;};
			var chdates = CheckDates(obj.datefrom.value,obj.dateto.value);
			if ((chdates>0) && (chdates!=1)) {alert("Дата выезда должна быть больше даты заезда"); return false;};
		}
		else{
			var chdates = CheckDates(obj.datefrom.value,obj.datefrom.value);
		}
		if (chdates==1) {alert("Дата заезда не может быть меньше текущей даты"); return false;};
		obj.submit();
	}
	function CheckDates(date1,date2)
	{
		firstdate = new Date();
		seconddate = new Date();
		nowdate = new Date();
		
		dd1 = date1.substr(0,2);
		dm1 = date1.substr(3,2);
		if (dm1<2)
			dm1=0;
		else
			dm1=dm1-1;
		dy1 = date1.substr(6,4);
		
		dd2 = date2.substr(0,2);
		dm2 = date2.substr(3,2);
		if (dm2<2)
			dm2=0;
		else
			dm2=dm2-1;
		dy2 = date2.substr(6,4);
		
		firstdate.setFullYear(dy1,dm1,dd1);
		firstdate.setHours(0,0,0,0);
		seconddate.setFullYear(dy2,dm2,dd2);
		seconddate.setHours(0,0,0,0);
		nowdate.setHours(0,0,0,0);
		
		differenceNow = firstdate.getTime() - nowdate.getTime();
		if (differenceNow<0)
			return 1;
			
		differenceDates = seconddate.getTime() - firstdate.getTime();
		differenceDates = Math.floor(differenceDates/(1000*60*60));
		if (differenceDates<0)
			return 3;
		
		differenceDates = seconddate.getTime() - firstdate.getTime();
		differenceDates = Math.floor(differenceDates/(1000*60*60));
		if (differenceDates<24)
			return 2;
		return 0;
	}