var malaysiaCodes		= new Array("AOR","BKM","BBN","BTU","JHB","KBR","BKI","KUL","TGG","KUA","KCH","KUD","LBU","LDU","LGK","LWY","LWN","LKH","LBP","LGL","ODN","MUR","MYY","MKM","MZV","PEN","SDK","SBW","TGC","TWU");

var malaysiaCodesLimit	= new Array("KUL", "JHB", "KCH", "BTU", "LBP", "LBU", "LDU", "LGL", "LKH", "LWY", "MUR", "MYY", "MZV", "SBW", "SDK", "TGC", "TWU", "PEN", "AOR", "KBR", "TGG", "KUA", "LGK", "BBN", "ODN", "BKM", "LMN", "MKM", "BKI", "TWU");

var KULCodes	= new Array("TWU","MYY","BTU","SBW","KCH","PEN","AOR","KBR","TGG","JHB","KUA","LGK","LBU","SDK","BKI");
var TWUCodes	= new Array("KUL","BKI","SDK");
var MYYCodes	= new Array("KUL","KCH","BKI","BTU","LBP","LBU","LGL","LKH","LWY","BBN","BKM","LMN","MKM","MUR","ODN","SBW","MZV");
var BTUCodes	= new Array("KUL","KCH","BKI","KCH","MYY","SBW");
var SBWCodes	= new Array("KUL","KCH","MYY","BKI","BTU");
var KCHCodes	= new Array("KUL","JHB","BKI","MYY","SBW","BTU","TGC");
var PENCodes	= new Array("KUL");
var AORCodes	= new Array("KUL");
var KBRCodes	= new Array("KUL");
var TGGCodes	= new Array("KUL");
var JHBCodes	= new Array("KUL","KCH");
var KUACodes	= new Array("KUL");
var LGKCodes	= new Array("KUL");
var LBUCodes	= new Array("KUL","BKI","MYY");
var SDKCodes	= new Array("KUL","BKI","TWU");
var BKICodes	= new Array("KUL","KCH","TWU","SDK","LBU","MYY","BTU","LBU","LDU","SBW");
var LBPCodes	= new Array("MUR","MYY");
var MURCodes	= new Array("LBP","BBN","LGL","LKH","ODN","MYY");
var LDUCodes	= new Array("BKI");
var LGLCodes	= new Array("MYY","MUR");
var LKHCodes	= new Array("MYY","MUR");
var LWYCodes	= new Array("BKM","MYY");
var BKMCodes	= new Array("LWY","MYY");
var BBNCodes	= new Array("MUR","MYY");
var ODNCodes	= new Array("MUR","MYY");
var LMNCodes	= new Array("MYY");
var MKMCodes	= new Array("MYY");
var MZVCodes	= new Array("MYY");
var TGCCodes	= new Array("KCH");

var otherDomesticRoutesOLD	= new Array("SIN", "BWN", "DPS", "CGK", "MES", "SUB", "JOG", "BKK", "HKT", "REP", "PNH", "MNL", "CEB", "HAN", "SGN", "RGN");
var otherDomesticRoutes	= new Array("SIN", "BWN", "DPS", "CGK", "MES", "SUB", "JOG", "BKK", "HKT", "REP", "PNH", "MNL", "CEB", 
									"HAN", "SGN", "RGN", "ADL", "BNE", "PER", "SYD", "MEL", "BEY", "DXB", "HKG" , "BLR", "BOM",
									"DEL", "HYD", "MAA", "KMG", "CAN", "PEK", "PVG", "XMN", "CDG", "DAC", "KHI", "IST", /*"EWR",*/ 
									"LAX", /*"ARN",*/ "TPE", "EZE", "CPT",	"FRA", "ICN", "JED", "KHH", "KIX", "NRT", "LHR", "MLE", 
									"CMB", "JNB", "AMS", "AKL", "FCO", "MFM");

