
var IbeErrorMsg1 		= "You must select your Departure City";
var IbeErrorMsg2		= "You must select your Return City";
var IbeErrorMsg3		= "Please make sure that Return date must not be earlier than the Depart date";
var IbeErrorMsg4 		= "Please select your Departure date";
var IbeErrorMsg5		= "Please select your Return date";

var pax9FlexError 		= "For Flexible dates, the limit is 9 adults/children/infants per booking.";
var pax9FixError 		= "For Fixed dates, the limit is 9 adults/children/infants per booking.";
var pax9IntError 		= "Too many travelers have been selected, the maximum allowed is 9.";
var adultInfantError	= "Too many infants have been selected, the maximum allowed is 1 infant per adult";

/*var processURL			= " http://bookqa.malaysiaairlines.com/itd/itd/valuefare/DoAirSearch?";
var processMYURL		= " http://bookqa.malaysiaairlines.com/itd/itd/valuefare/DoAirSearch?";*/
var processURL			= "https://book.malaysiaairlines.com/itd/itd/DoAirSearch?";
var processMYURL		= "https://book.malaysiaairlines.com/itd/itd/DoAirSearch?";

var domesticType		= false;

var fromStopOver 		= new Array('ADL', 'AKL', 'BNE', 'PER', 'SYD', 'MEL');
var toStopOver 			= new Array('CDG', 'FRA', 'FCO', 'AMS', 'LHR', 'CMB', 'BLR', 'MAA', 'DEL', 'HYD', 'BOM');
//var stopOverUrl			= "https://book.malaysiaairlines.com/itd/itd";
var stopOverInfoUrl		= "http://stopover.malaysiaairlines.com";
var isStopOver			= false;

function checkAdultsCount(){
	if($$("flexTravel").checked){
		$$("selAdultDom").removeClass("selHidden");
		$$("selAdult").addClass("selHidden");
		
		$$("selChildrenFlex").removeClass("selHidden");
		$$("selChildren").addClass("selHidden");
		
		$$("selInfantsFlex").removeClass("selHidden");
		$$("selInfants").addClass("selHidden");
	}
	else{
		$$("selAdultDom").addClass("selHidden");
		$$("selAdult").removeClass("selHidden");
		
		$$("selChildrenFlex").addClass("selHidden");
		$$("selChildren").removeClass("selHidden");
		
		$$("selInfantsFlex").addClass("selHidden");
		$$("selInfants").removeClass("selHidden");
	}
}


function setDefaultCountry(){
	var countrySelected;
	
	switch (CountryCode){
		case "my":
			countrySelected = "KUL";
			break;
		case "sg":
			countrySelected = "SIN";
			break;
		case "za":
			countrySelected = "JNB";
			break;
		case "cn":
			countrySelected = "PEK";
			break;
		case "hk":
			countrySelected = "HKG";
			break;
		case "in":
			countrySelected = "DEL";
			break;
		case "id":
			countrySelected = "CGK";
			break;
		case "jp":
			countrySelected = "NRT";
			break;
		case "kr":
			countrySelected = "ICN";
			break;
		case "tw":
			countrySelected = "TPE";
			break;
		case "au":
			countrySelected = "SYD";
			break;
		case "nz":
			countrySelected = "AKL";
			break;
		case "ae":
			// --- Read from Cookies only if from AE ---
			var theCookie=""+document.cookie;
 			var ind=theCookie.indexOf("MASCtry");
			
			if (ind != -1){
				var start = theCookie.indexOf('|',ind);
				var end = start + 3;
				var cookieCtyCode;
				
				if (start != -1) {
					cookieCtyCode = unescape(theCookie.substring(start + 1, end))
					
					switch (cookieCtyCode){
						case "lb":
							countrySelected = "BEY";
							break;
						case "sa":
							countrySelected = "JED";
							break;
						case "ae":
							countrySelected = "DXB";
							break;			
					}			
				}		
			}else
				countrySelected = "DXB";	
			
			break;
		case "fr":
			countrySelected = "CDG";
			break;
		case "de":
			countrySelected = "FRA";
			break;
		case "it":
			countrySelected = "KUL";
			break;
		case "nl":
			countrySelected = "AMS";
			break;
		case "se":
			countrySelected = "ARN";
			break;
		case "th":
			countrySelected = "BKK";
			break;
		case "uk":
			countrySelected = "LHR";
			break;
		case "us":
			countrySelected = "LAX";
			break;
		case "hq":
			countrySelected = "KUL";
			break;
	}
	
	for( var i=0; i<$$("wdforigin1").options.length; i++){
		if( countrySelected == $$("wdforigin1").options[i].value ){	
			$$("wdforigin1").options[i].selected = $$("wdforigin1").options[i].value;
		}
	}
}


