// CSS Browser Selector   v0.2.5
// Documentation:         http://rafael.adm.br/css_browser_selector
// License:               http://creativecommons.org/licenses/by/2.5/
// Author:                Rafael Lima (http://rafael.adm.br)
// Contributors:          http://rafael.adm.br/css_browser_selector#contributors
var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])
var css_browser_selector = function() {
	var 
		ua=navigator.userAgent.toLowerCase(),
		is=function(t){ return ua.indexOf(t) != -1; },
		h=document.getElementsByTagName('html')[0],
		b=(!(/opera|webtv/i.test(ua))&&/msie (\d)/.test(ua))?('ie ie'+RegExp.$1):is('gecko/')? 'gecko':is('opera/9')?'opera opera9':/opera (\d)/.test(ua)?'opera opera'+RegExp.$1:is('konqueror')?'konqueror':is('applewebkit/')?'webkit safari':is('mozilla/')?'gecko':'',
		os=(is('x11')||is('linux'))?' linux':is('mac')?' mac':is('win')?' win':'';
	var c=b+os+' js';
	h.className += h.className?' '+c:c;
}();

///////////////////////////////////
//                               //
// ResStream JavaScript Clendars //
//        Version 2.2.1          //
// Copyright 2007 RezStream Inc. //
//                               //
///////////////////////////////////

var timer = 0;
var RSCalObj = {
	RSCalCounter:-1,
	RSCalScriptCounter:0,
	RSCalSucess:0,
	RSCalSizerText:""
}


function RSCal(AID, PID, UID, CNT, LONG, BOOK, SIZE, LOGO, CSS, TAG, PAGE, NEW){
	RSCalObj.RSCalCounter++;
	RSCalID = "RSCal" + RSCalObj.RSCalCounter;
	RSCalObj[RSCalID] = new Object();
	if(!AID || !PID){document.write("<div>You must enter both the Account ID and Property ID to display a Calendar.</div>");}
	RSCalObj[RSCalID].RSCalAccount = AID;
	RSCalObj[RSCalID].RSCalProperty = PID;
	if(typeof(UID) != 'undefined'){RSCalObj[RSCalID].RSCalUnit = UID;}
	else{RSCalObj[RSCalID].RSCalUnit = 0;}
	if(typeof(CNT) != 'undefined'){RSCalObj[RSCalID].RSCalCnt = CNT;}
	else{RSCalObj[RSCalID].RSCalCnt = 3;}
	if(typeof(LONG) != 'undefined'){RSCalObj[RSCalID].RSCalLength = LONG;}
	else{RSCalObj[RSCalID].RSCalLength = 4;}
	if(typeof(BOOK) != 'undefined'){RSCalObj[RSCalID].RSCalBookable = BOOK;}
	else{RSCalObj[RSCalID].RSCalBookable = 1;}
	if(typeof(SIZE) != 'undefined'){RSCalObj[RSCalID].RSCalSize = SIZE + '%';}
	else{RSCalObj[RSCalID].RSCalSize = '100%';}
	if(typeof(CSS) != 'undefined'){RSCalObj[RSCalID].RSCalCSSURL = CSS;}
	else{RSCalObj[RSCalID].RSCalCSSURL = "http://calendars.rezstream.com/cal.css";}
	if(typeof(LOGO) != 'undefined'){RSCalObj[RSCalID].Logo = LOGO;}
	else{RSCalObj[RSCalID].Logo = "http://calendars.rezstream.com/pwd-rezstream2.gif";}
	if(typeof(TAG) != 'undefined'){RSCalObj[RSCalID].Tag = TAG;}
	else{RSCalObj[RSCalID].Tag = "Book&nbsp;Now&nbsp;&gt;&gt;";}
	if(typeof(PAGE) != 'undefined'){RSCalObj[RSCalID].Page = PAGE;}
	else{RSCalObj[RSCalID].Page = 'undefined';}
	if(typeof(NEW) != 'undefined'){RSCalObj[RSCalID].New = NEW;}
	else{RSCalObj[RSCalID].New = "1";}


	if(RSCalObj[RSCalID].Logo == 1){RSCalObj[RSCalID].Logo = "http://calendars.rezstream.com/pwd-rezstream2.gif"}
	var KeyCode = new String(new Number(AID) * new Number(PID));
	var KEY = KeyCode.substr(0,4);
	if(RSCalObj[RSCalID].RSCalUnit == 0){RSCalObj[RSCalID].SingleUnit = false;}else{RSCalObj[RSCalID].SingleUnit = true;}
	if(RSCalObj[RSCalID].RSCalBookable == 0){RSCalObj[RSCalID].RSCalBookable = false;}else{RSCalObj[RSCalID].RSCalBookable = true;}
	RSCalObj[RSCalID].RSCalOccupancy = new Object();
	RSCalObj[RSCalID].RSCalProperties = new Object();
	var head = document.getElementsByTagName("head")[0];
	if(!document.getElementById('RSCalCSS')){
		var css = document.createElement('link');
		css.id = 'RSCalCSS';
		css.type = 'text/css';	
		css.rel = 'stylesheet';
		css.href = RSCalObj[RSCalID].RSCalCSSURL;
		head.appendChild(css);
	}
	else if(document.getElementById('RSCalCSS').href != RSCalObj[RSCalID].RSCalCSSURL){
		var css = document.createElement('link');
		css.id = 'RSCalCSS' + RSCalObj.RSCalCounter;
		css.type = 'text/css';	
		css.rel = 'stylesheet';
		css.href = RSCalObj[RSCalID].RSCalCSSURL;
		head.appendChild(css);
		
	}
	RSCalObj.RSCalSizerText += 	"#" + RSCalID + " {font-size:" + RSCalObj[RSCalID].RSCalSize + ";}";
	var script = document.createElement('script');
	script.id = 'script' + RSCalObj.RSCalScriptCounter;
	script.type = 'text/javascript';
	script.src = 'http://rezstreamsynch.net/booking_synch/Calendar.aspx?TheCall=GetCalOccupancy&Key=' + KEY + '&AccountID=' + AID + '&PropertyID=' + PID + '&UnitID=' + RSCalObj[RSCalID].RSCalUnit + '&callback=RSCalObj.' + RSCalID + '.RSCalOccupancy';
	head.appendChild(script);
	RSCalObj.RSCalScriptCounter++;
	var script2 = document.createElement('script');
	script2.id = 'script' + RSCalObj.RSCalScriptCounter;
	script2.type = 'text/javascript';
	script2.src = 'http://rezstreamsynch.net/booking_synch/Calendar.aspx?TheCall=GetCalProperties&Key=' + KEY + '&AccountID=' + AID + '&PropertyID=' + PID + '&UnitID=' + RSCalObj[RSCalID].RSCalUnit + '&callback=RSCalObj.' + RSCalID + '.RSCalProperties';
	head.appendChild(script2);
	RSCalObj.RSCalScriptCounter++;
	if(RSCalObj[RSCalID].SingleUnit === true && RSCalObj[RSCalID].RSCalBookable === true){
		RSCalObj[RSCalID].RSCalMinStay = new Object();
		var script3 = document.createElement('script');
		script3.id = 'script' + RSCalObj.RSCalScriptCounter;
		script3.type = 'text/javascript';
		script3.src = 'http://rezstreamsynch.net/booking_synch/Calendar.aspx?TheCall=GetCalMinStay&Key=' + KEY + '&AccountID=' + AID + '&PropertyID=' + PID + '&UnitID=' + RSCalObj[RSCalID].RSCalUnit + '&callback=RSCalObj.' + RSCalID + '.RSCalMinStay';
		head.appendChild(script3);
		RSCalObj.RSCalScriptCounter++;
	}
	var insertHere = '<div id="' + RSCalID + '" class="RSCal" style="font-size:' + RSCalObj[RSCalID].RSCalSize + '; width:' + (12.2 * (RSCalObj[RSCalID].RSCalLength)) + 'em;"><div style="height:14em; background-color:#C3D9FF;"><p style="text-align:center; color:#FFFFFF; padding-top:7em; overflow:hidden;">Please Wait... Loading the RezStream Availability Calendar.</p></div></div>';
	document.write(insertHere);
	timer = 0;
	wait4Script();
}

function wait4Script(){
		if(RSCalObj["RSCal" + RSCalObj.RSCalSucess].SingleUnit === true && RSCalObj["RSCal" + RSCalObj.RSCalSucess].RSCalBookable === true){
			if(typeof(RSCalObj["RSCal" + RSCalObj.RSCalSucess].RSCalOccupancy.D) != 'undefined' && typeof(RSCalObj["RSCal" + RSCalObj.RSCalSucess].RSCalProperties.MaxChildren) != 'undefined' && typeof(RSCalObj["RSCal" + RSCalObj.RSCalSucess].RSCalMinStay.MinStayWeekend) != 'undefined'){
				RSCalSetVars(RSCalObj.RSCalSucess);
			}
			else {
				timer++; setTimeout(wait4Script, 10);
			}
		}
		else {
			if(typeof(RSCalObj["RSCal" + RSCalObj.RSCalSucess].RSCalOccupancy.D) != 'undefined'  && typeof(RSCalObj["RSCal" + RSCalObj.RSCalSucess].RSCalProperties.MaxChildren) != 'undefined'){
				RSCalSetVars(RSCalObj.RSCalSucess);
			}
			else {
				timer++; setTimeout(wait4Script, 10);
			}
		}
}

