// JavaScript Document
var monthsInEnglish = new Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
var calendarWeekdays = new Array("Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс");
var calendarMonth = new Array("Январь", "Февраль", "Март", "Апрель",  "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь");
var calendarMonthdays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

var currentDayDate = new Date();
currentDayDate.setHours(0);	
currentDayDate.setMinutes(0);
currentDayDate.setSeconds(0);
currentDayDate.setMilliseconds(0);
currentDayDate = currentDayDate.getTime() + 0;//604800000;//in a week
var currentDayDateString = new Date(currentDayDate);

var inputDay = new Date();
function showCalendar (form_name, input_name) {
	var form = document.forms[form_name];
	var inputObject = form.elements[input_name];
	
	if (inputObject.value == "") {
		if (document.forms[form_name].elements[input_name].getAttribute("id") == "sof_reservation_end" && document.getElementById("sof_reservation_begin").value != "") {
			var currentDate = new String (document.getElementById("sof_reservation_begin").value);
			currentDate = currentDate.split(".");
			currentDate = new String (currentDate[0] + " " + monthsInEnglish[currentDate[1]-1] + " " + currentDate[2]);
			currentDate = Date.parse(currentDate);
		}
		else {
			var currentDate = new Date();
			currentDate.setHours(0);
			currentDate.setMinutes(0);
			currentDate.setSeconds(0);
			currentDate.setMilliseconds(0);
			currentDate = currentDate.getTime() + 0;//604800000;//in a week
		}
	}
	else {
		var currentDate = new String (inputObject.value);
		currentDate = currentDate.split(".");
		currentDate = new String (currentDate[0] + " " + monthsInEnglish[currentDate[1]-1] + " " + currentDate[2]);
		currentDate = Date.parse(currentDate);
	}
	inputDay.setTime(currentDate);
	var currentDateString = new Date(currentDate);

	//   - 
	//div-general
	var generalDiv = document.createElement("DIV");
	generalDiv.className = "general";
	generalDiv.setAttribute("id", "post_date_calendar");
	
	// div-top
	var topDiv = document.createElement("DIV");
	topDiv.className = "top";
	generalDiv.appendChild(topDiv);
	
	// div-bottom
	var bottomDiv = document.createElement("DIV");
	bottomDiv.className = "bottom";
	generalDiv.appendChild(bottomDiv);
	
	// div-calendar
	var calendarDiv = document.createElement("DIV");
	calendarDiv.className = "calendar";
	
	//div   
	var monthDiv = document.createElement("DIV");
	monthDiv.className = "month_name";
	//<
	var leftArrowDiv = document.createElement("DIV");
	leftArrowDiv.className = "left arrow";
	leftArrowDiv.setAttribute("title", "Предыдущий месяц");
	var leftArrowDivOnClickString = "changeMonth('backward', '" + currentDateString + "', this, '" + form_name + "', '" + input_name + "');"
	leftArrowDiv.onclick=new Function(leftArrowDivOnClickString);
	leftArrowDiv.onmouseover=new Function("this.className='left arrow arrow_hover'");
	leftArrowDiv.onmouseout=new Function("this.className='left arrow'");
//	leftArrowDiv.setAttribute("onClick", leftArrowDivOnClickString);
//	var leftArrow = document.createTextNode("<");
//	leftArrowDiv.appendChild(leftArrow);
	//>
	var rightArrowDiv = document.createElement("DIV");
	rightArrowDiv.className = "right arrow";
	rightArrowDiv.setAttribute("title", "Следующий месяц");
	var rightArrowDivOnClickString = "changeMonth('forward', '" + currentDateString + "', this, '" + form_name + "', '" + input_name + "');"
	rightArrowDiv.onclick=new Function(rightArrowDivOnClickString);
	rightArrowDiv.onmouseover=new Function("this.className='right arrow arrow_hover'");
	rightArrowDiv.onmouseout=new Function("this.className='right arrow'");
//	rightArrowDiv.setAttribute("onClick", rightArrowDivOnClickString);
//	var rightArrow = document.createTextNode(">");
//	rightArrowDiv.appendChild(rightArrow);
	//month+year
	var monthNameDiv = document.createElement("DIV");
	monthNameDiv.className = "month";
	var monthName = document.createTextNode(calendarMonth[currentDateString.getMonth()]);
	//var yearName = document.createTextNode(" " + currentDateString.getFullYear());
	monthNameDiv.appendChild(monthName);
	//monthNameDiv.appendChild(yearName);
	
	monthDiv.appendChild(leftArrowDiv);
	monthDiv.appendChild(monthNameDiv);
	monthDiv.appendChild(rightArrowDiv);
	generalDiv.appendChild(monthDiv);

	//
	var calendarTable = document.createElement("TABLE");
	var calendarTableHead = document.createElement("THEAD");
	var calendarTableBody = document.createElement("TBODY");
	calendarTable.appendChild(calendarTableHead);
		
	//   
	var calendarWeekdaysTr = document.createElement("TR");
	calendarWeekdaysTr.className = "day_names";
	var calendarWeekdaysTd = new Array();
	var calendarWeekdaysTdText = new Array();
	for (var i = 0; i <= 6; i++) {
		calendarWeekdaysTd[i] = document.createElement("TD");
		if (i%2 == 0) {
			calendarWeekdaysTd[i].className = "weekday_odd";
		}
		else {
			calendarWeekdaysTd[i].className = "weekday_even";
		}
		if (i == 5) {
			calendarWeekdaysTd[i].className = "weekend_even";
		}
		if (i == 6) {
			calendarWeekdaysTd[i].className = "weekend_odd";
		}
		calendarWeekdaysTdText[i] = document.createTextNode(calendarWeekdays[i]);
		calendarWeekdaysTd[i].appendChild(calendarWeekdaysTdText[i]);
		calendarWeekdaysTr.appendChild(calendarWeekdaysTd[i]);
	}
	calendarTableBody.appendChild(calendarWeekdaysTr);
	
	// 
	var trArray = getCalendar(form_name, input_name, currentDateString, generalDiv);
	for (var a = 0; a < trArray.length; a++) {
		calendarTableBody.appendChild(trArray[a]);
	}
	calendarTable.appendChild(calendarTableBody);
	
	// div   
	calendarDiv.appendChild(calendarTable);
	generalDiv.appendChild(calendarDiv);
	document.getElementById("calendar_frame").appendChild(generalDiv);
//	var inputObjectParent = inputObject.parentNode;
//	var calendarButton = inputObjectParent.childNodes;
//	for (var a = 0; a < calendarButton.length; a++) {
//		if (calendarButton[a].tagName == "DIV") {
//			calendarButton[a].appendChild(generalDiv);
//		}
//	}
}
//     
function calendarDaysNumber(month, year) 
 {
   if (month==1) // ,    
     return (((year%4)==0) && ((year%100)!=0))||((year%400)==0)?29:28;
   else
     return calendarMonthdays[month];
 }
 