function datePickerClosed(){
	var departDate = $$("fromDate").value;
	var dArray;
	
	var dayArrayMed = new Array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
	
	dArray = departDate.split("/");
	var year = dArray[2].split(" ");
	var returnDate = new Date();
	returnDate.setFullYear(year[0],Number(dArray[1]-1),dArray[0]);
	
	returnDate.setDate(returnDate.getDate() + 7);
	
	var returnDay = returnDate.getDate();
	var returnMonth = returnDate.getMonth() + 1;
	var returnYear = returnDate.getFullYear();
	
	if(returnDay < 10)
		returnDay = "0"+returnDay;
			
	if(returnMonth < 10)
		returnMonth = "0"+returnMonth;	
	
	$$("returnDate").value = returnDay + "/" + returnMonth + "/" + returnYear + " " + dayArrayMed[returnDate.getDay()];
}

function disableReturnBox(){
	$$("returnDate").disabled = true;
	$$("bookReturn").addClass("selHidden");
}


function enableReturnBox(){
	$$("returnDate").disabled = false;
	$$("bookReturn").removeClass("selHidden");
}


function submitform(formName){
	/* ---- Validation of the IBE form --- */
	var processData;

		// --- Check that from destination is selected --- 
		if ( $$("wdforigin1").value == ""){
			alert(IbeErrorMsg1);
			return;
		}
		
		// --- Check that to destination is selected --- 
		if ( $$("wdfdest1").value == ""){
			alert(IbeErrorMsg2);
			return;
		}
	
	// --- set the processing URL ---
	if(domesticType)
		processData = processMYURL;
	else
		processData = processURL;
		
	// --- add the data behind ---
	if($$("onewayType").checked)
		processData += ("_tripType=" + $$("onewayType").value + "&");
	else
		processData += ("_tripType=" + $$("returnType").value + "&");
		
	processData += ("_originSelected=Airport." + $$("wdforigin1").value + "&");
	processData += ("_destinationSelected=Airport." + $$("wdfdest1").value + "&");
	
	var departDateStr = $$("fromDate").value;
	var returnDateStr = $$("returnDate").value;
	
		// --- Check depart and return dates ---
		if( departDateStr == "" ) {
			alert(IbeErrorMsg4);
			return;
		}
		
		if($$("returnType").checked){
			if( returnDateStr == "" ) {
				alert(IbeErrorMsg5);
				return;
			}
		}
		
	var departDay 		= departDateStr.substring(11,14);
	switch (departDay){
		case "Sun":
			departDay = 0;
			break;
		case "Mon":
			departDay = 1;
			break;
		case "Tue":
			departDay = 2;
			break;
		case "Wed":
			departDay = 3;
			break;
		case "Thu":
			departDay = 4;
			break;
		case "Fri":
			departDay = 5;
			break;
		case "Sat":
			departDay = 6;
			break;
	}
	
	var departDate 		= departDateStr.substring(0,2);
	var departMonthYear = departDateStr.substring(6,10) + "-" + departDateStr.substring(3,5);
	
	var returnDay 		= returnDateStr.substring(11,14);
	switch (returnDay){
		case "Sun":
			returnDay = 0;
			break;
		case "Mon":
			returnDay = 1;
			break;
		case "Tue":
			returnDay = 2;
			break;
		case "Wed":
			returnDay = 3;
			break;
		case "Thu":
			returnDay = 4;
			break;
		case "Fri":
			returnDay = 5;
			break;
		case "Sat":
			returnDay = 6;
			break;
	}
	
	var returnDate 		= returnDateStr.substring(0,2);
	var returnMonthYear = returnDateStr.substring(6,10) + "-" + returnDateStr.substring(3,5);
	
	var compareDate1 = new Date(departDateStr.substring(6,10), Number(departDateStr.substring(3,5)-1), departDate);
	var compareDate2 = new Date(returnDateStr.substring(6,10), Number(returnDateStr.substring(3,5)-1), returnDate);
	
	if( compareDate1 > compareDate2 ){
		alert(IbeErrorMsg3);
		return;
	}
	
	processData += ("daysofweekselect1=" + departDay + "&");
	processData += ("_depdate.day=" + departDate + "&");
	processData += ("_depdate.monthyear=" + departMonthYear + "&");
	
	if($$("returnType").checked){
		processData += ("daysofweekselect2=" + returnDay + "&");
		processData += ("_retdate.day=" + returnDate + "&");
		processData += ("_retdate.monthyear=" + returnMonthYear + "&");
	}
	
	var totalAdults = $$("selAdult").value;
	var totalAdultsDom = $$("selAdultDom").value;
	var totalChildren = $$("selChildren").value;
	var totalChildrenFlex = $$("selChildrenFlex").value;
	var totalInfants = $$("selInfants").value;
	var totalInfantsFlex = $$("selInfantsFlex").value;
	
	if( domesticType ){
		if($$("flexTravel").checked){
			processData += ("_adults=" + totalAdultsDom + "&");
			processData += ("_children=" + totalChildrenFlex + "&");
			processData += ("_infants=" + totalInfantsFlex + "&");
		}else{
			processData += ("_adults=" + totalAdults + "&");
			processData += ("_children=" + totalChildren + "&");
			processData += ("_infants=" + totalInfants + "&");
		}
	}else{
		processData += ("_adults=" + totalAdults + "&");
		processData += ("_children=" + totalChildren + "&");
		processData += ("_infants=" + totalInfants + "&");
	}
	
	// added in stop over info.
	if (isStopOver) {
		// added extra stop over parameters.
		processData += ("_instop=true&_instopdestination=Airport.KUL&_outstop=true&_outstopdestination=Airport.KUL&");
	}
	
	processData += ("_classType=" + $$("fareClass").value  + "&");
	
	if(LocaleCode == "zh-chs")
		processData += ("_channelLocale=zh");
	else
		processData += ("_channelLocale=" + LocaleCode);

		var continueProcess = true;
		
		// --- Check number of PAX ---
		if( domesticType ) {
			var totalPax;
			
			if($$("flexTravel").checked){
				totalPax = Number(totalAdultsDom) + Number(totalChildrenFlex) + Number(totalInfantsFlex);
				// --- max PAX is 9 ---
				if(totalPax > 9){
					alert(pax9FlexError);
					continueProcess = false;
				}
				else
					processData += "&_depdatewindow=P3D";
			}
			else{ 
				totalPax = Number(totalAdults) + Number(totalChildren) + Number(totalInfants);
				// --- max PAX is 9 ---
				if(totalPax > 9){
					alert(pax9FixError);
					continueProcess = false;
				}
			}
		}
		else {
			totalPax = Number(totalAdults) + Number(totalChildren)  + Number(totalInfants);
			// --- max PAX is 9 ---
			if(totalPax > 9){
				alert(pax9IntError);
				continueProcess = false;
			}
			
			// --- for international flights only ---
			processData += "&requestor=AirSimpleReqsPage";
		}
		
		
		// --- Check for the 1 infant per 1 adult ---
		var checkAdults;
		var checkInfants;
		
		if( domesticType && $$("flexTravel").checked ) {
			checkAdults 	= Number(totalAdultsDom);
			checkInfants	= Number(totalInfantsFlex);
		}
		else {
			checkAdults 	= Number(totalAdults);
			checkInfants	= Number(totalInfants);
		}
		
		if ( checkAdults < checkInfants ){
			alert(adultInfantError);
			continueProcess = false;
		}
		
		
		if(!continueProcess)
			return;
			
	// testing : show url path to send.
	//alert(processData);

	document.ibeForm.action = processData;
	document.ibeForm.submit();
}


