
var dayName = new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
var mDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var monthMon = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
var monthName = monthMon;
var monthNum = new Array("01","02","03","04","05","06","07","08","09","10","11","12");

var formName = 'hotelSearchForm';
var dDDChin = 'a_date';
var mDDChin = 'a_month_year';
var dDDChout = 'd_date';
var mDDChout = 'd_month_year';
var calendarPositioning = '';
var checkinLeft, checkinTop, returnLeft, returnTop, worldLeft, worldTop;

var arrow_left_img = staticPath+'/img/bn_arrow_calendar_previous_out.gif';
var arrow_right_img = staticPath+'/img/bn_arrow_calendar_next_out.gif';
left_arrow = new Image();
left_arrow.src = staticPath+'/img/bn_arrow_calendar_previous_out.gif';
left_arrow_over = new Image();
left_arrow_over.src = staticPath+'/img/bn_arrow_calendar_previous_over.gif';
right_arrow = new Image();
right_arrow.src = staticPath+'/img/bn_arrow_calendar_next_out.gif';
right_arrow_over = new Image();
right_arrow_over.src = staticPath+'/img/bn_arrow_calendar_next_over.gif';

var cal_close_img = staticPath+'/img/nav-cal_close.gif';
var sPreviousMonthText = 'Previous month';
var sNextMonthText = 'Next month';

var sDoc = "document";
var bFVParsingDate=false;

var today=new Date;
var curDay=today.getDate();
var curMon=today.getMonth();
var curYear=today.getYear();
if(document.getElementById && !document.all){
	curYear+=1900;
	visVar="visible";
} else {
	visVar="visible";
}
var stDay=curDay;
var stMon=curMon;
var stYear=curYear;

var n=(document.layers) ? 1:0;
var ie=(document.all) ? 1:0;
// Dom check added
var dom=(document.getElementById)?1:0;
if(parseFloat(navigator.appVersion) == 4.04){
	var isMacNS404=1;
} else {
	var isMacNS404=0;
}
var visVar="null";
function changecheckinDate (formObj) {
    changeDate(formObj,"checkin");
}

function changecheckoutDate (formObj) {
	changeDate(formObj,"checkout");
	
}

function setToday(formObj){
	formObj[dDDChin][14-1].selected = true;
	formObj[dDDChout][15-1].selected = true;
	formObj[mDDChin][0].selected = true;
	formObj[mDDChout][0].selected = true;
	hideCalendar('checkinCalendar');
	hideCalendar('checkoutCalendar');
}

function previousMonth(cName,fTxtPnt, monthNameIn, dayNameIn){
	curMon--;
	if(curMon<0) {
		curYear--;
		curMon=11;
	}
	displayCalendar(curDay,curMon,curYear,cName,fTxtPnt,monthNameIn,dayNameIn);
}

function nextMonth(cName,fTxtPnt,monthNameIn,dayNameIn) {
	curMon++;
	if(curMon>11) {
		curYear++;
		curMon=0;
	}
	displayCalendar(curDay,curMon,curYear,cName,fTxtPnt,monthNameIn,dayNameIn);
}

function MONtoMM(monthName) {
	for (i = 0; i < 12; i++) {
		if(monthName==monthMon[i]) {
			curMon=i;
		}
	}
}