//   input
function fillInputField (date, input_name, form_name, divObject) {
	var form = document.forms[form_name];
	var inputObject = form.elements[input_name];
	inputObject.value = date;
	if (form.elements[input_name].getAttribute("id") == "sof_reservation_begin" && document.getElementById("sof_reservation_end").value == "") {
		var endDate = new String (date);
		endDate = endDate.split(".");
		endDate = new String (endDate[0] + " " + monthsInEnglish[endDate[1]-1] + " " + endDate[2]);
		endDate = Date.parse(endDate);
		var endDateDate = new Date(endDate);
		var endDay = endDateDate.getDate() + 7;
		var endMonth = endDateDate.getMonth() + 1;
		var endYear = endDateDate.getFullYear();
		if (endDay > calendarMonthdays[endDateDate.getMonth()]) {
			endDay = endDay - calendarMonthdays[endDateDate.getMonth()];
			endMonth++;
		}
		if (endMonth > 12) {
			endMonth = endMonth - 12;
			endYear++;
		}
		if (endDay < 10) {
			endDay = "0" + endDay;
		}
		if (endMonth < 10) {
			endMonth = "0" + endMonth;
		}
		var endDateString = new String(endDay + "." + endMonth + "." + endYear);
		
		document.getElementById("sof_reservation_end").value = endDateString;
	}
	var calendar = document.getElementById("post_date_calendar");
	var calendarParent = calendar.parentNode;
	calendarParent.removeChild(calendar);
	if (input_name == "price_date") {
		form.submit();
	}
}

