var openCal			= '';
var overIcon		= '';

/*added for currentMonthName Engine room search*/
function calendarScroll(serverScript, tgtID, formList)
{
	var	targetDiv		= $(tgtID);
	var checkedButtons	= new Array();
	var daysList		= $(formList);
	
	var formDivs	= daysList.getElementsByTagName('div');
	for(var i = 0; i < formDivs.length; i++)
	{
		if(formDivs[i].className == 'roomFormLine')
		{
			checkedButtons.push(formDivs[i].id.substr(8));
		}
	}

	var basicReq	= new xmlRequest();
	basicReq.open("GET", serverScript, true);
	basicReq.onreadystatechange = function()
	{
		if(basicReq.readyState == 4 && basicReq.status == 200)
		{
			if(basicReq.responseText.substr(0, 6) == "ALERT:")
			{
				var alertString	= basicReq.responseText.substr(6, basicReq.responseText.indexOf("*")-6);
				alert(alertString);
				targetDiv.innerHTML	= basicReq.responseText.substr(basicReq.responseText.indexOf("*")+1);
			}else{
				targetDiv.innerHTML	= basicReq.responseText;
				for(var j = 0; j < checkedButtons.length; j++)
				{
					if($(checkedButtons[j]))
					{
						$(checkedButtons[j]).checked	= true;
					}
				}
			}
		}
	}
	basicReq.send(null);
	return false;
}

function roomDisplay(scriptURL, trgtDiv, boxWidth, boxHeight)
{
	var overLay		= $('overLay');
	var imgDisplay	= $(trgtDiv);
	var	winWidth	= getWidth();
	var winHeight	= getHeight();

	var leftPos		= boxWidth/2;
	var topPos		= (boxHeight/2)+25;
	var divHeight	= boxHeight;
	var imgUnderTop	= (boxHeight/1)+2;
	overHeight		= document.body.scrollHeight;
	overWidth		= document.body.scrollWidth;
	
	overLay.style.position		= 'absolute';
	overLay.style.top			= '0px';
	overLay.style.left			= '0px';
	overLay.style.width			= '100%';
	overLay.style.height		= overHeight+'px';
	overLay.style.opacity		= '.75';
	overLay.style.background	= '#828282';
	overLay.style.filter		= 'alpha(opacity:'+75+')';
	overLay.style.display		= 'block';
	
	var topOffset				= window.pageYOffset;
	imgDisplay.style.position	= 'absolute';
	imgDisplay.style.top		= '50%';
	imgDisplay.style.left		= '50%';
	if(typeof( window.pageYOffset ) == 'number')
	{
		var topOffset	= window.pageYOffset;
		var leftOffset	= window.pageXOffset;
	}
	else if( document.body && (document.body.scrollTop))
	{
		var topOffset	= document.body.scrollTop;
		var leftOffset	= document.body.scrollLeft;
	}
	else if( document.documentElement && (document.documentElement.scrollTop))
	{
		var topOffset	= document.documentElement.scrollTop;
		var leftOffset	= document.documentElement.scrollLeft;
	}

	if(topOffset > 0)
	{
		var topMargin	= topPos*-1 + parseInt(topOffset);
	}else{
		var topMargin	= topPos*-1;
	}
	if(leftOffset > 0)
	{
		var leftMargin	= leftPos*-1 - parseInt(leftOffset);
	}else{
		var leftMargin = leftPos*-1;
	}
	imgDisplay.style.margin		= topMargin+'px 0px 0px '+leftMargin+'px';
	imgDisplay.style.width		= boxWidth+'px';
	imgDisplay.style.height		= divHeight+'px';
	imgDisplay.style.minHeight	= divHeight+'px';
	imgDisplay.style.display	= 'block';
	imgDisplay.style.border		= '3px solid #828282';
	
	
	imgDisplay.style.background	= "#ffffff";
	var boxReq	= new xmlRequest();
	boxReq.open("GET", scriptURL, true);
	boxReq.onreadystatechange = function()
	{
		if (boxReq.readyState == 4 && boxReq.status == 200)
		{
			
			imgDisplay.innerHTML = boxReq.responseText;
			$('closeButton').onclick = function()
			{
				closeOver(imgDisplay, overLay);
			}
		}
	}
	boxReq.send(null);
	return false;
}

function closeOver(boxDisplay, overLay)
{
	boxDisplay.innerHTML		= "";
	boxDisplay.style.position	= 'static';
	boxDisplay.style.width		= '0px';
	boxDisplay.style.height		= '0px';
	boxDisplay.style.display	= 'none';
		
	overLay.style.position		= 'static';
	overLay.style.width			= '0px';
	overLay.style.height		= '0px';
	overLay.style.display		= 'none';
	return false;
}