function RSCalSetVars(num){
	var a = RSCalObj['RSCal' + num].RSCalProperties.CDate.split('/');
    RSCalObj.RSCalTodaysDate = new Date(a[2], a[0] - 1, a[1]);
	RSCalObj.RSCalSucess++;
	RSCalObj.RSCalTodaysDay = RSCalObj.RSCalTodaysDate.getDate();
	RSCalObj.RSCalTodaysMonth = RSCalObj.RSCalTodaysDate.getMonth();
	RSCalObj.RSCalTodaysYear = RSCalObj.RSCalTodaysDate.getFullYear();
	RSCalObj['RSCal' + num].RSCalDefaultStay = RSCalObj['RSCal' + num].RSCalProperties.LengthofStay
	RSCalObj['RSCal' + num].RSCalAvailable = new Array();
	RSCalObj['RSCal' + num].RSCalDateID = new Array();
	RSCalObj['RSCal' + num].RSCalDate = new Array();
	RSCalObj['RSCal' + num].RSCalMinStayDay = new Array();
	RSCalObj['RSCal' + num].RSCalRemoveHighlight = new Array();
	RSCalObj['RSCal' + num].RSCalDepartureDate = new Date();
	RSCalObj['RSCal' + num].RSCalArrivalDate = new Date();
	RSCalObj['RSCal' + num].RSCalArrivalDay = new Date().getDate();
	RSCalObj['RSCal' + num].RSCalArrivalMonth = new Date().getMonth();
	RSCalObj['RSCal' + num].RSCalArrivalYear = new Date().getFullYear();
	RSCalObj['RSCal' + num].RSCalDisplayMonth = new Date().getMonth();
	RSCalObj['RSCal' + num].RSCalDisplayYear = new Date().getFullYear();
	RSCalObj['RSCal' + num].RSCalOldArrivalDate = new Date();
	RSCalObj['RSCal' + num].RSCalOldDepartureDate = new Date();
	RSCalObj['RSCal' + num].RSCalOldDefaultStay = 0;
	RSCalObj['RSCal' + num].RSCalBookedErrorMsg = new String();
	RSCalObj['RSCal' + num].RSCalBookedErrorCount = 0;
	RSCalObj['RSCal' + num].RSCalDisplayError = 0;
	RSCalObj['RSCal' + num].RSCalFirstRun = true;
	RSCalObj['RSCal' + num].RSCalSelectedCount = new Array();
	RSCalObj['RSCal' + num].RSCalStayOptions = new String();
	RSCalObj['RSCal' + num].RSCalAdults = new String();
	RSCalObj['RSCal' + num].RSCalKids1 = new String();
	RSCalObj['RSCal' + num].RSCalKids2 = new String();
	RSCalObj['RSCal' + num].RSCalMinStayTest = new Array();

	if(RSCalObj['RSCal' + num].RSCalProperties.UCount){
		RSCalObj['RSCal' + num].RSCalAvailableUnits = new Number(RSCalObj['RSCal' + num].RSCalProperties.UCount);
	}
	else{
		RSCalObj['RSCal' + num].RSCalAvailableUnits = new Number(1);
	}
	
	if(RSCalObj['RSCal' + num].RSCalProperties.Bookable == "False" || RSCalObj['RSCal' + num].RSCalProperties.Active == "False" || RSCalObj['RSCal' + num].RSCalProperties.DisplayOnly == "1"){
		RSCalObj['RSCal' + num].RSCalBookable = false;
	}
	
	for(var i=0; i<(RSCalObj['RSCal' + num].RSCalOccupancy.D.length); i++){
		RSCalObj['RSCal' + num].RSCalAvailable[i] = new Number(RSCalObj['RSCal' + num].RSCalAvailableUnits - new Number(RSCalObj['RSCal' + num].RSCalOccupancy.UCount[i]));
		RSCalObj['RSCal' + num].RSCalDate[i] = RSCalObj['RSCal' + num].RSCalOccupancy.D[i];
		RSCalObj['RSCal' + num].RSCalDateID[i] = new String(new Date(RSCalObj['RSCal' + num].RSCalDate[i]).getFullYear());
			if((new Date(RSCalObj['RSCal' + num].RSCalDate[i]).getMonth() + 1) < 10){RSCalObj['RSCal' + num].RSCalDateID[i] += '0' + (new Date(RSCalObj['RSCal' + num].RSCalDate[i]).getMonth() + 1);}
			else{RSCalObj['RSCal' + num].RSCalDateID[i] += (new Date(RSCalObj['RSCal' + num].RSCalDate[i]).getMonth() + 1);}
			if(new Date(RSCalObj['RSCal' + num].RSCalDate[i]).getDate() < 10){RSCalObj['RSCal' + num].RSCalDateID[i] += '0' + new Date(RSCalObj['RSCal' + num].RSCalDate[i]).getDate();}
			else{RSCalObj['RSCal' + num].RSCalDateID[i] += new Date(RSCalObj['RSCal' + num].RSCalDate[i]).getDate();}
			RSCalObj['RSCal' + num].RSCalDateID[i] += num;
	}
	RSCalObj['RSCal' + num].RSCalMinOutStay = new Date(RSCalObj.RSCalTodaysYear, RSCalObj.RSCalTodaysMonth, (new Number(RSCalObj.RSCalTodaysDay) + new Number(RSCalObj['RSCal' + num].RSCalProperties.MinAcceptValue)));
	RSCalObj['RSCal' + num].RSCalMaxOutStay = new Date(RSCalObj.RSCalTodaysYear, RSCalObj.RSCalTodaysMonth, (new Number(RSCalObj.RSCalTodaysDay) + new Number(RSCalObj['RSCal' + num].RSCalProperties.FutureAcceptValue)));
	RSCalObj['RSCal' + num].RSCalMinOutID = new String(RSCalObj['RSCal' + num].RSCalMinOutStay.getFullYear());
		if((RSCalObj['RSCal' + num].RSCalMinOutStay.getMonth() + 1) < 10){RSCalObj['RSCal' + num].RSCalMinOutID += '0' + (RSCalObj['RSCal' + num].RSCalMinOutStay.getMonth() + 1);}
		else{RSCalObj['RSCal' + num].RSCalMinOutID += (RSCalObj['RSCal' + num].RSCalMinOutStay.getMonth() + 1);}
		if(RSCalObj['RSCal' + num].RSCalMinOutStay.getDate() < 10){RSCalObj['RSCal' + num].RSCalMinOutID += '0' + RSCalObj['RSCal' + num].RSCalMinOutStay.getDate();}
		else{RSCalObj['RSCal' + num].RSCalMinOutID += RSCalObj['RSCal' + num].RSCalMinOutStay.getDate();}
	RSCalObj['RSCal' + num].RSCalMaxOutID = new String(RSCalObj['RSCal' + num].RSCalMaxOutStay.getFullYear());
		if((RSCalObj['RSCal' + num].RSCalMaxOutStay.getMonth() + 1) < 10){RSCalObj['RSCal' + num].RSCalMaxOutID += '0' + (RSCalObj['RSCal' + num].RSCalMaxOutStay.getMonth() + 1);}
		else{RSCalObj['RSCal' + num].RSCalMaxOutID += (RSCalObj['RSCal' + num].RSCalMaxOutStay.getMonth() + 1);}
		if(RSCalObj['RSCal' + num].RSCalMaxOutStay.getDate() < 10){RSCalObj['RSCal' + num].RSCalMaxOutID += '0' + RSCalObj['RSCal' + num].RSCalMaxOutStay.getDate();}
		else{RSCalObj['RSCal' + num].RSCalMaxOutID += RSCalObj['RSCal' + num].RSCalMaxOutStay.getDate();}
	
	RSCalBuildFrameWork(num);
}

//Build the Tables and Divs to be filled with the calendars
function RSCalBuildFrameWork(num){
	//Create an area for the calendars
	var RSCalFrameWork = '<div id="' + num + 'cals"></div>';
	//Create the basic layout for the details section
//	RSCalFrameWork += '<div id="choices' + num + '" class="choices">';
	RSCalFrameWork += '<table cellpadding="0" cellspacing="0" border="0" class="cal choices" id="choices' + num + '">';
	RSCalFrameWork += '<tr><td class="month">Make Reservation</td></tr>';
	RSCalFrameWork += '<tr class="week"><td>&nbsp;</td></tr>';
	RSCalFrameWork += '<tr><td><div id="detailsMain' + num + '">';
	RSCalFrameWork += '<table cellpadding="0" cellspacing="0" id="select" align="center" style=" margin:.5em auto;">';
	RSCalFrameWork += '<tr><td><strong>Arrive:&nbsp;</strong></td><td><div id="dropDownDiv0' + num + '" style="position:relative; height:1px; width:1px; overflow:visible;"><iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" class="RSCalDropDownSTYLE" id="dropDown0' + num + '" style="visibility:hidden;"></iframe></div><div class="RSCalDateSelect"><p class="RSCalDate" name="arrivalDate' + num + '" id="arrivalDate' + num + '"></p><a onclick="RSCalDropDownInit(0,' + num + '); RSCalDropDownView(0,' + num + ');"><img class="RSCalDateIcon" src="http://calendars.rezstream.com/calendar_icon.png" /></a></div></td></tr>';
	RSCalFrameWork += '<tr><td><strong>Depart:&nbsp;</strong></td><td><div id="dropDownDiv1' + num + '" style="position:relative; height:1px; width:1px; overflow:visible;"><iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" class="RSCalDropDownSTYLE" id="dropDown1' + num + '" style="visibility:hidden;"></iframe></div><div class="RSCalDateSelect"><p class="RSCalDate" name="departureDate' + num + '" id="departureDate' + num + '"></p><a onclick="RSCalDropDownInit(1,' + num + '); RSCalDropDownView(1,' + num + ');"><img class="RSCalDateIcon" src="http://calendars.rezstream.com/calendar_icon.png" /></a></div></td></tr>';
	RSCalFrameWork += '<tr><td><strong>Length:&nbsp;</strong></td><td><div id="lStay' + num + '"></div></td></tr>';
	RSCalFrameWork += '<tr><td><strong>Adults:&nbsp;</strong></td><td><div id="adult' + num + '"></div></td></tr>';
	RSCalFrameWork += '<tr><td><div id="kids1' + num + '"></div></td><td><div id="kids2' + num + '"></div></td></tr>';
	RSCalFrameWork += '</table>';
	RSCalFrameWork += '<input class="button" type="button" onclick="RSCalBookingError(\'go\', ' + num + ');" value=' + RSCalObj['RSCal' + num].Tag + '>';
	RSCalFrameWork += '</div></td></tr>';
	RSCalFrameWork += '</table>';
	RSCalFrameWork += '</div>';
	//Navagation
	
	if(RSCalObj['RSCal' + num].RSCalCnt > 0){
		RSCalFrameWork += '<table style="clear:both; float:left; margin-top:-.5em; border:0; width:auto;"><tr><td style="clear:both; border:0; width:auto; b"><div style="clear:both; float:left; background-color:transparent; font-size:.9em; clear:both; border:0; width:10.5em;" onclick="if(document.getElementById(\'legend\').style.display == \'none\'){document.getElementById(\'legend\').style.display = \'block\';}else{document.getElementById(\'legend\').style.display = \'none\';}"><p style="text-decoration:underline; cursor:pointer; border:0; width:auto;">Click Here for Legend</p></div>';
		RSCalFrameWork += '<div id=legend style="width:auto;clear:both; border:.01em #555 solid; display:none; position:absolute; margin-top:1.1em; background-color:#f8f8f8; padding:.2em z-index:300;">';
		RSCalFrameWork += '<p  style="border:0; width:auto; text-decoration:underline; cursor:pointer; font-size:.8em; text-align:right; margin:.08em; background-color:transparent;" onclick="document.getElementById(\'legend\').style.display = \'none\'">Close X</p>';
		RSCalFrameWork += '<div style="float:left; margin:.1em;">';
		RSCalFrameWork += '<div><div style="float:left; margin:.1em;" class="legend"><div>&nbsp;</div></div><p style="border:0; width:auto; background-color:transparent; float:left; margin:.3em .3em; font-size:.75em;">Available</p></div>'; 
		RSCalFrameWork += '<div style="clear:both; margin:.1em; float:left;" class="legend"><div class="selected">&nbsp;</div></div><p style="border:0; width:auto; background-color:transparent; float:left; margin:.3em .3em; font-size:.75em;">Selected</p>'; 
		RSCalFrameWork += '</div><div style="float:left; margin:.1em; border:0; width:auto;">';
		RSCalFrameWork += '<div><div style="float:left; margin:.1em;" class="legend"><div class="booked">&nbsp;</div></div><p style="border:0; width:auto; background-color:transparent; float:left; margin:.3em .3em; font-size:.75em;">Unavailable</p></div>';
		RSCalFrameWork += '<div style="clear:both; margin:.1em; float:left" class="legend"><div class="booked2">&nbsp;</div></div><p style="border:0; width:auto; background-color:transparent; float:left; margin:.3em .3em; font-size:.75em;">Selected Unavailable</p>';
		RSCalFrameWork += '</div></div></td></tr></table>';
		if(RSCalObj['RSCal' + num].Logo == 0 || RSCalObj['RSCal' + num].Logo != 0){RSCalFrameWork += '<div style="float:right; width:9em"></div>';}
		else{RSCalFrameWork += '<div style="float:right;"><a href="http://www.rezstream.com/online_reservations.htm" id="RSCalPowered"><img id="RSCalLogo" style="height:2em;" src="http://calendars.rezstream.com/pwd-rezstream2.gif"></a></div>';}
		if(RSCalObj['RSCal' + num].RSCalLength == 2){
			RSCalFrameWork += '<div style="clear:both; margin-top:.2em; height:1.6em; text-align:center;"><p>';
		}
		else{
			RSCalFrameWork += '<div style="text-align:center; width:10em; margin:.02em, auto;">';
		}
		RSCalFrameWork += '<a title="Back One Month" onmouseover="RSCalSetNavTip(\'Back One Month\');" onmouseout="RSCalSetNavTip(\'Change Visible Months\');" href="Javascript:RSCalObj[\'RSCal' + num + '\'].RSCalDisplayMonth = RSCalObj[\'RSCal' + num + '\'].RSCalDisplayMonth - 1;RSCalDrawCalendars(RSCalObj[\'RSCal' + num + '\'].RSCalDisplayYear, RSCalObj[\'RSCal' + num + '\'].RSCalDisplayMonth, ' + num + ')"><img style="height:1.1932em; vertical-align:middle;" src="http://calendars.rezfire.net/left-arrow.gif" /></a>'
		RSCalFrameWork += '&nbsp;&nbsp;<a title="Reset to the Current Month" onmouseover="RSCalSetNavTip(\'Reset to the Current Month\');" onmouseout="RSCalSetNavTip(\'Change Visible Months\');" href="Javascript:RSCalObj[\'RSCal' + num + '\'].RSCalDisplayMonth = RSCalObj.RSCalTodaysMonth; RSCalDrawCalendars(RSCalObj.RSCalTodaysYear, RSCalObj.RSCalTodaysMonth, ' + num + ')" id="navMonth">Current Month</a>';
		RSCalFrameWork += '&nbsp;&nbsp;<a title="Forward One Month" onmouseover="RSCalSetNavTip(\'Forward One Month\');" onmouseout="RSCalSetNavTip(\'Change Visible Months\');" href="Javascript:RSCalObj[\'RSCal' + num + '\'].RSCalDisplayMonth = RSCalObj[\'RSCal' + num + '\'].RSCalDisplayMonth + 1; RSCalDrawCalendars(RSCalObj[\'RSCal' + num + '\'].RSCalDisplayYear, RSCalObj[\'RSCal' + num + '\'].RSCalDisplayMonth, ' + num + ')"><img style="height:1.1932em; vertical-align:middle;" src="http://calendars.rezfire.net/rght-arrow.gif" /></a><br/>';
		RSCalFrameWork += '<span id="RSCalNavTip" style="height:1em; font-size:.75em; text-align:center; color:#444">Change Visible Months</span></div>';
	}
	else if(RSCalObj['RSCal' + num].RSCalCnt <= 0){
		if(RSCalObj['RSCal' + num].Logo == 1){RSCalFrameWork += '<div style="text-align:center;"><p><a href="http://www.rezstream.com/online_reservations.htm" id="RSCalPowered"><img id="RSCalLogo" style="height:2.4em;" src="http://calendars.rezstream.com/pwd-rezstream2.gif"></a></p></div>';}
		else{RSCalFrameWork += '<div style="float:right; tex-align:center;"></div>';}
	}
	document.getElementById("RSCal" + num).innerHTML = RSCalFrameWork;
	if(RSCalObj['RSCal' + num].RSCalBookable === false){
		document.getElementById("choices" + num).style.display = "none";
		if(RSCalObj['RSCal' + num].RSCalProperties.Bookable == "False" || RSCalObj['RSCal' + num].RSCalProperties.Active == "False"){
			document.getElementById("RSCal" + num).innerHTML = "Online Reservations are not Currentlay Available";
		}

		};
	RSCalSetDates(num);
}

