
	function dayDiff(dtDate1,dtDate2){
		var intMS1 = dtDate1.valueOf();
		var intMS2 = dtDate2.valueOf();
		var intDays1 = intMS1/1000/60/60/24;
		var intDays2 = intMS2/1000/60/60/24;
		var intDiff = intDays2-intDays1;
		return intDiff;
	}
	
	function dayAdd(intDays,objDate){
		var intDate = objDate.valueOf();
		var intAdd = (intDays * 24 * 60 * 60 * 1000);
		intDate = intDate + intAdd;
		var objReturnDate = new Date(intDate);
		return objReturnDate;
	}

	function OutputDateString(objDate){
		var intYear = objDate.getFullYear();
		if(intYear < 2000){
			intYear = intYear + 100;
		}
		var arrMonths = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
		return objDate.getDate() + " " + arrMonths[objDate.getMonth()] + " " + intYear;
	}

	function ChangeStartDate(){
		var objStartDate = new Date(document.bookform.StartDate.value);
		var objEndDate = new Date(document.bookform.EndDate.value);
		
		if(!isNaN(objStartDate)){ // if there is a valid Start Date
			document.bookform.StartDate.value = OutputDateString(objStartDate);
			if(!isNaN(objEndDate)){ // if there is a valid End Date
				CalculateNumNights();
			} else {
				if(document.bookform.NumNights.selectedIndex == 0){
					document.bookform.NumNights.selectedIndex = 1;
				}
				ChangeNumNights();
			}
		}
	}
	
	function ChangeEndDate(){
		var objStartDate = new Date(document.bookform.StartDate.value);
		var objEndDate = new Date(document.bookform.EndDate.value);
		
		if(!isNaN(objEndDate)){ // if there is a valid End Date
			document.bookform.EndDate.value = OutputDateString(objEndDate)
			if(!isNaN(objStartDate)){ // if there is a valid Start Date
				CalculateNumNights();
			} else {
				if(document.bookform.NumNights.selectedIndex > 0){
					ChangeNumNights();
				}
			}
		}
	}
	
	function ChangeNumNights(){
		var intNumNights = document.bookform.NumNights.selectedIndex;
		var objStartDate = new Date(document.bookform.StartDate.value);
		var objEndDate = new Date(document.bookform.EndDate.value);
		
		if(intNumNights > 0){
			if(!isNaN(objStartDate)){
				// hack to fix Oct 23 with 8 nights problem
				if(intNumNights > 7 && (document.bookform.StartDate.value == '23 Oct 2005' || document.bookform.StartDate.value == '23 Oct 2006')){
					intNumNights = intNumNights + 1;
				}
				objEndDate = dayAdd(intNumNights,objStartDate);
				document.bookform.EndDate.value = OutputDateString(objEndDate);
			} else {
				if(!isNaN(objEndDate)){
					objStartDate = dayAdd((0 - intNumNights),objEndDate);
					document.bookform.StartDate.value = OutputDateString(objStartDate);
				}
			}
		}
	}
	
	function CalculateNumNights(){
		var objStartDate = new Date(document.bookform.StartDate.value);
		var objEndDate = new Date(document.bookform.EndDate.value);
		var intNumNights = dayDiff(objStartDate,objEndDate)
		if((intNumNights > -1) && (intNumNights < 22)){
			document.bookform.NumNights.selectedIndex = intNumNights;
		} else {
			document.bookform.NumNights.selectedIndex = 0;
		}
	}
	
	function formSubmit(){
		document.bookform.ReferringPage.value = getReferrerCookie("ReferringPage");
		document.bookform.submit();
	}