function roomCalendar(tgtID, tgtInput, calID, today, month, year)
{
	var tgtDiv		= $(tgtID);
	var tgtField	= $(tgtInput);
	var todayValue	= $(today).value;
	var dateNums	= todayValue.split("/");
	
	var localTime		= todayValue;
	var oneDay			= 86400;
	var todayDate		= new Date(dateNums[2],dateNums[0]-1,dateNums[1],0,0,0);
	var currentDay		= todayDate.getDate();
	var currentMonth	= todayDate.getMonth();
	var currentYear		= todayDate.getFullYear();
	var newNums			= tgtField.value.split("/");
	var tgtDate			= new Date(newNums[2],newNums[0]-1,newNums[1],0,0,0);
	switch(currentMonth)
	{
		case 0:
				var currentMonthName	= "January";
		break;
		case 1:
				var currentMonthName	= "February";
		break;
		case 2:
				var currentMonthName	= "March";
		break;
		case 3:
				var currentMonthName	= "April";
		break;
		case 4:
				var currentMonthName	= "May";
		break;
		case 5:
				var currentMonthName	= "June";
		break;
		case 6:
				var currentMonthName	= "July";
		break;
		case 7:
				var currentMonthName	= "August";
		break;
		case 8:
				var currentMonthName	= "September";
		break;
		case 9:
				var currentMonthName	= "October";
		break;
		case 10:
				var currentMonthName	= "November";
		break;
		case 11:
				var currentMonthName	= "December";
		break;
		default:
				var currentMonthName	= newMonth;
		break;
	}
	var localTime		= Date.parse(currentMonthName+" "+dateNums[1]+", "+dateNums[2])/1000;
	if(month)
	{
		var newDate		= new Date(year,month,1,0,0,0);
		var newDay		= newDate.getDate();
		var newMonth	= newDate.getMonth();
		var newYear		= newDate.getFullYear();
	}
	else if(tgtDate > localTime)
	{
		var newDay		= tgtDate.getDate();
		var newMonth	= tgtDate.getMonth();
		var newYear		= tgtDate.getFullYear();
	}else{
		var newDate		= new Date(currentYear,currentMonth,1,0,0,0);
		var newDay		= newDate.getDate();
		var newMonth	= newDate.getMonth();
		var newYear		= newDate.getFullYear();
	}
	
	if(calID == 'selectCheckIn')
	{
		var tgtInput	= "rmCheckIn";
		var tgtView		= "arriveDate";
	}
	else if(calID == 'selectCheckOut')
	{
		$tgtInput	= "rmCheckOut";
		$tgtView	= "departDate";
	}
/*Start Calendar*/
	var colRows		= 0;
	
	var viewMonth	= new Date(newYear, newMonth,1,0,0,0);
	var thisMonth	= new Date(currentYear,currentMonth,currentDay,0,0,0);

	switch(newMonth)
	{
		case 0:
				var monthName	= "January";
		break;
		case 1:
				var monthName	= "February";
		break;
		case 2:
				var monthName	= "March";
		break;
		case 3:
				var monthName	= "April";
		break;
		case 4:
				var monthName	= "May";
		break;
		case 5:
				var monthName	= "June";
		break;
		case 6:
				var monthName	= "July";
		break;
		case 7:
				var monthName	= "August";
		break;
		case 8:
				var monthName	= "September";
		break;
		case 9:
				var monthName	= "October";
		break;
		case 10:
				var monthName	= "November";
		break;
		case 11:
				var monthName	= "December";
		break;
		default:
				var monthName	= newMonth;
		break;
	}
	
	var dispMo		= "<div class=\"calOne\"><table class=\"searchCal\"><tr><td class=\"rmCalPrevMo\" >";
	if(viewMonth > thisMonth)
	{
		var rmCalPrevMo	= newMonth - 1;
		rmCalPrevYr		= newYear;
		if(rmCalPrevMo	< 0)
		{
			rmCalPrevMo	= 11;
			rmCalPrevYr	= newYear - 1;
		}
		dispMo			+= "<a href=\"javascript:roomCalendar('"+tgtID+"', '"+tgtInput+"', '"+calID+"', '"+today+"', '"+rmCalPrevMo+"', '"+rmCalPrevYr+"');\"><img src=\"http://"+location.host+"/graphics/prevMoArrow.gif\" width=\"15\" height=\"15\" alt=\"click for previous month\" title=\"click for previous month\" /></a>";
	}
	dispMo				+= "</td><td colspan=\"5\" class=\"rmCalCurrMo\">";
	dispMo				+= monthName+ " "+newYear;
	var rmCalNextMo		=  newMonth + 1;
	dispMo				+= "</td><td class=\"rmCalNextMo\">";
	dispMo				+= "</td></tr>\n";
	var totaldays		= daysInMonth(newMonth+1,newYear);
	dispMo				+= "\t\t<tr>"; 
	
	var weekDays		= new Array('M','T','W','T','F','S','S');
	for(var i = 0; i < weekDays.length; i++){dispMo += "<td class=\"rmCalDayName\">"+weekDays[i]+"</td>"; }
	
	dispMo += "</tr>\n\t\t<tr>"; 
	var dayOffset = viewMonth.getDay();
	if(dayOffset == 0)
	{
		dayOffset	= Math.abs(dayOffset -6);
	}else{
		dayOffset	= dayOffset - 1;
	}
	if(dayOffset > 0)
	{
		for(var j = 0; j < dayOffset; j++){dispMo += "<td class=\"rmCalDate\"></td>"; }
	}

	var yesterday	= localTime;
	var daySecs		= '';
	for(var day = 1; day <= totaldays; day++)
	{
		daySecs			= Date.parse(monthName+" "+day+", "+newYear)/1000;
		var daySecsDate	= new Date(daySecs*1000);
		if(daySecs >= (yesterday))
		{
			var nextDay			= day+1;
			var nextDaySecs		= Date.parse(monthName+" "+nextDay+", "+newYear)/1000;
			var nextDaySecsDate	= new Date(nextDaySecs*1000);
			var curMonth		= daySecsDate.getMonth()+1;
			var curDay			= daySecsDate.getDate();
			var curYR			= daySecsDate.getFullYear();
			var coMonth			= nextDaySecsDate.getMonth()+1;
			var coDay			= nextDaySecsDate.getDate();
			var coYR			= nextDaySecsDate.getFullYear();
			
			if(calID == 'selectCheckIn')
			{
				var javaFunction	= "addCheckInDate('"+curMonth+"/"+curDay+"/"+curYR+"', '"+coMonth+"/"+coDay+"/"+coYR+"', 'rmCheckIn', 'rmCheckOut', 'arriveDate', 'departDate', '"+calID+"');";
			}
			else if(calID == 'selectCheckOut')
			{
				var javaFunction	= "addDate('"+curMonth+"/"+curDay+"/"+curYR+"', 'rmCheckOut', 'departDate', '"+calID+"');";
			}
			dispMo += "<td class=\"rmCalDate active\"><a href=\"javascript:"+javaFunction+"\">"+day+"</a></td>";
		}else{
			dispMo += "<td class=\"rmCalDate past\">"+day+"</td>"; 
		}
		dayOffset++;
		if(dayOffset == 7)
		{
			dayOffset = 0;
			dispMo += "</tr>\n"; 
			colRows++;
			if(day < totaldays){dispMo += "\t\t<tr>"; }
		}
	}
	if(dayOffset > 0)
	{
		dayOffset = 7 - dayOffset;
	}
	if(dayOffset > 0)
	{ 
		for ($i = 0; $i < dayOffset; $i++){dispMo += "<td class=\"rmCalDate\"></td>"; }
	}
	if(dayOffset!=0)
	{
		dispMo += "</tr>\n"; 
		colRows++;
	}
	if(colRows < 6)
	{
		do
		{
			dispMo += "<tr><td class=\"rmCalDate\"></td><td class=\"rmCalDate\"></td><td class=\"rmCalDate\"></td><td class=\"rmCalDate\"></td><td class=\"rmCalDate\"></td><td class=\"rmCalDate\"></td><td class=\"rmCalDate\"></td></tr>"; 
			colRows++;
		}
		while(colRows < 6);
	}
	dispMo +=  "</table></div>"; 
	
	newMonth++;
//Second Month
	var colRows		= 0;
	
	var viewMonth	= new Date(newYear, newMonth,1,0,0,0);
	var thisMonth	= new Date(currentYear,currentMonth,currentDay,0,0,0);
	if(newMonth >11)
	{
		newMonth	= 0;
		newYear		= newYear+1;
	}

	switch(newMonth)
	{
		case 0:
				var monthName	= "January";
		break;
		case 1:
				var monthName	= "February";
		break;
		case 2:
				var monthName	= "March";
		break;
		case 3:
				var monthName	= "April";
		break;
		case 4:
				var monthName	= "May";
		break;
		case 5:
				var monthName	= "June";
		break;
		case 6:
				var monthName	= "July";
		break;
		case 7:
				var monthName	= "August";
		break;
		case 8:
				var monthName	= "September";
		break;
		case 9:
				var monthName	= "October";
		break;
		case 10:
				var monthName	= "November";
		break;
		case 11:
				var monthName	= "December";
		break;
		default:
				var monthName	= newMonth;
		break;
	}
	
	dispMo		+= "<div class=\"calTwo\"><table class=\"searchCal\"><tr><td class=\"rmCalPrevMo\" >";
	dispMo				+= "</td><td colspan=\"5\" class=\"rmCalCurrMo\">";
	dispMo				+= monthName+ " "+newYear;
	var rmCalNextMo		= newMonth;
	var rmCalNextYr		= newYear;
	if(rmCalNextMo	> 11)
	{
		rmCalNextMo	= 0;
		rmCalNextYr	= newYear + 1;
	}
	dispMo				+= "</td><td class=\"rmCalNextMo\">";
	var ViewMoStamp		= Date.parse(monthName+" 1, "+newYear)/1000;
	var thisMoStamp		= Date.parse(currentMonthName+" "+dateNums[1]+", "+dateNums[2])/1000;
	var doneDays		= (ViewMoStamp -thisMoStamp)/oneDay;
	
	if(doneDays < 730)
	{
		dispMo				+= " &nbsp; &nbsp;<a href=\"javascript:roomCalendar('"+tgtID+"', '"+tgtInput+"', '"+calID+"', '"+today+"', '"+rmCalNextMo+"', '"+rmCalNextYr+"');\"><img src=\"http://"+location.host+"/graphics/nextMoArrow.gif\" width=\"15\" height=\"15\" alt=\">\" title=\">\" /></a>";
	}else{
		dispMo				+= "&nbsp;";
	}
	dispMo				+= "</td></tr>\n";
	var totaldays		= daysInMonth(newMonth+1,newYear);
	dispMo				+= "\t\t<tr>"; 
	
	var weekDays		= new Array('M','T','W','T','F','S','S');
	for(var i = 0; i < weekDays.length; i++){dispMo += "<td class=\"rmCalDayName\">"+weekDays[i]+"</td>"; }
	
	dispMo += "</tr>\n\t\t<tr>"; 
	var dayOffset = viewMonth.getDay();
	if(dayOffset == 0)
	{
		dayOffset	= Math.abs(dayOffset -6);
	}else{
		dayOffset	= dayOffset - 1;
	}
	if(dayOffset > 0)
	{
		for(var j = 0; j < dayOffset; j++){dispMo += "<td class=\"rmCalDate\"></td>"; }
	}

	var yesterday	= localTime;
	var daySecs		= '';
	for(var day = 1; day <= totaldays; day++)
	{
		daySecs			= Date.parse(monthName+" "+day+", "+newYear)/1000;
		var daySecsDate	= new Date(daySecs*1000);
		if(daySecs >= (yesterday))
		{
			var nextDay			= day+1;
			var nextDaySecs		= Date.parse(monthName+" "+nextDay+", "+newYear)/1000;
			var nextDaySecsDate	= new Date(nextDaySecs*1000);
			var curMonth		= daySecsDate.getMonth()+1;
			var curDay			= daySecsDate.getDate();
			var curYR			= daySecsDate.getFullYear();
			var coMonth			= nextDaySecsDate.getMonth()+1;
			var coDay			= nextDaySecsDate.getDate();
			var coYR			= nextDaySecsDate.getFullYear();
			
			if(calID == 'selectCheckIn')
			{
				var javaFunction	= "addCheckInDate('"+curMonth+"/"+curDay+"/"+curYR+"', '"+coMonth+"/"+coDay+"/"+coYR+"', 'rmCheckIn', 'rmCheckOut', 'arriveDate', 'departDate', '"+calID+"');";
			}
			else if(calID == 'selectCheckOut')
			{
				var javaFunction	= "addDate('"+curMonth+"/"+curDay+"/"+curYR+"', 'rmCheckOut', 'departDate', '"+calID+"');";
			}
			dispMo += "<td class=\"rmCalDate active\"><a href=\"javascript:"+javaFunction+"\">"+day+"</a></td>";
		}else{
			dispMo += "<td class=\"rmCalDate past\">"+day+"</td>"; 
		}
		dayOffset++;
		if(dayOffset == 7)
		{
			dayOffset = 0;
			dispMo += "</tr>\n"; 
			colRows++;
			if(day < totaldays){dispMo += "\t\t<tr>"; }
		}
	}
	if(dayOffset > 0)
	{
		dayOffset = 7 - dayOffset;
	}
	if(dayOffset > 0)
	{ 
		for ($i = 0; $i < dayOffset; $i++){dispMo += "<td class=\"rmCalDate\"></td>"; }
	}
	if(dayOffset!=0)
	{
		dispMo += "</tr>\n"; 
		colRows++;
	}
	if(colRows < 6)
	{
		do
		{
			dispMo += "<tr><td class=\"rmCalDate\"></td><td class=\"rmCalDate\"></td><td class=\"rmCalDate\"></td><td class=\"rmCalDate\"></td><td class=\"rmCalDate\"></td><td class=\"rmCalDate\"></td><td class=\"rmCalDate\"></td></tr>"; 
			colRows++;
		}
		while(colRows < 6);
	}
	dispMo +=  "</table></div>"; 
	
	dispMo += "<div class=\"calClose\"><a class=\"inline\" href=\"javascript:closeCal('"+calID+"');\"><img src=\"http://"+location.host+"/graphics/rmCalClose-x.gif\" width=\"15px\" height=\"15px\" alt=\"close\" title=\"close\" /></a></div>";
	if(openCal != '')
	{
		closeCal(openCal);
	}
	var newSelect		= document.createElement('div');
	newSelect.id		= calID;
	newSelect.className	= "selectMonths";
	tgtDiv.appendChild(newSelect);
	newSelect.innerHTML	= dispMo;
	openCal	= calID;
}

