function chooseEngine(){
	
	//check departure city
	var city1 = document.quicksearch.B_LOCATION_1.value;
	if(domestics[city1] == "false") {
		
		$("#residency").dialog('open');
	} else {
		flexPricerProcess(true);
	
	}
	return false;
}

function checkData(){
	if(document.quicksearch.B_DATE_1.value == ""){
		alert("Depart date is empty");
		return false;
	}
	for (var i = 0; i < document.quicksearch.TRIP_TYPE.length; i++) {
		if(document.quicksearch.TRIP_TYPE[i].checked){
			tripvalue = document.quicksearch.TRIP_TYPE[i].value;
		}
	}
	if (tripvalue == "R"){
		if(document.quicksearch.B_DATE_2.value == ""){
			alert("Return date is empty");
			return false;
		}
		
		
		date1 = document.quicksearch.B_DATE_1.value;
		date2 = document.quicksearch.B_DATE_2.value;
		i1 = date1 * 1;
		i2 = date2 * 1;
		if (i1 > i2){
			alert ("Depart date must be earlier than Return date");
			return false;
		}
	}
	if (document.quicksearch.B_LOCATION_1.value == "null"){
		alert("Please select departure city");
		return false;
	}
	if (document.quicksearch.E_LOCATION_1.value == "null"){
		alert("Please select arrival city");
		return false;
	}
	
	/* Corporate accounts dates check
	if (document.quicksearch.id == 'corporate') {
		if (document.quicksearch.valid_from && document.quicksearch.expire_at) {
			value1 = document.quicksearch.B_DATE_1.value;
			value2 = document.quicksearch.B_DATE_2.value;
			value3 = document.quicksearch.valid_from.value;
			value4 = document.quicksearch.expire_at.value;
			dateChooserLocale = document.FlexPricer.LANGUAGE.value;

	    	if (dateChooserLocale != "GB") {
				envalue1 = convertLocToEn(value1, dateChooserLocale);
				envalue2 = convertLocToEn(value2, dateChooserLocale);
				envalue3 = convertLocToEn(value3, dateChooserLocale);
				envalue4 = convertLocToEn(value4, dateChooserLocale);
			}else{
				envalue1 = value1;
				envalue2 = value2;
	    		envalue3 = value3;
				envalue4 = value4;
			}
	    		
			date1 = $.datepicker.parseDate(envalue1, "d M Y").dateFormat("Ymd");
			date2 = $.datepicker.parseDate(envalue2, "d M Y").dateFormat("Ymd");
			date3 = $.datepicker.parseDate(envalue3, "d M Y").dateFormat("Ymd");
			date4 = $.datepicker.parseDate(envalue4, "d M Y").dateFormat("Ymd");
			i1 = date1 * 1;
			i2 = date2 * 1;
			i3 = date3 * 1;
			i4 = date4 * 1;
			if (i1 < i3){
				alert ("Depart date is out of allowed date range");
				return false;
			}
			if (tripvalue == "R"){
				if (i2 > i4){
					alert ("Return date is out of allowed date range");
					return false;
				}
			}
		}
	}
	 */
	 
	return true;
}