function checkDomesticLocation(){
	//alert("checkDomesticLocation");
	var fromLocation = $$("wdforigin1").value;
	var toLocation = $$("wdfdest1").value;
	
	// --- check if both location comes from malaysia ---
	$$("travelOption").removeClass("travelOptionHidden");
	domesticType = true;
	
	if($$("flexTravel").checked){
		$$("selAdultDom").removeClass("selHidden");
		$$("selAdult").addClass("selHidden");
		
		$$("selChildrenFlex").removeClass("selHidden");
		$$("selChildren").addClass("selHidden");
		
		$$("selInfantsFlex").removeClass("selHidden");
		$$("selInfants").addClass("selHidden");
		
		$$("blankForIE6").addClass("travelOptionHidden");
	}
	else{
		$$("selAdultDom").addClass("selHidden");
		$$("selAdult").removeClass("selHidden");
		
		$$("selChildrenFlex").addClass("selHidden");
		$$("selChildren").removeClass("selHidden");
		
		$$("selInfantsFlex").addClass("selHidden");
		$$("selInfants").removeClass("selHidden");
		
		$$("blankForIE6").removeClass("travelOptionHidden");
	}

	// check stop over available.
	enableDisableStopOvers();
}

function clearUsernameField(){
	if ($$("userid").value == "User ID"){
		$$("userid").value = "";
	}
	else{
		$$("userid").focus();
		$$("userid").select();
	}
}

