// JavaScript Document

function getCurrentDay(){
	var d = new Date();
	var today = d.getDate()+1;
	var month = d.getMonth();
	var year 	= d.getFullYear();
	var deparDay = Number(today)+2;
 	var deparMonth  = month;
	var deparYear		= year;
	
	//See if this year is leap, so february has 1 day  more
	var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
	
	//Get the valid departure day, month & year values
	switch (month){
		case  3:
		case  5:
		case  8:
		case 10: if (deparDay>30) {
												 		  	deparDay = deparDay-30;
												 				deparMonth    = month + 1;
		 								 				}
										 				break;
		case  0:
		case  2:
		case  4:
		case  6:
		case  7:
		case  9:
		case 11: if (deparDay>31) {
								 								deparDay = deparDay-31;
							 	 								deparMonth    = month + 1;
						 								}
						 								break;
		case  1								: if (!isleap) {
							    							if (deparDay>28){
																		deparDay = deparDay-28;
																		deparMonth    = month + 1;
																}
														}else{
							  								if (deparDay>29){
																		deparDay = deparDay -29;
																		deparMonth    = month + 1;
																}
														}
														break;
	}
	
	if (deparMonth>11){
			deparMonth = deparMonth -12;
			deparYear  = deparYear + 1;
	}
	
	deparDay 				= deparDay.toString();
	
	//Initialize the arrival day Select Object
  var arrivalDay = document.selectHotelForm['arrivalDay'];
	for(var i=0;i<arrivalDay.options.length;i++){
			if (arrivalDay.options[i].value==today) arrivalDay.options[i].selected = true;
	}
	
	//Initialize the departure day Select Object
	var departureDay = document.selectHotelForm['departureDay'];
	for(var i=0;i<departureDay.options.length;i++){
			if (departureDay.options[i].value==deparDay) departureDay.options[i].selected = true;
	}
	
	//Fill and initialize the arrival MonthYear Select Object with valid values
	var arrivalMonthYear = document.selectHotelForm['arrivalMonthYear'];
	var loopMonth = month;
	var loopYear  = year;
	for (var i=month;i<=month+12;i++){
			 var arrivMonthYear = loopYear.toString()+''+((loopMonth<10)? '0'+loopMonth.toString():loopMonth.toString());
			 var arrivMonthYearText = monthNames[loopMonth]+' '+loopYear;
			 addOption(arrivalMonthYear,arrivMonthYearText,arrivMonthYear);
			 loopMonth +=1;
			 if (loopMonth>11) {
			 		 loopMonth = loopMonth-12;
					 loopYear  = loopYear+ 1;
			 }
	}
	arrivalMonthYear.options[0].selected = true;
	
	//Fill and initialize the departure MonthYear Select Object with valid values
	var departureMonthYear = document.selectHotelForm['departureMonthYear'];
	var loopMonth = deparMonth;
	var loopYear  = deparYear;
	if (month==11&&today>=30) addOption (departureMonthYear,arrivalMonthYear.options[1].text,arrivalMonthYear.options[1].value);
	for (var i=deparMonth;i<=deparMonth+12;i++){
			 var departMonthYear = loopYear.toString()+''+((loopMonth<10)? '0'+loopMonth.toString():loopMonth.toString());
			 var departMonthYearText = monthNames[loopMonth]+' '+loopYear;
			 addOption(departureMonthYear,departMonthYearText,departMonthYear);
			 loopMonth +=1;
			 if (loopMonth>11) {
			 		 loopMonth = loopMonth-12;
					 loopYear  = loopYear+ 1;
			 }
	}
	if (month==11&&today>=30) departureMonthYear.options[1].selected = true;
	else departureMonthYear.options[0].selected = true;
}


function addOption(fRef, sText, sValue) {
  var def = true;
  var sel = true;
  var optionName = new Option(sText, sValue, def, sel);
  var length = fRef.length;
  fRef.options[length] = optionName;
}

function changeArrivalDay(obj){
	var day = Number(obj.value);
	var depDayObj   = document.getElementById('departureDay');
	var depMonthYearObj = document.getElementById('departureMonthYear');
	var currDepDay = Number(depDayObj.value);
	if (day<currDepDay) return 0;
	var monthYear = document.getElementById('arrivalMonthYear').value;
	var year  = Number(monthYear.substring(0,4));
	var month = Number(monthYear.substring(4,6));
	var currDepMonthYear = Number(depMonthYearObj.value);
	if (monthYear<currDepMonthYear) return 0;
	var deparDay = day+1;
	var deparMonth = month;
	var deparYear  = year;

	switch (month){
		case  3:
		case  5:
		case  8:
		case 10: if (deparDay>30) {
												 		  	deparDay = deparDay-30;
												 				deparMonth    = deparMonth + 1;
		 								 				}
										 				break;
		case  0:
		case  2:
		case  4:
		case  6:
		case  7:
		case  9:
		case 11:if (deparDay>31) {
								 								deparDay = deparDay-31;
							 	 								deparMonth    = deparMonth + 1;
						 								} 
						 								break;
		case  1								: if (!isleap) {
							    							if (deparDay>28){
																		deparDay = deparDay-28;
																		deparMonth    = deparMonth + 1;
																}
														}else{
							  								if (deparDay>29){
																		deparDay = deparDay -29;
																		deparMonth    = deparMonth + 1;
																}
														}
														break;
	}
	
	if (deparMonth>11){
			deparMonth = deparMonth-12;
			deparYear  = deparYear + 1;
	}	

	deparDay = deparDay.toString();
	var deparMonthYear = deparYear.toString()+''+((deparMonth<10)? '0'+deparMonth.toString():deparMonth.toString());
	
	for (var i=0;i<depDayObj.options.length;i++){
			 if (depDayObj.options[i].value == deparDay) 	depDayObj.options[i].selected = true;
	}
	for (var i=0;i<depMonthYearObj.options.length;i++){
	 		 if (depMonthYearObj.options[i].value == deparMonthYear) 	depMonthYearObj.options[i].selected = true;	
	}
}