function setDateInForm(fTxtPnt,passedDay,passedDate,monthName,dayName,layerName) {
	
	for(i=0;i<monthNum.length;i++) {
		temp=monthNum[i];
		if(temp==passedDate.substring(4,6)){
			temp2 = i;
		}
	}
	
	if(passedDay == "30" && mDays[temp2] == "31" && document.hotelSearchForm.d_date.length == 30) {
		lastDayString = "31";
		document.hotelSearchForm.d_date[30] = new Option(lastDayString, lastDayString);
	}
		
	if(passedDay == "31") {
		if(document.hotelSearchForm.a_date.length == 30) {
			lastDayString = "31";
			document.hotelSearchForm.a_date[30] = new Option(lastDayString, lastDayString);
		}
		document.hotelSearchForm.a_date.selectedIndex = 30;
		document.hotelSearchForm.d_date.selectedIndex = 0;
		document.hotelSearchForm.d_month_year.selectedIndex = document.hotelSearchForm.a_month_year.selectedIndex+1;
	}
	passedDay=passedDay*1;
	var outMonthYear = eval(sDoc + '.' + formName + "." + monthName);
	var outMonthDay = eval(sDoc + '.' + formName + "." + dayName);
	for(i=0;i < outMonthDay.options.length;i++) {
		if(passedDay==outMonthDay.options[i].value) {
			outMonthDay.selectedIndex=i;
		}
	}
	for(i=0;i < outMonthYear.options.length;i++) {
		if(passedDate==outMonthYear.options[i].value) {
			outMonthYear.selectedIndex=i;
		}
	}
	if(bFVParsingDate==true){parseDate();}
	if(layerName=='checkinCalendar'){
		changecheckinDate(eval(sDoc + '.' + formName));
	} else {
		changecheckoutDate(eval(sDoc + '.' + formName));
	}
	if(monthName.substring(0,1) == "a") {
		setOutPlusOne();
		checkForHistorical();
		checkForLastMonth();
	}
	else if (monthName.substring(0,1) == "d") {	
		setisReturnAdressChosen(1);
	}
	
}