//  
function changeMonth(direction, currentDateString, arrowDivObject, form_name, input_name) {
	var currentDateString = new Date(currentDateString);
	switch (direction) {
		case "backward":
			if ((currentDateString.getMonth() - 1) == -1) {
				currentDateString.setFullYear(currentDateString.getFullYear() - 1);
				currentDateString.setMonth(11);
			}
			else {
				currentDateString.setMonth(currentDateString.getMonth() - 1);
			}
			var otherDirection = "forward"; break;
		case "forward":
			if ((currentDateString.getMonth() + 1) == 12) {
				currentDateString.setFullYear(currentDateString.getFullYear() + 1);
				currentDateString.setMonth(0);
			}
			else {
				currentDateString.setMonth(currentDateString.getMonth() + 1);
			}
			var otherDirection = "backward"; break;
	}
	
	//   
	var topDiv = arrowDivObject.parentNode;
	var topDivChildren = topDiv.childNodes;
	for (var i = 0; i < topDivChildren.length; i++) {
		if (topDivChildren[i].className == "month") {
			var monthNameDiv = topDivChildren[i];
			var monthDivChildren = monthNameDiv.childNodes;
			var monthDivChildrenLength = monthDivChildren.length;
			for (var j = 0; j < monthDivChildrenLength; j++) {
				monthNameDiv.removeChild(monthDivChildren[0]);
			}
		}
		else {
			if (topDivChildren[i].className && topDivChildren[i] != arrowDivObject) {
				var otherArrowDivObject = topDivChildren[i];
			}
		}
	}
	var monthName = document.createTextNode(calendarMonth[currentDateString.getMonth()]);
	//var yearName = document.createTextNode(" " + currentDateString.getFullYear());
	monthNameDiv.appendChild(monthName);
	//monthNameDiv.appendChild(yearName);
	
	//      onClick
	var arrowDivOnClickString = "changeMonth('" + direction + "', '" + currentDateString + "', this, '" + form_name + "', '" + input_name + "');"
	arrowDivObject.onclick=new Function(arrowDivOnClickString);
//	arrowDivObject.setAttribute("onClick", arrowDivOnClickString);
	
	var otherArrowDivOnClickString = "changeMonth('" + otherDirection + "', '" + currentDateString + "', this, '" + form_name + "', '" + input_name + "');"
	otherArrowDivObject.onclick=new Function(otherArrowDivOnClickString);
//	otherArrowDivObject.setAttribute("onClick", otherArrowDivOnClickString);
	
	// 
	var monthDiv = arrowDivObject.parentNode;
	var generalDiv = monthDiv.parentNode;
	var generalDivChildren = generalDiv.childNodes;
	for (var i = 0; i < generalDivChildren.length; i++) {
		if (generalDivChildren[i].className == "calendar") {
			var calendarChildren = generalDivChildren[i].childNodes;
			for (var j = 0; j < calendarChildren.length; j++) {
				if (calendarChildren[j].tagName == "TABLE") {
					var calendarTable = calendarChildren[j];
				}
			}
		} 
	}
	var trArray = new Array();
	var calendarTableChildren = calendarTable.childNodes;
	for (var i = 0; i < calendarTableChildren.length; i++) {
		if (calendarTableChildren[i].tagName == "TBODY") {
			var calendarTableBody = calendarTableChildren[i];
			var calendarTbodyChildren = calendarTableChildren[i].childNodes;
			for (var j = 0; j < calendarTbodyChildren.length; j++) {
				if (calendarTbodyChildren[j].tagName == "TR") {
					trArray.push(calendarTbodyChildren[j]);
				}
			}
		}
	}
	for (var i = 1; i < trArray.length; i++) {
		calendarTableBody.removeChild(trArray[i]);
	}
	
	
	//  
	var trArray = getCalendar(form_name, input_name, currentDateString, generalDiv);
	for (var a = 0; a < trArray.length; a++) {
		calendarTableBody.appendChild(trArray[a]);
	}
	calendarTable.appendChild(calendarTableBody);
}