function processTravellersFP(){
	adults = document.quicksearch.adults.value; adults = adults * 1;
	children = document.quicksearch.children.value; children = children * 1;
	infants = document.quicksearch.infants.value; infants = infants * 1;
	document.FlexPricer.TRAVELLER_TYPE_1.value = "";
	document.FlexPricer.TRAVELLER_TYPE_2.value = "";
	document.FlexPricer.TRAVELLER_TYPE_3.value = "";
	document.FlexPricer.TRAVELLER_TYPE_4.value = "";
	document.FlexPricer.TRAVELLER_TYPE_5.value = "";
	document.FlexPricer.TRAVELLER_TYPE_6.value = "";
	document.FlexPricer.TRAVELLER_TYPE_7.value = "";
	document.FlexPricer.TRAVELLER_TYPE_8.value = "";
	document.FlexPricer.TRAVELLER_TYPE_9.value = "";
	document.FlexPricer.HAS_INFANT_1.value = "FALSE";
	document.FlexPricer.HAS_INFANT_2.value = "FALSE";
	travellers = adults + children;
	for (var i = 0; i < travellers; i++) {
		if ((i == 0) & (i < adults)) document.FlexPricer.TRAVELLER_TYPE_1.value = "ADT";
		if ((i == 1) & (i < adults)) document.FlexPricer.TRAVELLER_TYPE_2.value = "ADT";
		if ((i == 2) & (i < adults)) document.FlexPricer.TRAVELLER_TYPE_3.value = "ADT";
		if ((i == 3) & (i < adults)) document.FlexPricer.TRAVELLER_TYPE_4.value = "ADT";
		if ((i == 4) & (i < adults)) document.FlexPricer.TRAVELLER_TYPE_5.value = "ADT";
		if ((i == 1) & (i < travellers) & (adults < 2)) document.FlexPricer.TRAVELLER_TYPE_2.value = "CHD";
		if ((i == 2) & (i < travellers) & (adults < 3)) document.FlexPricer.TRAVELLER_TYPE_3.value = "CHD";
		if ((i == 3) & (i < travellers) & (adults < 4)) document.FlexPricer.TRAVELLER_TYPE_4.value = "CHD";
		if ((i == 4) & (i < travellers) & (adults < 5)) document.FlexPricer.TRAVELLER_TYPE_5.value = "CHD";
		if ((i == 5) & (i < travellers))document.FlexPricer.TRAVELLER_TYPE_6.value = "CHD";
		if ((i == 6) & (i < travellers))document.FlexPricer.TRAVELLER_TYPE_7.value = "CHD";
		if ((i == 7) & (i < travellers))document.FlexPricer.TRAVELLER_TYPE_8.value = "CHD";
		if ((i == 8) & (i < travellers))document.FlexPricer.TRAVELLER_TYPE_9.value = "CHD";
	}
	for (var i = 0; i < infants; i++) {
		if ((i == 0) & (i < infants)) document.FlexPricer.HAS_INFANT_1.value = "TRUE";
		if ((i == 1) & (i < infants)) document.FlexPricer.HAS_INFANT_2.value = "TRUE";
	}
}