//Build the Calendars
function RSCalBuilder(date, n, num){
	var RSCalWeek = 0;
	RSCalObj['RSCal' + num].RSCalHighlightID = 0;

	//If no parameter is passed use the current date.
	if(date === null){date = new Date();}

	//Break the date down.
	var RSCalDay = date.getDate();
	var RSCalMonth = date.getMonth();
	var RSCalYear = date.getFullYear();

	//Set names for the months.
	var RSCalMonths = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
	var RSCalWeekDays = new Array('Sunday','Monday', 'Tuesday', 'Wednsday', 'Thursday', 'Friday', 'Saturday')
	var RSCalThisMonth = new Date(RSCalYear, RSCalMonth, 1);
	var RSCalNextMonth = new Date(RSCalYear, RSCalMonth + 1, 1);

	//Find out when this month starts and ends.
	var RSCalFirstWeekDay = RSCalThisMonth.getDay();
	var RSCalDaysInThisMonth = Math.round((RSCalNextMonth.getTime() - RSCalThisMonth.getTime()) / (1000 * 60 * 60 * 24));
	
	//Start the Calendar Table
	var RSCalBuilderHTML = '<table cellpadding="0" cellspacing="0" border="0" class="cal">';
	
	//Add Month and Year
	RSCalBuilderHTML += '<tr><td class="month" colspan="7">' + RSCalMonths[RSCalMonth] + ' ' + RSCalYear + '</td></tr>';

	//Add the Days of the Week
	RSCalBuilderHTML += '<tr class="week"><td>Sun</td><td>Mon</td><td>Tue</td><td>Wed</td><td>Thu</td><td>Fri</td><td>Sat</td></tr>';
	
	//Start the first row
	RSCalBuilderHTML += '<tr>';
	//Fill the first week of the month with the appropriate number of blanks.
	for(var RSCalWeekday = 0; RSCalWeekday < RSCalFirstWeekDay; RSCalWeekday++){
		RSCalBuilderHTML += '<td></td>';
	}

	//Start Building the Calendar		
	RSCalWeekday = RSCalFirstWeekDay;
	for(var RSCalDayCounter = 1; RSCalDayCounter <= RSCalDaysInThisMonth; RSCalDayCounter++){
		RSCalWeekday %= 7;

		//Start a new week.
		if(RSCalWeekday === 0){
			RSCalBuilderHTML += '</tr><tr>';
			RSCalWeek++;
		}

		//Set some variables to test individual RSCalDays
		var RSCalTheDay = new Date(RSCalYear, RSCalMonth, RSCalDayCounter);
		var RSCalDayOut = Math.round((RSCalTheDay.getTime() - RSCalObj.RSCalTodaysDate.getTime()) / (1000 * 60 * 60 * 24)) + 1;
		RSCalObj['RSCal' + num].RSCalArrival = document.getElementById('arrivalDate' + num).innerHTML;
		RSCalObj['RSCal' + num].RSCalDeparture = document.getElementById('departureDate' + num).innerHTML;
		var RSCalDayVal = "'" + (RSCalMonth + 1) + '/' + RSCalDayCounter + '/' + RSCalYear + "'";
		var RSCalHTMLDateID = new String(RSCalYear);
			if((RSCalMonth + 1) < 10){RSCalHTMLDateID += '0' + (RSCalMonth + 1);}
			else{RSCalHTMLDateID += (RSCalMonth + 1);}
			if(RSCalDayCounter < 10){RSCalHTMLDateID += '0' + RSCalDayCounter;}
			else{RSCalHTMLDateID += RSCalDayCounter;}
			RSCalHTMLDateID += num;

	//Minimum Stay
	if(RSCalObj['RSCal' + num].SingleUnit === true && RSCalObj['RSCal' + num].RSCalBookable === true){
		for(i=0; i<RSCalObj['RSCal' + num].RSCalMinStay.D.length; i++){
			if(new Date(RSCalObj['RSCal' + num].RSCalMinStay.D[i]) <= RSCalTheDay && (new Date(RSCalObj['RSCal' + num].RSCalMinStay.D[i+1]) > RSCalTheDay || typeof(RSCalObj['RSCal' + num].RSCalMinStay.D[i+1]) == 'undefined')){
				if(RSCalWeekday == 0 && RSCalObj['RSCal' + num].RSCalMinStay.D1[i] == -1){
					RSCalObj['RSCal' + num].RSCalMinStayDay[RSCalHTMLDateID] = RSCalObj['RSCal' + num].RSCalMinStay.MinStayWeekend[i];
				}
				else if(RSCalWeekday == 0 && RSCalObj['RSCal' + num].RSCalMinStay.D1[i] === 0){
					RSCalObj['RSCal' + num].RSCalMinStayDay[RSCalHTMLDateID] = RSCalObj['RSCal' + num].RSCalMinStay.MinStay[i];
				}
				if(RSCalWeekday == 1 && RSCalObj['RSCal' + num].RSCalMinStay.D2[i] == -1){
					RSCalObj['RSCal' + num].RSCalMinStayDay[RSCalHTMLDateID] = RSCalObj['RSCal' + num].RSCalMinStay.MinStayWeekend[i];
				}
				else if(RSCalWeekday == 1 && RSCalObj['RSCal' + num].RSCalMinStay.D2[i] === 0){
					RSCalObj['RSCal' + num].RSCalMinStayDay[RSCalHTMLDateID] = RSCalObj['RSCal' + num].RSCalMinStay.MinStay[i];
				}
				if(RSCalWeekday == 2 && RSCalObj['RSCal' + num].RSCalMinStay.D3[i] == -1){
					RSCalObj['RSCal' + num].RSCalMinStayDay[RSCalHTMLDateID] = RSCalObj['RSCal' + num].RSCalMinStay.MinStayWeekend[i];
				}
				else if(RSCalWeekday == 2 && RSCalObj['RSCal' + num].RSCalMinStay.D3[i] === 0){
					RSCalObj['RSCal' + num].RSCalMinStayDay[RSCalHTMLDateID] = RSCalObj['RSCal' + num].RSCalMinStay.MinStay[i];
				}
				if(RSCalWeekday == 3 && RSCalObj['RSCal' + num].RSCalMinStay.D4[i] == -1){
					RSCalObj['RSCal' + num].RSCalMinStayDay[RSCalHTMLDateID] = RSCalObj['RSCal' + num].RSCalMinStay.MinStayWeekend[i];
				}
				else if(RSCalWeekday == 3 && RSCalObj['RSCal' + num].RSCalMinStay.D4[i] === 0){
					RSCalObj['RSCal' + num].RSCalMinStayDay[RSCalHTMLDateID] = RSCalObj['RSCal' + num].RSCalMinStay.MinStay[i];
				}
				if(RSCalWeekday == 4 && RSCalObj['RSCal' + num].RSCalMinStay.D5[i] == -1){
					RSCalObj['RSCal' + num].RSCalMinStayDay[RSCalHTMLDateID] = RSCalObj['RSCal' + num].RSCalMinStay.MinStayWeekend[i];
				}
				else if(RSCalWeekday == 4 && RSCalObj['RSCal' + num].RSCalMinStay.D5[i] === 0){
					RSCalObj['RSCal' + num].RSCalMinStayDay[RSCalHTMLDateID] = RSCalObj['RSCal' + num].RSCalMinStay.MinStay[i];
				}
				if(RSCalWeekday == 5 && RSCalObj['RSCal' + num].RSCalMinStay.D6[i] == -1){
					RSCalObj['RSCal' + num].RSCalMinStayDay[RSCalHTMLDateID] = RSCalObj['RSCal' + num].RSCalMinStay.MinStayWeekend[i];
				}
				else if(RSCalWeekday == 5 && RSCalObj['RSCal' + num].RSCalMinStay.D6[i] === 0){
					RSCalObj['RSCal' + num].RSCalMinStayDay[RSCalHTMLDateID] = RSCalObj['RSCal' + num].RSCalMinStay.MinStay[i];
				}
				if(RSCalWeekday == 6 && RSCalObj['RSCal' + num].RSCalMinStay.D7[i] == -1){
					RSCalObj['RSCal' + num].RSCalMinStayDay[RSCalHTMLDateID] = RSCalObj['RSCal' + num].RSCalMinStay.MinStayWeekend[i];
				}
				else if(RSCalWeekday == 6 && RSCalObj['RSCal' + num].RSCalMinStay.D7[i] === 0){
					RSCalObj['RSCal' + num].RSCalMinStayDay[RSCalHTMLDateID] = RSCalObj['RSCal' + num].RSCalMinStay.MinStay[i];
				}
			}
		}
	}
		//Start the cell.
		RSCalBuilderHTML +='<td>';

		//Non-Bookable
		if(RSCalHTMLDateID < RSCalObj['RSCal' + num].RSCalMinOutID || RSCalHTMLDateID > RSCalObj['RSCal' + num].RSCalMaxOutID){
			RSCalBuilderHTML += '<p id="' + RSCalHTMLDateID + '" class="disabled">';

			if(RSCalObj.RSCalTodaysDay == RSCalDayCounter && RSCalObj.RSCalTodaysMonth == RSCalMonth && RSCalObj.RSCalTodaysYear == RSCalYear){
				RSCalBuilderHTML += '<b>' + RSCalDayCounter + '</b>';
			}
			else{
				RSCalBuilderHTML += RSCalDayCounter;
			}
		}

		//Bookable
		else{
			var alreadySet = 0;
			var onceADay = 1;
			for(j=0; j<=RSCalObj['RSCal' + num].RSCalDateID.length; j++){
				if(RSCalObj['RSCal' + num].RSCalDateID[j] == RSCalHTMLDateID && RSCalObj['RSCal' + num].RSCalAvailable[j] <= 0){
				RSCalBuilderHTML += '<p id="' + RSCalHTMLDateID;

					if(new Date(RSCalYear, RSCalMonth, RSCalDayCounter) >= new Date(RSCalObj['RSCal' + num].RSCalArrival.innerHTML) && new Date(RSCalYear, RSCalMonth, RSCalDayCounter) < new Date(RSCalObj['RSCal' + num].RSCalDeparture.innerHTML) && RSCalObj['RSCal' + num].RSCalBookable === true){
						RSCalObj['RSCal' + num].RSCalRemoveHighlight[RSCalHighlightID] = RSCalHTMLDateID;
						RSCalBuilderHTML += '" class="booked2">';
						RSCalObj['RSCal' + num].RSCalSelectedCount[RSCalHighlightID] = j;
						RSCalHighlightID++;
					}
					else{
						RSCalBuilderHTML += '" class="booked">';
					}
					if(RSCalObj.RSCalTodaysDay == RSCalDayCounter && RSCalObj.RSCalTodaysMonth == RSCalMonth && RSCalObj.RSCalTodaysYear == RSCalYear){
						RSCalBuilderHTML += '<b>' + RSCalDayCounter + '</b>';
					}
		
					else{
						RSCalBuilderHTML += RSCalDayCounter;
					}
					RSCalBuilderHTML += '</p></td>';
					alreadySet = 1;
				}	
				else if((RSCalObj['RSCal' + num].RSCalDateID[j] == RSCalHTMLDateID && RSCalObj['RSCal' + num].RSCalAvailable[j] > 0) || (RSCalObj['RSCal' + num].RSCalDateID[j] != RSCalHTMLDateID && alreadySet == 0 && j == (RSCalObj['RSCal' + num].RSCalDateID.length - 1) && onceADay == 1)){
						if((RSCalMonth+1) < 10){RSCalMonthString = new String("0" + (RSCalMonth + 1));}
						else{RSCalMonthString = new String(RSCalMonth + 1);}
						if(RSCalDayCounter < 10){RSCalDayCounterString = new String("0" + RSCalDayCounter);}
						else{RSCalDayCounterString = RSCalDayCounter;}					
					RSCalDayVal = new String("'" + RSCalMonthString + '/' + RSCalDayCounterString + '/' + new String(RSCalYear + "'"));

					if(new Date(RSCalYear, RSCalMonth, RSCalDayCounter) >= new Date(RSCalObj['RSCal' + num].RSCalArrival.innerHTML) && new Date(RSCalYear, RSCalMonth, RSCalDayCounter) < new Date(RSCalObj['RSCal' + num].RSCalDeparture.innerHTML) && RSCalObj['RSCal' + num].RSCalBookable === true && alreadySet == 0){
						RSCalBuilderHTML += '<div class="toolTip" id="' + RSCalHTMLDateID + 'tip"><p>' + RSCalWeekDays[RSCalTheDay.getDay()] + ", " + RSCalMonths[RSCalTheDay.getMonth()] + " " + RSCalTheDay.getDate() + ", " + RSCalTheDay.getFullYear() + '</p>';
						if(RSCalObj['RSCal' + num].SingleUnit == true){
							if(new Number(RSCalObj['RSCal' + num].RSCalMinStayDay[RSCalHTMLDateID]) > 1){
								RSCalBuilderHTML += '<p>Minimum Stay: ' + RSCalObj['RSCal' + num].RSCalMinStayDay[RSCalHTMLDateID] + '</p>'
							}
							else{
								RSCalBuilderHTML += '<p>No Minimum Stay</p>'
							}
						}
						else{
							if(RSCalObj['RSCal' + num].RSCalDateID[j] == RSCalHTMLDateID){var avail = RSCalObj['RSCal' + num].RSCalAvailable[j];}else{var avail = RSCalObj['RSCal' + num].RSCalAvailableUnits;}
							RSCalBuilderHTML += '<p>Units Available: ' + avail + '</p>'
						}
						RSCalBuilderHTML += '</div>';  
						RSCalBuilderHTML += '<p id="' + RSCalHTMLDateID + '" class="selected"><a href="Javascript:void(0);" onclick="document.getElementById(\'arrivalDate' + num + '\').innerHTML = ' + RSCalDayVal + '; RSCalSetDates(' + num + ');" onmouseover="RSCalShowToolTip(\'' + RSCalHTMLDateID + 'tip\',1);" onmouseout="RSCalShowToolTip(\'' + RSCalHTMLDateID + 'tip\',0);">';
						RSCalObj['RSCal' + num].RSCalRemoveHighlight[RSCalHighlightID] = RSCalHTMLDateID;
						RSCalObj['RSCal' + num].RSCalSelectedCount[RSCalHighlightID] = j;
						RSCalHighlightID++;
					}

					else{
						RSCalBuilderHTML += '<div class="toolTip" id="' + RSCalHTMLDateID + 'tip"><p>' + RSCalWeekDays[RSCalTheDay.getDay()] + ", " + RSCalMonths[RSCalTheDay.getMonth()] + " " + RSCalTheDay.getDate() + ", " + RSCalTheDay.getFullYear() + '</p>';
						if(RSCalObj['RSCal' + num].SingleUnit == true && RSCalObj['RSCal' + num].RSCalBookable === true){
							if(new Number(RSCalObj['RSCal' + num].RSCalMinStayDay[RSCalHTMLDateID]) > 1){
								RSCalBuilderHTML += '<p>Minimum Stay: ' + RSCalObj['RSCal' + num].RSCalMinStayDay[RSCalHTMLDateID] + '</p>'
							}
							else{
								RSCalBuilderHTML += '<p>No Minimum Stay</p>'
							}
						}
						else{
							if(RSCalObj['RSCal' + num].RSCalDateID[j] == RSCalHTMLDateID){var avail = RSCalObj['RSCal' + num].RSCalAvailable[j];}else{var avail = RSCalObj['RSCal' + num].RSCalAvailableUnits;}
							if (RSCalObj['RSCal' + num].RSCalBookable === true){
								RSCalBuilderHTML += '<p>Units Available: ' + avail + '</p>';
							}
							else if(RSCalObj['RSCal' + num].RSCalBookable === false){
								RSCalBuilderHTML += '<p>Unit Available</p>';
							}
						}
						RSCalBuilderHTML += '</div>';  
						RSCalBuilderHTML += '<p id="' + RSCalHTMLDateID + '"><a href="Javascript:void(0);" onclick="document.getElementById(\'arrivalDate' + num + '\').innerHTML = ' + RSCalDayVal + '; RSCalSetDates(' + num + ');" onmouseover="RSCalShowToolTip(\'' + RSCalHTMLDateID + 'tip\',1);" onmouseout="RSCalShowToolTip(\'' + RSCalHTMLDateID + 'tip\',0);">';
					}

					if(RSCalObj.RSCalTodaysDay == RSCalDayCounter && RSCalObj.RSCalTodaysMonth == RSCalMonth && RSCalObj.RSCalTodaysYear == RSCalYear){
						RSCalBuilderHTML += '<b>' + RSCalDayCounter + '</b>';
					}

					else{
						RSCalBuilderHTML += RSCalDayCounter;
					}
					RSCalBuilderHTML += '</a>';
					RSCalBuilderHTML += '</p></td>';
					onceADay = 0;
				}
			}
		}
		RSCalWeekday++;
	}
	RSCalBuilderHTML += '</tr>';

	//Add an extra row for the months that only have 5.
	if(RSCalWeek <= 5 && RSCalWeekday > 1 && RSCalFirstWeekDay != 6){RSCalBuilderHTML += '<tr><td></td></tr>';}

	//Add another row for leap year Febs that start on a Sunday... (Like Feb 2009).
	if(RSCalWeek == 3 && RSCalWeekday == 7 && RSCalFirstWeekDay === 0){RSCalBuilderHTML += '<tr><td></td></tr>';}
	RSCalBuilderHTML += '</table>';

	//Display the Calendar.
	document.getElementById(num + 'cals' + n).innerHTML = RSCalBuilderHTML;
}