function daysInMonth(month,year) 
{
	var dd	= new Date(year, month, 0);
	return dd.getDate();
} 

function swapSrchMo(serverScript, month, year, tgtID, startEnd)
{
	var serverScript	= serverScript+"?"+tgtID+"=1&month="+month+"&year="+year;
	swapReq		= new xmlRequest();
	swapReq.open("GET", serverScript, true);
	swapReq.onreadystatechange = function()
	{
		if(swapReq.readyState == 4 && swapReq.status == 200)
		{
			$(tgtID).innerHTML	= swapReq.responseText;
		}
	}
	swapReq.send(null);
	return false;
}

function addDate(dispDate, tgtInput, tgtView, calID)
{
	$(tgtInput).value		= dispDate;
	var newValue			= dispDate.split("/");
	var plainDispDate		= newValue[1]+"/"+newValue[0]+"/"+newValue[2];
	
	$(tgtView).innerHTML	= plainDispDate;
	openCal					= '';
//	return false;
}

function addCheckInDate(dispDate, coDispDate, tgtInput, coTgtInput, tgtView, coTgtView, calID)
{
	$(tgtInput).value		= dispDate;
	inDispDate				= dispDate.split("/");

	outDispDate				= coDispDate.split("/");
	openCal					= '';
	var curValue			= $(coTgtInput).value.split("/");
	var newValue			= coDispDate.split("/");
	$(tgtView).innerHTML	= inDispDate[1]+"/"+inDispDate[0]+"/"+inDispDate[2];
	var currStamp			= new Date(curValue[2],curValue[0]-1,curValue[1],0,0,0);
	var newStamp			= new Date(newValue[2],newValue[0]-1,newValue[1],0,0,0);
	var plainDispDate		= outDispDate[1]+"/"+outDispDate[0]+"/"+outDispDate[2];
	if(currStamp < newStamp)
	{
		$(coTgtInput).value		= coDispDate;
		$(coTgtView).innerHTML	= plainDispDate;
	}
//	return false;
}

