function supplyDateMN(daymn,monthmn,yearmn,nights){
	var error = "";
 	var d = document.bookingenginemn.txtchkinmn.value;
 	var elem = d.split('/');
	
	daymn = elem[0];
	monthmn = elem[1];
	yearmn = elem[2];
  	
	var frmmn = document.forms["bookingenginemn"];
  	var jvalmn = frmmn.elements["jour_arrivee"];
  	var mvalmn = frmmn.elements["mois_arrivee"];
  	var avalmn = frmmn.elements["annee_arrivee"];
	jvalmn.value=daymn;
	mvalmn.value=monthmn;
	avalmn.value=yearmn;
	
				if(error!="")
                {
                    alert(error);
                }
                else{
                    document.bookingenginemn.submit();
                }
}

function supplyDateMK(daymk,monthmk,yearmk,nights){
	var error = "";
 	var d = document.bookingenginemk.txtchkinmk.value;
 	var elem = d.split('/');
	
	daymk = elem[0];
	monthmk = elem[1];
	yearmk = elem[2];
  	
	var frmmk = document.forms["bookingenginemk"];
  	var jvalmk = frmmk.elements["jour_arrivee"];
  	var mvalmk = frmmk.elements["mois_arrivee"];
  	var avalmk = frmmk.elements["annee_arrivee"];
	jvalmk.value=daymk;
	mvalmk.value=monthmk;
	avalmk.value=yearmk;
	
				if(error!="")
                {
                    alert(error);
                }
                else{
                    document.bookingenginemk.submit();
                }
}

function init(){
	var sysdate = new Date();
	var curDate = sysdate.getDate()+"/"+(sysdate.getMonth()+1)+"/"+sysdate.getFullYear();
	document.bookingengine.txtchkin.value=document.bookingenginemn.txtchkinmn.value=document.bookingenginemk.txtchkinmk.value=curDate;

//alert("System Date ------- "+ sysdate);
	var date = sysdate.getDate();
	var month = sysdate.getMonth();
	var year = sysdate.getFullYear();

	document.frmBook.checkInDate.value=date;
	document.frmBook.checkInMonth.value=month+1;
	document.frmBook.checkInYear.value=year;
	document.frmBook.valholder.value=curDate;

	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;
		
	document.getElementById("checkin").value = fulldate; 
	CalculateCheckOutDate();

}

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 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 ocheckin=document.getElementById('checkin').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 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 SetDateDropDownMercure(sType, dDate) {

	var ocheckout=document.getElementById('txtchkout');
	var mon = dDate.getMonth()+1
	ocheckout.value= (dDate.getDate() < 10 ? '0' : '') + dDate.getDate()+'/'+(mon < 10 ? '0' : '') + mon+'/'+dDate.getFullYear();
	
}

function SetDateDropDownMercureNott(sType, dDate) {

	var ocheckout=document.getElementById('txtchkoutmn');
	var mon = dDate.getMonth()+1
	ocheckout.value= (dDate.getDate() < 10 ? '0' : '') + dDate.getDate()+'/'+(mon < 10 ? '0' : '') + mon+'/'+dDate.getFullYear();
	
}
function SetDateDropDownMercureKen(sType, dDate) {

	var ocheckout=document.getElementById('txtchkoutmk');
	var mon = dDate.getMonth()+1
	ocheckout.value= (dDate.getDate() < 10 ? '0' : '') + dDate.getDate()+'/'+(mon < 10 ? '0' : '') + mon+'/'+dDate.getFullYear();

	
}

function CheckOutDateMercure()
{
	var frmpad = document.forms["bookingengine"];
	var nbnuit = frmpad.elements["nb_nuit"];
	var ocheckinpad = document.getElementById('txtchkin').value;
	var monpad = ocheckinpad.substring(0,ocheckinpad.indexOf('/'));
	var monminus = ocheckinpad.substring(ocheckinpad.indexOf('/')+1,ocheckinpad.length); 
	var daypad = monminus.substring(0,monminus.indexOf('/'));
	var yearpad = monminus.substring(monminus.indexOf('/')+1,monminus.length);
	var myDatein = new Date(yearpad,daypad-1,monpad);
	var oCheckInDay = myDatein.getDate();
	var oCheckInMonth = myDatein.getMonth();
	var oCheckInYear = myDatein.getFullYear();
	var dCheckInDate = new Date(oCheckInYear,oCheckInMonth,oCheckInDay);
	var dCheckOutDate=dCheckInDate;
	var iDuration=parseInt(nbnuit.value);
	dCheckOutDate.setDate(dCheckOutDate.getDate()+iDuration);
	SetDateDropDownMercure('Out',dCheckOutDate);	
}