// --- Singapore ---
var SINRoutes = new Array("PEN","KUL","LGK","BKI","KCH");
// --- Brunei Darussalam ---
var BWNRoutes 	= new Array("KUL","BKI");
// ---  Indonesia ---
var DPSRoutes 	= new Array("KUL");
var CGKRoutes 	= new Array("KUL");
var MESRoutes 	= new Array("KUL", "PEN");
var SUBRoutes 	= new Array("KUL");
var JOGRoutes 	= new Array("KUL");
// --- Thailand ---
var BKKRoutes 	= new Array("KUL");
var HKTRoutes 	= new Array("KUL");
// --- Cambodia ---
var REPRoutes 	= new Array("KUL");
var PNHRoutes 	= new Array("KUL");
// --- Philippines ---
var MNLRoutes 	= new Array("KUL");
var CEBRoutes 	= new Array("KUL", "BKI");
// --- Vietnam ---
var HANRoutes 	= new Array("KUL");
var SGNRoutes 	= new Array("KUL");
// --- Myanmar, Union of ---
var RGNRoutes 	= new Array("KUL");
// --- Australia ---
var ADLRoutes 	= new Array("KUL");
var BNERoutes 	= new Array("KUL");
var PERRoutes 	= new Array("KUL");
var SYDRoutes 	= new Array("KUL", "BNE");
var MELRoutes 	= new Array("KUL");
// --- Lebanon ---
var BEYRoutes 	= new Array("DXB");
// --- Dubai ---
var DXBRoutes 	= new Array("BEY");
// --- HongKong ---
var HKGRoutes	= new Array("KUL", "BKI", "KCH");
// --- India ---
var BLRRoutes 	= new Array("KUL");
var BOMRoutes 	= new Array("KUL");
var DELRoutes 	= new Array("KUL");
var HYDRoutes 	= new Array("KUL");
var MAARoutes 	= new Array("KUL");
// --- China, Republic of ---
var KMGRoutes 	= new Array("KUL");
var CANRoutes 	= new Array("KUL", "BKI", "KCH");
var PEKRoutes 	= new Array("KUL");
var PVGRoutes 	= new Array("KUL");
var XMNRoutes 	= new Array("KUL");
// --- France ---
var CDGRoutes 	= new Array("KUL");
// --- Bangladesh ---
var DACRoutes 	= new Array("KUL");
// --- United Arab Emirates ---
var DXBRoutes 	= new Array("BEY", "KHI", "IST", "KUL");
// --- Pakistan ---
var KHIRoutes	= new Array("DXB", "KUL");
// --- Turkey ---
var ISTRoutes	= new Array("DXB", "KUL");
// --- United States ---
//var EWRRoutes	= new Array("ARN", "KUL");
var LAXRoutes	= new Array("TPE", "KUL");
// --- Nordic Sweden ---
//var ARNRoutes	= new Array("EWR", "KUL");
// --- Taiwan ---
var TPERoutes	= new Array("LAX", "BKI", "KUL", "LAX");
var KHHRoutes	= new Array("BKI", "KUL");
// --- Argentina ---
var EZERoutes	= new Array("CPT");
// --- South Africa ---
var CPTRoutes	= new Array("EZE", "JNB", "KUL");
var JNBRoutes	= new Array("CPT", "KUL");
// --- Germany ---
var FRARoutes	= new Array("KUL");
// --- Korea ---
var ICNRoutes	= new Array("KUL", "BKI");
// --- Saudi Arabia ---
var JEDRoutes	= new Array("KUL");
// --- Japan ---
var KIXRoutes	= new Array("KUL", "BKI");
var NRTRoutes	= new Array("KUL", "BKI");
// --- United Kingdom ---
var LHRRoutes	= new Array("KUL");
// --- Maldives ---
var MLERoutes	= new Array("KUL", "CMB");
// --- Sri Lanka ---
var CMBRoutes	= new Array("MLE", "KUL");
// --- New Zealand ---
var AKLRoutes	= new Array("KUL");
// --- Netherlands ---
var AMSRoutes	= new Array("KUL");
// --- Itay ---
var FCORoutes	= new Array("KUL");
// --- Macau ---
var MFMRoutes	= new Array("KUL");


var fromMalaysia = false;
var toMalaysia = false;

