//////////////////latest//////////////
///This function changes departure day,month//
//It is applied on ARRIVAL DAY//

var selectName = '';

function changedepartday()
{
	if(selectName!=""){
		// now date variables
		var myDate 	= new Date();
		var curDay 		= myDate.getDate();
		var curMonth 	= myDate.getMonth() + 1;
		var curYear 	= myDate.getFullYear();
		
		// arrival date; 	
		element1 		= document.frm1.mon1.value;
		datearray1 		= element1.split("/");
		var day_arr 	= document.frm1.day1.value;
		var month_arr 	= datearray1[0];
		var year_arr 	= datearray1[1];
		var date_arr 	= new Date(year_arr,month_arr-1,day_arr);
		
		// departure date; 	
		element2 		= document.frm1.mon2.value;
		datearray2 		= element2.split("/");
		var day_dep 	= document.frm1.day2.value;
		var month_dep 	= datearray2[0];
		var year_dep 	= datearray2[1];
		var date_dep 	= new Date(year_dep,month_dep-1,day_dep);
		
		//alert("Cur_Date"+curDay+":"+curMonth+":"+curYear);
		//alert("Sel_Date"+day1_arr+":"+month_arr+":"+year_arr);
		
		var NoOfDay_arr = getNumDaysInMonth(month_arr,year_arr);
		
		if(day_arr>NoOfDay_arr){
			//alert("day_arr is:"+day_arr+" NoOfDay_arr is:"+NoOfDay_arr);
			date_arr = new Date(date_arr.getFullYear(),date_arr.getMonth(),date_arr.getDate()-1);
			document.frm1.day1.value = date_arr.getDate();		
		}	
		
		if(year_arr == curYear && month_arr==curMonth && day_arr < curDay)
		{
			document.frm1.day1.value = curDay;
		} 
		else if(date_arr.valueOf() >= date_dep.valueOf())
		{		
			date_dep = new Date(date_arr.getFullYear(),date_arr.getMonth(),date_arr.getDate()+1);
			//date_dep_disp = date_dep.getDate()+"-"+(date_dep.getMonth()+1)+"-"+date_dep.getFullYear();
			//alert("date_dep_disp is: "+date_dep_disp);
			document.frm1.day2.value = date_dep.getDate();
			document.frm1.mon2.value =(date_dep.getMonth() + 1)+"/"+date_dep.getFullYear();
		}
		selectName = "";
	}
}

//It is applied on ARRIVAL MONTH-YEAR//
function changedepartmonthyear()
{
	selectName = "mon1";
	changedepartday();	
	
}

//It is applied on DEPARTURE DAY//
function changedepartday1()
{

	// now date variables
	var myDate 	= new Date();
	var curDay 		= myDate.getDate();
	var curMonth 	= myDate.getMonth() + 1;
	var curYear 	= myDate.getFullYear();
	date_today	 	= new Date(myDate.getFullYear(),myDate.getMonth(),myDate.getDate());
	
	// tomorrow date
	var date_tom 	= new Date(myDate.getFullYear(),myDate.getMonth(),myDate.getDate()+1);
	var tomDay 		= date_tom.getDate();
	var tomMonth	= date_tom.getMonth() + 1;
	var tomYear 	= date_tom.getFullYear();
	
	// arrival date; 	
	element1 		= document.frm1.mon1.value;
	datearray1 		= element1.split("/");
	var day_arr 	= document.frm1.day1.value;
	var month_arr 	= datearray1[0];
	var year_arr 	= datearray1[1];
	var date_arr 	= new Date(year_arr,month_arr-1,day_arr);
	
	// departure date; 	
	element2 		= document.frm1.mon2.value;
	datearray2 		= element2.split("/");
	var day_dep 	= document.frm1.day2.value;
	var month_dep 	= datearray2[0];
	var year_dep 	= datearray2[1];
	var date_dep 	= new Date(year_dep,month_dep-1,day_dep);
	
	//alert("Cur_Date"+curDay+":"+curMonth+":"+curYear);
	//alert("Sel_Date"+day1_arr+":"+month_arr+":"+year_arr);
	
	var NoOfDay_dep = getNumDaysInMonth(month_dep,year_dep);
	
	if(day_dep>NoOfDay_dep && selectName!=""){
		//alert("date_dep is:"+date_dep+" NoOfDay_dep is:"+NoOfDay_dep);
		date_dep = new Date(date_dep.getFullYear(),date_dep.getMonth(),date_dep.getDate()-1);
		document.frm1.day2.value = date_dep.getDate();		
		selectName = "";
	}	
	
	if(year_dep == tomYear && month_dep==tomMonth && day_dep < tomDay)
	{
		document.frm1.day2.value = tomDay;
	} 
	else if(date_arr.valueOf() >= date_dep.valueOf() || date_today.valueOf() > date_arr.valueOf())
	{		
		date_arr = new Date(date_dep.getFullYear(),date_dep.getMonth(),date_dep.getDate()-1);
		//date_arr_disp = date_arr.getDate()+"-"+(date_arr.getMonth()+1)+"-"+date_arr.getFullYear();
		//alert("date_arr_disp is: "+date_arr_disp);
		document.frm1.day1.value = date_arr.getDate();
		document.frm1.mon1.value =(date_arr.getMonth() + 1)+"/"+date_arr.getFullYear();
	}
	
}