function displayCalendar(day,month,year,cName,fTxtPnt,monthNameIn,dayNameIn) {

	var thisMName=monthNameIn;
	var thisDName=dayNameIn;
	var isLeapYear = ((year-2000)%4==0) ? true : false ;
	if(month==1) {
		if(isLeapYear) {
			mDays[1]=29;
		}
		else {
			mDays[1]=28;
		}
	}
	var tempDate=new Date(year,month,1);
	var firstDay=tempDate.getDay();
	var str='';
	str+='<table border="0" cellpadding="0" cellspacing="0" width="180">';
	str+='<tr>';
	str+='	<td><img src="'+staticPath+'/img/gx_findbook_corner_light_t_l.gif" width="5" height="5"></td>';
	str+='	<td bgcolor="#EAEAEA">'+wImg(7,1)+'</td>';
	str+='	<td bgcolor="#EAEAEA">'+wImg(156,1)+'</td>';
	str+='	<td bgcolor="#EAEAEA">'+wImg(7,1)+'</td>';
	str+='	<td><img src="'+staticPath+'/img/gx_findbook_corner_light_t_r.gif" width="5" height="5"></td>';
	str+='</tr>';
	str+='<tr bgcolor="#EAEAEA"><td colspan="5">'+wImg(180,1)+'</td></tr>';
	str+='<tr bgcolor="#EAEAEA">';
	str+='	<td colspan="2">&nbsp;</td>';
	str+='<td><table border="0" cellpadding="0" cellspacing="0" width="156"><tr><td><img src="'+staticPath+'/img/bn_calendar_icon_grey.gif"></td>';
	if(cName == "checkinCalendar") {
		//insert Arrival date translation
		str+='		<td align="right">'+arrivalDateText+':</td>';
	}
	else if(cName == "checkoutCalendar") {
		//insert Departure date translation
		str+='		<td align="right">'+departureDateText+':</td>';
	}	
	str+='<td>'+wImg(5,1)+'</td></tr></table></td><td colspan="2">'+wImg(1,1)+'</td>';
	//str+='	<td colspan="2">&nbsp;</td>';
	str+='</tr>';
	str+='<tr bgcolor="#EAEAEA"><td colspan="5">'+wImg(180,8)+'</td></tr>';
	str+='<tr bgcolor="#EAEAEA">';
	str+='	<td colspan="2">&nbsp;</td>';
	str+='	<td>';
	str+='	<table border="0" cellpadding="0" cellspacing="0" width="156">';
	str+='	<tr>';
	
	str+='</tr><tr>';
	str+='		<td align="right">';
	str+='		<table border="0" cellpadding="0" cellspacing="0" width="80">';
	str+='		<tr>';
	
// *** PREVIOUS MONTH BUTTON START ***
	if((month < stMon)&& (year==stYear)) {
		str+='<td>&nbsp;</td>';
	} else {
		if((month == stMon)&& (year==stYear)) {
			str+='<td>&nbsp;</td>';
		} else {
			str+='<td><a href="javascript:previousMonth(\''+cName+'\',\''+fTxtPnt+'\',\''+thisMName+'\',\''+thisDName+'\');" onmouseover="document.arrowLeft.src=left_arrow_over.src" onmouseout="document.arrowLeft.src=left_arrow.src"><img border=0 src="'+arrow_left_img+'" alt="'+sPreviousMonthText+'" name="arrowLeft" id="arrowLeft"></a></td>';
		}
	}
// *** PREVIOUS MONTH BUTTON END ***
// *** MONTH/YEAR START ***
	str+='			<td align="center"><b>' + monthName[month] + ' ' + year + '</b></td>';
// *** MONTH/YEAR END ***
// *** NEXT MONTH START ***	
	//alert(month+' '+stMon);
	if((month>=stMon+10)&& (year==stYear)) {
		str+='<td>&nbsp;</td>';
	} else {
		if((month>=stMon)&&(year > stYear)) {
			str+='<td>&nbsp;</td>';
		} else {
			str+='<td align="right"><a href="javascript:nextMonth(\''+cName+'\',\''+fTxtPnt+'\',\''+thisMName+'\',\''+thisDName+'\');" onmouseover="document.arrowRight.src=right_arrow_over.src" onmouseout="document.arrowRight.src=right_arrow.src"><img border=0 src="'+arrow_right_img+'" alt="' +sNextMonthText+'" name="arrowRight" id="arrowRight"></a></td>';
		}
	}
// *** NEXT MONTH END ***
	str+='		</tr>';
	str+='		<tr>';
	str+='			<td>'+wImg(6,1)+'</td>';
	str+='			<td>'+wImg(68,1)+'</td>';
	str+='			<td>'+wImg(6,1)+'</td>';
	str+='		</tr>';
	str+='		</table>';
	str+='		</td>';
	str+='	</tr>';
	str+='	</table>';
	str+='	</td>';
	str+='	<td colspan="2">&nbsp;</td>';
	str+='</tr>';
	str+='<tr bgcolor="#EAEAEA"><td colspan="5">'+wImg(180,3)+'</td></tr>';
	str+='</table>';
	str+='<table border="0" cellpadding="0" cellspacing="0" width="180">';
	str+='<tr bgcolor="#E0E0E0">';
	str+='	<td>'+wImg(13,3)+'</td>';
	str+='	<td>'+wImg(22,1)+'</td>';
	str+='	<td>'+wImg(22,1)+'</td>';
	str+='	<td>'+wImg(22,1)+'</td>';
	str+='	<td>'+wImg(22,1)+'</td>';
	str+='	<td>'+wImg(22,1)+'</td>';
	str+='	<td>'+wImg(22,1)+'</td>';
	str+='	<td>'+wImg(22,1)+'</td>';
	str+='	<td>'+wImg(13,1)+'</td>';
	str+='</tr>';
// *** DAY LEGEND START ***
	str+='<tr bgcolor="#E0E0E0" align="center">';
	str+='	<td>&nbsp;</td>';
	for(var i=0;i<dayName.length;i++) {
		str+='<td><b>'+dayName[i].substring(0,1)+'</b></td>';
	}
	str+='	<td>&nbsp;</td>';
	str+='</tr>';
// *** DAY LEGEND END ***
	str+='<tr><td colspan="9" bgcolor="#E0E0E0">'+wImg(1,3)+'</td></tr>';
// *** DAYS START ***
	var dayCount=1;
	str+='<tr><td colspan="9" bgcolor="#FFFFFF">'+wImg(1,6)+'</td></tr>';
	str+='<tr bgcolor="#FFFFFF" align="center">';
	str+='	<td>&nbsp;</td>';
	// *** insert "blank days" start ***
	for(var i=0;i<firstDay;i++) {
		str+='<td>&nbsp;</td>';
	}
	// *** insert "blank days" end ***
	// *** insert past, present and future month days start ***
	var dayString;
	var monthString = monthMon[curMon];
	var yearmonthString = year+''+monthNum[curMon];
	for(var i=0;i<mDays[month];i++) {
		if(dayCount < 10) {
			dayString='0'+dayCount;
		} else {
			dayString=dayCount;
		}
		if((i < (stDay-1))&&(month==(stMon))&&(curYear==stYear)) {
			str+='<td><font color="#AAAAAA">'+ dayCount++ +'</font></td>';
		} else {
			str+='<td><a class="fhe" href="javascript:setDateInForm(\''+fTxtPnt+'\',\''+dayString+'\',\''+yearmonthString+'\',\''+thisMName+'\',\''+thisDName+'\',\''+cName+'\');" class="toolBodyCopyLink">'+dayCount++ +'</a></td>';
		}
		if((i+firstDay+1)%7==0&&(dayCount<mDays[month]+1)) {
			str+='	<td>&nbsp;</td>';
			str+='</tr>';
			str+='<tr><td colspan="9" bgcolor="#FFFFFF">'+wImg(1,6)+'</td></tr>';
			str+='<tr bgcolor="#FFFFFF" align="center">';
			str+='	<td>&nbsp;</td>';
		}
	}
	// *** insert past, present and future month days end ***
	var totCells=firstDay+mDays[month];
	var remainingNumberOfCells;

	if(totCells>35) {
		remainingNumberOfCells=(42-totCells);
	} else if (totCells>28) {
		remainingNumberOfCells=(35-totCells);
	} else {
		remainingNumberOfCells=(28-totCells);
	}
	for(var i=0;i<remainingNumberOfCells;i++) {
		str+='<td>&nbsp;</td>';
	}
	str+='	<td>&nbsp;</td>';
	str+='</tr>';
// *** DAYS END ***
	str+='<tr><td colspan="9" bgcolor="#FFFFFF">'+wImg(1,6)+'</td></tr>';
	str+='</table>';
	str+='<table border="0" cellpadding="0" cellspacing="0" width="180">';
	str+='<tr><td colspan="5" bgcolor="#EAEAEA">'+wImg(1,6)+'</td></tr>';
	str+='<tr bgcolor="#EAEAEA">';
	str+='	<td colspan="2">&nbsp;</td>';
	str+='	<td align="right">';
	str+='	<table border="0" cellpadding="0" cellspacing="0" width="44">';
	str+='	<tr>';
	str+='		<td height="16" class="tdOutStyle" onmouseover="tdOver(this)" onmouseout="tdOut(this)" onclick="javascript:toggleLayer(\''+cName+'\')" align="center">Close<br>';
	str+='		'+wImg(1,1)+'</td>';
	str+='	</tr>';
	str+='	</table>';
	str+='	</td>';
	str+='	<td colspan="2">&nbsp;</td>';
	str+='</tr>';
	str+='<tr><td colspan="5" bgcolor="#EAEAEA">'+wImg(1,5)+'</td></tr>';
	str+='<tr>';
	str+='	<td><img src="'+staticPath+'/img/gx_findbook_corner_light_b_l.gif" width="5" height="5"></td>';
	str+='	<td bgcolor="#EAEAEA">'+wImg(7,1)+'</td>';
	str+='	<td bgcolor="#EAEAEA">'+wImg(156,1)+'</td>';
	str+='	<td bgcolor="#EAEAEA">'+wImg(7,1)+'</td>';
	str+='	<td><img src="'+staticPath+'/img/gx_findbook_corner_light_b_r.gif" width="5" height="5"></td>';
	str+='</tr>';
	str+='</table>';
	display(cName,str);
}

