//BaseURL='http://test.hotelsolutions.uk.com/'
BaseURL='http://www.lthonline.co.uk/'


function GetDisplayMonth(dDate) {
	dDate=new Date(dDate)
	
	var aMonths=new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec')
	return aMonths[dDate.getMonth()] + ' ' +dDate.getFullYear();
}

function ValidateSubmit() {

	var ocheckin=document.getElementById('checkin').value;
	var ocheckout=document.getElementById('checkout').value;
	var oDuration=document.getElementById('ddlNights');

	var mon = ocheckin.substring(0,ocheckin.indexOf('/'));
	var monminus = ocheckin.substring(ocheckin.indexOf('/')+1,ocheckin.length); 
	var day = monminus.substring(0,monminus.indexOf('/'));
	var year = monminus.substring(monminus.indexOf('/')+1,monminus.length);

	var myDatein = new Date(year,day-1,mon);
	var oCheckInDay = myDatein.getDate();
	var oCheckInMonth = myDatein.getMonth()+"#"+myDatein.getFullYear();
	document.getElementById('ddlCheckInDay').value = oCheckInDay;
	document.getElementById('ddlCheckInMonth').value= oCheckInMonth;


	var mono = ocheckout.substring(0,ocheckout.indexOf('/'));
	var monminuso = ocheckout.substring(ocheckout.indexOf('/')+1,ocheckout.length); 
	var dayo = monminuso.substring(0,monminuso.indexOf('/'));
	var yearo = monminuso.substring(monminuso.indexOf('/')+1,monminuso.length);
	var myDateout = new Date(yearo,dayo-1,mono);
	var oCheckOutDay = myDateout.getDate();
	var oCheckOutMonth = myDateout.getMonth()+"#"+myDateout.getFullYear();
	document.getElementById('ddlCheckOutDay').value= oCheckOutDay;
	document.getElementById('ddlCheckOutMonth').value= oCheckOutMonth;

	var dCheckInDate=new Date(oCheckInMonth.split('#')[1],oCheckInMonth.split('#')[0],oCheckInDay);
	var dCheckOutDate=new Date(oCheckOutMonth.split('#')[1],oCheckOutMonth.split('#')[0],oCheckOutDay);

	var iDuration=DateDiff(dCheckInDate,dCheckOutDate)-1;
	var dNow=new Date();
	var dCurrentDate=new Date(dNow.getFullYear(),dNow.getMonth(),dNow.getDate());
	var sWarn='';

	if(ocheckin == '' || ocheckout == ''){
		sWarn+='The Check in date must enter';
	}
	
	//check arrival date is not before today
	if (dCheckInDate<dCurrentDate) {
		sWarn+='The Check in date must be after the Current Date\n';
		oCheckInDay.className='error';
		oCheckInMonth.className='error';
	} else {
		oCheckInDay.className='';
		oCheckInMonth.className='';
	}
	
	//check departure date is after checl out date
	if (dCheckOutDate<=dCheckInDate) {
		sWarn+='The Check in date must be before the Check out date\n';
		oCheckOutDay.className='error';
		oCheckOutMonth.className='error';
	} else {
		oCheckOutDay.className='';
		oCheckOutMonth.className='';
	}
	
	//check duration is not > 21
	if (iDuration>21) {
		sWarn+='The number of nights cannot exceed 21\n';
		oCheckOutDay.className='error';
		oCheckOutMonth.className='error';
	} else {
		oCheckOutDay.className='';
		oCheckOutMonth.className='';
	}
	
	//pop up the warnings if there are any else submit the form
	if (sWarn=='') {
		document.getElementById('frmBooking').submit();
	} else {
		alert(sWarn);
	}

}

function CheckValidMonthDay(sType) {
	
	var oDay=document.getElementById('ddlCheck'+sType+'Day');
	var oMonth=document.getElementById('ddlCheck'+sType+'Month');
	var iDay=oDay.value;
	var iMonth=oMonth.value.split('#')[0];
	var iYear=oMonth.value.split('#')[1];
	var bOk;
	
	if (iMonth==1 && CheckLeapYear(iYear) && iDay > 29) {
		bOk=false;
	} else if (iMonth==1 && CheckLeapYear(iYear)==false && iDay > 28	) {
		bOk=false;
	} else if ((iMonth==3||iMonth==5||iMonth==8||iMonth==10)&&iDay==31) {
		bOk=false;
	} else {
		bOk=true;
	}
		
	//if it's an invalid date then take one off and call the function again
	if (bOk==false) {
		oDay.value=parseInt(oDay.value)-1;
		CheckValidMonthDay(sType);
	}
}