function closeCal(calID)
{
	var	CalDiv	= $(calID);
	var removed	= CalDiv.parentNode.removeChild(CalDiv);
	if(openCal){openCal = '';}
}

function showToolTip(e)
{
	if(!e){var e	= window.event;}
	var winWidth	= getWidth();
	var winHeight	= getHeight();
	
	if(e.pageX || e.pageY)
	{
		var leftPoint	= e.pageX;
		var topPoint	= e.pageY;
	}
	else if(document.documentElement)
	{
		var leftPoint	= e.clientX + document.documentElement.scrollLeft;
		var topPoint	= e.clientY + document.documentElement.scrollTop;
	}else{
		var leftPoint	= e.clientX + document.body.scrollLeft;
		var topPoint	= e.clientY + document.body.scrollTop;
	}
	var toolTipSrc			= (window.event) ? e.srcElement : e.target;
	var toolTip				= document.createElement('div');
	toolTip.id				= "toolTip";
	toolTip.style.position	= "absolute";
	toolTip.style.top		= topPoint+"px";
	if(leftPoint + 160 > winWidth)
	{
		toolTip.style.left		= leftPoint-160+"px";
	}else{
		toolTip.style.left		= leftPoint+"px";
	}
	toolTip.style.padding	= "3px 2px 2px";
	toolTip.style.width		= "160px";
	toolTip.style.border	= "1px solid #2b2b2b";
	toolTip.style.background= "#ffffff";
	toolTip.style.zIndex	= "3500";
	toolTip.innerHTML		= toolTipSrc.getAttribute('tooltip');
	document.getElementsByTagName('body')[0].appendChild(toolTip);
	overIcon				= true;
}

function hideToolTip()
{
	overIcon	= '';
	setInterval("removeTip()", 500);
}

function removeTip()
{
	if(overIcon == '')
	{
		if($('toolTip'))
		{
			$('toolTip').parentNode.removeChild($('toolTip'));
		}
	}
}