function RSCalShowToolTip(tip,m){
	if(m==1){
		document.getElementById(tip).className = 'toolTipShow';
	}
	else{
		document.getElementById(tip).className = 'toolTip';
	}
}

//Adjust the Dates
function RSCalSetDates(num){
	RSCalObj['RSCal' + num].RSCalArrival = document.getElementById('arrivalDate' + num);
	RSCalObj['RSCal' + num].RSCalDeparture = document.getElementById('departureDate' + num);

	if(!RSCalObj['RSCal' + num].RSCalArrival.innerHTML){
		RSCalObj['RSCal' + num].RSCalArrivalDate = RSCalObj['RSCal' + num].RSCalMinOutStay;
		RSCalObj['RSCal' + num].RSCalArrival.innerHTML = (RSCalObj['RSCal' + num].RSCalArrivalDate.getMonth() + 1)  + "/" + RSCalObj['RSCal' + num].RSCalArrivalDate.getDate() + "/" + RSCalObj['RSCal' + num].RSCalArrivalDate.getFullYear();
		RSCalObj['RSCal' + num].RSCalDepartureDate = new Date(RSCalObj['RSCal' + num].RSCalArrivalDate.getFullYear(), RSCalObj['RSCal' + num].RSCalArrivalDate.getMonth(), (new Number(RSCalObj['RSCal' + num].RSCalArrivalDate.getDate()) + new Number(RSCalObj['RSCal' + num].RSCalDefaultStay)));
		RSCalObj['RSCal' + num].RSCalDeparture.innerHTML = (RSCalObj['RSCal' + num].RSCalDepartureDate.getMonth() + 1)  + "/" + RSCalObj['RSCal' + num].RSCalDepartureDate.getDate() + "/" + RSCalObj['RSCal' + num].RSCalDepartureDate.getFullYear();
		RSCalObj['RSCal' + num].RSCalDefaultStay = Math.round((RSCalObj['RSCal' + num].RSCalDepartureDate - RSCalObj['RSCal' + num].RSCalArrivalDate) / (1000 * 60 * 60 * 24));
	}

	if(RSCalObj['RSCal' + num].RSCalArrival.innerHTML != RSCalObj['RSCal' + num].RSCalOldArrivalDate || RSCalObj['RSCal' + num].RSCalDefaultStay != RSCalObj['RSCal' + num].RSCalOldDefaultStay){ 
		RSCalObj['RSCal' + num].RSCalArrivalDate = new Date(RSCalObj['RSCal' + num].RSCalArrival.innerHTML);
		RSCalObj['RSCal' + num].RSCalDepartureDate = new Date(RSCalObj['RSCal' + num].RSCalArrivalDate.getFullYear(), RSCalObj['RSCal' + num].RSCalArrivalDate.getMonth(), (RSCalObj['RSCal' + num].RSCalArrivalDate.getDate() + new Number(RSCalObj['RSCal' + num].RSCalDefaultStay)));
		RSCalObj['RSCal' + num].RSCalDeparture.innerHTML = (RSCalObj['RSCal' + num].RSCalDepartureDate.getMonth() + 1) + "/" + RSCalObj['RSCal' + num].RSCalDepartureDate.getDate() + "/" + RSCalObj['RSCal' + num].RSCalDepartureDate.getFullYear();
	}
	if(RSCalObj['RSCal' + num].RSCalDeparture.innerHTML != RSCalObj['RSCal' + num].RSCalOldDepartureDate){
		RSCalObj['RSCal' + num].RSCalArrivalDate = new Date(RSCalObj['RSCal' + num].RSCalArrival.innerHTML);
		RSCalObj['RSCal' + num].RSCalDepartureDate = new Date(RSCalObj['RSCal' + num].RSCalDeparture.innerHTML);
		RSCalObj['RSCal' + num].RSCalDeparture.innerHTML = (RSCalObj['RSCal' + num].RSCalDepartureDate.getMonth() + 1) + "/" + RSCalObj['RSCal' + num].RSCalDepartureDate.getDate() + "/" + RSCalObj['RSCal' + num].RSCalDepartureDate.getFullYear();
		RSCalObj['RSCal' + num].RSCalDefaultStay = Math.round((RSCalObj['RSCal' + num].RSCalDepartureDate - RSCalObj['RSCal' + num].RSCalArrivalDate) / (1000 * 60 * 60 * 24));
	}

	if(new Date(RSCalObj['RSCal' + num].RSCalArrival.innerHTML) < RSCalObj['RSCal' + num].RSCalMinOutStay){
		if(RSCalObj['RSCal' + num].RSCalFirstRun == false){
			alert('The arrival date you chose, ' + RSCalObj['RSCal' + num].RSCalArrival.innerHTML + ' is before the first night reservation are accepted.\nYour reservation dates have been adjusted, your start date has been moved to the first bookable day.\n\nPlease make a new selection.');
		}
		RSCalObj['RSCal' + num].RSCalArrivalDate = RSCalObj['RSCal' + num].RSCalMinOutStay;
		RSCalObj['RSCal' + num].RSCalArrival.innerHTML = (RSCalObj['RSCal' + num].RSCalArrivalDate.getMonth() + 1)  + "/" + RSCalObj['RSCal' + num].RSCalArrivalDate.getDate() + "/" + RSCalObj['RSCal' + num].RSCalArrivalDate.getFullYear();
		RSCalObj['RSCal' + num].RSCalDepartureDate = new Date(RSCalObj['RSCal' + num].RSCalArrivalDate.getFullYear(), RSCalObj['RSCal' + num].RSCalArrivalDate.getMonth(), (RSCalObj['RSCal' + num].RSCalArrivalDate.getDate() + new Number(RSCalObj['RSCal' + num].RSCalDefaultStay)));
		RSCalObj['RSCal' + num].RSCalDeparture.innerHTML = (RSCalObj['RSCal' + num].RSCalDepartureDate.getMonth() + 1) + "/" + RSCalObj['RSCal' + num].RSCalDepartureDate.getDate() + "/" + RSCalObj['RSCal' + num].RSCalDepartureDate.getFullYear();
	}

	if(new Date(RSCalObj['RSCal' + num].RSCalDeparture.innerHTML) > new Date(new Date(RSCalObj['RSCal' + num].RSCalMaxOutStay.getFullYear()), new Date(RSCalObj['RSCal' + num].RSCalMaxOutStay.getMonth()), new Date(RSCalObj['RSCal' + num].RSCalMaxOutStay.getDate() + 1))){
		if(RSCalObj['RSCal' + num].RSCalFirstRun == false){
			alert('The departure date you chose, ' + RSCalObj['RSCal' + num].RSCalDeparture.innerHTML + ' is after the last night reservation are accepted.\nYour reservation dates have been adjusted, your end date has been moved to the last bookable day.\n\nPlease make a new selection.');
		}
		RSCalObj['RSCal' + num].RSCalArrivalDate = new Date(new Date(RSCalObj['RSCal' + num].RSCalMaxOutStay).getFullYear(), new Date(RSCalObj['RSCal' + num].RSCalMaxOutStay).getMonth(), new Date(RSCalObj['RSCal' + num].RSCalMaxOutStay).getDate() - RSCalObj['RSCal' + num].RSCalDefaultStay + 1);
		RSCalObj['RSCal' + num].RSCalArrival.innerHTML = (RSCalObj['RSCal' + num].RSCalArrivalDate.getMonth() + 1)  + "/" + RSCalObj['RSCal' + num].RSCalArrivalDate.getDate() + "/" + RSCalObj['RSCal' + num].RSCalArrivalDate.getFullYear();
		RSCalObj['RSCal' + num].RSCalDepartureDate = new Date(RSCalObj['RSCal' + num].RSCalMaxOutStay.getFullYear(), RSCalObj['RSCal' + num].RSCalMaxOutStay.getMonth(), (RSCalObj['RSCal' + num].RSCalMaxOutStay.getDate() + 1));
		RSCalObj['RSCal' + num].RSCalDeparture.innerHTML = (RSCalObj['RSCal' + num].RSCalDepartureDate.getMonth() +1) + "/" + RSCalObj['RSCal' + num].RSCalDepartureDate.getDate() + "/" + RSCalObj['RSCal' + num].RSCalDepartureDate.getFullYear();
	}

	if(RSCalObj['RSCal' + num].RSCalDefaultStay > RSCalObj['RSCal' + num].RSCalProperties.MaxStay){
		if(RSCalObj['RSCal' + num].RSCalFirstRun == false){
			alert('You have selected ' + RSCalObj['RSCal' + num].RSCalDefaultStay + ' nights. The maximum number of nights for this unit is ' + RSCalObj['RSCal' + num].RSCalProperties.MaxStay + '.\nYour reservation dates have been adjusted, your reservation has been shortened to the maximum number of nights.\n\nPlease make a new selection.');
		}
		RSCalObj['RSCal' + num].RSCalDefaultStay = RSCalObj['RSCal' + num].RSCalProperties.MaxStay;
		RSCalObj['RSCal' + num].RSCalArrivalDate = new Date(RSCalObj['RSCal' + num].RSCalArrival.innerHTML);
		RSCalObj['RSCal' + num].RSCalDepartureDate = new Date(RSCalObj['RSCal' + num].RSCalArrivalDate.getFullYear(), RSCalObj['RSCal' + num].RSCalArrivalDate.getMonth(), (RSCalObj['RSCal' + num].RSCalArrivalDate.getDate() + new Number(RSCalObj['RSCal' + num].RSCalDefaultStay)));
		RSCalObj['RSCal' + num].RSCalDeparture.innerHTML = (RSCalObj['RSCal' + num].RSCalDepartureDate.getMonth() + 1) + "/" + RSCalObj['RSCal' + num].RSCalDepartureDate.getDate() + "/" + RSCalObj['RSCal' + num].RSCalDepartureDate.getFullYear();
	}
	if(RSCalObj['RSCal' + num].SingleUnit === true && RSCalObj['RSCal' + num].RSCalBookable === true){
		RSCalCheckMinStay(num);
	}
	RSCalDrawForm(num);
	RSCalObj['RSCal' + num].RSCalOldArrivalDate = RSCalObj['RSCal' + num].RSCalArrival.innerHTML;
	RSCalObj['RSCal' + num].RSCalOldDepartureDate = RSCalObj['RSCal' + num].RSCalDeparture.innerHTML;			
	RSCalObj['RSCal' + num].RSCalOldDefaultStay = RSCalObj['RSCal' + num].RSCalDefaultStay;
	RSCalObj['RSCal' + num].RSCalArrivalDay = new Date(RSCalObj['RSCal' + num].RSCalOldArrivalDate).getDate();
	RSCalObj['RSCal' + num].RSCalArrivalMonth = new Date(RSCalObj['RSCal' + num].RSCalOldArrivalDate).getMonth();
	RSCalObj['RSCal' + num].RSCalArrivalYear = new Date(RSCalObj['RSCal' + num].RSCalOldArrivalDate).getFullYear();
	RSCalDrawCalendars(RSCalObj['RSCal' + num].RSCalArrivalYear, RSCalObj['RSCal' + num].RSCalArrivalMonth, num);
	RSCalBookingError("no", num);
	RSCalObj['RSCal' + num].RSCalFirstRun = false;
}