function CheckOutDateMercureNott()
{
	var frmnott = document.forms["bookingenginemn"];
	var nbnuit = frmnott.elements["nb_nuit"];
	var ocheckin=document.getElementById('txtchkinmn').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 dCheckInDate = new Date(oCheckInYear,oCheckInMonth,oCheckInDay);
	var dCheckOutDate=dCheckInDate;
	var iDuration=parseInt(nbnuit.value);
	dCheckOutDate.setDate(dCheckOutDate.getDate()+iDuration);
	SetDateDropDownMercureNott('Out',dCheckOutDate);	
}

function CheckOutDateMercureKen()
{
	var frmken = document.forms["bookingenginemk"];
	var nbnuit = frmken.elements["nb_nuit"];
	var ocheckinken = document.getElementById('txtchkinmk').value;
	var monmk = ocheckinken.substring(0,ocheckinken.indexOf('/'));
	var monminus = ocheckinken.substring(ocheckinken.indexOf('/')+1,ocheckinken.length); 
	var daymk = monminus.substring(0,monminus.indexOf('/'));
	var yearmk = monminus.substring(monminus.indexOf('/')+1,monminus.length);
	var myDatein = new Date(yearmk,daymk-1,monmk);
	var oCheckInDay = myDatein.getDate();
	var oCheckInMonth = myDatein.getMonth();
	var oCheckInYear = myDatein.getFullYear();
	var dCheckInDate = new Date(oCheckInYear,oCheckInMonth,oCheckInDay);
	var dCheckOutDate=dCheckInDate;
	var iDuration=parseInt(nbnuit.value);
	dCheckOutDate.setDate(dCheckOutDate.getDate()+iDuration);
	SetDateDropDownMercureKen('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() {
	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 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 IndigoValidation()
{
	var sysdate = new Date();
	var sysday = sysdate.getDate();
	var sysmonth = sysdate.getMonth()+1;
	var sysyear = sysdate.getFullYear();
	
	var frmindigo = document.forms["frmBook"];
  	var chkday = frmindigo.elements["checkInDate"].value;
  	var chkmonth = frmindigo.elements["checkInMonth"].value;
  	var chkyear = frmindigo.elements["checkInYear"].value;
	
	if((chkday<sysday) && (chkmonth==sysmonth) && (chkyear==sysyear)) 
	{
		alert("Please enter the valid check-in date.");
		init();
	}
	else if((chkday==sysday) && (chkmonth<sysmonth) && (chkyear==sysyear))
	{
		alert("Please enter the valid check-in date.");
		init();
	}
	else if((chkday==sysday) && (chkmonth==sysmonth) && (chkyear<sysyear))
	{
		alert("Please enter the valid check in date.");
		init();
	}
	else if((chkday<sysday) && (chkmonth<sysmonth) && (chkyear==sysyear))
	{
		alert("Please enter the valid check in date.");
		init();
	}
	else if((chkday>sysday) && (chkmonth<sysmonth) && (chkyear==sysyear))
	{
		alert("Please enter the valid check in date.");
		init();
	}
	else
	{
		document.frmBook.submit();
	}
	
}

function IndigoSubmit()
{
	var d = document.getElementById("valholder").value;
	alert(d);
 	var elem = d.split('/');
	
	day = elem[0];
	month = elem[1];
	year = elem[2];
	document.frmBook.submit();
}

function supplyDate(day,month,year,nights){
	var error = "";
 	var d = document.bookingengine.txtchkin.value;
 	var elem = d.split('/');
	
	day = elem[0];
	month = elem[1];
	year = elem[2];
	
	var frmmp = document.forms["bookingengine"];
  	var jval = frmmp.elements["jour_arrivee"];
  	var mval = frmmp.elements["mois_arrivee"];
  	var aval = frmmp.elements["annee_arrivee"];
	jval.value=day;
	mval.value=month;
	aval.value=year;
	
				if(error!="")
                {
                    alert(error);
                }
                else
				{
					document.bookingengine.submit();
                }
}