function submitRoomSearch(pgForm, tgtID)
{
	var tgtDiv			= $(tgtID);
	var serverScript	= pgForm.action;
	var errMsgs			= new Array();
	var reqMsgSet		= false;
	for(var i = 0; i < pgForm.elements.length; i++)
	{
		if(pgForm.elements[i].className.indexOf('required') != -1)
		{
			if(pgForm.elements[i].value == '')
			{
				if(isNaN(pgForm.guests))
				{
					if(!alertMsg){var alertMsg	= "Please fill in all required fields.";}
					errMsgs.push(pgForm.elements[i].name);
				}
			}
		}
		if(!formSubmit)
		{
			var formSubmit	= pgForm.elements[i].name+"="+pgForm.elements[i].value;
		}else{
			formSubmit	+= "&"+pgForm.elements[i].name+"="+pgForm.elements[i].value;
		}
	}
	var checkInString		= pgForm.rmCheckin.value.split("/");
	var checkOutString		= pgForm.rmCheckOut.value.split("/");
	var chekInDate			= new Date(checkInString[2],checkInString[0]-1,checkInString[1],0,0,0);
	var checkOutDate		= new Date(checkOutString[2],checkOutString[0]-1,checkOutString[1],0,0,0)
	if(chekInDate >= checkOutDate)
	{
		if(!alertMsg)
		{
			var alertMsg	= "\"Check-out Date\" must be after \"Check-in date\"";
		}else{
			alertMsg	= alertMsg+"\n\"Check-out Date\" must be after \"Check-in date\"";
		}
		errMsgs.push('rmCheckin');
		errMsgs.push('rmCheckOut');
	}
	if(errMsgs.length > 0)
	{
		alert(alertMsg+'\nPlease correct highlighted fields.');
		for(var j = 0; j < errMsgs.length; j++)
		{
			var fieldName	= errMsgs[j];
			if(pgForm.elements[fieldName].type == 'hidden')
			{
				if(pgForm.elements[fieldName].parentElement)
				{
					pgForm.elements[fieldName].parentElement.style.background = '#fff3c8';
				}else{
					pgForm.elements[fieldName].parentNode.style.background = '#fff3c8';
				}
			}else{
				pgForm.elements[fieldName].style.background = '#fff3c8';
			}
		}
		return false;
	}
	var rmReq	= new xmlRequest();
	rmReq.open("POST", serverScript, true);
	rmReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded charset=UTF-8");
	rmReq.onreadystatechange = function()
	{
		if(rmReq.readyState == 4 && rmReq.status == 200)
		{
			if(rmReq.responseText.substr(0,6) == "ERROR:")
			{
				alert(rmReq.responseText.substr(6));
			}else{
				tgtDiv.innerHTML	= rmReq.responseText;
			}
		}
	}
	rmReq.send(formSubmit);
	return false;
}