function RSCalDrawForm(num){
	for(i = 0; i<RSCalObj['RSCal' + num].RSCalProperties.MaxStay; i++){
		if(i == 0){RSCalObj['RSCal' + num].RSCalStayOptions = '<select name="leinghtOfStay' + num + '" id="leinghtOfStay' + num + '" onchange="RSCalObj.RSCal' + num + '.RSCalDefaultStay = document.getElementById(\'leinghtOfStay' + num + '\').value; RSCalSetDates(' + num + ');">';}
		if(i == RSCalObj['RSCal' + num].RSCalDefaultStay - 1){RSCalObj['RSCal' + num].RSCalStayOptions +=' <option selected="selected" value="' + (i+1) + '">' + (i+1) + '</option>';}
		else{
			RSCalObj['RSCal' + num].RSCalStayOptions +='<option value="' + (i+1) + '">' + (i+1) + '</option>';
		}
	}
	for(i = 0; i<(RSCalObj['RSCal' + num].RSCalProperties.MaxAdults); i++){
		if(i == 0){RSCalObj['RSCal' + num].RSCalAdults = '<select onchange="RSCalCheckCapacity(' + num + ', 0)" name="adults' + num + '" id="adults' + num + '">';}
		if(i == RSCalObj['RSCal' + num].RSCalProperties.NumberAdults - 1){RSCalObj['RSCal' + num].RSCalAdults += '<option selected="selected" value="' + (i+1) + '">' + (i+1) + '</option>';}
		else{
			RSCalObj['RSCal' + num].RSCalAdults +='<option value="' + (i+1) + '">' + (i+1) + '</option>';
		}
	}
	if(RSCalObj['RSCal' + num].RSCalProperties.MaxChildren != 0){
		RSCalObj['RSCal' + num].RSCalKids1 = '<strong>Children:&nbsp; </strong>';
		for(i = 0; i<=(RSCalObj['RSCal' + num].RSCalProperties.MaxChildren); i++){
			if(i == 0){RSCalObj['RSCal' + num].RSCalKids2 = '<select onchange="RSCalCheckCapacity(' + num + ', 0)" name="children' + num + '" id="children' + num + '">';}
			if(i == RSCalObj['RSCal' + num].RSCalProperties.NumberChildren){RSCalObj['RSCal' + num].RSCalKids2 +='<option selected="selected" value="' + i + '">' + i + '</option>';}
			else{
				RSCalObj['RSCal' + num].RSCalKids2 +='<option value="' + i + '">' + i + '</option>';
			}
		}
		RSCalObj['RSCal' + num].RSCalKids2 += '</select>';
	}
	else{RSCalObj['RSCal' + num].RSCalKids1 = ""; RSCalObj['RSCal' + num].RSCalKids2 = "";}
	document.getElementById('lStay' + num).innerHTML = RSCalObj['RSCal' + num].RSCalStayOptions + '</select>';
	document.getElementById('adult' + num).innerHTML = RSCalObj['RSCal' + num].RSCalAdults + '</select>';
	document.getElementById('kids1' + num).innerHTML = RSCalObj['RSCal' + num].RSCalKids1;
	document.getElementById('kids2' + num).innerHTML = RSCalObj['RSCal' + num].RSCalKids2;

}