function SetDateDropDown(sType, dDate) {

//	var oDay=document.getElementById('ddlCheck'+sType+'Day');
//	var oMonthYear=document.getElementById('ddlCheck'+sType+'Month');
//alert("d at  : " +dDate);

	
//	oDay.value=dDate.getDate();
	var ocheckout=document.getElementById('checkout');
	var mon = dDate.getMonth()+1

	ocheckout.value= (dDate.getDate() < 10 ? '0' : '') + dDate.getDate()+'/'+(mon < 10 ? '0' : '') + mon+'/'+dDate.getFullYear();
	
}


function CalculateCheckOutDate() {

	var oDuration=document.getElementById('ddlNights');
	
//	var oCheckInDay=document.getElementById('ddlCheckInDay');
//	var oCheckInMonth=document.getElementById('ddlCheckInMonth');
//	var oCheckOutDay=document.getElementById('ddlCheckOutDay');
	var ocheckin=document.getElementById('checkin').value;
//	alert("ocheck in : " + ocheckin);
	var mon = ocheckin.substring(0,ocheckin.indexOf('/'));
	var monminus = ocheckin.substring(ocheckin.indexOf('/')+1,ocheckin.length); 
	var day = monminus.substring(0,monminus.indexOf('/'));
	var year = monminus.substring(monminus.indexOf('/')+1,monminus.length);

	var myDatein = new Date(year,day-1,mon);
//   alert("myDatein : " + myDatein);
	var oCheckInDay = myDatein.getDate();
	var oCheckInMonth = myDatein.getMonth();
	var oCheckInYear = myDatein.getFullYear();
	
	var oCheckOutMonth=document.getElementById('ddlCheckOutMonth');

	var dCheckInDate=new Date(oCheckInYear,oCheckInMonth,oCheckInDay);
	var dCheckOutDate=dCheckInDate;
	var iDuration=parseInt(oDuration.value);
	dCheckOutDate.setDate(dCheckOutDate.getDate()+iDuration);


	SetDateDropDown('Out',dCheckOutDate);
	
}

function HasMonth(oDropDown, dDate) {

	var sMonthYear=dDate.getMonth()+'#'+dDate.getFullYear();
	var bHasMonth=false;
	for (var i=0;i<oDropDown.options.length;i++) {
		if (oDropDown.options[i].value==sMonthYear) {
			bHasMonth=true;
			continue;
		}
	}
	
	return bHasMonth;
	
}

function CalculateNewDuration() {
	//alert("Enter ");
	var ocheckin=document.getElementById('checkin').value;
	var ocheckout=document.getElementById('checkout').value;
	
	var mon = ocheckin.substring(0,ocheckin.indexOf('/'));
	var monminus = ocheckin.substring(ocheckin.indexOf('/')+1,ocheckin.length); 
	var day = monminus.substring(0,monminus.indexOf('/'));
	var year = monminus.substring(monminus.indexOf('/')+1,monminus.length);
	var myDatein = new Date(year,day-1,mon);
	var oCheckInDay = myDatein.getDate();
	var oCheckInMonth = myDatein.getMonth();
	var oCheckInYear = myDatein.getFullYear();

	var mono = ocheckout.substring(0,ocheckout.indexOf('/'));
	var monminuso = ocheckout.substring(ocheckout.indexOf('/')+1,ocheckout.length); 
	var dayo = monminuso.substring(0,monminuso.indexOf('/'));
	var yearo = monminuso.substring(monminuso.indexOf('/')+1,monminuso.length);
	var myDateout = new Date(yearo,dayo-1,mono);
	var oCheckoutDay = myDateout.getDate();
	var oCheckOutMonth = myDateout.getMonth();
	var oCheckOutYear = myDateout.getFullYear();

	var oDuration=document.getElementById('ddlNights');
//	var oCheckInDay=document.getElementById('ddlCheckInDay');
//	var oCheckInMonth=document.getElementById('ddlCheckInMonth');
//	var oCheckOutDay=document.getElementById('ddlCheckOutDay');
//	var oCheckOutMonth=document.getElementById('ddlCheckOutMonth');
	var dCheckInDate=new Date(oCheckInYear,oCheckInMonth,oCheckInDay);
	var dCheckOutDate=new Date(oCheckOutYear,oCheckOutMonth,oCheckoutDay);

	//work out the new duration
	var iDuration=DateDiff(dCheckInDate,dCheckOutDate)-1;
	var sWarning='';
	
	
	if (iDuration<1) {
		sWarning='The Check Out date must be after the Check In date';
	} else if (iDuration>21) {
		sWarning='The maximum number of nights that can be booked is 21';
	}
	
	if (sWarning!='') {
		var iDuration=parseInt(oDuration.value);
		var dCheckOut=new Date(dCheckInDate);
		dCheckOut.setDate(dCheckOut.getDate()+iDuration);
		SetDateDropDown('Out',dCheckOut);
		alert(sWarning);
	} else {
		oDuration.value=iDuration;
	}
	
}