function submitGuestData(pgForm, serverScript, targetDiv, pgAnchor)
{
	var errMsgs		= new Array();
	pgReq			= new xmlRequest();
	var formSubmit	= null;
	targetObj		= $(targetDiv);
	var stdBG		= "#ffffff";
	var highliteBG	= "#fff3c8";
	for(var i = 0; i < pgForm.elements.length; i++)
	{
		if(!formSubmit)
		{
			if((pgForm.elements[i].type == 'checkbox')||(pgForm.elements[i].type == 'radio'))
			{
				if(pgForm.elements[i].checked){formSubmit = pgForm.elements[i].name+'='+(pgForm.elements[i].value);}
			}else{
				if(pgForm.elements[i].className.indexOf('noSubmit') == -1)
				{
					if(pgForm.elements[i].value)
					{
						var fieldData	= pgForm.elements[i].value;
						fieldData		= escape(fieldData.replace("&", "AMP"));
						formSubmit		= pgForm.elements[i].name+'='+(fieldData);
					}
				}
			}
		}else{
			if((pgForm.elements[i].type == 'checkbox')||(pgForm.elements[i].type == 'radio'))
			{
				if(pgForm.elements[i].checked){formSubmit += '&'+ pgForm.elements[i].name+'='+(pgForm.elements[i].value);}
			}else{
				if(pgForm.elements[i].className.indexOf('noSubmit') == -1)
				{
					if(pgForm.elements[i].value)
					{
						var fieldData	= pgForm.elements[i].value;
						fieldData		= escape(fieldData.replace("&", "AMP"));
						formSubmit		+= '&'+pgForm.elements[i].name+'='+(fieldData);
					}
				}
			}
		}
		if(pgForm.elements[i].className.indexOf('required') != -1)
		{
			if(pgForm.elements[i].className.indexOf('email') != -1)
			{
				if(isValidEmail(pgForm.elements[i].value) == false)
				{
					errMsgs.push(pgForm.elements[i].name);
				}
			}
			if(pgForm.elements[i].name	== 'cvcNO')
			{
				if(pgForm.elements[i].value == '')
				{
					errMsgs.push(pgForm.elements[i].name);
				}
				if(isNaN(pgForm.elements[i].value))
				{
					alert("Credit card verification must be a number!");
					return false;
				}
			}
			else if((pgForm.elements[i].type == 'radio') || (pgForm.elements[i].type == 'checkbox'))
			{
				if((pgForm.elements[i].name == 'cardType') && (pgForm.elements[i].checked))
				{
					var validCardNum	= validateCreditCard(pgForm.elements[i].value, pgForm['ccNo'].value);
					if(!validCardNum)
					{
						alert("Credit card number and type do not match!");
						return false;
					}
				}
				if(buttonChecked != pgForm.elements[i].name)
				{
					var checkRadio	= validateCheckRadio(pgForm, pgForm.elements[i].name);
					if(checkRadio == false)
					{
						errMsgs.push(pgForm.elements[i].name);
					}
				}
			}else{
				if(pgForm.elements[i].value == '')
				{
					errMsgs.push(pgForm.elements[i].name);
				}
			}
		}
	}
	for(var j = 0; j < pgForm.elements.length; j++)
	{
		if((pgForm.elements[j].className.indexOf('required') != -1) || (pgForm.elements[j].className.indexOf('notRequired') != -1))
		{
			var resetField	= pgForm.elements[j].name;
			if(isCheckRadio(pgForm, resetField))
			{
				if(!pgForm[resetField].length)
				{
					
					if(pgForm[resetField].parentElement)
					{
						pgForm[resetField].parentElement.style.background = stdBG;
					}else{
						pgForm[resetField].parentNode.style.background = stdBG;
					}
				}else{
					for(var k = 0; k < pgForm[resetField].length; k++)
					{
						if(pgForm[resetField][k].parentElement)
						{
							pgForm[resetField][k].parentElement.style.background = stdBG;
						}else{
							pgForm[resetField][k].parentNode.style.background = stdBG;
						}
					}
				}
			}
			else if(pgForm[resetField].type == 'hidden')
			{
				if(pgForm[resetField].parentElement)
				{
					pgForm[resetField].parentElement.style.background = stdBG;
				}else{
					pgForm[resetField].parentNode.style.background = stdBG;
				}
			}else{
				pgForm[resetField].style.background = stdBG;
			}
		}
	}
	if(errMsgs.length > 0)
	{
		alert('Required Field(s) blank.\nPlease correct highlighted fields.');
		for(var i = 0; i < errMsgs.length; i++)
		{
			var fieldName	= errMsgs[i];
			if(isCheckRadio(pgForm, fieldName))
			{
				if(pgForm[fieldName].length)
				{
					for(l = 0; l < pgForm[fieldName].length; l++)
					{
						if(pgForm[fieldName][l].parentElement)
						{
							pgForm[fieldName][l].parentElement.style.background = highliteBG;
						}else{
							pgForm[fieldName][l].parentNode.style.background = highliteBG;
						}
					}
				}else{
					if(pgForm[fieldName].parentElement)
					{
						pgForm[fieldName].parentElement.style.background = highliteBG;
					}else{
						pgForm[fieldName].parentNode.style.background = highliteBG;
					}
				}
			}
			else if(pgForm[fieldName].type == 'hidden')
			{
				if(pgForm[fieldName].parentElement)
				{
					pgForm[fieldName].parentElement.style.background = highliteBG;
				}else{
					pgForm[fieldName].parentNode.style.background = highliteBG;
				}
			}else{
				pgForm[fieldName].style.background = highliteBG;
			}
		}
		return false;
	}
	
	pgReq.open("POST", serverScript, true);
	pgReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded charset=UTF-8");
	pgReq.onreadystatechange = function()
	{
		if (pgReq.readyState == 4 && pgReq.status == 200)
		{
			if(pgReq.responseText.substr(0, 6) == "ERROR:")
			{
				alert(pgReq.responseText.substr(6));
			}
			else if(pgReq.responseText.substr(0, 7) == "secCode")
			{
				var	refreshStr	= randomString(5);
				targetObj.src	='http://'+location.host+'/captcha.php?width=120&height=32&chars=6&refresh='+refreshStr;
				alert(pgReq.responseText.substr(7));
			}
			else if(pgReq.responseText.substr(0,2) == "OK")
			{
				alert(pgReq.responseText.substr(3));
				pgForm.reset();
			}
			else if(pgReq.responseText.substr(0,11) == "PAGERETURN:")
			{
				targetObj.innerHTML	= pgReq.responseText.substr(11);
				location.href		= "#"+pgAnchor;
			}
		}
	}
	pgReq.send(formSubmit);
	return false;
}

function validateCreditCard(cardType, cardNum)
{
	cardNum	= cardNum.replace(/-/g, "");
	cardNum	= cardNum.replace(/\s/g, "");
	switch(cardType)
	{
		case 'MasterCard':
			var numCheck	= parseInt(cardNum.substr(0,2));
			var isValid	= false;
			for(var i = 51; i < 57; i++)
			{
				if(numCheck == i)
				{
					isValid	= true;
					break;
				}
			}
			break;
		case 'Visa':
			var numCheck	= parseInt(cardNum.substr(0,1));
			var isValid	= false;
			if(numCheck == 4)
			{
				isValid	= true;
				break;
			}
			break;
		case 'AmEx':
			var numCheck	= parseInt(cardNum.substr(0,2));
			var isValid	= false;
			if((numCheck == 34) || (numCheck == 37))
			{
				isValid	= true;
				break;
			}
			break;
		default:
			return false;
	}
	if(isValid)
	{
		var numbers		= cardNum.split("");
		var lastPlace	= numbers.length - 1;
		var ccCheckSum	= 0;
		for(var j = 0; j < numbers.length; j++)
		{
			var currNum	= parseInt(numbers[j]);
			if(j < lastPlace)
			{
				if(lastPlace % 2 == 0)
				{
					if(j % 2 == 0)
					{
						ccCheckSum += currNum;
					}else{
						var varNum	= currNum * 2;
						if(varNum >= 10)
						{
							varNum	-= 9;
						}
						ccCheckSum += varNum;
					}
				}else{
					if(j % 2 == 0)
					{
						var varNum	= currNum * 2;
						if(varNum >= 10)
						{
							varNum	-= 9;
						}
						ccCheckSum += varNum;
					}else{
						ccCheckSum += currNum;
					}
				}
			}else{
				ccCheckSum += currNum;
			}
		}
		if(ccCheckSum % 10 == 0)
		{
			return true;
		}else{
			return false;
		}
	}else{
		return false;
	}
}