function getCalendar (form_name, input_name, currentDateString, generalDiv) {	
 	var trArray = new Array();
	//  ,       
	var first = new Date(currentDateString);
	first.setDate(1);
	var firstDay = new Date(first);
	var firstDayWeekday = parseInt(firstDay.getDay())-1;
	if (firstDayWeekday == -1) {
		firstDayWeekday  = 6;
	}
	
	var calendarDayTr = new Array();
	var calendarDayTd = new Array();
	var thisMonthDaysNumber = calendarDaysNumber(currentDateString.getMonth(), currentDateString.getYear());
	for (var i = 0; i <= 5; i++) {
		calendarDayTr[i] = document.createElement("TR");
		for (var j = 0; j <= 6; j++) {
			calendarDayTd[j] = document.createElement("TD");
			if (j%2 == 0) {
				calendarDayTd[j].className = "weekday_odd";
			}
			else {
				calendarDayTd[j].className = "weekday_even";
			}
			if (j == 5) {
				calendarDayTd[j].className = "weekend_even";
			}
			if (j == 6) {
				calendarDayTd[j].className = "weekend_odd";
			}
			var countDayNumber = parseInt(j + 1 + (i * 7) - firstDayWeekday);
			var dayString = "0" + String(countDayNumber);
			dayString = dayString.substr(dayString.length - 2, 2);
			var t = new Date();
			t.setYear(currentDateString.getFullYear());
			t.setMonth(currentDateString.getMonth());
			t.setDate(dayString);
			t.setHours(0);	
			t.setMinutes(0);
			t.setSeconds(0);
			t.setMilliseconds(0);
			t = t.getTime();
			
			var limitDay1 = new Date();
			if (document.forms[form_name].elements[input_name].getAttribute("id") == "sof_reservation_end" && document.getElementById("sof_reservation_begin").value != "") {
				var beginDate = document.getElementById("sof_reservation_begin").value;
				//var endDate = new String (date);
				beginDate = beginDate.split(".");
				beginDate = new String (beginDate[0] + " " + monthsInEnglish[beginDate[1]-1] + " " + beginDate[2]);
				beginDate = Date.parse(beginDate);
				limitDay1.setTime(beginDate);
			}
			else {limitDay1.setTime(currentDayDate);
			}
			limitDay1 = limitDay1.getTime();
			
			var limitDay2 = new Date();
			limitDay2.setTime(currentDayDate);
			limitDay2.setYear(currentDayDateString.getFullYear() + 1);
			limitDay2 = limitDay2.getTime();
			
			
			
			if (countDayNumber > 0 && countDayNumber <= thisMonthDaysNumber) {
				if (inputDay.getTime() == t) {
					var divRelative = document.createElement("DIV");
					divRelative.className = "relative";
					var divAbsolute = document.createElement("DIV");
					divAbsolute.className = "absolute";
//					var dayNumber = document.createTextNode(countDayNumber);
					var calendarDayAnchor = document.createElement("A");
					calendarDayAnchor.setAttribute("href", "#");
					var monthString = "0" + String(parseInt(currentDateString.getMonth())+1);
					monthString = monthString.substr(monthString.length - 2, 2);
					var onClickString = "fillInputField('" + dayString + "." + monthString + "." + currentDateString.getFullYear() + "', '" + input_name + "', '" + form_name + "', '" + generalDiv + "'); return false";
					calendarDayAnchor.onclick=new Function(onClickString);
//					calendarDayAnchor.setAttribute("onClick", onClickString);
					var dayNumber = document.createTextNode(countDayNumber);
					calendarDayAnchor.appendChild(dayNumber);
					
					divAbsolute.appendChild(calendarDayAnchor);
					divRelative.appendChild(divAbsolute);
					calendarDayTd[j].appendChild(divRelative);
				}
				else {
					var monthString = "0" + String(parseInt(currentDateString.getMonth())+1);
					monthString = monthString.substr(monthString.length - 2, 2);
					if (t < limitDay1 || t > limitDay2) {
						var calendarDaySpan = document.createElement("SPAN");
						var spanText = document.createTextNode(countDayNumber);
						calendarDaySpan.appendChild(spanText);
						calendarDayTd[j].appendChild(calendarDaySpan);
					}
					else {
						var calendarDayAnchor = document.createElement("A");
						calendarDayAnchor.setAttribute("href", "#");
						var onClickString = "fillInputField('" + dayString + "." + monthString + "." + currentDateString.getFullYear() + "', '" + input_name + "', '" + form_name + "', '" + generalDiv + "'); return false";
						calendarDayAnchor.onclick=new Function(onClickString);
	//					calendarDayAnchor.setAttribute("onClick", onClickString);
						var dayNumber = document.createTextNode(countDayNumber);
						calendarDayAnchor.appendChild(dayNumber);
						calendarDayTd[j].appendChild(calendarDayAnchor);
					}
				}
			}
			calendarDayTr[i].appendChild(calendarDayTd[j]);
		}
		trArray.push(calendarDayTr[i]);
	}
	return trArray;
}