function flexPricerProcess(residency){
	if(!checkData()){
		return false;
	} 
	if(document.quicksearch.flex.checked){
		document.FlexPricer.DATE_RANGE_VALUE_1.value = "3";
		document.FlexPricer.DATE_RANGE_VALUE_2.value = "3";
	}
	else{
		document.FlexPricer.DATE_RANGE_VALUE_1.value = "0";
		document.FlexPricer.DATE_RANGE_VALUE_2.value = "0";
	}
	for (var i = 0; i < document.quicksearch.TRIP_TYPE.length; i++) {
		if(document.quicksearch.TRIP_TYPE[i].checked){
			tripvalue = document.quicksearch.TRIP_TYPE[i].value;			
		}
	}
	processTravellersFP();
	
	date1 = document.quicksearch.B_DATE_1.value;
	date2 = document.quicksearch.B_DATE_2.value;
	document.FlexPricer.B_LOCATION_1.value   =  document.quicksearch.B_LOCATION_1.value;
	document.FlexPricer.E_LOCATION_1.value   =  document.quicksearch.E_LOCATION_1.value;
	document.FlexPricer.B_DATE_1.value       =  date1;
	document.FlexPricer.B_DATE_2.value       =  date2;
	document.FlexPricer.TRIP_TYPE.value       =  tripvalue;
	document.FlexPricer.DISPLAY_TYPE.value       =  "1";
	cabinvalue = document.quicksearch.CABIN.value.toUpperCase();
	if (cabinvalue == "B"){
		document.FlexPricer.COMMERCIAL_FARE_FAMILY_1.value       =  "BIZ";
	}
	if (cabinvalue == "E"){
		document.FlexPricer.COMMERCIAL_FARE_FAMILY_1.value       =  "ECO";
	}
	city1 = document.quicksearch.B_LOCATION_1.value;
	city2 = document.quicksearch.E_LOCATION_1.value;
	if ((city1 == "ALA" & city2 == "TSE") | (city1 =="TSE" & city2 == "ALA")){
		document.FlexPricer.DIRECT_NON_STOP.value = "TRUE";
	} else {
		document.FlexPricer.DIRECT_NON_STOP.value = "FALSE";
	}
	if (city1 == "DEL") {
		document.FlexPricer.SO_SITE_TAX_BREAKDOWN_DISP.value = "TRUE";
		document.FlexPricer.SO_SITE_DISP_BREAKDOWN_CONF.value = "FALSE";
		document.FlexPricer.SO_SITE_MAIL_TAX_BREAKDOWN.value = "TRUE";
	} else {
		document.FlexPricer.SO_SITE_TAX_BREAKDOWN_DISP.value = "FALSE";
		document.FlexPricer.SO_SITE_DISP_BREAKDOWN_CONF.value = "FALSE";
		document.FlexPricer.SO_SITE_MAIL_TAX_BREAKDOWN.value = "FALSE";
	}
	/* temp disabled to use regular office IDs
	if (document.quicksearch.id == 'corporate') {
		document.FlexPricer.SO_SITE_OFFICE_ID.value = offices_corp[document.quicksearch.B_LOCATION_1.value];
		document.FlexPricer.SO_SITE_QUEUE_OFFICE_ID.value = offices_corp[document.quicksearch.B_LOCATION_1.value];
	} else {
		document.FlexPricer.SO_SITE_OFFICE_ID.value = offices[document.quicksearch.B_LOCATION_1.value];
		document.FlexPricer.SO_SITE_QUEUE_OFFICE_ID.value = offices[document.quicksearch.B_LOCATION_1.value];	
	}
	*/
	document.FlexPricer.SO_SITE_OFFICE_ID.value = offices[document.quicksearch.B_LOCATION_1.value];
	document.FlexPricer.SO_SITE_QUEUE_OFFICE_ID.value = offices[document.quicksearch.B_LOCATION_1.value];	
	
	/* residency checking */
	if (residency == true) {
		document.FlexPricer.SO_SITE_POINT_OF_SALE.value = 'ALA';
		document.FlexPricer.SO_SITE_POINT_OF_TICKETING.value = 'ALA';
		
		document.FlexPricer.SO_SITE_OFFICE_ID.value = "ALAKC08AA";
		document.FlexPricer.SO_SITE_QUEUE_OFFICE_ID.value = "ALAKC08AA";
	}else{
		 if (currency[city1]!=undefined){
            document.FlexPricer.SO_SITE_POINT_OF_SALE.value = currency[city1];
            document.FlexPricer.SO_SITE_POINT_OF_TICKETING.value = currency[city1];
        }else{
            document.FlexPricer.SO_SITE_POINT_OF_SALE.value = city1;
            document.FlexPricer.SO_SITE_POINT_OF_TICKETING.value = city1;
        }
	}
		 
	/* ffp */
		if ((ffp[city1]=="MM") | (ffp[city2]=="MM")){
			document.FlexPricer.EXTERNAL_ID.value = "MM";
		}else{
			document.FlexPricer.EXTERNAL_ID.value = "NM";
		}
		
	//GA code
	//pageTracker._linkByPost(document.FlexPricer);
	GA_eventTracking('IBE');
	document.FlexPricer.submit();
	//TempDown(); //Used for the cases when IBE is down, also comment out the above line
	return;
}

function checkDateFormat(){
	if(document.quicksearch.B_DATE_1.value == ""){
		return false;
	}
	if(document.quicksearch.B_DATE_2.value == ""){
		return false;
	}
	return true;
}
// TODO: js error, to_date_chooser not defined
function hideReturnDate(){
	document.getElementById('to_date').style.visibility='hidden';
	document.getElementById('to_date_chooser').style.visibility='hidden';
	document.getElementById('B_DATE_2_LABEL').style.visibility='hidden';
}
function showReturnDate(){
	document.getElementById('to_date').style.visibility='visible';
	document.getElementById('to_date_chooser').style.visibility='visible';
	document.getElementById('B_DATE_2_LABEL').style.visibility='visible';
}