function RSCalCheckCapacity(num, silent){
	
	if (RSCalObj['RSCal' + num].RSCalProperties.MaxChildren > 0){
		occReq = new Number(document.getElementById('adults' + num).value) + new Number(document.getElementById('children' + num).value);
	}
	else{
		occReq = new Number(document.getElementById('adults' + num).value);
	}
	
	if(new Number(occReq) > RSCalObj['RSCal' + num].RSCalProperties.Capacity){
		RSCalObj['RSCal' + num].RSCalCapErrorMsg = "The number of people selected exceeds the maximum capacity for this unit type.\n";
		RSCalObj['RSCal' + num].RSCalCapErrorMsg += "The maximum Capacity for this unit is " + RSCalObj['RSCal' + num].RSCalProperties.Capacity + ".\n\n";
		RSCalObj['RSCal' + num].RSCalCapError = 1;
		if(silent == 0){
			alert(RSCalObj['RSCal' + num].RSCalCapErrorMsg);
		}
	}
	else{
		RSCalObj['RSCal' + num].RSCalCapErrorMsg =+ "";
		RSCalObj['RSCal' + num].RSCalCapError = 0;
	}
}

//Set the highlights
function RSCalHighlightSelected(num){
	for(i=0; i<RSCalObj['RSCal' + num].RSCalRemoveHighlight.length; i++){
		var RSCalHighlightDate = new Date(RSCalObj['RSCal' + num].RSCalArrivalYear, RSCalObj['RSCal' + num].RSCalArrivalMonth, RSCalObj['RSCal' + num].RSCalArrivalDay + i);
		if(RSCalObj['RSCal' + num].RSCalDateID[j] == RSCalObj['RSCal' + num].RSCalRemoveHighlight[i] && RSCalObj['RSCal' + num].RSCalAvailable[j] <= 0){
				if(document.getElementById(RSCalObj['RSCal' + num].RSCalRemoveHighlight[i])){
					document.getElementById(RSCalObj['RSCal' + num].RSCalRemoveHighlight[i]).className = 'booked';
				}
				RSCalObj['RSCal' + num].RSCalBookedErrorCount++;
				if(RSCalObj['RSCal' + num].RSCalBookedErrorCount == 1){
					RSCalObj['RSCal' + num].RSCalBookedErrorMsg += 'You have selected nights that do not have any availability.\n';
					RSCalObj['RSCal' + num].RSCalBookedErrorMsg += 'The following nights are already booked:\n\n';
				}
			RSCalObj['RSCal' + num].RSCalBookedErrorMsg += RSCalHighlightDate.getMonth() + '/' + RSCalHighlightDate.getDate() + '/' + RSCalHighlightDate.getFullYear() + '\n';
			RSCalObj['RSCal' + num].RSCalDisplayError = 0;
			RSCalObj['RSCal' + num].RSCalSelectedCount[RSCalHighlightID] = RSCalHighlighted;
			alreadySet = 1;
			RSCalHighlightID++;
			}	
			else if((RSCalObj['RSCal' + num].RSCalDateID[j] == RSCalHighlighted && RSCalObj['RSCal' + num].RSCalAvailable[j] > 0) || (RSCalObj['RSCal' + num].RSCalDateID[j] != RSCalHighlighted && alreadySet == 0 && j == (RSCalObj['RSCal' + num].RSCalDateID.length - 1))){
				if(document.getElementById(RSCalHighlighted)){
					document.getElementById(RSCalHighlighted).className = 'selected';
				}
			RSCalObj['RSCal' + num].RSCalSelectedCount[RSCalHighlightID] = RSCalHighlighted;
			RSCalHighlightID++;
			}
		RSCalObj['RSCal' + num].RSCalRemoveHighlight[i] = RSCalHighlighted;
		}
	for(i=0; i<RSCalObj['RSCal' + num].RSCalRemoveHighlight.length; i++){
		if(document.getElementById(RSCalObj['RSCal' + num].RSCalRemoveHighlight[i]) && document.getElementById(RSCalObj['RSCal' + num].RSCalRemoveHighlight[i]).className == ('booked2' || 'booked')){
			document.getElementById(RSCalObj['RSCal' + num].RSCalRemoveHighlight[i]).className = 'booked';
		}
		else if(document.getElementById(RSCalObj['RSCal' + num].RSCalRemoveHighlight[i]) && document.getElementById(RSCalObj['RSCal' + num].RSCalRemoveHighlight[i]).className == 'disabled'){
			document.getElementById(RSCalObj['RSCal' + num].RSCalRemoveHighlight[i]).className = 'disabled';
		}
		else if(document.getElementById(RSCalObj['RSCal' + num].RSCalRemoveHighlight[i]) && document.getElementById(RSCalObj['RSCal' + num].RSCalRemoveHighlight[i]).className != ('booked2' || 'booked' || 'disabled')){
			document.getElementById(RSCalObj['RSCal' + num].RSCalRemoveHighlight[i]).className = '';
		}
	}
	RSCalObj['RSCal' + num].RSCalBookedErrorMsg = "";
	RSCalObj['RSCal' + num].RSCalBookedErrorCount = 0;
	RSCalHighlightID = 0;
	RSCalObj['RSCal' + num].RSCalSelectedCount = new Array();
	RSCalObj['RSCal' + num].RSCalRemoveHighlight = new Array();
	for(i=0; i<RSCalObj['RSCal' + num].RSCalDefaultStay; i++){
		var RSCalHighlightDate = new Date(RSCalObj['RSCal' + num].RSCalArrivalYear, RSCalObj['RSCal' + num].RSCalArrivalMonth, RSCalObj['RSCal' + num].RSCalArrivalDay + i);
		var RSCalHighlightDay = RSCalHighlightDate.getDate();
		var RSCalHighlightMonth = RSCalHighlightDate.getMonth();
		var RSCalHighlightYear = RSCalHighlightDate.getFullYear();
		var RSCalHighlighted = new String(RSCalHighlightYear);
			if((RSCalHighlightMonth + 1) < 10){RSCalHighlighted += '0' + (RSCalHighlightMonth + 1);}
			else{RSCalHighlighted += (RSCalHighlightMonth + 1);}
			if(RSCalHighlightDay < 10){RSCalHighlighted += '0' + RSCalHighlightDay;}
			else{RSCalHighlighted += RSCalHighlightDay;}
			RSCalHighlighted += num;
		var alreadySet = 0;
		for(j=0; j<RSCalObj['RSCal' + num].RSCalDateID.length; j++){
			if(RSCalObj['RSCal' + num].RSCalDateID[j] == RSCalHighlighted && RSCalObj['RSCal' + num].RSCalAvailable[j] <= 0){
				if(document.getElementById(RSCalHighlighted)){
					document.getElementById(RSCalHighlighted).className = 'booked2';
				}
				RSCalObj['RSCal' + num].RSCalBookedErrorCount++;
				if(RSCalObj['RSCal' + num].RSCalBookedErrorCount == 1){
					RSCalObj['RSCal' + num].RSCalBookedErrorMsg += 'You have selected nights that do not have any availability.\n';
					RSCalObj['RSCal' + num].RSCalBookedErrorMsg += 'The following nights are already booked:\n\n';
				}
			RSCalObj['RSCal' + num].RSCalBookedErrorMsg += (RSCalHighlightDate.getMonth() + 1) + '/' + RSCalHighlightDate.getDate() + '/' + RSCalHighlightDate.getFullYear() + '\n';
			RSCalObj['RSCal' + num].RSCalDisplayError = 0;
			RSCalObj['RSCal' + num].RSCalSelectedCount[RSCalHighlightID] = RSCalHighlighted;
			alreadySet = 1;
			RSCalHighlightID++;
			}	
			else if((RSCalObj['RSCal' + num].RSCalDateID[j] == RSCalHighlighted && RSCalObj['RSCal' + num].RSCalAvailable[j] > 0) || (RSCalObj['RSCal' + num].RSCalDateID[j] != RSCalHighlighted && alreadySet == 0 && j == (RSCalObj['RSCal' + num].RSCalDateID.length - 1))){
				if(document.getElementById(RSCalHighlighted)){
					document.getElementById(RSCalHighlighted).className = 'selected';
				}
			RSCalObj['RSCal' + num].RSCalSelectedCount[RSCalHighlightID] = RSCalHighlighted;
			RSCalHighlightID++;
			}
		RSCalObj['RSCal' + num].RSCalRemoveHighlight[i] = RSCalHighlighted;
		}
	}
}