function updateRoomForm(radioButton, roomPrice, valueName, rmRate, tgtID, dispDate)
{
	var tgtDiv		= $(tgtID);
	var timeStamp	= radioButton.name;
	roomPrice		= parseInt(roomPrice);
	if(radioButton.value != "0")
	{
		var roomID		= radioButton.value;
		var roomName	= $(roomID).innerHTML;
		var dateObj		= new Date(timeStamp * 1000);
		var weekdays	= new Array();
		weekdays[0]		= "Sun";
		weekdays[1]		= "Mon";
		weekdays[2]		= "Tue";
		weekdays[3]		= "Wed";
		weekdays[4]		= "Thu";
		weekdays[5]		= "Fri";
		weekdays[6]		= "Sat";
		
		var months		= new Array();
		months[0]		= "Jan";
		months[1]		= "Feb";
		months[2]		= "Mar";
		months[3]		= "Apr";
		months[4]		= "May";
		months[5]		= "Jun";
		months[6]		= "Jul";
		months[7]		= "Aug";
		months[8]		= "Sep";
		months[9]		= "Oct";
		months[10]		= "Nov";
		months[11]		= "Dec";
		
		var year		= dateObj.getFullYear();
		var mo			= dateObj.getMonth();
		var day			= dateObj.getDay();
		var date		= dateObj.getDate();
//		var dispDate	= weekdays[day]+", "+date+" "+months[mo]+" "+year;
		
		var lineItem			= document.createElement('div');
		lineItem.id				= "formLine"+timeStamp+"-"+roomID;
		lineItem.className		= "roomFormLine";
		var lineDate			= document.createElement('div');
		lineDate.className		= "roomFormDate";
		var lineCat				= document.createElement('div');
		lineCat.className		= "roomFormCategory";
		var lineRate			= document.createElement('div');
		lineRate.className		= "roomFormRate";
		var lineAddVal			= document.createElement('div');
		lineAddVal.className	= "roomFormAddedValue";
		var roomInput			= "<input type=\"hidden\" name=\"TS"+timeStamp+"\" value=\""+roomID+"\" />\n<input type=\"hidden\" name=\"rmRate-"+timeStamp+"\" value=\""+rmRate+"\" />";
	/*	roomInput.type			= "hidden";
		var rateInput			= document.createElement('input');
		rateInput.name			= timeStamp+'-rmRate';
		rateInput.value			= rmRate;
		rateInput.type			= "hidden";
	/*	var dateInput			=  document.createElement('input');
		dateInput.name			= "checkIn[]";
		dateInput.value			= timeStamp;
		dateInput.type			= "hidden";
		*/
		var formDivs	= tgtDiv.getElementsByTagName('div');
		var formLines	= getElementbyClass(formDivs, 'roomFormLine');
		for(var a = 0; a < formLines.length; a++)
		{
			if(formLines[a].id.substr(0, formLines[a].id.indexOf("-")) == "formLine"+timeStamp)
			{
				var replaceDiv	= formLines[a].id;
			}
		}
		var dispPrice			= addCommas(roomPrice.toFixed(0));
		lineDate.innerHTML		= dispDate;
		lineCat.innerHTML		= roomName;
		lineRate.innerHTML		= "&#3647;"+dispPrice+"<span class=\"roomRateNum\">"+roomPrice+"</span>";
		if(valueName != ''){valueName	= ", "+valueName;}
		lineAddVal.innerHTML	= "Breakfast"+valueName;
		lineItem.innerHTML		 = roomInput
				
		lineItem.appendChild(lineDate);
		lineItem.appendChild(lineCat);
		lineItem.appendChild(lineRate);
		lineItem.appendChild(lineAddVal);
		//lineItem.appendChild(roomInput);
		//lineItem.appendChild(rateInput);
		//lineItem.appendChild(dateInput);
		if(replaceDiv)
		{
			$(replaceDiv).parentNode.replaceChild(lineItem, $(replaceDiv));
		}else{
			tgtDiv.appendChild(lineItem);
		}
		radioButton.checked	= true;
	}else{
		tgtDiv.removeChild($("formLine"+timeStamp+"-"+roomID));
		var formDivs	= tgtDiv.getElementsByTagName('div');
		var formLines	= getElementbyClass(formDivs, 'roomFormLine');
		var count			= 1;
		for(var l = 0; l < formLines.length; l++)
		{
			var lineDivs		= formLines[l].getElementsByTagName('div');
			for(var i = 0; i < lineDivs.length; i++)
			{
				if(lineDivs[i].className == "roomFormNumber")
				{
					lineDivs[i].innerHTML	= count;
					count++;
				}
			}
		}
	}
	
	var roomSubTotal	= 0;
	formLines.length	= 0;
	var formLines	= getElementbyClass(formDivs, 'roomFormLine');
	var idArray		= new Array();
	for(var m = 0; m < formLines.length; m++)
	{
		idArray.push(formLines[m].id);
	}
	idArray.sort();
	var divArray	= new Array();
	for(var n = 0; n < idArray.length; n++)
	{
		divArray.push($(idArray[n]).cloneNode(true));
	}
	for(var o = 0; o < divArray.length; o++)
	{
		formLines[o].parentNode.replaceChild(divArray[o], formLines[o]);
	}
	
	if(formLines.length > 0)
	{
		for(var j = 0; j < formLines.length; j++)
		{
			var lineDivs	= formLines[j].getElementsByTagName('span');
			var rateDiv		= getElementbyClass(lineDivs, 'roomRateNum');
			for(var k = 0; k < rateDiv.length; k++)
			{
				roomSubTotal	= parseInt(rateDiv[k].innerHTML)+roomSubTotal;
			}
		}
	}
	var servCharge				= roomSubTotal * .10;
	var VAT						= (roomSubTotal + servCharge) * .07;
	var provTax					= roomSubTotal * .01;
	var total					= roomSubTotal+servCharge+VAT+provTax;
	$('subTotal').innerHTML		= addCommas(roomSubTotal.toFixed(0));
	$('servCharge').innerHTML	= addCommas(servCharge.toFixed(0));
	$('VAT').innerHTML			= addCommas(VAT.toFixed(0));
	$('provTax').innerHTML		= addCommas(provTax.toFixed(0));
	$('total').innerHTML		= addCommas(total.toFixed(0));
	
}