function changeDate(element){
	element2 = document.getElementById("to_date");
	value1 = element.value;
	value2 = element2.value;
	if (dateChooserLocale != document.FlexPricer.LANGUAGE.value) {
		dateChooserLocale = document.FlexPricer.LANGUAGE.value;
	}
    	if (dateChooserLocale != "GB") {
    		envalue1 = convertLocToEn(value1, dateChooserLocale);
    		envalue2 = convertLocToEn(value2, dateChooserLocale);
    	}else{
    		envalue1 = value1;
    		envalue2 = value2;
    	}
	var firstdate = new Date();
	var seconddate = new Date();
	firstdate.setTime(Date.parse(envalue1));
	seconddate.setTime(Date.parse(envalue2));
	if (firstdate.valueOf() > seconddate.valueOf()){
		daysplus = firstdate.getDate() + 7;
		firstdate.setDate(daysplus);
	    	if (dateChooserLocale != "GB") {
    			lvalue2 = convertEnToLoc(firstdate.dateFormat("d M Y"), dateChooserLocale);
    		}else{
    			lvalue2 = firstdate.dateFormat("d M Y");
    		}
		element2.value = lvalue2;
	}
}
/* TODO messages must go in i18n file */
function TempDown() {
	var lang = document.FlexPricer.LANGUAGE.value;
	if(lang == 'US') { msg = 'Өкінішке орай біздің жүйелеріміз қазіргі сәтте техникалық қиындықтарға тап болып, уақытша қолайсыз болмақ. Кейінірек, тағы да қолданып көруіңізді сұраймыз.'}
	else if(lang == 'RU') { msg = 'С сожалением сообщаем вам о том, что наши системы в данный момент испытывают технические затруднения и временно будут недоступными. Пожалуйста, попробуйте через несколько минут.'}
	else {msg = 'We regret to inform that our systems are experiencing technical difficulties and will be temporary unavailable.  Please try again in a few minutes.'}
	alert(msg);
	return false;
}

function selectCity1(){
	if (defaults[document.quicksearch.B_LOCATION_1.value] != ""){
		/* document.quicksearch.E_LOCATION_1.value = defaults[document.quicksearch.B_LOCATION_1.value]; */
	}
    chooseSubmit();
}

function chooseSubmit(){
	city1 = document.quicksearch.B_LOCATION_1.value;
	if(domestics[city1]=="true"){
		document.getElementById("f_searchform_bottom_q").style.width = '0px';
		document.getElementById("f_searchform_bottom_q").style.height = '0px';
		document.getElementById("f_searchform_bottom").style.width = '190px';
		document.getElementById("f_searchform_bottom").style.height = '58px';
	}
	if(domestics[city1]=="false"){
		document.getElementById("f_searchform_bottom").style.width = '0px';
		document.getElementById("f_searchform_bottom").style.height = '0px';
		document.getElementById("f_searchform_bottom_q").style.width = '190px';
		document.getElementById("f_searchform_bottom_q").style.height = '58px';
	}
}

/* default values, when pax chooses one city, form shows default city pair */
var defaults = {
	SCO:"ALA",
	AKX:"ALA",
	ALA:"TSE",
	AMS:"ALA",
	AYT:"ALA",
	TSE:"ALA",
	GUW:"ALA",
	BKK:"ALA",
	PEK:"ALA",
	DEL:"ALA",
	DXB:"ALA",
	FRA:"ALA",
	HAJ:"ALA",
	IST:"ALA",
	KGF:"ALA",
	KSN:"ALA",
	KZO:"ALA",
	LHR:"ALA",
	SVO:"ALA",
	URA:"ALA",
	UKK:"ALA",
	PWQ:"ALA",
	PPK:"ALA",
	PLX:"ALA",
	ICN:"ALA",
	CIT:"ALA",
	DMB:"ALA",
	DZN:"ALA",
    	FRU:"ALA",
    	GYD:"ALA",
    	URC:"TSE",
    	OVB:"TSE"
}
/* these cities use FRA office to process payments in EUR */
var currency = {
	IST:"FRA",
	AYT:"FRA",
	SVO:"FRA",
    	FRU:"FRA",
    	GYD:"FRA",
    	OVB:"FRA",
	KUL:"FRA"
}
/* Office IDs, 2 offices support different currencies */
var offices = {
	SCO:"ALAKC08AA",
	AKX:"ALAKC08AA",
	ALA:"ALAKC08AA",
	AMS:"ALAKC08AA",
	AYT:"ALAKC08AA",
	TSE:"ALAKC08AA",
	GUW:"ALAKC08AA",
	BKK:"ALAKC08BB",
	PEK:"ALAKC08BB",
	DEL:"ALAKC08BB",
	DXB:"ALAKC08AA",
	FRA:"ALAKC08AA",
	HAJ:"ALAKC08AA",
	IST:"ALAKC08AA",
	KGF:"ALAKC08AA",
	KSN:"ALAKC08AA",
	KZO:"ALAKC08AA",
	LHR:"ALAKC08AA",
	SVO:"ALAKC08AA",
	URA:"ALAKC08AA",
	UKK:"ALAKC08AA",
	PWQ:"ALAKC08AA",
	PPK:"ALAKC08AA",
	PLX:"ALAKC08AA",
	ICN:"ALAKC08BB",
	CIT:"ALAKC08AA",
	DMB:"ALAKC08AA",
	DZN:"ALAKC08AA",
    	FRU:"ALAKC08AA",
    	GYD:"ALAKC08AA",
    	URC:"ALAKC08BB",
    	OVB:"ALAKC08AA",
	KUL:"ALAKC08AA"
}