//Display an error if nights selected are already booked
function RSCalBookingError(s, num){
	RSCalCheckCapacity(num, "1");
	if(RSCalObj['RSCal' + num].RSCalBookedErrorCount !== 0 && RSCalObj['RSCal' + num].RSCalFirstRun == false || RSCalObj['RSCal' + num].RSCalCapError > 0){
		if(RSCalObj['RSCal' + num].RSCalDisplayError == 0){
			if(RSCalObj['RSCal' + num].RSCalCapError > 0){
				RSCalObj['RSCal' + num].RSCalBookedErrorMsg += RSCalObj['RSCal' + num].RSCalCapErrorMsg;
			}
			RSCalObj['RSCal' + num].RSCalBookedErrorMsg += '\nPlease make a new selection.';
			RSCalObj['RSCal' + num].RSCalDisplayError++;
		}
		alert(RSCalObj['RSCal' + num].RSCalBookedErrorMsg);
		RSCalObj['RSCal' + num].RSCalFirstRun = false;
	}
	else if(RSCalObj['RSCal' + num].RSCalBookedErrorCount == 0 && s == "go"){
		if(RSCalObj[RSCalID].Page != "undefined"){
			var RSCalPassInfo = RSCalObj['RSCal' + num].Page + "http%3a%2f%2frezstream.net%2fbooking_availability%2fCalendarPassThru.aspx%3f"
			RSCalPassInfo += "acct%3d" + RSCalObj['RSCal' + num].RSCalAccount;
			RSCalPassInfo += "%26prop%3d" + RSCalObj['RSCal' + num].RSCalProperty;
			RSCalPassInfo += "%26unit%3d" + RSCalObj['RSCal' + num].RSCalUnit;
			RSCalPassInfo += "%26na%3d" + document.getElementById("adults" + num).value;
			RSCalPassInfo += "%26ad%3d" + new String(RSCalObj['RSCal' + num].RSCalArrivalDate.getMonth() + 1) + "%2f" + RSCalObj['RSCal' + num].RSCalArrivalDate.getDate() + "%2f" + RSCalObj['RSCal' + num].RSCalArrivalDate.getFullYear();
			RSCalPassInfo += "%26dd%3d" + new String(RSCalObj['RSCal' + num].RSCalDepartureDate.getMonth() + 1) + "%2f" + RSCalObj['RSCal' + num].RSCalDepartureDate.getDate() + "%2f" + RSCalObj['RSCal' + num].RSCalDepartureDate.getFullYear();
			if(RSCalObj['RSCal' + num].RSCalKids2 == ""){
				RSCalPassInfo += "%26nc%3d0";
			}
			else{
				RSCalPassInfo += "%26nc%3d" + document.getElementById('children' + num).value;
			}
		}
		else{
			var RSCalPassInfo = "http://rezstream.net/booking_availability/CalendarPassThru.aspx?"
			RSCalPassInfo += "acct=" + RSCalObj['RSCal' + num].RSCalAccount;
			RSCalPassInfo += "&prop=" + RSCalObj['RSCal' + num].RSCalProperty;
			RSCalPassInfo += "&unit=" + RSCalObj['RSCal' + num].RSCalUnit;
			RSCalPassInfo += "&na=" + document.getElementById("adults" + num).value;
			RSCalPassInfo += "&ad=" + new String(RSCalObj['RSCal' + num].RSCalArrivalDate.getMonth() + 1) + "/" + RSCalObj['RSCal' + num].RSCalArrivalDate.getDate() + "/" + RSCalObj['RSCal' + num].RSCalArrivalDate.getFullYear();
			RSCalPassInfo += "&dd=" + new String(RSCalObj['RSCal' + num].RSCalDepartureDate.getMonth() + 1) + "/" + RSCalObj['RSCal' + num].RSCalDepartureDate.getDate() + "/" + RSCalObj['RSCal' + num].RSCalDepartureDate.getFullYear();
			if(RSCalObj['RSCal' + num].RSCalKids2 == ""){
				RSCalPassInfo += "&nc=0";
			}
			else{
				RSCalPassInfo += "&nc=" + document.getElementById('children' + num).value;
			}
		}
		if(RSCalObj['RSCal' + num].New == "1"){
			window.open(RSCalPassInfo);
		}
		else{
			location = RSCalPassInfo;
		}
	}
}

//Set the number of calendars
function RSCalDrawCalendars(year, m, num){
	RSCalObj['RSCal' + num].RSCalDisplayYear = year;
	RSCalObj['RSCal' + num].RSCalDisplayMonth = m;
	RSCalHighlightID = new Array();
	for(var i=0; i<RSCalObj['RSCal' + num].RSCalCnt; i++){
		if(!document.getElementById(num + 'cals' + i)){
			document.getElementById(num + 'cals').innerHTML += '<div style="float:left;" id="' + num + 'cals' + i + '"><div>';
		}
		RSCalBuilder(new Date(year, m + i , 1), i, num);
	}
	if(RSCalObj['RSCal' + num].RSCalBookable === true){
		RSCalHighlightSelected(num);
	}	
}

function RSCalSetNavTip(msg){
	document.getElementById("RSCalNavTip").innerHTML = msg;
}

function RSCalCheckMinStay(num){
	if(RSCalObj['RSCal' + num].RSCalDefaultStay <= 0){RSCalObj['RSCal' + num].RSCalDefaultStay = 1;
		RSCalObj['RSCal' + num].RSCalDefaultStay = RSCalObj['RSCal' + num].RSCalMinStayDay[RSCalObj['RSCal' + num].RSCalSelectedCount[0]];
		RSCalObj['RSCal' + num].RSCalArrivalDate = new Date(RSCalObj['RSCal' + num].RSCalArrival.innerHTML);
		RSCalObj['RSCal' + num].RSCalDepartureDate = new Date(RSCalObj['RSCal' + num].RSCalArrivalDate.getFullYear(), RSCalObj['RSCal' + num].RSCalArrivalDate.getMonth(), (RSCalObj['RSCal' + num].RSCalArrivalDate.getDate() + new Number(RSCalObj['RSCal' + num].RSCalDefaultStay)));
		RSCalObj['RSCal' + num].RSCalDeparture.innerHTML = (RSCalObj['RSCal' + num].RSCalDepartureDate.getMonth() + 1) + "/" + RSCalObj['RSCal' + num].RSCalDepartureDate.getDate() + "/" + RSCalObj['RSCal' + num].RSCalDepartureDate.getFullYear();
	}
	var RSCalMinStayVal = 0
	RSCalObj['RSCal' + num].RSCalMinStayTest = new Array();
	for(i=0; i<RSCalObj['RSCal' + num].RSCalDefaultStay; i++){
		var testDay = new Date(RSCalObj['RSCal' + num].RSCalArrivalDate.getFullYear(), RSCalObj['RSCal' + num].RSCalArrivalDate.getMonth(), (RSCalObj['RSCal' + num].RSCalArrivalDate.getDate() + i))
		for(j=0; j<RSCalObj['RSCal' + num].RSCalMinStay.D.length; j++){
			if(new Date(RSCalObj['RSCal' + num].RSCalMinStay.D[j]) <= testDay && (typeof (RSCalObj['RSCal' + num].RSCalMinStay.D[j+1]) == "undefined" || new Date(RSCalObj['RSCal' + num].RSCalMinStay.D[j+1]) > testDay)){
				if(testDay.getDay() == 0 && RSCalObj['RSCal' + num].RSCalMinStay.D1[j] == -1){
					RSCalObj['RSCal' + num].RSCalMinStayTest[i] = RSCalObj['RSCal' + num].RSCalMinStay.MinStayWeekend[j];
				}
				else if(testDay.getDay() == 0 && RSCalObj['RSCal' + num].RSCalMinStay.D1[j] === 0){
					RSCalObj['RSCal' + num].RSCalMinStayTest[i] = RSCalObj['RSCal' + num].RSCalMinStay.MinStay[j];
				}
				else if(testDay.getDay() == 1 && RSCalObj['RSCal' + num].RSCalMinStay.D2[j] == -1){
					RSCalObj['RSCal' + num].RSCalMinStayTest[i] = RSCalObj['RSCal' + num].RSCalMinStay.MinStayWeekend[j];
				}
				else if(testDay.getDay() == 1 && RSCalObj['RSCal' + num].RSCalMinStay.D2[j] === 0){
					RSCalObj['RSCal' + num].RSCalMinStayTest[i] = RSCalObj['RSCal' + num].RSCalMinStay.MinStay[j];
				}
				else if(testDay.getDay() == 2 && RSCalObj['RSCal' + num].RSCalMinStay.D3[j] == -1){
					RSCalObj['RSCal' + num].RSCalMinStayTest[i] = RSCalObj['RSCal' + num].RSCalMinStay.MinStayWeekend[j];
				}
				else if(testDay.getDay() == 2 && RSCalObj['RSCal' + num].RSCalMinStay.D3[j] === 0){
					RSCalObj['RSCal' + num].RSCalMinStayTest[i] = RSCalObj['RSCal' + num].RSCalMinStay.MinStay[j];
				}
				else if(testDay.getDay() == 3 && RSCalObj['RSCal' + num].RSCalMinStay.D4[j] == -1){
					RSCalObj['RSCal' + num].RSCalMinStayTest[i] = RSCalObj['RSCal' + num].RSCalMinStay.MinStayWeekend[j];
				}
				else if(testDay.getDay() == 3 && RSCalObj['RSCal' + num].RSCalMinStay.D4[j] === 0){
					RSCalObj['RSCal' + num].RSCalMinStayTest[i] = RSCalObj['RSCal' + num].RSCalMinStay.MinStay[j];
				}
				else if(testDay.getDay() == 4 && RSCalObj['RSCal' + num].RSCalMinStay.D5[j] == -1){
					RSCalObj['RSCal' + num].RSCalMinStayTest[i] = RSCalObj['RSCal' + num].RSCalMinStay.MinStayWeekend[j];
				}
				else if(testDay.getDay() == 4 && RSCalObj['RSCal' + num].RSCalMinStay.D5[j] === 0){
					RSCalObj['RSCal' + num].RSCalMinStayTest[i] = RSCalObj['RSCal' + num].RSCalMinStay.MinStay[j];
				}
				else if(testDay.getDay() == 5 && RSCalObj['RSCal' + num].RSCalMinStay.D6[j] == -1){
					RSCalObj['RSCal' + num].RSCalMinStayTest[i] = RSCalObj['RSCal' + num].RSCalMinStay.MinStayWeekend[j];
				}
				else if(testDay.getDay() == 5 && RSCalObj['RSCal' + num].RSCalMinStay.D6[j] === 0){
					RSCalObj['RSCal' + num].RSCalMinStayTest[i] = RSCalObj['RSCal' + num].RSCalMinStay.MinStay[j];
				}
				else if(testDay.getDay() == 6 && RSCalObj['RSCal' + num].RSCalMinStay.D7[j] == -1){
					RSCalObj['RSCal' + num].RSCalMinStayTest[i] = RSCalObj['RSCal' + num].RSCalMinStay.MinStayWeekend[j];
				}
				else if(testDay.getDay() == 6 && RSCalObj['RSCal' + num].RSCalMinStay.D7[j] === 0){
					RSCalObj['RSCal' + num].RSCalMinStayTest[i] = RSCalObj['RSCal' + num].RSCalMinStay.MinStay[j];
				}
			}
			if(RSCalObj['RSCal' + num].RSCalDefaultStay < new Number(RSCalObj['RSCal' + num].RSCalMinStayTest[i])){
				if(RSCalObj['RSCal' + num].RSCalFirstRun == false){
					alert('You have selected ' + RSCalObj['RSCal' + num].RSCalDefaultStay + ' nights. The minimum number of nights for this unit during this period is ' + RSCalObj['RSCal' + num].RSCalMinStayTest[i] + '.\nYour reservation dates have been adjusted, your reservation has been lenghtened to the minimum number of nights.\n\nPlease make a new selection.');
				}
				RSCalObj['RSCal' + num].RSCalDefaultStay = RSCalObj['RSCal' + num].RSCalMinStayTest[i];
				RSCalObj['RSCal' + num].RSCalArrivalDate = new Date(RSCalObj['RSCal' + num].RSCalArrival.innerHTML);
				RSCalObj['RSCal' + num].RSCalDepartureDate = new Date(RSCalObj['RSCal' + num].RSCalArrivalDate.getFullYear(), RSCalObj['RSCal' + num].RSCalArrivalDate.getMonth(), (RSCalObj['RSCal' + num].RSCalArrivalDate.getDate() + new Number(RSCalObj['RSCal' + num].RSCalDefaultStay)));
				RSCalObj['RSCal' + num].RSCalDeparture.innerHTML = (RSCalObj['RSCal' + num].RSCalDepartureDate.getMonth() + 1) + "/" + RSCalObj['RSCal' + num].RSCalDepartureDate.getDate() + "/" + RSCalObj['RSCal' + num].RSCalDepartureDate.getFullYear();
				RSCalMinStayVal++;
			}
		}
	}
}

