function addLeadingZero(date){
	if(date.charAt(0)!="1" && date.length==9)
		date="0"+date;
	return date;
}

function selectCityCarRental(form_id){
	var index = document.forms[form_id].pickupcity.selectedIndex;
	document.forms[form_id].dropoffcity.options[index].selected = true;
}

function GetXmlHttpObject() {
	var objXMLHttp=null;

	if (window.XMLHttpRequest) {
		objXMLHttp=new XMLHttpRequest();
	}
	else {

		if (window.ActiveXObject) {

			objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return objXMLHttp;
}

function stateChanged() {
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
		getID(xmlHttp.responseText);
	}
}

function getID(str){
	var brokenstring = str.split("::");
	var type = brokenstring[0];	
	
		switch(type){
					
				case "select_city_carrental":
					setupCityOptionsCarRental(str);
					break;					
			
		}
}

function setupCityOptionsCarRental(str){
	var brokenstring=str.split("::");
	var form_id = brokenstring[1];
	var country = document.forms[form_id].country.value;
	var pickupcity = document.forms[form_id].pickupcity;
	var dropoffcity = document.forms[form_id].dropoffcity;

	pickupcity.options.length=0;
	pickupcity.options[pickupcity.options.length] = new Option("Select a Pick Up City");
	dropoffcity.options.length=0;
	dropoffcity.options[dropoffcity.options.length] = new Option("Select a Drop Off City");

	for(var i=2; i<brokenstring.length-1; i++){
		var brokenstring2 = brokenstring[i].split("##");
		var value = brokenstring2[0]+", "+country+" ("+brokenstring2[1]+")";
		pickupcity.options[pickupcity.options.length] = new Option(value,brokenstring2[1]);
		dropoffcity.options[dropoffcity.options.length] = new Option(value,brokenstring2[1]);		
	}
}

function selectRegionCarRental(form_id){
	
	if(document.forms[form_id].country.value!=""){	
		var countryid = document.forms[form_id].country.value;
		
		xmlHttp=GetXmlHttpObject();

		if (xmlHttp==null) {
			alert ("Browser does not support HTTP Request");
			return;
		}
		
		var ajax_path = document.ajax.ajax_path.value;
		var url="/ajax/"+ajax_path+"/ajaxHelp.php"
		url=url+"?countryid="+countryid+"&formid="+form_id+"&style="+ajax_path+"&selectid=select_city_carrental";
		
		xmlHttp.onreadystatechange=stateChanged
		xmlHttp.open("GET",url,true)
		xmlHttp.send(null)	
	}
	else {

		var pickupcity = document.forms[form_id].pickupcity;
		var dropoffcity = document.forms[form_id].dropoffcity;
		pickupcity.options.length=0;
		pickupcity.options[pickupcity.options.length] = new Option("Select a Region");		
		dropoffcity.options.length=0;
		dropoffcity.options[dropoffcity.options.length] = new Option("Select a Region");		
	}
}

function bookingSubmitCarRental(form_id) {
			
				var pickupcity = "";
				var dropoffcity = "";
				var pickuptime = document.forms[form_id].pickuptime.value;
				var dropofftime = document.forms[form_id].dropofftime.value;
				var pickupdate = "";
				var dropoffdate = "";
				var carcategory = document.forms[form_id].carcategory.value;
				var region = "";
				var buffer_days = 3;
				
				if (document.forms[form_id].country.value == ''){
					alert('Please select a Country');
					document.forms[form_id].country.focus();
					return;
				}
				else {
					region = document.forms[form_id].country.value;	
				}
				
				if (document.forms[form_id].pickupcity.value == '') {
					alert('Please select a Pick Up city');
					document.forms[form_id].pickupcity.focus();
					return;
				} 
				else {
					pickupcity = document.forms[form_id].pickupcity.value;
				}

				if (document.forms[form_id].pickupdate_carrental.value == '') {
					alert('Please select a Pick Up date');
					document.forms[form_id].pickupdate_carrental.focus();
					return;
				} 
				else {
					pickupdate = document.forms[form_id].pickupdate_carrental.value;
				}

				if (document.forms[form_id].dropoffcity.value == '') {
					alert('Please select a Drop Off city');
					document.forms[form_id].dropoffcity.focus();
					return;
				} 
				else {
					dropoffcity = document.forms[form_id].dropoffcity.value;
				}
				
				if (document.forms[form_id].dropoffdate_carrental.value == '') {
					alert('Please select a Drop Off date');
					document.forms[form_id].dropoffdate_carrental.focus();
					return;
				} 
				else {
					dropoffdate = document.forms[form_id].dropoffdate_carrental.value;
				}

				var company_id = "CHT";
				var partner_id = "CHT";
				var usertype = "WU";
								
				if(!checkDate_script2(pickupdate,"Pick Up") || !checkDate_script2(dropoffdate,"Drop Off")){
					return;
				}
				else {
					if(!date2GreaterDate1(pickupdate,dropoffdate)){
						return;
					}						
				}

				if(!bufferDate(pickupdate,buffer_days,"Pick Up")){
					return;	
				}
				
				pickupdate = getDepartDate(pickupdate)
				dropoffdate = getDepartDate(dropoffdate)
				
				var curl = "http://ww2.centralholidays.com/ipmstage/common/checkAvailability.jsp?companyID="+company_id+"&partnerID="+partner_id+"&userType="+usertype+"&msg=&nextPage=%2Fipmstage%2Fcar%2Fcar2.jsp&showRegions=1&Region="+region+"&Pickup_City="+pickupcity+"&Pickup_Date="+pickupdate+"&Pickup_Time="+pickuptime+"&Dropoff_City="+dropoffcity+"&Dropoff_Date="+dropoffdate+"&Dropoff_Time="+dropofftime+"&Car_Category="+carcategory;
				
				document.forms[form_id].method='post';
				document.forms[form_id].action=curl;
				document.forms[form_id].target='_self';
				document.forms[form_id].submit();
}

function bufferDate(date, days,type){

	var newDate = subtractDays(new Date(date),days);
	var year = newDate.getFullYear();
	var month = newDate.getMonth()+1;
	var day = newDate.getDate();

	if(month.toString().length==1){
		month="0"+month.toString();
	}

	if(day.toString().length==1){
		day="0"+day.toString();
	}

	var date_str = month + "/" + day + "/" + year;

	return checkBufferDate(date_str,type,days);
}

function getDepartDate(date){
	var date_array = date.split("/");
	var depart_date = date_array[0]+"%2F"+date_array[1]+"%2F"+date_array[2];
	return depart_date;
}

function checkDate_script2(date,type) {

		if(date.length==10){
  			var myDayStr = date.substr(3,2);
			var myMonthStr = date.substr(0,2);
			var myYearStr = date.substr(6,4);

			var myMonth = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
			var myDateStr = myDayStr + ' ' + myMonth[myMonthStr] + ' ' + myYearStr;


			var myDate = new Date();
			var myDate2 = new Date();

			if(myDayStr.charAt(0)=="0")
				myDayStr = myDayStr.substr(1,1);

			if(myMonthStr.charAt(0)=="0")
				myMonthStr = myMonthStr.substr(1,1);

			myMonthStr = myMonthStr-1;

			myDate.setFullYear( myYearStr, myMonthStr, myDayStr );

			var todaydate = new Date();

			if(todaydate<=myDate){

				if ( myDate.getMonth() != myMonthStr ) {
  					alert("Please enter valid "+type+" date: MM/DD/YYYY ");
  					return false;
				} else {
  					return true;
				}
			}
			else {
				alert(type+" date must be later than today!");
  				return false;
			}

		}
		else{
			alert("Please enter valid "+type+" date: MM/DD/YYYY ");
			return false;
		}
}

function date2GreaterDate1(date1,date2){
	var myDayStr1 = date1.substr(3,2);
	var myMonthStr1 = date1.substr(0,2);
	var myYearStr1 = date1.substr(6,4);

	var myDayStr2 = date2.substr(3,2);
	var myMonthStr2 = date2.substr(0,2);
	var myYearStr2 = date2.substr(6,4);
	
	if(myDayStr1.charAt(0)=="0")
		myDayStr1 = myDayStr1.substr(1,1);

	if(myMonthStr1.charAt(0)=="0")
		myMonthStr1 = myMonthStr1.substr(1,1);	

	if(myDayStr2.charAt(0)=="0")
		myDayStr2 = myDayStr2.substr(1,1);

	if(myMonthStr2.charAt(0)=="0")
		myMonthStr2 = myMonthStr2.substr(1,1);	
		
	var myDate1 = new Date();
	var myDate2 = new Date();		

	myMonthStr1 = myMonthStr1-1;
	myMonthStr2 = myMonthStr2-1;

	myDate1.setFullYear( myYearStr1, myMonthStr1, myDayStr1 );
	myDate2.setFullYear( myYearStr2, myMonthStr2, myDayStr2 );
	
	if(myDate1>=myDate2){
		alert("Return date must be later than Departure date!")
		return false;
	}
	else{
		return true;
	}
}

function checkBufferDate(date,type,days) {

  			var myDayStr = date.substr(3,2);
			var myMonthStr = date.substr(0,2);
			var myYearStr = date.substr(6,4);

			var myMonth = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
			var myDateStr = myDayStr + ' ' + myMonth[myMonthStr] + ' ' + myYearStr;


			var myDate = new Date();
			var myDate2 = new Date();

			if(myDayStr.charAt(0)=="0")
				myDayStr = myDayStr.substr(1,1);

			if(myMonthStr.charAt(0)=="0")
				myMonthStr = myMonthStr.substr(1,1);

			myMonthStr = myMonthStr-1;

			myDate.setFullYear( myYearStr, myMonthStr, myDayStr );

			var todaydate = new Date();

			if(todaydate<=myDate){
  					return true;
			}
			else {
				var year = todaydate.getFullYear();
				var month = todaydate.getMonth()+1;
				var day = todaydate.getDate()+days;

				if(month.toString().length==1){
					month="0"+month.toString();
				}

				if(day.toString().length==1){
					day="0"+day.toString();
				}

				var date_str = month + "/" + day + "/" + year;
				
				alert(type+" date must be on or later than "+date_str+"!");
  				return false;
			}
}

function subtractDays(myDate,days) {
    return new Date(myDate.getTime() - days*24*60*60*1000);
}