/* Office IDs for Corporate Accounts */
var offices_corp = {
	SCO:"ALAKC08CC",
	AKX:"ALAKC08CC",
	ALA:"ALAKC08CC",
	AMS:"ALAKC08CC",
	AYT:"ALAKC08CC",
	TSE:"ALAKC08CC",
	GUW:"ALAKC08CC",
	BKK:"ALAKC08DD",
	PEK:"ALAKC08DD",
	DEL:"ALAKC08DD",
	DXB:"ALAKC08CC",
	FRA:"ALAKC08CC",
	HAJ:"ALAKC08CC",
	IST:"ALAKC08CC",
	KGF:"ALAKC08CC",
	KSN:"ALAKC08CC",
	KZO:"ALAKC08CC",
	LHR:"ALAKC08CC",
	SVO:"ALAKC08CC",
	URA:"ALAKC08CC",
	UKK:"ALAKC08CC",
	PWQ:"ALAKC08CC",
	PPK:"ALAKC08CC",
	PLX:"ALAKC08CC",
	ICN:"ALAKC08DD",
	CIT:"ALAKC08CC",
	DMB:"ALAKC08CC",
	DZN:"ALAKC08CC",
    	FRU:"ALAKC08CC",
    	GYD:"ALAKC08CC",
    	URC:"ALAKC08DD",
    	OVB:"ALAKC08CC",
	KUL:"ALAKC08CC"
}

/* Frequent flyer program */
var ffp = {
	SCO:"NM",
	AKX:"NM",
	ALA:"NM",
	AMS:"NM",
	AYT:"NM",
	TSE:"NM",
	GUW:"NM",
	BKK:"NM",
	PEK:"NM",
	DEL:"NM",
	DXB:"NM",
	FRA:"MM",
	HAJ:"MM",
	IST:"NM",
	KGF:"NM",
	KSN:"NM",
	KZO:"NM",
	LHR:"MM",
	SVO:"NM",
	URA:"NM",
	UKK:"NM",
	PWQ:"NM",
	PPK:"NM",
	PLX:"NM",
	ICN:"NM",
	CIT:"NM",
	DMB:"NM",
	DZN:"NM",
	URC:"NM",
	FRU:"NM",
	GYD:"NM",
	OVB:"NM",
	KUL:"NM"
}
/* Dual payment gateway, if yes, then KKB PSP, if false, then MIGS PSP */
var domestics = {
	SCO:"true",
	AKX:"true",
	ALA:"true",
	AMS:"false",
	AYT:"false",
	TSE:"true",
	GUW:"true",
	BKK:"false",
	PEK:"false",
	DEL:"false",
	DXB:"false",
	FRA:"false",
	HAJ:"false",
	IST:"false",
	KGF:"true",
	KSN:"true",
	KZO:"true",
	LHR:"false",
	SVO:"false",
	URA:"true",
	UKK:"true",
	PWQ:"true",
	PPK:"true",
	PLX:"true",
	ICN:"false",
	CIT:"true",
	DMB:"true",
	DZN:"true",
	FRU:"false",
	GYD:"false",
	URC:"false",
	OVB:"false",
	URC:"false",
	KUL:"false"
}