function display(id,str) {
	if(dom){
		document.getElementById(id).innerHTML=str;
	} else {
		if(n||ie) {
			if(n) {
				with (document[id].document) {
					open();
					write(str);
					close();
				}
			} else {
				document.all[id].innerHTML=str;
			}
		}
	}
}

var visVar;
if(dom){
	visVar="visible";
	var layerRef="document.getElementById";
	var styleSwitch=".style";
} else {
	if(n) {
		visVar="show";
		var layerRef="document.layers";
		var styleSwitch="";
	} else {
		visVar="visible";
		var layerRef="document.all";
		var styleSwitch=".style";
	}
}
function togglecheckinCalendar(){
	toggleCalendar("checkinCalendar");
}

function togglecheckoutCalendar() {
	toggleCalendar("checkoutCalendar");
}

function toggleCalendar(name){
	var mF,dF,name2;
	if(name=="checkinCalendar"){
		mF = mDDChin;
		dF = dDDChin;
		name2="checkoutCalendar";	
	}else{
		mF = mDDChout;
		dF = dDDChout;
		name2="checkinCalendar";
	}
	if(dom||ie){
		if(document.getElementById(name2).style.visibility == visVar){hideCalendar(name2)}
		if (eval(sDoc + '.' + formName + "." + mF + ".value")==0) {
			eval(sDoc + '.' + formName + '.' + mF + '.value=""');
			eval(sDoc + '.' + formName + '.' + dF + '.value=""');
		}
		if (!eval(sDoc + '.' + formName + "." + mF + ".value")=="") {
			curMon = eval(sDoc + '.' + formName + "." + mF + ".value");
			curYear=curMon.substring(0,4) * 1;
			curMon=adjLeadZero(curMon);
			iChoutM = curMon;
			mDays[1]=getFebDays();
			curDay = eval(sDoc + '.' + formName + "." + dF+ ".value");
		} else {
			curDay=today.getDate();
			curMon=today.getMonth();
			curYear=today.getYear();
		}
	}else{
		var oMonthDD = eval(sDoc + '.' + formName + "." + mF);
		var oDayDD = eval(sDoc + '.' + formName + "." + dF);
		if (oMonthDD.options[oMonthDD.selectedIndex].value==0) {
			oMonthDD.options[oMonthDD.selectedIndex].value="";
			oDayDD.options[oDayDD.selectedIndex].value="";
		}
		if (!oMonthDD.options[oMonthDD.selectedIndex].value=="") {
			curMon = oMonthDD.options[oMonthDD.selectedIndex].value;
			curYear=curMon.substring(4,8) * 1;
			MONtoMM(curMon.substring(0,3));
			curDay = oDayDD.options[oDayDD.selectedIndex].value;
		} else {
			curDay=today.getDate();
			curMon=today.getMonth();
			curYear=today.getYear()+1900; //NA added 1900 as a fix for SA19640
		}
	}
	if(dom){
		if(!(document.getElementById(name).style.visibility == visVar)){displayCalendar(curDay, curMon, curYear, name, 'document.pickDateForm.textReturn', mF, dF)}
		toggleLayer(name);
	}else{
		if(!eval(layerRef+'[name]'+styleSwitch+'.visibility == visVar')) displayCalendar(curDay, curMon, curYear, name, 'document.pickDateForm.textReturn', mF, dF);
		toggleLayer(name);
	}
}