function DateDiff(sStartDate,sEndDate) {
	
	var dStartDate=new Date(sStartDate);
	var dEndDate=new Date(sEndDate);
	var iStartYear;
	var iEndYear;
	var iStartDayOfYear;
	var iEndDayOfYear;
	var iDiff;	
	
	//get the years and day of years, if end date is before start date then swap them round
	if (dStartDate<=dEndDate) {
		iStartYear=dStartDate.getYear();
		iEndYear=dEndDate.getYear();
		iStartDayOfYear=this.DayOfYear(dStartDate);
		iEndDayOfYear=this.DayOfYear(dEndDate);
	} else {
		iStartYear=dEndDate.getYear();
		iEndYear=dStartDate.getYear();
		iStartDayOfYear=this.DayOfYear(dEndDate);
		iEndDayOfYear=this.DayOfYear(dStartDate);
	}	
		
	
	//2 possibilities, same year, different years
	if (iStartYear==iEndYear) {
		
		iDiff=iEndDayOfYear-iStartDayOfYear;
	
	} else {
	
		//one or more years apart starts with same calculation
		iDiff=iEndDayOfYear+(365-iStartDayOfYear);
		
		//if it's a leap year and next year is different then add
		if (this.CheckLeapYear(iStartYear)==1  && iEndYear!=iStartYear) {
			iDiff+=1;
		}
		
		//now loop through all (if any years inbetween)
		for (var iLoop=iStartYear+1;iLoop<iEndYear;iLoop++) {			
	
			//add 365 for a normal year, 366 for a leap year
			if (this.CheckLeapYear(iLoop)==1) {
				iDiff+=366;
			} else {
				iDiff+=365;
			}			
		}		
	}
	
	// add one to the datediff as this is an inclusive function
	iDiff+=1;
	
	// if start date > end date invert the difference
	if(dStartDate>dEndDate) {
		iDiff=iDiff*(-1);
	}
	
	return iDiff;
}
	
function CheckLeapYear(iYear) {
	return (((iYear % 4 == 0) && (iYear % 100 != 0)) || (iYear % 400 == 0)) ? 1 : 0;
}
	
function DayOfYear(dDate) {
		
	//start with current day of month and then add on preivous mointh days
	var iDayOfYear=dDate.getDate();
	var iMonth=dDate.getMonth();
	var iYear=dDate.getYear();
	
	//if it's a leap year and we are past Februrary then add 1
	if((this.CheckLeapYear(iYear)==1)&&(iMonth>=2)) {
		iDayOfYear++;
	}
	
	//now do a huge ugly if statement adding the rest on for the months
	if (iMonth==1) {
		iDayOfYear+=31;
	} else if (iMonth==2) {
		iDayOfYear+=59;
	} else if (iMonth==3) {
		iDayOfYear+=90;
	} else if (iMonth==4) {
		iDayOfYear+=120;
	} else if (iMonth==5) {
		iDayOfYear+=151;
	} else if (iMonth==6) {
		iDayOfYear+=181;
	} else if (iMonth==7) {
		iDayOfYear+=212;
	} else if (iMonth==8) {
		iDayOfYear+=243;
	} else if (iMonth==9) {
		iDayOfYear+=273;
	} else if (iMonth==10) {
		iDayOfYear+=304;
	} else if (iMonth==11) {
		iDayOfYear+=334;
	}
	
	return iDayOfYear;
}

function Begindate() { 
		 current_date = new Date(); 
		 current_month = current_date.getMonth(); 
		 current_month = current_month + 1; 
		 current_day = current_date.getDate(); 
		 current_year = current_date.getFullYear(); 


		var fulldate = "" + (current_day < 10 ? '0' : '') + current_day + "/" + (current_month < 10 ? '0' : '') + current_month  + "/" + current_year; 
//alert("fulldate " + fulldate);
	//	document.write(fulldate); 
	//	document.write("<br>") 
		document.getElementById("checkin").value = fulldate; 
		CalculateCheckOutDate();
} 