function showCalendar2 (form_name, input_object_id) {
	var form = document.forms[form_name];
	var inputObject = document.getElementById(input_object_id);
	var inputObjectId = input_object_id;
		
	//     (currentDate) -        ,    input
	if (inputObject.value == "") {
		var currentDate = new Date();
		currentDate = currentDate.getTime();
	}
	else {
		var currentDate = new String (inputObject.value);
		currentDate = currentDate.split(".");
		currentDate = new String (currentDate[0] + " " + monthsInEnglish[currentDate[1]-1] + " " + currentDate[2]);
		currentDate = Date.parse(currentDate);
	}
	var currentDateString = new Date(currentDate); //   
	
	//   - 
	//div-general
	var generalDiv = document.createElement("DIV");
	generalDiv.className = "general";
	generalDiv.setAttribute("id", "post_date_calendar");
	
	// div-calendar
	var calendarDiv = document.createElement("DIV");
	calendarDiv.className = "calendar";
	
	//div   
	var monthDiv = document.createElement("DIV");
	monthDiv.className = "month_name";
	//<
	var leftArrowDiv = document.createElement("DIV");
	leftArrowDiv.className = "left arrow";
	leftArrowDiv.setAttribute("title", " ");
	var leftArrowDivOnClickString = "changeMonth2('backward', '" + currentDateString + "', this, '" + form_name + "', '" + inputObjectId + "');"
	leftArrowDiv.onclick=new Function(leftArrowDivOnClickString);
//	leftArrowDiv.setAttribute("onClick", leftArrowDivOnClickString);
//	var leftArrow = document.createTextNode("<");
//	leftArrowDiv.appendChild(leftArrow);
	//>
	var rightArrowDiv = document.createElement("DIV");
	rightArrowDiv.className = "right arrow";
	rightArrowDiv.setAttribute("title", " ");
	var rightArrowDivOnClickString = "changeMonth2('forward', '" + currentDateString + "', this, '" + form_name + "', '" + inputObjectId + "');"
	rightArrowDiv.onclick=new Function(rightArrowDivOnClickString);
//	rightArrowDiv.setAttribute("onClick", rightArrowDivOnClickString);
//	var rightArrow = document.createTextNode(">");
//	rightArrowDiv.appendChild(rightArrow);
	//month+year
	var monthNameDiv = document.createElement("DIV");
	monthNameDiv.className = "month";
	var monthName = document.createTextNode(calendarMonth[currentDateString.getMonth()]);
	var yearName = document.createTextNode(" " + currentDateString.getFullYear());
	monthNameDiv.appendChild(monthName);
	monthNameDiv.appendChild(yearName);
	
	monthDiv.appendChild(leftArrowDiv);
	monthDiv.appendChild(monthNameDiv);
	monthDiv.appendChild(rightArrowDiv);
	generalDiv.appendChild(monthDiv);

	//
	var calendarTable = document.createElement("TABLE");
	var calendarTableHead = document.createElement("THEAD");
	var calendarTableBody = document.createElement("TBODY");
	calendarTable.appendChild(calendarTableHead);
		
	//   
	var calendarWeekdaysTr = document.createElement("TR");
	calendarWeekdaysTr.className = "day_names";
	var calendarWeekdaysTd = new Array();
	var calendarWeekdaysTdText = new Array();
	for (var i = 0; i <= 6; i++) {
		calendarWeekdaysTd[i] = document.createElement("TD");
		if (i%2 == 0) {
			calendarWeekdaysTd[i].className = "weekday_odd";
		}
		else {
			calendarWeekdaysTd[i].className = "weekday_even";
		}
		if (i == 5) {
			calendarWeekdaysTd[i].className = "weekend_even";
		}
		if (i == 6) {
			calendarWeekdaysTd[i].className = "weekend_odd";
		}
		calendarWeekdaysTdText[i] = document.createTextNode(calendarWeekdays[i]);
		calendarWeekdaysTd[i].appendChild(calendarWeekdaysTdText[i]);
		calendarWeekdaysTr.appendChild(calendarWeekdaysTd[i]);
	}
	calendarTableBody.appendChild(calendarWeekdaysTr);
	
	// 
	var trArray = getCalendar2(form_name, inputObjectId, currentDateString, generalDiv);
	for (var a = 0; a < trArray.length; a++) {
		calendarTableBody.appendChild(trArray[a]);
	}
	calendarTable.appendChild(calendarTableBody);
	
	// div   
	calendarDiv.appendChild(calendarTable);
	generalDiv.appendChild(calendarDiv);
	document.getElementById("calendar_frame").appendChild(generalDiv);
//	var inputObjectParent = inputObject.parentNode;
//	var calendarButton = inputObjectParent.childNodes;
//	for (var a = 0; a < calendarButton.length; a++) {
//		if (calendarButton[a].tagName == "DIV") {
//			calendarButton[a].appendChild(generalDiv);
//		}
//	}
}
//     
 