function RSCalDropDownInit(CAL, NUM){
	if(CAL == 0){DDFIELD = "arrivalDate" + NUM;}
	else{DDFIELD = "departureDate" + NUM;}
	datesplit = document.getElementById(DDFIELD).innerHTML.split("/")
	day = datesplit[1];
	month = datesplit[0]-1;
	year = datesplit[2];
	if((month+1) < 10){monthString = new String("0" + (month + 1));}
	else{monthString = new String(month + 1);}
	nextMonthDate = new Date(year, month + 1, day);
	nextMonthDay = nextMonthDate.getDate();
	nextMonthMonth = nextMonthDate.getMonth();
	nextMonthYear = nextMonthDate.getFullYear();
	if(nextMonthDay < 10){nextMonthDayString = "0" + new String(nextMonthDay);}
	else{nextMonthDayString = nextMonthDay;}
	if((nextMonthMonth + 1) < 10){nextMonthMonthString = "0" + new String(nextMonthMonth + 1);}
	else{nextMonthMonthString = new String(nextMonthMonth + 1);}
	nextMonthDateString = nextMonthMonthString + "/" + nextMonthDayString + "/" + new String(nextMonthYear);
	prevMonthDate = new Date(year, month - 1, day);
	prevMonthDay = prevMonthDate.getDate();
	prevMonthMonth = prevMonthDate.getMonth();
	prevMonthYear = prevMonthDate.getFullYear();
	if(prevMonthDay < 10){prevMonthDayString = "0" + new String(prevMonthDay);}
	else{prevMonthDayString = prevMonthDay;}
	if((prevMonthMonth + 1) < 10){prevMonthMonthString = "0" + new String(prevMonthMonth + 1);}
	else{prevMonthMonthString = new String(prevMonthMonth + 1);}
	prevMonthDateString = prevMonthMonthString + "/" + prevMonthDayString + "/" + new String(prevMonthYear);
	months = new Array('January','February','March','April','May','June','July','August','September','October','November','December');
	this_month = new Date(year, month, 1);
	next_month = new Date(year, month + 1, 1);
	RSCalDrawDropDown(CAL, NUM);
}

function RSCalDropDownView(CAL, NUM){
	if(document.getElementById("dropDown" + new String(CAL) + new String(NUM)).style.visibility == "hidden"){
		document.getElementById("dropDown" + new String(CAL) + new String(NUM)).style.visibility = "visible";
	}
	else{
		document.getElementById("dropDown" + new String(CAL) + new String(NUM)).style.visibility = "hidden";
	}
}

function RSCalDrawDropDown(CAL, NUM){
	// Find out when this month starts and ends.
	if(CAL == 0){DDFIELD = "'arrivalDate";}
	else{DDFIELD = "'departureDate";}
	first_week_day = this_month.getDay();
	days_in_this_month = Math.round((next_month.getTime() - this_month.getTime()) / (1000 * 60 * 60 * 24));
	calendar_html = '<html><head><body class="RSCalDropDownCal"><link type="text/css" rel="stylesheet" href="' + RSCalObj["RSCal" + NUM].RSCalCSSURL + '" /></head>';
	calendar_html += '<table style="width:15em;">';
	if(month == new Date().getMonth() && year == new Date().getFullYear()){
		calendar_html += '<tr><td></td>';
	}
	else{
		calendar_html += '<tr><td id="Previous"><a onclick="parent.document.getElementById(' + DDFIELD + NUM + '\').innerHTML = \'' + prevMonthDateString + '\'; parent.RSCalDropDownInit(' + new String(CAL) + ', ' + new String(NUM) + ');">&lt;</a></td>';
	}
	calendar_html += '<td colspan="5" style="text-size:1.1em; font-weight:bold;">' + months[month] + '&nbsp;' + year + '</td>';
	if(month == RSCalObj['RSCal' + NUM].RSCalMaxOutStay.getMonth() && year == RSCalObj['RSCal' + NUM].RSCalMaxOutStay.getFullYear()){
		calendar_html += "<td></td></tr>"
	}
	else {
		calendar_html += '<td id="Next"><a onclick="parent.document.getElementById(' + DDFIELD + NUM + '\').innerHTML = \'' + nextMonthDateString + '\'; parent.RSCalDropDownInit(' + new String(CAL) + ', ' + new String(NUM) + ');">&gt;</a></td></tr>';
	}
	calendar_html += '<tr><td>S</td><td>M</td><td>T</td><td>W</td><td>T</td><td>F</td><td>S</td></tr>'
	calendar_html += '<tr>';

				// Fill the first week of the month with the appropriate number of blanks.
	for(week_day = 0; week_day < first_week_day; week_day++) {
		calendar_html += '<td> </td>';
	}

	week_day = first_week_day;
	for(day_counter = 1; day_counter <= days_in_this_month; day_counter++) {
 				week_day %= 7;
		if(week_day == 0)
			calendar_html += '</tr><tr>';
						
		if(day_counter < 10){
			var day_counterString = new String("0" + day_counter);
		}
		else{
			var day_counterString = new String(day_counter);
		}
		var dateString = new String(monthString + "/" + day_counterString + "/" + new String(year));
		var RSCalDDHTMLDateID = new String(year) + monthString + day_counterString + NUM;
		
		if(RSCalDDHTMLDateID < RSCalObj['RSCal' + NUM].RSCalMinOutID || RSCalDDHTMLDateID > RSCalObj['RSCal' + NUM].RSCalMaxOutID){
			if(new Date().getFullYear() == year && new Date().getMonth() == month && new Date().getDate().toString() == day_counter){
				calendar_html += '<td><p class="RSCalNonBookable" style="font-weight:bold;">' + day_counter + '</p></td>';
			}
			else{
				calendar_html += '<td><p class="RSCalNonBookable">' + day_counter + '</p></td>';
			}
		}

		// Do something different for the current day.
		else if(RSCalDDHTMLDateID >= RSCalObj['RSCal' + NUM].RSCalMinOutID || RSCalDDHTMLDateID <= RSCalObj['RSCal' + NUM].RSCalMaxOutID){
			if(new Date().getFullYear() == year && new Date().getMonth() == month && new Date().getDate().toString() == day_counter){
				calendar_html += '<td><p class="RSCalDDDays" style="font-weight:bold;"><a onclick="parent.document.getElementById(' + DDFIELD + NUM + '\').innerHTML = new String(\'' + dateString + '\'); parent.RSCalSetDates(' + NUM + '); parent.RSCalDropDownView(' + new String(CAL) + ', ' + new String(NUM) + ')">' + day_counter + '</a></p></td>';
			}
			else{
				calendar_html += '<td><p class="RSCalDDDays"><a onclick="parent.document.getElementById(' + DDFIELD + NUM + '\').innerHTML = new String(\'' + dateString + '\'); parent.RSCalSetDates(' + NUM + '); parent.RSCalDropDownView(' + new String(CAL) + ', ' + new String(NUM) + ')">' + day_counter + '</a></p></td>';
			}
		}
		week_day++;
	}

	calendar_html += '</tr>';
	calendar_html += '<tr><td colspan="7" style="cursor:pointer; border-top:.1em solid #eee; background-color:#4682B4; color:#fff;"><a onclick="parent.document.getElementById(\'dropDown' + CAL + NUM + '\').style.display = \'none\';">Close</a></td></tr>'
	calendar_html += '</table></html>';

	// Display the calendar.
		var ifrme = document.getElementById('dropDown' + new String(CAL) + new String(NUM));
		var ifrm = ifrme.contentDocument || ifrme.contentWindow;
		if(ifrm.document){
			ifrm = ifrm.document;
		}
        ifrm.open("text/html");
        ifrm.write(calendar_html);
        ifrm.close();
//	document.getElementById("dropDown" + new String(CAL) + new String(NUM)).innerHTML = calendar_html;
}