function clearPasswordField(){
	if ($$("password").value == "Password"){
		$$("password").value = "";
	}
	else{
		$$("password").focus();
		$$("password").select();
	}
}

function homeibesignin(){
	document.ibeLoginForm.action = "https://book.malaysiaairlines.com/itd/itd/DoLogon";
	document.ibeLoginForm._user.value = $$("_user").value; 
	document.ibeLoginForm._pw.value = $$("_pw").value; 
	document.ibeLoginForm.locale.value = LocaleCode; 
	document.ibeLoginForm.submit();
}

/**
	check if toLocation and fromLocation is within stop over country list.
*/
function isStopOverDestination() {
	//alert("isStopOverDestination");
	//var fromLocation = $$("wdforigin1").value;
	//var toLocation = $$("wdfdest1").value;

	var bStopOver = false;
	var bFind = false;
	var toDest   = "";
	var fromLocationVal = document.getElementById('wdforigin1').value;
	var toLocationVal = document.getElementById('wdfdest1').value;
	// find the index within "fromStopOver" array for from/to destination.
	var fromIdx = -1;
	if (fromLocationVal != "")
		fromIdx = fromStopOver.join().indexOf(fromLocationVal);
		
	var toIdx = -1;
	if (toLocationVal != "")
		toIdx = fromStopOver.join().indexOf(toLocationVal);
	//alert ("fromLocation :: " + fromLocationVal + " Idx:" + fromIdx + " ... toLocation :: " + toLocationVal + " Idx:" + toIdx);

	// check if both to and return way of from/to destination is within stop over list.
	if (fromIdx >= 0) {
		bFind = true;
		toDest   = toLocationVal;
	} else if (toIdx >= 0) {
		bFind = true;
		toDest = fromLocationVal;
	}
	//alert("toDest : " + toDest);
	
	// only check within "toStopOver" Array list if "fromStopOver" array list if find in from/to destination.
	if (bFind) {
		var toDestIdx = -1;
		if (toDest != "")
			toDestIdx = toStopOver.join().indexOf(toDest);
		//alert("toDestIdx : "+ toDestIdx);
		if (toDestIdx >= 0) {
			bStopOver = true;
		}
	}
	return bStopOver;
}

function disableStopOverBox(){
	$$("stopOverChk").value = "false";
	$$("stopOverChk").checked = false;
	$$("stopOverChk").disabled = true;
	//$$("stopOverChk").addClass("selHidden");
}


function enableStopOverBox(){
	$$("stopOverChk").value = "true";
	$$("stopOverChk").disabled = false;
	//$$("stopOverChk").removeClass("selHidden");
}
  
/**
	show / hide stop over checkbox if within stop over O/D desctination 
*/
function enableDisableStopOvers() {
	//alert("enableDisableStopOvers");
	var bStopOver = false;
	var stopOverCheckbox = document.getElementById('stopOverChk');
	var stopOverLabel = document.getElementById('stopOverLb');
	
	// validate if from / to destination have stop over available.
	bStopOver = isStopOverDestination();
	
	// show / hide stop over checkbox.
	if (bStopOver) {
		//stopOverCheckbox.style.display="";
		//stopOverLabel.style.display="";
		enableStopOverBox();
	} else {
		//stopOverCheckbox.style.display="none";
		//stopOverLabel.style.display="none";
		disableStopOverBox();
	}
	//alert("checkbox : " + document.getElementById('stopOverChk').value);
}

/**
	redirect to IBE page when stop over checkbox is checked,
	only redirect if checkbox is checked-true.
*/
function stopOverRedirect() {
	//alert("stopOverRedirect");
	var stopOverCheckbox = document.getElementById('stopOverChk');
	if (stopOverCheckbox.checked == true) {
		isStopOver = true;
		s_objectID="ibe_book";
		submitform("ibeForm");

		//window.location = stopOverUrl; 
		//return true;
	}
}

/**
	pop up window for stop over info page.
*/
function stopOverInfoRedirect() {
	window.open(stopOverInfoUrl);
}
 