var	c_y;	
	var	c_m;	
	var	c_d;	
	var item_number = 0;
	var obj_name;
	var TimeoutDbl;
	var MouseOnCalendar = false;
	
	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;
		}
		calendarRebuild();
		OutputDate(obj_name);
	}
	function	calendarNext()
	{
		c_m++;
		if (c_m>11)
		{
			c_y++;
			c_m=0;
		}
		calendarRebuild();
		OutputDate(obj_name);
	}
	function	calendarToDay(day)
	{
		TimeoutDbl=setTimeout("calendarToDayClick("+day+")",200);
	}
	function	calendarToDayClick(day)
	{
		var cc = c_d;
		c_d = day;
		calendarIncompleteRebuild(cc,day);
		OutputDate(obj_name);
	}
	function	calendarToDayDblClick(day)
	{
		var cc = c_d;
		clearTimeout(TimeoutDbl);
		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" ondblclick="calendarToDayDblClick('+day+');">'+day+'</div>';
			else			return '<input type="button" value="'+day+'" onfocus="this.blur();" ondblclick="calendarToDayDblClick('+day+');" onclick="calendarToDay('+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;
		}
		//CalendarTimeout();
	}
	
	function	calendarRebuild()
	{
		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>';
		//CalendarTimeout();
	}
	
	//Рисуем календарь в DIVе
	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);
		//onmousemove="MouseOnCalendar = true;" onmouseout="MouseOnCalendar = false; CalendarTimeout();"
		display_code += '<table cellspacing="0" cellpadding="0" border="0" onmouseout="MouseOnCalendar = false; CalendarTimeout();" onmousemove="MouseOnCalendar = true;"><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>';
		//Засовываем полученные код в div
		display.innerHTML = display_code;
		calendarRebuild();
	}
	
	//Рисуем переключение месяцев и лет в divе
	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">'+
						'<tr>'+
							'<td id="back"><a href="javascript:calendarPrevious();" onfocus="this.blur()"><img src="/mleft.gif" alt=\"Предыдущий месяц\" width=\"17\" height=\"17\"></a></td>'+
       						'<td id="current"><font color="#ffffff">'+calendarMonth(month)+'&nbsp;'+dt.getFullYear()+'</font></td>'+
	 						'<td id="next"><a href="javascript:calendarNext();" onfocus="this.blur()"><img src="/mright.gif" alt=\"Следующий месяц\" width=\"17\" height=\"17\"></a></td>'+
						'</tr>'+
					'</table>';
		return	ret_code;
	}
	
	//Draws calendar data
	function	DCID_DrawDates(form_name,obj_name,display_id,month,year,format)
	{
		var ret_code='<table id="days" cellspacing="0" cellpadding="0" border="0">'+
				'<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;
	}
	
	var IntervalCalendar = 2; //задержка календаря в секундах
	var TimeoutCalendar;
	function CalendarTimeout()
	{
		clearTimeout(TimeoutCalendar);
		if (!MouseOnCalendar)
			TimeoutCalendar=setTimeout("PutDataDate()",IntervalCalendar*1000);
	}
	
	function ShowCalendarBron(p_item,form_name,obj_name1) 
	{
		obj_name = obj_name1;
		str = p_item.value;
		p_item2 = p_item;
		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;
		while ((ii.tagName!="DIV") && (ii.tagName!="BODY")){ii = ii.parentNode;}

		var elem = document.getElementById("calendarForm");
		if (elem)
		{
			elem.style.visibility="hidden";
			ret = false;
			if (elem.parentNode==ii)
				ret = true;
			elem.parentNode.removeChild(elem);
			if (ret)
				return false;
		}
		var new_div = document.createElement("DIV");
		new_div.zIndex = 2;
		new_div.className = "calendarForm";
		new_div.id = "calendarForm";
		ii.appendChild(new_div);
		//CalendarTimeout();
		DCID(form_name,obj_name,new_div.id,month,year,"DD.MM.YYYY");
	}
	
	function PutDataDate()
	{
		var elem = document.getElementById("calendarForm");
		if (elem)
		{
		elem.style.visibility="hidden";
		elem.parentNode.removeChild(elem);	
		}
		return;
	}
	
	function	getRusDate(c_d,c_m,c_y)
	{
		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;
		my_date = my_c_d+'.'+my_c_m+'.'+c_y;
		return my_date;
	}
	
	function GetthisDay()
	{
		errdate = new Date();
		c_d = errdate.getDate();
		c_m = errdate.getMonth();
		c_y = errdate.getFullYear();
			 
		return getRusDate(c_d,c_m,c_y);
	}
	
	function GetnextDay(d,m,y)
	{
		errdate = new Date();
		errdate.setFullYear(y,m,d);
		c_d = errdate.getDate();
		errdate.setDate(c_d+1);
		c_d = errdate.getDate();
		c_m = errdate.getMonth();
		c_y = errdate.getFullYear();
			 
		return getRusDate(c_d,c_m,c_y);
	}
	
	function validateFirstDate(obj_name)
	{
		Thisobj = document.getElementsByName(obj_name).item(0);
		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 validateSecondDate(obj_name)
	{
		Thisobj = document.getElementsByName(obj_name).item(0);
		if(document.getElementsByName(obj_name).item(0).value.search(/\d{2}[.]\d{2}[.]\d{4}/)==-1)
		{
			errdate = new Date();		 
			c_date = GetnextDay(errdate.getDate(),errdate.getMonth(),errdate.getFullYear());
			c_d = c_date.substr(0,2);
			c_m = c_date.substr(3,2)-1;
			c_y = c_date.substr(6,4);
			OutputDate(obj_name);
		}
		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 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 CheckDates(datetime1,datetime2)
	{
		firstdate = new Date();
		seconddate = new Date();
		nowdate = new Date();
		
		dd1 = datetime1.substr(0,2);
		dm1 = datetime1.substr(3,2);
		if (dm1<2)
			dm1=12;
		else
			dm1=dm1-1;
		dy1 = datetime1.substr(6,4);
		th1 = datetime1.substr(11,2);
		tm1 = datetime1.substr(14,2);
		
		dd2 = datetime2.substr(0,2);
		dm2 = datetime2.substr(3,2);
		if (dm2<2)
			dm2=12;
		else
			dm2=dm2-1;
		dy2 = datetime2.substr(6,4);
		th2 = datetime2.substr(11,2);
		tm2 = datetime2.substr(14,2);
		
		firstdate.setFullYear(dy1,dm1,dd1);
		firstdate.setHours(th1,tm1,0,0);
		seconddate.setFullYear(dy2,dm2,dd2);
		seconddate.setHours(th2,tm2,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;
	}
	
