var isNav = false;
if (parseInt(navigator.appVersion) >= 4) {
	if (navigator.appName == "Netscape") {
		isNav = true;
	}
} else {
	isNav = true;
}
var today = new Date(new Date().valueOf());
var dateBoxPieceBlank = "<td width=\"22\" height=\"18\" align=\"center\" valign=\"middle\" bgcolor=\"#FFFFFF\" class=\"calendar\">&nbsp;</td>";
var dateBoxPiece = "<td class=\"calendar\" width=\"22\" height=\"18\" align=\"center\" valign=\"middle\" onMouseOver=\"this.style.background = '#FFFF93';\" onMouseOut=\"this.style.background = '##BGCOLOR##';\" onClick=\"setDateBoxes('##DATESET##',##MONTH##,##DAY##,##YEAR##)\" bgcolor=\"##BGCOLOR##\">##DAY##</td>";
var baseDateBoxHeader = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"158\">\n";
baseDateBoxHeader += "<tr>\n";
baseDateBoxHeader += "<td colspan=\"7\" align=\"center\">\n";
baseDateBoxHeader += "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"158\">\n";
baseDateBoxHeader += "<tr>\n";
baseDateBoxHeader += "<td width=\"33%\" class=\"calendar\"><div name=\"back\" style=\"width: 15; border: 1 solid buttonface; border: 2 outset buttonhighlight; background-color: menu;\" align=\"center\" onMouseDown=\"this.style.border = '2 inset buttonhighlight'\" onMouseUp=\"this.style.border = '2 outset buttonhighlight'\" onClick=\"previousMonth('##DATESET##')\"><b>&lt;</b></div></td>\n";
baseDateBoxHeader += "<td width=\"33%\" class=\"calendar\" nowrap><font face=\"Arial\" size=\"2\" color=\"#B92333\"><b>##MONTHNAME## ##YEAR##</b></font></td>\n";
baseDateBoxHeader += "<td width=\"33%\" class=\"calendar\" align=\"right\"><div name=\"next\" style=\"width: 15; border: 1 solid buttonface; border: 2 outset buttonhighlight; background-color: menu;\" align=\"center\" onMouseDown=\"this.style.border = '2 inset buttonhighlight'\" onMouseUp=\"this.style.border = '2 outset buttonhighlight'\" onClick=\"nextMonth('##DATESET##')\"><b>&gt;</b></div></td>\n";
baseDateBoxHeader += "</tr>\n";
baseDateBoxHeader += "</table>\n";
baseDateBoxHeader += "</td>\n";
baseDateBoxHeader += "</tr>\n";
baseDateBoxHeader += "<tr>\n";
baseDateBoxHeader += "<td class=\"calendar\" bgcolor=\"#B92333\" align=\"center\"><font color=\"#FFFFFF\">S</font></td>\n";
baseDateBoxHeader += "<td class=\"calendar\" bgcolor=\"#B92333\" align=\"center\"><font color=\"#FFFFFF\">M</font></td>\n";
baseDateBoxHeader += "<td class=\"calendar\" bgcolor=\"#B92333\" align=\"center\"><font color=\"#FFFFFF\">T</font></td>\n";
baseDateBoxHeader += "<td class=\"calendar\" bgcolor=\"#B92333\" align=\"center\"><font color=\"#FFFFFF\">W</font></td>\n";
baseDateBoxHeader += "<td class=\"calendar\" bgcolor=\"#B92333\" align=\"center\"><font color=\"#FFFFFF\">T</font></td>\n";
baseDateBoxHeader += "<td class=\"calendar\" bgcolor=\"#B92333\" align=\"center\"><font color=\"#FFFFFF\">F</font></td>\n";
baseDateBoxHeader += "<td class=\"calendar\" bgcolor=\"#B92333\" align=\"center\"><font color=\"#FFFFFF\">S</font></td>\n";
baseDateBoxHeader += "</tr>";
var dateBoxFooter = "<tr>\n";
dateBoxFooter += "<td class=\"calendar\" colspan=\"7\" align=\"center\"><div name=\"close_btn\" style=\"width: 50; height: 15; border: 1 solid buttonface; border: 2 outset buttonhighlight; background-color: menu;\" align=\"center\" onMouseDown=\"this.style.border = '2 inset buttonhighlight'\" onMouseUp=\"this.style.border = '2 outset buttonhighlight'\" onClick=\"hideCalendar()\">Close</div></td>\n";
dateBoxFooter += "</tr>\n</table>\n";
var calBuffer = "";
var caldays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var months = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
function isLeapYear(yr) {
	if (((yr % 4 == 0) && (yr % 100 != 0)) || (yr % 400 == 0)) {
		return true;
	} else {
		return false;
	}
}
function GetDOW2(d,m,y) {
	var dt = new Date(y,m-1,d);
	return (dt.getDay())%7;
}
var selectBoxFlag = false;
var roomsFlag = false;
var maxYear = 0;
var minYear = 0;
function displayCalendar(hideSelects, hideRooms, inDateSet) {
	selectBoxFlag = hideSelects;
	roomsFlag = hideRooms;
	if (isNav) {
		var calWinHndl = window.open("http://www.lodging.com/auto/popup_calendar.cgi","calendar","scrollbars=yes,resizable=yes,width=500,height=275");    
		calWinHndl.focus(); 
	} else {
		theForm = document.searchform; 
		var inYear = theForm.chinyear.options[theForm.chinyear.selectedIndex].value;  
		theForm = document.searchform;
		var mon = parseInt(theForm.chinmonth.options[theForm.chinmonth.selectedIndex].value,10); 
		var day = parseInt(theForm.chinday.options[theForm.chinday.selectedIndex].value,10);
		var year = parseInt(theForm.chinyear.options[theForm.chinyear.selectedIndex].value,10);
		currentMonth = mon;
		currentYear = year;
		currentDay = day; 
		maxYear = parseInt(theForm.chinyear.options[(theForm.chinyear.options.length-1)].value,10);
		minYear = parseInt(theForm.chinyear.options[0].value,10);
		drawCalendarBody(inDateSet,mon,day,year);
		document.all.CAL.style.left = (event.x - event.offsetX + document.body.scrollLeft + 10);
		document.all.CAL.style.top = (event.y - event.offsetY + document.body.scrollTop);
		document.all.CAL.style.visibility = "visible";
		if (hideSelects) {
			if (document.all.searchform.nights) {
				document.all.searchform.nights.style.visibility = "hidden";
			}
		}
		if (hideRooms) {
			if (document.all.searchform.roomtype1) {
				document.all.searchform.roomtype1.style.visibility = "hidden";
			}
			if (document.all.searchform.roomtype2) {
				document.all.searchform.roomtype2.style.visibility = "hidden";
			} 
			if (document.all.searchform.roomtype3) {
				document.all.searchform.roomtype3.style.visibility = "hidden";
			}
		}
	}
}
function hideCalendar(hideSelects) {
	document.all.CAL.style.visibility = "hidden"; 
	if (hideSelects || selectBoxFlag || roomsFlag) {   
		if (document.all.searchform.numrooms) {
			document.all.searchform.numrooms.style.visibility = "visible";
		}
		if (document.all.searchform.nights) {
			document.all.searchform.nights.style.visibility = "visible";
		}
		if (document.all.searchform.roomtype1) {
			document.all.searchform.roomtype1.style.visibility = "visible";
		}
		if (document.all.searchform.roomtype2) {
			document.all.searchform.roomtype2.style.visibility = "visible";
		}
		if (document.all.searchform.roomtype3) {
			document.all.searchform.roomtype3.style.visibility = "visible";
		}
	}
}
function nextMonth(inDateSet) {
	currentMonth += 1;
	if (currentMonth > 12 && currentYear + 1 <= maxYear) {
		currentMonth = 1;
		currentYear++;
	}
	if (currentMonth > 12) {
		currentMonth = 12;
	}
	if(currentMonth == (today.getMonth()+1) && currentYear == today.getYear()) {
		drawCalendarBody(inDateSet,currentMonth,currentDay,currentYear);
	} else {
		drawCalendarBody(inDateSet,currentMonth,0,currentYear);
	}
}
function previousMonth(inDateSet) {
	if ((currentMonth - 1) < (today.getMonth()+1) && currentYear <= today.getYear()) {
		
	} else {
		currentMonth -= 1;
		if (currentMonth < 1 && currentYear - 1 >= minYear) {
			currentMonth = 12;
			currentYear -= 1;
		}
		if (currentMonth == (today.getMonth()+1) && currentYear == today.getYear()) {
			drawCalendarBody(inDateSet,currentMonth,currentDay,currentYear);
		} else {
			drawCalendarBody(inDateSet,currentMonth,0,currentYear);
		}
	}
}
var currentMonth = 1;
var currentYear = y2k(today.getYear());
var currentDay = 1;
function drawCalendarBody(inDateSet,mon,day,year) {
	calObj = document.all.CAL_BODY;
	theForm = document.searchform;
	var dowStartPos = GetDOW2(1,mon,year);
	var finalDay = caldays[(mon-1)];
	if (isLeapYear(year) && mon == 2) {
		finalDay += 1;
	}
	re_MonthName = /##MONTHNAME##/g;
	re_Year = /##YEAR##/g;
	re_DateSet = /##DATESET##/g;
	dateBoxHeader = baseDateBoxHeader;
	dateBoxHeader = dateBoxHeader.replace(re_MonthName,months[(mon-1)]);
	dateBoxHeader = dateBoxHeader.replace(re_Year,""+year);
	dateBoxHeader = dateBoxHeader.replace(re_DateSet,""+inDateSet);
	calBuffer = generateGrid(inDateSet,dowStartPos,finalDay, mon,day,year);
	document.all.CAL_BODY.innerHTML = dateBoxHeader + calBuffer + dateBoxFooter;
}
function generateGrid(inDateSet,startPos,endPos,m,d,y) {
	var currentDay=1;
	var gridCount=0;
	var doBlanks=true;
	var tmpBuffer="";
	re_Month = /##MONTH##/g;
	re_Day = /##DAY##/g;
	re_Year = /##YEAR##/g;
	re_BGColor = /##BGCOLOR##/g;
	re_DateSet = /##DATESET##/g;
	for (var i=0;i<6;i++) {
		tmpBuffer += "<tr>\n";
		for (var j=0;j<7;j++) {
			if(gridCount < startPos || currentDay > endPos) {
				tmpBuffer += dateBoxPieceBlank + "\n";
			} else {
				pasrsedDBP = dateBoxPiece;
				pasrsedDBP = pasrsedDBP.replace(re_Month,""+m);
				pasrsedDBP = pasrsedDBP.replace(re_Day,""+currentDay);
				pasrsedDBP = pasrsedDBP.replace(re_Year,""+y);
				pasrsedDBP = pasrsedDBP.replace(re_DateSet,""+inDateSet);
				if (currentDay == d) {
					pasrsedDBP = pasrsedDBP.replace(re_BGColor,"#BFC1FF");
				} else {
					pasrsedDBP = pasrsedDBP.replace(re_BGColor,"#FFFFFF");
				}
				tmpBuffer += pasrsedDBP + "\n";
				currentDay++;
			}
			gridCount++;
		}
		tmpBuffer += "</tr>\n";
	}
	return tmpBuffer;
}
function setDateBoxes(whichDateSet,m,d,y) {
	theForm = document.searchform;
	eval("monthObj = theForm.ch"+whichDateSet+"month;");
	eval("dayObj = theForm.ch"+whichDateSet+"day;");
	eval("yearObj = theForm.ch"+whichDateSet+"year;");
	var yearOffset = parseInt(theForm.chinyear.options[0].value,10);
	monthObj.options[(m-1)].selected = true;  dayObj.options[(d-1)].selected = true;
	yearObj.options[(y-yearOffset)].selected = true;
	changeDate();
	hideCalendar();
}
function y2k(number) {
	return (number < 1000) ? number + 1900 : number;
}