function getFebDays(){
	var isItLeapYear = ((curYear-2000)%4==0) ? true : false ;
	if(isItLeapYear){
		return 29;
	} 
	else {
		return 28;
	}
}

function showCalendar(layerName) {
	if(dom){
		document.getElementById(layerName).style.visibility = "visible";
	} else {
		eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="visible"');
	}
}

function hideCalendar(layerName) {
	if(dom){
		document.getElementById(layerName).style.visibility = "hidden";
	} else {
		eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="hidden"');
	}
}

function toggleLayer(layerName) {
	if(dom){
		if(document.getElementById(layerName).style.visibility == visVar){
			hideCalendar(layerName);
		} else {
			showCalendar(layerName);
		}
	} else {
		if(eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility == visVar')) {
			hideCalendar(layerName);
		} else {
			showCalendar(layerName);
		}
	}
}

function wImg(width,height) {
	
	return '<img src="'+staticPath+'/img/dot_trans.gif" width="'+width+'" height="'+height+'">';
}

function adjLeadZero(currentMonth) {
	if (curMon.substring(4,5)=="0") 
				return curMon.substring(5,6)-1;
			else 	return curMon.substring(4,6)-1;
	}
	
	
function changeDate (formObj,intOut) {

	var iChoutSel, iChinSel, intcheckoutDate, intcheckinDate, i;
	var iChinY, iChoutY, iChinM, iChoutM, check;

	iChinSel    = formObj[dDDChin].selectedIndex;
	intcheckinDate        = formObj[dDDChin][iChinSel].value;
	iChoutSel   = formObj[dDDChout].selectedIndex;
	intcheckoutDate	      = formObj[dDDChout][iChoutSel].value;
		
	if (intcheckoutDate!="" && intcheckinDate!="") {
	
		iChinSel = formObj[mDDChin].selectedIndex;
		curMon	= formObj[mDDChin][iChinSel].value;
		iChinY = curMon.substring(0,4);
		curMon=adjLeadZero(curMon);
		iChinM = curMon;
				
		iChoutSel = formObj[mDDChout].selectedIndex;
		curMon	= formObj[mDDChout][iChoutSel].value;
		iChoutY = curMon.substring(0,4);
		curMon=adjLeadZero(curMon);
		iChoutM = curMon;

		var isItLeapYear = ((iChinY-2000)%4==0) ? true : false ;
		if(iChinM == 1) {
			if(isItLeapYear){
				mDays[1]=29;
				
			} 
			else {
				mDays[1]=28;
			}
		}

	if (intOut=='checkin') {
		if(isItLeapYear && iChinM == 1){
			temp9 = document.hotelSearchForm.a_month_year.value;
			temp10 = temp9.substring(4,6);
			if(intcheckinDate == "29" && temp10 == "02") {
				document.hotelSearchForm.d_date.selectedIndex = 0;
				document.hotelSearchForm.d_month_year.selectedIndex = document.hotelSearchForm.a_month_year.selectedIndex+1;
			}
		}
		else {

			if (intcheckinDate + 1 >= intcheckoutDate && iChinM >= iChoutM && iChinY >= iChoutY) {
				intcheckoutDate = intcheckinDate;
				intcheckoutDate++;
				check = 1;
			}
			if ((iChinM > iChoutM && iChinY >= iChoutY) || (iChinY > iChoutY)) {check = 1;}
	
			iChoutM = iChinM;
			iChoutY = iChinY;
	
			if (intcheckinDate >= mDays[iChinM]) {
				intcheckinDate = mDays[iChinM];
				formObj[dDDChin][intcheckinDate-1].selected = true;
			
				intcheckoutDate = 1;
				iChoutM++;
	
				if (iChoutM > 11) {
					iChoutM = 0;
					iChoutY++;
				}
			}
	
			if (check == 1) {
				formObj[dDDChout][intcheckoutDate-1].selected = true;
				curMon = iChoutY+monthNum[iChoutM];
	
				for (i = 0; i < formObj[mDDChout].options.length; i++) {
					if (curMon==formObj[mDDChout][i].value) {
						formObj[mDDChout][i].selected = true;
					}
				}
			}
		}
	} else {
			if ((intcheckoutDate <= intcheckinDate && iChoutM <= iChinM && iChoutY <= iChinY) || (iChoutM < iChinM && iChoutY <= iChinY) || (iChoutY < iChinY)) {
			if (iChoutM < iChinM || iChoutY < iChinY) {
				if (iChoutY < iChinY) {
					iChoutY = iChinY;
				}
				if (intcheckoutDate > intcheckinDate) {
					iChoutM = iChinM;
				} else {
					iChoutM = iChinM + 1;
				}
			} else {
				iChoutM++;
			}

			if (iChoutM > 11) {
				iChoutM = 0;
				iChoutY++;
			}
			curMon = iChoutY+monthNum[iChoutM];

			for (i = 0; i < formObj[mDDChout].options.length; i++) {
				if (curMon==formObj[mDDChout][i].value) {
					formObj[mDDChout][i].selected = true;
				}
			}
		}

		if (intcheckoutDate > mDays[iChoutM]) {
			intcheckoutDate = mDays[iChoutM];
			formObj[dDDChout][intcheckoutDate-1].selected = true;
		}
		curMon = iChoutY+monthNum[iChoutM];

		for (i = 0; i < formObj[mDDChout].options.length; i++) {
			if (curMon==formObj[mDDChout][i].value) {
				formObj[mDDChout][i].selected = true;
			}
		}
		
	}
	}
	//hideCalendar('checkinCalendar');
	//hideCalendar('checkoutCalendar');
	return;
}