//   input
function fillInputField2 (date, inputObjectId, form_name, divObject) {
	var form = document.forms[form_name];
	var inputObject = document.getElementById(inputObjectId);
	inputObject.value = date;
	var calendar = document.getElementById("post_date_calendar");
	var calendarParent = calendar.parentNode;
	calendarParent.removeChild(calendar);
}

//  
function changeMonth2(direction, currentDateString, arrowDivObject, form_name, inputObjectId) {
	var currentDateString = new Date(currentDateString);
	switch (direction) {
		case "backward":
			if ((currentDateString.getMonth() - 1) == -1) {
				currentDateString.setFullYear(currentDateString.getFullYear() - 1);
				currentDateString.setMonth(11);
			}
			else {
				currentDateString.setMonth(currentDateString.getMonth() - 1);
			}
			var otherDirection = "forward"; break;
		case "forward":
			if ((currentDateString.getMonth() + 1) == 12) {
				currentDateString.setFullYear(currentDateString.getFullYear() + 1);
				currentDateString.setMonth(0);
			}
			else {
				currentDateString.setMonth(currentDateString.getMonth() + 1);
			}
			var otherDirection = "backward"; break;
	}
	
	//   
	var topDiv = arrowDivObject.parentNode;
	var topDivChildren = topDiv.childNodes;
	for (var i = 0; i < topDivChildren.length; i++) {
		if (topDivChildren[i].className == "month") {
			var monthNameDiv = topDivChildren[i];
			var monthDivChildren = monthNameDiv.childNodes;
			var monthDivChildrenLength = monthDivChildren.length;
			for (var j = 0; j < monthDivChildrenLength; j++) {
				monthNameDiv.removeChild(monthDivChildren[0]);
			}
		}
		else {
			if (topDivChildren[i].className && topDivChildren[i] != arrowDivObject) {
				var otherArrowDivObject = topDivChildren[i];
			}
		}
	}
	var monthName = document.createTextNode(calendarMonth[currentDateString.getMonth()]);
	var yearName = document.createTextNode(" " + currentDateString.getFullYear());
	monthNameDiv.appendChild(monthName);
	monthNameDiv.appendChild(yearName);
	
	//      onClick
	var arrowDivOnClickString = "changeMonth2('" + direction + "', '" + currentDateString + "', this, '" + form_name + "', '" + inputObjectId + "');"
	arrowDivObject.onclick=new Function(arrowDivOnClickString);
//	arrowDivObject.setAttribute("onClick", arrowDivOnClickString);
	
	var otherArrowDivOnClickString = "changeMonth2('" + otherDirection + "', '" + currentDateString + "', this, '" + form_name + "', '" + inputObjectId + "');"
	otherArrowDivObject.onclick=new Function(otherArrowDivOnClickString);
//	otherArrowDivObject.setAttribute("onClick", otherArrowDivOnClickString);
	
	// 
	var monthDiv = arrowDivObject.parentNode;
	var generalDiv = monthDiv.parentNode;
	var generalDivChildren = generalDiv.childNodes;
	for (var i = 0; i < generalDivChildren.length; i++) {
		if (generalDivChildren[i].className == "calendar") {
			var calendarChildren = generalDivChildren[i].childNodes;
			for (var j = 0; j < calendarChildren.length; j++) {
				if (calendarChildren[j].tagName == "TABLE") {
					var calendarTable = calendarChildren[j];
				}
			}
		} 
	}
	var trArray = new Array();
	var calendarTableChildren = calendarTable.childNodes;
	for (var i = 0; i < calendarTableChildren.length; i++) {
		if (calendarTableChildren[i].tagName == "TBODY") {
			var calendarTableBody = calendarTableChildren[i];
			var calendarTbodyChildren = calendarTableChildren[i].childNodes;
			for (var j = 0; j < calendarTbodyChildren.length; j++) {
				if (calendarTbodyChildren[j].tagName == "TR") {
					trArray.push(calendarTbodyChildren[j]);
				}
			}
		}
	}
	for (var i = 1; i < trArray.length; i++) {
		calendarTableBody.removeChild(trArray[i]);
	}
	
	
	//  
	var trArray = getCalendar2(form_name, inputObjectId, currentDateString, generalDiv);
	for (var a = 0; a < trArray.length; a++) {
		calendarTableBody.appendChild(trArray[a]);
	}
	calendarTable.appendChild(calendarTableBody);
}