//It is applied on DEPARTURE MONTH-YEAR//
function changedepartday2()
{
	selectName = "mon2";
	changedepartday1();	
}

/**
 * Given a month represented by an integer (jan=0) and a year,  
 * return the number of days in that month; if the year is null, 
 * return 29 days for February
*/
function getNumDaysInMonth(month,year) {
	if (month == 4 || month == 6 || month == 9 || month == 11) {
		return 30;
	}
	else if (month == 2) 
	{
		var leapOrNull = (year < 0) || (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (leapOrNull)
			return 29;
		else
			return 28;
	}
	else 
	{
		return 31;
	}
}


function check_date_for_past() 
{
	var error_message1 = "Departure date is before Arrival date, please change you search preferences";
	var error_message2 = "Your arrival date is in the past. Please check your dates and try again.";
	var error_message3 = "Arrival date is wrong, Please check your dates and try again.";
	var error_message4 = "Departure date is wrong, Please check your dates and try again.";

	// arrival date; 	
	element1 			= document.frm1.mon1.value;
	datearray1 			= element1.split("/");
	var day_arrival 	= document.frm1.day1.value;
	var month_arrival 	= datearray1[0];
	var year_arrival 	= datearray1[1];
	var date_arrival 	= new Date(year_arrival, month_arrival-1 , day_arrival);

	// departure date; 	
	element2 			= document.frm1.mon2.value;
	datearray2 			= element2.split("/");
	var day_departure 	= document.frm1.day2.value;
	var month_departure = datearray2[0];
	var year_departure 	= datearray2[1];
	var date_departure 	= new Date(year_departure, month_departure-1 , day_departure);

	//other variables
    var now = new Date();
    var date_today = new Date(now.getFullYear(),now.getMonth(),now.getDate());
	var date_tomorow = new Date(now.getFullYear(),now.getMonth(),now.getDate()+1);

	//check datearrival met datetoday
	if( date_arrival.valueOf() < date_today.valueOf()) {
		alert(error_message2);
		return false;		
	}
	//check datedeparture met datearrival
	if (date_arrival.valueOf() >= date_departure.valueOf()) {
		alert(error_message1);
		return false;		
	}
	// check arrival date is greater than no of days in month
	var NoOfDay_arr = getNumDaysInMonth(month_arrival, year_arrival);
	if(day_arrival > NoOfDay_arr){
		alert(error_message3);
		return false;
	}
	// check departure date is greater than no of days in month
	var NoOfDay_dep = getNumDaysInMonth(month_departure, year_departure);
	if(day_departure > NoOfDay_dep) {
		alert(error_message4);
		return false;
	}
	return true;
}