var IbeErrorMsg1 		= "You must select your Departure City";
var IbeErrorMsg2		= "You must select your Return City";
var IbeErrorMsg3		= "Please make sure that your Return date must not earlier than 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;




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(){
	//alert(CountryCode);
	
	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":
			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 + "&");
	//processData += ("_deptime=" +  + "&");
	
	if($$("returnType").checked){
		processData += ("daysofweekselect2=" + returnDay + "&");
		processData += ("_retdate.day=" + returnDate + "&");
		processData += ("_retdate.monthyear=" + returnMonthYear + "&");
		//processData += ("_rettime=" +  + "&");
	}
	
	var totalAdults = $$("selAdult").value;
	var totalAdultsDom = $$("selAdultDom").value;
	var totalChildren = $$("selChildren").value;
	var totalChildrenFlex = $$("selChildrenFlex").value;
	var totalInfants = $$("selInfants").value;
	var totalInfantsFlex = $$("selInfantsFlex").value;
	
	//processData += ("_adults=" + totalAdults + "&");
	
	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 + "&");
	}
	
	processData += ("_classType=" + $$("fareClass").value  + "&");
	//processData += ("_channelLocale=" + $$("locale").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";
					//processData += "&_depdatewindow=P0D";
				}
			}
			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;
				
	//alert(processData);		
	/*
	$$("ibeForm").action = processData;
	$$("ibeForm").submit();
	*/
	document.ibeForm.action = processData;
	document.ibeForm.submit();
}


function checkDomesticLocation(){
	var fromLocation = $$("wdforigin1").value;
	var toLocation = $$("wdfdest1").value;
	
	/*
	
	fromMalaysia = false;
	toMalaysia = false;
	
	var domesticFrom 	= false;
	var domesticTo 		= false;
	var MYfromDomestic	= false;
	var MYtoDomestic	= false;
	
	// --- check whether is the departure location from one of the domestic location ---
	for(var i = 0; i < otherDomesticRoutes.length; ++i){
		if(otherDomesticRoutes[i] == fromLocation){
			domesticFrom = true;
			break;
		}
	}

	if(!domesticFrom){
		// --- check whether is the departure location from malaysia ---
		for(var i = 0; i < malaysiaCodesLimit.length; ++i){
			if(malaysiaCodesLimit[i] == fromLocation){
				fromMalaysia = true;
				break;
			}
		}
		
		// --- check whether is the arrival location from malaysia ---
		if(fromMalaysia){
			var tempArray = eval(fromLocation+"Codes");
			
			for(var i = 0; i < tempArray.length; ++i){
				if(tempArray[i] == toLocation){
					toMalaysia = true;
					break;
				}
			}
		}
		
	} else {
		var tempArray = eval(fromLocation+"Routes");
		
		for(var i = 0; i < tempArray.length; ++i){
			if(tempArray[i] == toLocation){
				domesticTo = true;
				break;
			}
		}
	}
	
	// --- if it's from malaysia, check whether is it going to any of the special domestic location ---
	if( (!toMalaysia) && (fromMalaysia) ){

		for(var i = 0; i < otherDomesticRoutes.length; ++i){
			if(otherDomesticRoutes[i] == toLocation){
				MYtoDomestic = true;
				break;
			}
		}
		
		if(MYtoDomestic){
			var tempArray = eval(toLocation+"Routes");
			
			for(var i = 0; i < tempArray.length; ++i){
				if(tempArray[i] == fromLocation){
					MYfromDomestic = true;
					break;
				}
			}
		}
		
	}
	*/
	
	// --- check if both location comes from malaysia ---
	//if( ( (fromMalaysia) && (toMalaysia) ) || ( (domesticFrom) && (domesticTo) ) || ( (MYfromDomestic) && (MYtoDomestic) ) ){
		$$("travelOption").removeClass("travelOptionHidden");
		//$$("blankOption").removeClass("blankPlacement");
		//$$("blankOption").addClass("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");
		}
	/*}
	else{
		$$("travelOption").addClass("travelOptionHidden");
		//$$("blankOption").addClass("blankPlacement");
		//$$("blankOption").removeClass("travelOptionHidden");
		domesticType = false;
		
		$$("selAdultDom").addClass("selHidden");
		$$("selAdult").removeClass("selHidden");
		
		$$("selChildrenFlex").addClass("selHidden");
		$$("selChildren").removeClass("selHidden");
			
		$$("selInfantsFlex").addClass("selHidden");
		$$("selInfants").removeClass("selHidden");
		
		$$("blankForIE6").removeClass("travelOptionHidden");
	}*/
}

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();
}