function getCalendar2 (form_name, inputObjectId, currentDateString, generalDiv) {
 	var trArray = new Array();
	//  ,       
	var first = new Date(currentDateString);
	first.setDate(1);
	var firstDay = new Date(first);
	var firstDayWeekday = parseInt(firstDay.getDay())-1;
	if (firstDayWeekday == -1) {
		firstDayWeekday  = 6;
	}
	
	var calendarDayTr = new Array();
	var calendarDayTd = new Array();
	var thisMonthDaysNumber = calendarDaysNumber(currentDateString.getMonth(), currentDateString.getYear());
	for (var i = 0; i <= 5; i++) {
		calendarDayTr[i] = document.createElement("TR");
		for (var j = 0; j <= 6; j++) {
			calendarDayTd[j] = document.createElement("TD");
			if (j%2 == 0) {
				calendarDayTd[j].className = "weekday_odd";
			}
			else {
				calendarDayTd[j].className = "weekday_even";
			}
			if (j == 5) {
				calendarDayTd[j].className = "weekend_even";
			}
			if (j == 6) {
				calendarDayTd[j].className = "weekend_odd";
			}
			var countDayNumber = parseInt(j + 1 + (i * 7) - firstDayWeekday);
			if (countDayNumber > 0 && countDayNumber <= thisMonthDaysNumber) {
				if (countDayNumber == currentDateString.getDate()) {
					var divRelative = document.createElement("DIV");
					divRelative.className = "relative";
					var divAbsolute = document.createElement("DIV");
					divAbsolute.className = "absolute";
//					var dayNumber = document.createTextNode(countDayNumber);
					var calendarDayAnchor = document.createElement("A");
					calendarDayAnchor.setAttribute("href", "#");
					var monthString = "0" + String(parseInt(currentDateString.getMonth())+1);
					monthString = monthString.substr(monthString.length - 2, 2);
					var dayString = "0" + String(countDayNumber);
					dayString = dayString.substr(dayString.length - 2, 2);
					var onClickString = "fillInputField2('" + dayString + "." + monthString + "." + currentDateString.getFullYear() + "', '" + inputObjectId + "', '" + form_name + "', '" + generalDiv + "'); return false";
					calendarDayAnchor.onclick=new Function(onClickString);
//					calendarDayAnchor.setAttribute("onClick", onClickString);
					var dayNumber = document.createTextNode(countDayNumber);
					calendarDayAnchor.appendChild(dayNumber);
					
					divAbsolute.appendChild(calendarDayAnchor);
					divRelative.appendChild(divAbsolute);
					calendarDayTd[j].appendChild(divRelative);
				}
				else {
					var calendarDayAnchor = document.createElement("A");
					calendarDayAnchor.setAttribute("href", "#");
					var monthString = "0" + String(parseInt(currentDateString.getMonth())+1);
					monthString = monthString.substr(monthString.length - 2, 2);
					var dayString = "0" + String(countDayNumber);
					dayString = dayString.substr(dayString.length - 2, 2);
					var onClickString = "fillInputField2('" + dayString + "." + monthString + "." + currentDateString.getFullYear() + "', '" + inputObjectId + "', '" + form_name + "', '" + generalDiv + "'); return false";
					calendarDayAnchor.onclick=new Function(onClickString);
//					calendarDayAnchor.setAttribute("onClick", onClickString);
					var dayNumber = document.createTextNode(countDayNumber);
					calendarDayAnchor.appendChild(dayNumber);
					calendarDayTd[j].appendChild(calendarDayAnchor);
				}
			}
			calendarDayTr[i].appendChild(calendarDayTd[j]);
		}
		trArray.push(calendarDayTr[i]);
	}
	return trArray;
}