function clearCalendar(formID, listID)
{
	var calendarForm			= $(formID);
	calendarForm.reset();
	var formList				= $(listID);
	formList.innerHTML			= '';
	$('subTotal').innerHTML		= '';
	$('servCharge').innerHTML	= '';
	$('VAT').innerHTML			= '';
	$('provTax').innerHTML		= '';
	$('total').innerHTML		= '';
	calendarForm.reset();
	return false;
}

function sortAscending(a,b)
{
	return a - b;
}

function sortDescending(a,b)
{
	return b - a;
}

function addCommas(nStr)
{
	nStr	+= '';
	x		= nStr.split('.');
	x1		= x[0];
	x2		= x.length > 1 ? '.' + x[1] : '';
	var rgx	= /(\d+)(\d{3})/;
	while(rgx.test(x1))
	{
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

function markFieldsRequired(cBox, tgtID)
{
	var tgtDiv		= $(tgtID);
	var stdBG		= "#ffffff";
	var highliteBG	= "#fff3c8";
	if(cBox.checked)
	{
		var inputFields	= tgtDiv.getElementsByTagName('input');
		for(var i = 0; i < inputFields.length; i++)
		{
			if(inputFields[i].className != "varRequired")
			{
				inputFields[i].className	= "required";
			}
		}
		var selectFields	= tgtDiv.getElementsByTagName('select');
		for(var j = 0; j < selectFields.length; j++)
		{
			selectFields[j].className	= "required";
		}
	}else{
		var inputFields	= tgtDiv.getElementsByTagName('input');
		for(var i = 0; i < inputFields.length; i++)
		{
			if(inputFields[i].className != "varRequired")
			{
				inputFields[i].className	= "notRequired";
				if((inputFields[i].type == "radio") || (inputFields[i].type == "checkbox") || (inputFields[i].type == 'hidden'))
				{
						if(inputFields[i].parentElement)
						{
							inputFields[i].parentElement.style.background = stdBG;
						}else{
							inputFields[i].parentNode.style.background = stdBG;
						}
				}else{
					inputFields[i].style.background = stdBG;
				}
			}
		}
		var selectFields	= tgtDiv.getElementsByTagName('select');
		for(var j = 0; j < selectFields.length; j++)
		{
			selectFields[j].className	= "notRequired";
		}
	}
	cBox.className	= "required";
}

function checkFieldMark(cbID, tgtID, exCBID, varID)
{
	var tgtDiv		= $(tgtID);
	var cBox		= $(cbID);
	var stdBG		= "#ffffff";
	var highliteBG	= "#fff3c8";
	
	if(!cBox.checked)
	{
		var inputFields	= tgtDiv.getElementsByTagName('input');
		for(var i = 0; i < inputFields.length; i++)
		{
			if(inputFields[i].className != "varRequired")
			{
				inputFields[i].className	= "required";
			}
			if(inputFields[i].id == varID)
			{
				if($(exCBID).checked)
				{
					inputFields[i].className	= "required";
				}else{
					inputFields[i].className	= "varRequired";
				}
			}
		}
		var selectFields	= tgtDiv.getElementsByTagName('select');
		for(var j = 0; j < selectFields.length; j++)
		{
			selectFields[j].className	= "required";
		}
		cBox.checked	= true;
	}else{
		var inputFields	= tgtDiv.getElementsByTagName('input');
		for(var i = 0; i < inputFields.length; i++)
		{
			if(inputFields[i].id == varID)
			{
				if($(exCBID).checked)
				{
					inputFields[i].className	= "required";
				}else{
					inputFields[i].className	= "varRequired";
				}
			}
		}
	}
	if(exCBID)
	{
		if(exCBID.search("special") != -1)
		{
			var fieldName	= "special";
			var feaNum		= exCBID.substr(exCBID.indexOf("-")+1);
			var boxNum		= exCBID.substr(0, exCBID.indexOf("-")-7);
		}
		else if(exCBID.search("weekly") != -1)
		{
			var fieldName	= "weekly";
			var feaNum		= exCBID.substr(exCBID.indexOf("-")+1);
			var boxNum		= exCBID.substr(6, exCBID.indexOf("-")-6);
		}
		else if(exCBID.search("monthly") != -1)
		{
			var fieldName	= "monthly";
			var feaNum		= exCBID.substr(exCBID.indexOf("-")+1);
			var boxNum		= exCBID.substr(0, exCBID.indexOf("-")-7);
		}
		var boxCount	= 1;
		var CBarray		= new Array();
		var cbChecked	= '';
		while($(fieldName+boxCount+"-"+feaNum))
		{
			var optionalField		= $(fieldName+boxCount+"-"+feaNum);
			CBarray.push(optionalField);
			boxCount++;
		}
		for(var j = 0; j < CBarray.length; j++)
		{
			if(CBarray[j].checked)
			{
				cbChecked	= 'true';
				break;
			}
		}
		if(cbChecked == 'true')
		{
			var tmpClass	= 'notRequired';
			
		}else{
			var tmpClass	= 'required';
		}
		for(var k = 0; k < CBarray.length; k++)
		{
			CBarray[k].className	= tmpClass;
		}
	}
}

function basicAjax(serverScript, tgtID)
{
	if(openCal !='')
	{
		openCal	= '';
	}
	var	targetDiv	= $(tgtID);
	var basicReq	= new xmlRequest();
	basicReq.open("GET", serverScript, true);
	basicReq.onreadystatechange = function()
	{
		if(basicReq.readyState == 4 && basicReq.status == 200)
		{
			if(basicReq.responseText.substr(0, 6) == "ALERT:")
			{
				var alertString	= basicReq.responseText.substr(6, basicReq.responseText.indexOf("*")-6);
				alert(alertString);
				targetDiv.innerHTML	= basicReq.responseText.substr(basicReq.responseText.indexOf("*")+1);
			}else{
				targetDiv.innerHTML	= basicReq.responseText;
			}
		}
	}
	basicReq.send(null);
	return false;
}