function changeDepartureDay(obj){
	var depDay       = Number(obj.value);
	var arrDay			 = Number(document.getElementById('arrivalDay').value);
	var depMonthYear = Number(document.getElementById('departureMonthYear').value);
	var arrMonthYear = Number(document.getElementById('arrivalMonthYear').value);
	
	if ((depDay>arrDay)&&(depMonthYear>=arrMonthYear)) return;
	if ((depDay<arrDay)&&(depMonthYear>arrMonthYear)) return;
	if ((depDay<arrDay)&&(depMonthYear<=arrMonthYear)){ 
			alert(alertDepartureGreaterThenArrival);
			for (var i=0;i<obj.options.length;i++){
	 		     if (obj.options[i].value == (arrDay+1)) 	obj.options[i].selected = true;	
			}
  }
	return;
} 

function changeArrivalMonthYear(obj){
	
	var currArrMonthYear = Number(obj.value);
	var currDepMonthYear = Number(document.getElementById('departureMonthYear').value);
	var currDepMonthDays = getNumDaysInMonth(currDepMonthYear.toString().substring(4,6),currDepMonthYear.toString().substring(0,4));

	if (currArrMonthYear<currDepMonthYear) return;
	
	else if (currArrMonthYear==currDepMonthYear){
		
			var currArrDay = 	Number(document.getElementById('arrivalDay').value);
			var currDepDay = 	Number(document.getElementById('departureDay').value);
			if (currDepDay<=currArrDay){
					var newDepDay = currArrDay + 2;
					var newDepMonthYear = currDepMonthYear;
					if (newDepDay>currDepMonthDays) {
							newDepDay   =  newDepDay - currDepMonthDays;
							newDepMonthYear += 1;
						}
					
				}
			for (var i=0;i<document.getElementById('departureMonthYear').options.length;i++){
					 if (document.getElementById('departureMonthYear').options[i].value == newDepMonthYear) document.getElementById('departureMonthYear').options[i].selected = true;	
			}	
			for (var i=0;i<document.getElementById('departureDay').options.length;i++){
					 if (document.getElementById('departureDay').options[i].value == newDepDay) document.getElementById('departureDay').options[i].selected = true;	
			}				
		
	}else{
		  
			var currArrDay = 	Number(document.getElementById('arrivalDay').value);
			var currDepDay = 	Number(document.getElementById('departureDay').value);
			var newDepDay = currArrDay + 2;
			var newDepMonthYear = currArrMonthYear;
			for (var i=0;i<document.getElementById('departureMonthYear').options.length;i++){
					 if (document.getElementById('departureMonthYear').options[i].value == newDepMonthYear) document.getElementById('departureMonthYear').options[i].selected = true;	
			}	
			for (var i=0;i<document.getElementById('departureDay').options.length;i++){
					 if (document.getElementById('departureDay').options[i].value == newDepDay) document.getElementById('departureDay').options[i].selected = true;	
			}		
	
	}

	
}

function changeDepartureMonthYear(obj){
	
	var currDepMonthYear = Number(obj.value);
	var currArrMonthYear = Number(document.getElementById('arrivalMonthYear').value);
	var currArrMonthDays = getNumDaysInMonth(currDepMonthYear.toString().substring(4,6),currDepMonthYear.toString().substring(0,4));

	if (currDepMonthYear>currArrMonthYear) return;
	
	else if (currDepMonthYear==currArrMonthYear){
		
			var currArrDay = 	Number(document.getElementById('arrivalDay').value);
			var currDepDay = 	Number(document.getElementById('departureDay').value);
			
			if (currDepDay<=currArrDay){
					var newArrDay = currDepDay - 2;
					var newArrMonthYear = currDepMonthYear;
					if (newArrDay<1) {
							newArrDay   =  newArrDay + currDepMonthDays;
							newArrMonthYear -= 1;
						}
					
			}else {
				var newArrMonthYear = currDepMonthYear;
				var newArrDay = currArrDay;
			}
			for (var i=0;i<document.getElementById('arrivalMonthYear').options.length;i++){
					 if (document.getElementById('arrivalMonthYear').options[i].value == newArrMonthYear) document.getElementById('arrivalMonthYear').options[i].selected = true;	
			}	
			for (var i=0;i<document.getElementById('arrivalDay').options.length;i++){
					 if (document.getElementById('arrivalDay').options[i].value == newArrDay) document.getElementById('arrivalDay').options[i].selected = true;	
			}				
		
	}else{
		  alert(alertDepartureGreaterThenArrival);
			var currArrDay = 	Number(document.getElementById('arrivalDay').value);
			var currDepDay = 	Number(document.getElementById('departureDay').value);
			var newDepDay = currArrDay + 2;
			var newDepMonthYear = currArrMonthYear;
			for (var i=0;i<document.getElementById('departureMonthYear').options.length;i++){
					 if (document.getElementById('departureMonthYear').options[i].value == newDepMonthYear) document.getElementById('departureMonthYear').options[i].selected = true;	
			}	
			for (var i=0;i<document.getElementById('departureDay').options.length;i++){
					 if (document.getElementById('departureDay').options[i].value == newDepDay) document.getElementById('departureDay').options[i].selected = true;	
			}		
	
	}
}