// JavaScript Document
var strDepDate;
var intDepDate;
var strRetDate;
var intRetDate;
var strMinDate;
var intMinDate;
var origin;
var dest;

var UserMessages =  new Array();
		UserMessages[0] = 'You have selected the same city as origin and destination cities';
		UserMessages[1] = 'You must enter at least 1 passenger';
		UserMessages[2] = 'You intend to book/would like to book for flights departing and returning on the same day? You may prefer to contact our Customer Contact Center to assist you in bookng for our shuttle service to avoid missing any of your shuttle flight connections.\r\rDo you wish to continue reservation with these dates?';
		UserMessages[3] = 'Maximum 4 children';
		UserMessages[4] = 'Maximum 4 infants';
		UserMessages[5] = 'Our online system does not handle bookings for unaccompanied minors at the moment but you can book this via our Customer Contact Centre.';
		UserMessages[6] = 'Minimum of 1 Adult to accompany any minors';
		UserMessages[7] = 'No more than 9 seats in the booking';
		UserMessages[8] = 'You have selected no passengers';
		UserMessages[9] = 'Return date must be greater than departure date';
		UserMessages[10] = 'Depart date is larger than 340 days';
		UserMessages[11] = 'You cannot book in the past';
		UserMessages[12] = 'Return date is larger than 340 days';
        UserMessages[13] = 'Our online system supports reservations for minimum of 2 days before your intended departure date.\rHowever, you can book this via any of our Customer Contact Centres.';
		UserMessages[20] = 'The First Name field is a mandatory field. Please enter the missing information.';
		UserMessages[21] = 'The Family Name field is a mandatory field. Please enter the missing information.';
		UserMessages[22] = 'The Email and confirm email fields are mandatory fields. Please enter the missing information.';
		UserMessages[23] = 'Please enter your email in the Email confirmation field';
		UserMessages[24] = 'Your email addresses do not match. please check again';
		UserMessages[25] = 'The Family Name field is a mandatory field. Please enter the missing information.';
function readSingleSelect(obj){
	for(i=0;i<obj.length;i++){
		if(obj.options[i].selected){
			return obj.options[i].value;
		}
	}
}//end function

function ValidatePassengerInfo(){
	var elements = document.getElementsByTagName('input');
	for(i=0;i<elements.length;i++){
		switch(elements.item(i).getAttribute('elixirpattern')){
			case "FirstName":
				if(elements.item(i).value == ''){
					alert(UserMessages[20]);
					return false;
				}
				break;
			case "LastName":
				if(elements.item(i).value == ''){
					alert(UserMessages[21]);
					return false;
				}
				break;
			case "email":
				var val = elements.item(i).value;
				if(val== ''){
					alert(UserMessages[22]);
					return false;
				}
				break;
		}
	}//end for iteration
	var mail = document.getElementById('address').value;
	var mail2 = document.getElementById('address2').value;
	if(mail != mail2){
		alert(UserMessages[24]);
		return false;
	}
	return echeck(mail);
}//end function

function echeck(str) {
		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   alert("Your entry is not a valid email address.")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Your entry is not a valid email address.")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("Your entry is not a valid email address.")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Your entry is not a valid email address.")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Your entry is not a valid email address.")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Your entry is not a valid email address.")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    alert("Your entry is not a valid email address.")
		    return false
		 }
 		 return true					
}//end function

function ValidateFlightSearch(){
	
	/*alert(document.getElementById('travel_date_Year_ID').value);
	alert(eval(document.getElementById('travel_date_Day_ID').selectedIndex) + 1);
	alert(document.getElementById('travel_date_Day_ID').value);
	alert(document.getElementById('travel_date_Month_ID').value);*/
	//validate origin and destination
	origin = readSingleSelect(document.getElementById('origin'));
	dest = readSingleSelect(document.getElementById('destination'));

	if(origin == dest){
		alert(UserMessages[0]);
		return false;
	}
	
	//ensure departure date is ok
	getMinDate();
	getDepartureDate();
	if(intDepDate < intMinDate){
		alert(UserMessages[13]);	
		return false;
	}
	//validate return date
	if(getReturnDate() == true){
		if(intRetDate < intDepDate){
			alert(UserMessages[9]);
			return false;
		} else if( intRetDate == intDepDate){
			var choice = confirm(UserMessages[2]);
			return choice;
		}
	}
	return true;
}//end function

function getDepartureDate(){
	var yy = 	document.getElementById('travel_date_Year_ID').value;
	var mm = eval(document.getElementById('travel_date_Month_ID').value);
	if(mm < 10){
		mm = '0'+mm;
	}
	var dd = eval(document.getElementById('travel_date_Day_ID').selectedIndex) + 1;
	strDepDate = yy+'-'+mm+'-'+dd;
	intDepDate = new Date(yy,mm,dd);
	return strDepDate;
}//end function

function getMinDate(){
	strMinDate = document.getElementById('today').value;
	var minyear = strMinDate.substr(0,4);
	var minmonth = strMinDate.substr(5,2);
	var minday = strMinDate.substr(8,2);
	intMinDate = new Date(minyear,minmonth-1,minday);
}//end function

function getReturnDate(){
	if(document.getElementById('return_radio').checked == true){
		var yy = 	document.getElementById('return_date_Year_ID').value;
		var mm = eval(document.getElementById('return_date_Month_ID').value);
		if(mm < 10){
			mm = '0'+mm;
		}
		var dd = eval(document.getElementById('return_date_Day_ID').selectedIndex) + 1;
		strRetDate = yy+'-'+mm+'-'+dd;
		intRetDate = new Date(yy,mm,dd);
		return true;
	}
}//end function

function makeMeTitleCase(obj){
	if(obj.value != ""){
		obj.value = obj.value.toUpperCase();
	}	
}//end function

