/*

	HITIT CMS INTEGRATION
	FLIGHT SEARCH API

*/

/* FlightSearch Constructor */
(function($, global){

	if(!$){
		console.log("jQuery is required by HITIT Flight Search API!");
	}

	var FlightSearch = function(){

		/*default values*/

		this.tripType = "ONE_WAY";
		this.tripTypeArea = $("#tripTypeArea");

		this.depPort = $("select#depPort");
		this.depPortArea = $("#depPortArea");

		this.arrPort = $("select#arrPort");
		this.arrPortArea = $("#arrPortArea");

		this.multiDepPort = $("select#multiDepPort");
		this.multiDepPortArea = $("#multiDepPortArea");

		this.multiArrPort = $("select#multiArrPort");
		this.multiArrPortArea = $("#multiArrPortArea");

		this.departureDate = $("input#departureDate");
		this.departureDateArea = $("#departureDateArea");

		this.returnDate = $("input#returnDate");
		this.returnDateArea = $("#returnDateArea");

		this.openDepartureDate = $("input#openDepartureDate");
		this.openDepartureDateArea = $("#openDepartureDateArea");

		this.openReturnDate = $("input#openReturnDate");
		this.openReturnDateArea = $("#openReturnDateArea");

		this.extendedMultiDestination = "T"=="F";
		this.extraMultiRoutesArea=$("#extraMultiRoutesArea");
		this.routesArea=$("#routesArea");
		this.maxMultiDestinationCount=6;

		this.multiRouteAreaMap=new Map();
		this.multiDepPortMap=new Map();
		this.multiArrPortMap=new Map();
		this.multiDepartureDateMap=new Map();
		this.multiCabinClassMap=new Map();

		this.btnAddRouteArea=$("#btnAddRouteArea");
		this.btnResetRouteArea=$("#btnResetRouteArea");


		this.adult = $("select#adult");
		this.adultArea = $("#adultArea");

		this.child = $("select#child");
		this.childArea = $("#childArea");

		this.infant = $("select#infant");
		this.infantArea = $("#infantArea");

		this.student = $("select#student");
		this.studentArea = $("#studentArea");

		this.soldier = $("select#soldier");
		this.soldierArea = $("#soldierArea");

		this.discountsArea = $("#discountsArea");
		this.stcr = $("input#isStcrPnr");

		this.cabinClass =  $("#cabinClass");
		this.cabinClassArea =  $("#cabinClassArea");

		this.defaultCabinClass = "";

		this.currency = $("#currency");
		this.currencyArea =  $("#currencyArea");

		this.actionURL = "RezvEntry.xhtml";

		this.depPortList = [{"selectItems":[{"disabled":false,"label":"Nassau Lynden Pindling International (NAS)","value":"NAS","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Crooked Island (CRI)","value":"CRI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Deadman\u0027s Cay Airport (LGI)","value":"LGI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Exuma International Airport (GGT)","value":"GGT","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Freeport Grand Bahama International Airport (FPO)","value":"FPO","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Governor\u0027s Harbour Airport (GHB)","value":"GHB","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Inagua Airport (IGA)","value":"IGA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Marsh Harbour International Airport (MHH)","value":"MHH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Mayaguana Airport (MYG)","value":"MYG","escape":true,"noSelectionOption":false},{"disabled":false,"label":"North Eleuthera Airport (ELH)","value":"ELH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Rock Sound Airport (RSD)","value":"RSD","escape":true,"noSelectionOption":false},{"disabled":false,"label":"San Salvador Airport (ZSA)","value":"ZSA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Spring Point Airport (AXP)","value":"AXP","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Bahamas","value":"BS","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Havana Jose Marti International (HAV)","value":"HAV","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Cuba","value":"CU","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Cap Haitien International Airport (CAP)","value":"CAP","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Haiti","value":"HT","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Providenciales Airport (PLS)","value":"PLS","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Turks and Caicos Islands","value":"TC","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Fort Lauderdale Hollywood International (FLL)","value":"FLL","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Miami International Airport (MIA)","value":"MIA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Orlando International Airport (MCO)","value":"MCO","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Palm Beach International Airport (PBI)","value":"PBI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Raleigh Durham International Airport (RDU)","value":"RDU","escape":true,"noSelectionOption":false}],"disabled":false,"label":"United States","value":"US","escape":false,"noSelectionOption":false}] || {};
		this.arrPortMatrix = {"GHB":[{"selectItems":[{"disabled":false,"label":"Nassau Lynden Pindling International (NAS)","value":"NAS","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Crooked Island (CRI)","value":"CRI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Deadman\u0027s Cay Airport (LGI)","value":"LGI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Exuma International Airport (GGT)","value":"GGT","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Freeport Grand Bahama International Airport (FPO)","value":"FPO","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Inagua Airport (IGA)","value":"IGA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Marsh Harbour International Airport (MHH)","value":"MHH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Mayaguana Airport (MYG)","value":"MYG","escape":true,"noSelectionOption":false},{"disabled":false,"label":"North Eleuthera Airport (ELH)","value":"ELH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"San Salvador Airport (ZSA)","value":"ZSA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Spring Point Airport (AXP)","value":"AXP","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Bahamas","value":"BS","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Havana Jose Marti International (HAV)","value":"HAV","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Cuba","value":"CU","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Fort Lauderdale Hollywood International (FLL)","value":"FLL","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Miami International Airport (MIA)","value":"MIA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Orlando International Airport (MCO)","value":"MCO","escape":true,"noSelectionOption":false}],"disabled":false,"label":"United States","value":"US","escape":false,"noSelectionOption":false}],"ELH":[{"selectItems":[{"disabled":false,"label":"Nassau Lynden Pindling International (NAS)","value":"NAS","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Deadman\u0027s Cay Airport (LGI)","value":"LGI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Exuma International Airport (GGT)","value":"GGT","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Freeport Grand Bahama International Airport (FPO)","value":"FPO","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Governor\u0027s Harbour Airport (GHB)","value":"GHB","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Marsh Harbour International Airport (MHH)","value":"MHH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"San Salvador Airport (ZSA)","value":"ZSA","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Bahamas","value":"BS","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Fort Lauderdale Hollywood International (FLL)","value":"FLL","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Miami International Airport (MIA)","value":"MIA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Orlando International Airport (MCO)","value":"MCO","escape":true,"noSelectionOption":false}],"disabled":false,"label":"United States","value":"US","escape":false,"noSelectionOption":false}],"NAS":[{"selectItems":[{"disabled":false,"label":"Crooked Island (CRI)","value":"CRI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Deadman\u0027s Cay Airport (LGI)","value":"LGI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Exuma International Airport (GGT)","value":"GGT","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Freeport Grand Bahama International Airport (FPO)","value":"FPO","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Governor\u0027s Harbour Airport (GHB)","value":"GHB","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Inagua Airport (IGA)","value":"IGA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Marsh Harbour International Airport (MHH)","value":"MHH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Mayaguana Airport (MYG)","value":"MYG","escape":true,"noSelectionOption":false},{"disabled":false,"label":"North Eleuthera Airport (ELH)","value":"ELH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Rock Sound Airport (RSD)","value":"RSD","escape":true,"noSelectionOption":false},{"disabled":false,"label":"San Salvador Airport (ZSA)","value":"ZSA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Spring Point Airport (AXP)","value":"AXP","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Bahamas","value":"BS","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Havana Jose Marti International (HAV)","value":"HAV","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Cuba","value":"CU","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Cap Haitien International Airport (CAP)","value":"CAP","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Haiti","value":"HT","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Providenciales Airport (PLS)","value":"PLS","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Turks and Caicos Islands","value":"TC","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Fort Lauderdale Hollywood International (FLL)","value":"FLL","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Miami International Airport (MIA)","value":"MIA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Orlando International Airport (MCO)","value":"MCO","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Palm Beach International Airport (PBI)","value":"PBI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Raleigh Durham International Airport (RDU)","value":"RDU","escape":true,"noSelectionOption":false}],"disabled":false,"label":"United States","value":"US","escape":false,"noSelectionOption":false}],"RSD":[{"selectItems":[{"disabled":false,"label":"Nassau Lynden Pindling International (NAS)","value":"NAS","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Crooked Island (CRI)","value":"CRI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Deadman\u0027s Cay Airport (LGI)","value":"LGI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Exuma International Airport (GGT)","value":"GGT","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Freeport Grand Bahama International Airport (FPO)","value":"FPO","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Governor\u0027s Harbour Airport (GHB)","value":"GHB","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Inagua Airport (IGA)","value":"IGA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Marsh Harbour International Airport (MHH)","value":"MHH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Mayaguana Airport (MYG)","value":"MYG","escape":true,"noSelectionOption":false},{"disabled":false,"label":"North Eleuthera Airport (ELH)","value":"ELH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"San Salvador Airport (ZSA)","value":"ZSA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Spring Point Airport (AXP)","value":"AXP","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Bahamas","value":"BS","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Havana Jose Marti International (HAV)","value":"HAV","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Cuba","value":"CU","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Cap Haitien International Airport (CAP)","value":"CAP","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Haiti","value":"HT","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Providenciales Airport (PLS)","value":"PLS","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Turks and Caicos Islands","value":"TC","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Fort Lauderdale Hollywood International (FLL)","value":"FLL","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Miami International Airport (MIA)","value":"MIA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Orlando International Airport (MCO)","value":"MCO","escape":true,"noSelectionOption":false}],"disabled":false,"label":"United States","value":"US","escape":false,"noSelectionOption":false}],"IGA":[{"selectItems":[{"disabled":false,"label":"Nassau Lynden Pindling International (NAS)","value":"NAS","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Deadman\u0027s Cay Airport (LGI)","value":"LGI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Exuma International Airport (GGT)","value":"GGT","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Freeport Grand Bahama International Airport (FPO)","value":"FPO","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Governor\u0027s Harbour Airport (GHB)","value":"GHB","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Marsh Harbour International Airport (MHH)","value":"MHH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Mayaguana Airport (MYG)","value":"MYG","escape":true,"noSelectionOption":false},{"disabled":false,"label":"North Eleuthera Airport (ELH)","value":"ELH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Rock Sound Airport (RSD)","value":"RSD","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Bahamas","value":"BS","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Providenciales Airport (PLS)","value":"PLS","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Turks and Caicos Islands","value":"TC","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Fort Lauderdale Hollywood International (FLL)","value":"FLL","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Miami International Airport (MIA)","value":"MIA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Orlando International Airport (MCO)","value":"MCO","escape":true,"noSelectionOption":false}],"disabled":false,"label":"United States","value":"US","escape":false,"noSelectionOption":false}],"RDU":[{"selectItems":[{"disabled":false,"label":"Nassau Lynden Pindling International (NAS)","value":"NAS","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Freeport Grand Bahama International Airport (FPO)","value":"FPO","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Bahamas","value":"BS","escape":false,"noSelectionOption":false}],"MIA":[{"selectItems":[{"disabled":false,"label":"Nassau Lynden Pindling International (NAS)","value":"NAS","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Crooked Island (CRI)","value":"CRI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Deadman\u0027s Cay Airport (LGI)","value":"LGI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Exuma International Airport (GGT)","value":"GGT","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Freeport Grand Bahama International Airport (FPO)","value":"FPO","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Governor\u0027s Harbour Airport (GHB)","value":"GHB","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Inagua Airport (IGA)","value":"IGA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Marsh Harbour International Airport (MHH)","value":"MHH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Rock Sound Airport (RSD)","value":"RSD","escape":true,"noSelectionOption":false},{"disabled":false,"label":"San Salvador Airport (ZSA)","value":"ZSA","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Bahamas","value":"BS","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Havana Jose Marti International (HAV)","value":"HAV","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Cuba","value":"CU","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Cap Haitien International Airport (CAP)","value":"CAP","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Haiti","value":"HT","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Providenciales Airport (PLS)","value":"PLS","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Turks and Caicos Islands","value":"TC","escape":false,"noSelectionOption":false}],"FPO":[{"selectItems":[{"disabled":false,"label":"Nassau Lynden Pindling International (NAS)","value":"NAS","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Crooked Island (CRI)","value":"CRI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Deadman\u0027s Cay Airport (LGI)","value":"LGI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Exuma International Airport (GGT)","value":"GGT","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Governor\u0027s Harbour Airport (GHB)","value":"GHB","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Inagua Airport (IGA)","value":"IGA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Marsh Harbour International Airport (MHH)","value":"MHH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Mayaguana Airport (MYG)","value":"MYG","escape":true,"noSelectionOption":false},{"disabled":false,"label":"North Eleuthera Airport (ELH)","value":"ELH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Rock Sound Airport (RSD)","value":"RSD","escape":true,"noSelectionOption":false},{"disabled":false,"label":"San Salvador Airport (ZSA)","value":"ZSA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Spring Point Airport (AXP)","value":"AXP","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Bahamas","value":"BS","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Havana Jose Marti International (HAV)","value":"HAV","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Cuba","value":"CU","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Cap Haitien International Airport (CAP)","value":"CAP","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Haiti","value":"HT","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Providenciales Airport (PLS)","value":"PLS","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Turks and Caicos Islands","value":"TC","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Fort Lauderdale Hollywood International (FLL)","value":"FLL","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Miami International Airport (MIA)","value":"MIA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Orlando International Airport (MCO)","value":"MCO","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Raleigh Durham International Airport (RDU)","value":"RDU","escape":true,"noSelectionOption":false}],"disabled":false,"label":"United States","value":"US","escape":false,"noSelectionOption":false}],"FLL":[{"selectItems":[{"disabled":false,"label":"Nassau Lynden Pindling International (NAS)","value":"NAS","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Crooked Island (CRI)","value":"CRI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Deadman\u0027s Cay Airport (LGI)","value":"LGI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Exuma International Airport (GGT)","value":"GGT","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Freeport Grand Bahama International Airport (FPO)","value":"FPO","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Governor\u0027s Harbour Airport (GHB)","value":"GHB","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Inagua Airport (IGA)","value":"IGA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Marsh Harbour International Airport (MHH)","value":"MHH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Mayaguana Airport (MYG)","value":"MYG","escape":true,"noSelectionOption":false},{"disabled":false,"label":"North Eleuthera Airport (ELH)","value":"ELH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Rock Sound Airport (RSD)","value":"RSD","escape":true,"noSelectionOption":false},{"disabled":false,"label":"San Salvador Airport (ZSA)","value":"ZSA","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Bahamas","value":"BS","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Havana Jose Marti International (HAV)","value":"HAV","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Cuba","value":"CU","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Cap Haitien International Airport (CAP)","value":"CAP","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Haiti","value":"HT","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Providenciales Airport (PLS)","value":"PLS","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Turks and Caicos Islands","value":"TC","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Orlando International Airport (MCO)","value":"MCO","escape":true,"noSelectionOption":false}],"disabled":false,"label":"United States","value":"US","escape":false,"noSelectionOption":false}],"ZSA":[{"selectItems":[{"disabled":false,"label":"Nassau Lynden Pindling International (NAS)","value":"NAS","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Deadman\u0027s Cay Airport (LGI)","value":"LGI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Exuma International Airport (GGT)","value":"GGT","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Freeport Grand Bahama International Airport (FPO)","value":"FPO","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Governor\u0027s Harbour Airport (GHB)","value":"GHB","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Marsh Harbour International Airport (MHH)","value":"MHH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"North Eleuthera Airport (ELH)","value":"ELH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Rock Sound Airport (RSD)","value":"RSD","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Spring Point Airport (AXP)","value":"AXP","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Bahamas","value":"BS","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Havana Jose Marti International (HAV)","value":"HAV","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Cuba","value":"CU","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Fort Lauderdale Hollywood International (FLL)","value":"FLL","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Miami International Airport (MIA)","value":"MIA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Orlando International Airport (MCO)","value":"MCO","escape":true,"noSelectionOption":false}],"disabled":false,"label":"United States","value":"US","escape":false,"noSelectionOption":false}],"MHH":[{"selectItems":[{"disabled":false,"label":"Nassau Lynden Pindling International (NAS)","value":"NAS","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Crooked Island (CRI)","value":"CRI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Deadman\u0027s Cay Airport (LGI)","value":"LGI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Exuma International Airport (GGT)","value":"GGT","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Freeport Grand Bahama International Airport (FPO)","value":"FPO","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Governor\u0027s Harbour Airport (GHB)","value":"GHB","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Inagua Airport (IGA)","value":"IGA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Mayaguana Airport (MYG)","value":"MYG","escape":true,"noSelectionOption":false},{"disabled":false,"label":"North Eleuthera Airport (ELH)","value":"ELH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Rock Sound Airport (RSD)","value":"RSD","escape":true,"noSelectionOption":false},{"disabled":false,"label":"San Salvador Airport (ZSA)","value":"ZSA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Spring Point Airport (AXP)","value":"AXP","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Bahamas","value":"BS","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Havana Jose Marti International (HAV)","value":"HAV","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Cuba","value":"CU","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Cap Haitien International Airport (CAP)","value":"CAP","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Haiti","value":"HT","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Fort Lauderdale Hollywood International (FLL)","value":"FLL","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Miami International Airport (MIA)","value":"MIA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Orlando International Airport (MCO)","value":"MCO","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Palm Beach International Airport (PBI)","value":"PBI","escape":true,"noSelectionOption":false}],"disabled":false,"label":"United States","value":"US","escape":false,"noSelectionOption":false}],"LGI":[{"selectItems":[{"disabled":false,"label":"Nassau Lynden Pindling International (NAS)","value":"NAS","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Exuma International Airport (GGT)","value":"GGT","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Freeport Grand Bahama International Airport (FPO)","value":"FPO","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Governor\u0027s Harbour Airport (GHB)","value":"GHB","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Marsh Harbour International Airport (MHH)","value":"MHH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"North Eleuthera Airport (ELH)","value":"ELH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Rock Sound Airport (RSD)","value":"RSD","escape":true,"noSelectionOption":false},{"disabled":false,"label":"San Salvador Airport (ZSA)","value":"ZSA","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Bahamas","value":"BS","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Havana Jose Marti International (HAV)","value":"HAV","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Cuba","value":"CU","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Fort Lauderdale Hollywood International (FLL)","value":"FLL","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Miami International Airport (MIA)","value":"MIA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Orlando International Airport (MCO)","value":"MCO","escape":true,"noSelectionOption":false}],"disabled":false,"label":"United States","value":"US","escape":false,"noSelectionOption":false}],"CAP":[{"selectItems":[{"disabled":false,"label":"Nassau Lynden Pindling International (NAS)","value":"NAS","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Exuma International Airport (GGT)","value":"GGT","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Freeport Grand Bahama International Airport (FPO)","value":"FPO","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Marsh Harbour International Airport (MHH)","value":"MHH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Rock Sound Airport (RSD)","value":"RSD","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Bahamas","value":"BS","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Fort Lauderdale Hollywood International (FLL)","value":"FLL","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Miami International Airport (MIA)","value":"MIA","escape":true,"noSelectionOption":false}],"disabled":false,"label":"United States","value":"US","escape":false,"noSelectionOption":false}],"GGT":[{"selectItems":[{"disabled":false,"label":"Nassau Lynden Pindling International (NAS)","value":"NAS","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Crooked Island (CRI)","value":"CRI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Deadman\u0027s Cay Airport (LGI)","value":"LGI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Freeport Grand Bahama International Airport (FPO)","value":"FPO","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Governor\u0027s Harbour Airport (GHB)","value":"GHB","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Inagua Airport (IGA)","value":"IGA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Marsh Harbour International Airport (MHH)","value":"MHH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Mayaguana Airport (MYG)","value":"MYG","escape":true,"noSelectionOption":false},{"disabled":false,"label":"North Eleuthera Airport (ELH)","value":"ELH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Rock Sound Airport (RSD)","value":"RSD","escape":true,"noSelectionOption":false},{"disabled":false,"label":"San Salvador Airport (ZSA)","value":"ZSA","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Bahamas","value":"BS","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Havana Jose Marti International (HAV)","value":"HAV","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Cuba","value":"CU","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Cap Haitien International Airport (CAP)","value":"CAP","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Haiti","value":"HT","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Providenciales Airport (PLS)","value":"PLS","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Turks and Caicos Islands","value":"TC","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Fort Lauderdale Hollywood International (FLL)","value":"FLL","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Miami International Airport (MIA)","value":"MIA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Orlando International Airport (MCO)","value":"MCO","escape":true,"noSelectionOption":false}],"disabled":false,"label":"United States","value":"US","escape":false,"noSelectionOption":false}],"PLS":[{"selectItems":[{"disabled":false,"label":"Nassau Lynden Pindling International (NAS)","value":"NAS","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Exuma International Airport (GGT)","value":"GGT","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Freeport Grand Bahama International Airport (FPO)","value":"FPO","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Governor\u0027s Harbour Airport (GHB)","value":"GHB","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Inagua Airport (IGA)","value":"IGA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Marsh Harbour International Airport (MHH)","value":"MHH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Rock Sound Airport (RSD)","value":"RSD","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Bahamas","value":"BS","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Havana Jose Marti International (HAV)","value":"HAV","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Cuba","value":"CU","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Fort Lauderdale Hollywood International (FLL)","value":"FLL","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Miami International Airport (MIA)","value":"MIA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Orlando International Airport (MCO)","value":"MCO","escape":true,"noSelectionOption":false}],"disabled":false,"label":"United States","value":"US","escape":false,"noSelectionOption":false}],"PBI":[{"selectItems":[{"disabled":false,"label":"Nassau Lynden Pindling International (NAS)","value":"NAS","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Marsh Harbour International Airport (MHH)","value":"MHH","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Bahamas","value":"BS","escape":false,"noSelectionOption":false}],"MCO":[{"selectItems":[{"disabled":false,"label":"Nassau Lynden Pindling International (NAS)","value":"NAS","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Crooked Island (CRI)","value":"CRI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Deadman\u0027s Cay Airport (LGI)","value":"LGI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Exuma International Airport (GGT)","value":"GGT","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Freeport Grand Bahama International Airport (FPO)","value":"FPO","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Governor\u0027s Harbour Airport (GHB)","value":"GHB","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Marsh Harbour International Airport (MHH)","value":"MHH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Rock Sound Airport (RSD)","value":"RSD","escape":true,"noSelectionOption":false},{"disabled":false,"label":"San Salvador Airport (ZSA)","value":"ZSA","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Bahamas","value":"BS","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Havana Jose Marti International (HAV)","value":"HAV","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Cuba","value":"CU","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Providenciales Airport (PLS)","value":"PLS","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Turks and Caicos Islands","value":"TC","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Fort Lauderdale Hollywood International (FLL)","value":"FLL","escape":true,"noSelectionOption":false}],"disabled":false,"label":"United States","value":"US","escape":false,"noSelectionOption":false}],"AXP":[{"selectItems":[{"disabled":false,"label":"Nassau Lynden Pindling International (NAS)","value":"NAS","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Crooked Island (CRI)","value":"CRI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Deadman\u0027s Cay Airport (LGI)","value":"LGI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Exuma International Airport (GGT)","value":"GGT","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Freeport Grand Bahama International Airport (FPO)","value":"FPO","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Governor\u0027s Harbour Airport (GHB)","value":"GHB","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Marsh Harbour International Airport (MHH)","value":"MHH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"North Eleuthera Airport (ELH)","value":"ELH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Rock Sound Airport (RSD)","value":"RSD","escape":true,"noSelectionOption":false},{"disabled":false,"label":"San Salvador Airport (ZSA)","value":"ZSA","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Bahamas","value":"BS","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Havana Jose Marti International (HAV)","value":"HAV","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Cuba","value":"CU","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Fort Lauderdale Hollywood International (FLL)","value":"FLL","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Miami International Airport (MIA)","value":"MIA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Orlando International Airport (MCO)","value":"MCO","escape":true,"noSelectionOption":false}],"disabled":false,"label":"United States","value":"US","escape":false,"noSelectionOption":false}],"MYG":[{"selectItems":[{"disabled":false,"label":"Nassau Lynden Pindling International (NAS)","value":"NAS","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Deadman\u0027s Cay Airport (LGI)","value":"LGI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Exuma International Airport (GGT)","value":"GGT","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Freeport Grand Bahama International Airport (FPO)","value":"FPO","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Governor\u0027s Harbour Airport (GHB)","value":"GHB","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Inagua Airport (IGA)","value":"IGA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Marsh Harbour International Airport (MHH)","value":"MHH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"North Eleuthera Airport (ELH)","value":"ELH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Rock Sound Airport (RSD)","value":"RSD","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Bahamas","value":"BS","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Fort Lauderdale Hollywood International (FLL)","value":"FLL","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Miami International Airport (MIA)","value":"MIA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Orlando International Airport (MCO)","value":"MCO","escape":true,"noSelectionOption":false}],"disabled":false,"label":"United States","value":"US","escape":false,"noSelectionOption":false}],"CRI":[{"selectItems":[{"disabled":false,"label":"Nassau Lynden Pindling International (NAS)","value":"NAS","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Deadman\u0027s Cay Airport (LGI)","value":"LGI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Exuma International Airport (GGT)","value":"GGT","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Freeport Grand Bahama International Airport (FPO)","value":"FPO","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Governor\u0027s Harbour Airport (GHB)","value":"GHB","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Marsh Harbour International Airport (MHH)","value":"MHH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Rock Sound Airport (RSD)","value":"RSD","escape":true,"noSelectionOption":false},{"disabled":false,"label":"San Salvador Airport (ZSA)","value":"ZSA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Spring Point Airport (AXP)","value":"AXP","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Bahamas","value":"BS","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Fort Lauderdale Hollywood International (FLL)","value":"FLL","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Miami International Airport (MIA)","value":"MIA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Orlando International Airport (MCO)","value":"MCO","escape":true,"noSelectionOption":false}],"disabled":false,"label":"United States","value":"US","escape":false,"noSelectionOption":false}],"HAV":[{"selectItems":[{"disabled":false,"label":"Nassau Lynden Pindling International (NAS)","value":"NAS","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Deadman\u0027s Cay Airport (LGI)","value":"LGI","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Exuma International Airport (GGT)","value":"GGT","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Freeport Grand Bahama International Airport (FPO)","value":"FPO","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Marsh Harbour International Airport (MHH)","value":"MHH","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Rock Sound Airport (RSD)","value":"RSD","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Spring Point Airport (AXP)","value":"AXP","escape":true,"noSelectionOption":false}],"disabled":false,"label":"Bahamas","value":"BS","escape":false,"noSelectionOption":false},{"selectItems":[{"disabled":false,"label":"Fort Lauderdale Hollywood International (FLL)","value":"FLL","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Miami International Airport (MIA)","value":"MIA","escape":true,"noSelectionOption":false},{"disabled":false,"label":"Orlando International Airport (MCO)","value":"MCO","escape":true,"noSelectionOption":false}],"disabled":false,"label":"United States","value":"US","escape":false,"noSelectionOption":false}]} || {};

		this.maxPaxCount = 9 || 0;
		this.allowedPaxCount = 9 || 0;

		this.conditionalDiscountTypes = {"PD-ADLT-ST":"Student","PD-ADLT-ME":"Medical"} || [];

		this.conditinalDiscountMatrix = {"MYG#GHB":["PD-ADLT-ME","PD-ADLT-ST"],"NAS#CRI":["PD-ADLT-ME","PD-ADLT-ST"],"ELH#FPO":["PD-ADLT-ME","PD-ADLT-ST"],"LGI#GGT":["PD-ADLT-ME","PD-ADLT-ST"],"MYG#MCO":["PD-ADLT-ME","PD-ADLT-ST"],"HAV#MCO":["PD-ADLT-ME","PD-ADLT-ST"],"IGA#MYG":["PD-ADLT-ME","PD-ADLT-ST"],"GHB#HAV":["PD-ADLT-ME","PD-ADLT-ST"],"RSD#GHB":["PD-ADLT-ME","PD-ADLT-ST"],"MIA#FPO":["PD-ADLT-ME","PD-ADLT-ST"],"PLS#NAS":["PD-ADLT-ME","PD-ADLT-ST"],"MYG#GGT":["PD-ADLT-ME","PD-ADLT-ST"],"GHB#ELH":["PD-ADLT-ME","PD-ADLT-ST"],"HAV#GGT":["PD-ADLT-ME","PD-ADLT-ST"],"MHH#CAP":["PD-ADLT-ME","PD-ADLT-ST"],"CAP#MHH":["PD-ADLT-ME","PD-ADLT-ST"],"IGA#MHH":["PD-ADLT-ME","PD-ADLT-ST"],"NAS#CAP":["PD-ADLT-ME","PD-ADLT-ST"],"ZSA#NAS":["PD-ADLT-ME","PD-ADLT-ST"],"FLL#ELH":["PD-ADLT-ME","PD-ADLT-ST"],"FPO#ELH":["PD-ADLT-ME","PD-ADLT-ST"],"RDU#FPO":["PD-ADLT-ME","PD-ADLT-ST"],"RSD#GGT":["PD-ADLT-ME","PD-ADLT-ST"],"FLL#HAV":["PD-ADLT-ME","PD-ADLT-ST"],"MHH#MCO":["PD-ADLT-ME","PD-ADLT-ST"],"AXP#CRI":["PD-ADLT-ME","PD-ADLT-ST"],"RSD#MCO":["PD-ADLT-ME","PD-ADLT-ST"],"ZSA#AXP":["PD-ADLT-ME","PD-ADLT-ST"],"GHB#FLL":["PD-ADLT-ME","PD-ADLT-ST"],"MHH#GHB":["PD-ADLT-ME","PD-ADLT-ST"],"LGI#MCO":["PD-ADLT-ME","PD-ADLT-ST"],"MCO#PLS":["PD-ADLT-ME","PD-ADLT-ST"],"CRI#FPO":["PD-ADLT-ME","PD-ADLT-ST"],"ELH#NAS":["PD-ADLT-ME","PD-ADLT-ST"],"LGI#GHB":["PD-ADLT-ME","PD-ADLT-ST"],"GGT#GHB":["PD-ADLT-ME","PD-ADLT-ST"],"IGA#PLS":["PD-ADLT-ME","PD-ADLT-ST"],"GHB#LGI":["PD-ADLT-ME","PD-ADLT-ST"],"RSD#PLS":["PD-ADLT-ME","PD-ADLT-ST"],"FPO#RDU":["PD-ADLT-ME","PD-ADLT-ST"],"GHB#MIA":["PD-ADLT-ME","PD-ADLT-ST"],"GHB#ZSA":["PD-ADLT-ME","PD-ADLT-ST"],"MCO#CRI":["PD-ADLT-ME","PD-ADLT-ST"],"CAP#FLL":["PD-ADLT-ME","PD-ADLT-ST"],"GGT#MCO":["PD-ADLT-ME","PD-ADLT-ST"],"PLS#FPO":["PD-ADLT-ME","PD-ADLT-ST"],"FPO#HAV":["PD-ADLT-ME","PD-ADLT-ST"],"MHH#CRI":["PD-ADLT-ME","PD-ADLT-ST"],"GHB#MHH":["PD-ADLT-ME","PD-ADLT-ST"],"RSD#CAP":["PD-ADLT-ME","PD-ADLT-ST"],"NAS#PLS":["PD-ADLT-ME","PD-ADLT-ST"],"RDU#NAS":["PD-ADLT-ME","PD-ADLT-ST"],"MIA#HAV":["PD-ADLT-ME","PD-ADLT-ST"],"RSD#CRI":["PD-ADLT-ME","PD-ADLT-ST"],"FPO#FLL":["PD-ADLT-ME","PD-ADLT-ST"],"CAP#MIA":["PD-ADLT-ME","PD-ADLT-ST"],"PLS#IGA":["PD-ADLT-ME","PD-ADLT-ST"],"GHB#MYG":["PD-ADLT-ME","PD-ADLT-ST"],"CAP#RSD":["PD-ADLT-ME","PD-ADLT-ST"],"ELH#FLL":["PD-ADLT-ME","PD-ADLT-ST"],"MHH#MYG":["PD-ADLT-ME","PD-ADLT-ST"],"AXP#RSD":["PD-ADLT-ME","PD-ADLT-ST"],"FLL#RSD":["PD-ADLT-ME","PD-ADLT-ST"],"FPO#MIA":["PD-ADLT-ME","PD-ADLT-ST"],"GGT#FPO":["PD-ADLT-ME","PD-ADLT-ST"],"AXP#ZSA":["PD-ADLT-ME","PD-ADLT-ST"],"FPO#RSD":["PD-ADLT-ME","PD-ADLT-ST"],"CAP#GGT":["PD-ADLT-ME","PD-ADLT-ST"],"FPO#ZSA":["PD-ADLT-ME","PD-ADLT-ST"],"PLS#MCO":["PD-ADLT-ME","PD-ADLT-ST"],"MHH#RSD":["PD-ADLT-ME","PD-ADLT-ST"],"PBI#MHH":["PD-ADLT-ME","PD-ADLT-ST"],"MCO#GHB":["PD-ADLT-ME","PD-ADLT-ST"],"GHB#IGA":["PD-ADLT-ME","PD-ADLT-ST"],"RSD#MYG":["PD-ADLT-ME","PD-ADLT-ST"],"MHH#MIA":["PD-ADLT-ME","PD-ADLT-ST"],"AXP#MIA":["PD-ADLT-ME","PD-ADLT-ST"],"PLS#GGT":["PD-ADLT-ME","PD-ADLT-ST"],"FLL#ZSA":["PD-ADLT-ME","PD-ADLT-ST"],"PLS#GHB":["PD-ADLT-ME","PD-ADLT-ST"],"IGA#ELH":["PD-ADLT-ME","PD-ADLT-ST"],"FPO#LGI":["PD-ADLT-ME","PD-ADLT-ST"],"GHB#NAS":["PD-ADLT-ME","PD-ADLT-ST"],"MCO#GGT":["PD-ADLT-ME","PD-ADLT-ST"],"AXP#MHH":["PD-ADLT-ME","PD-ADLT-ST"],"FLL#LGI":["PD-ADLT-ME","PD-ADLT-ST"],"MHH#ZSA":["PD-ADLT-ME","PD-ADLT-ST"],"MHH#LGI":["PD-ADLT-ME","PD-ADLT-ST"],"GHB#AXP":["PD-ADLT-ME","PD-ADLT-ST"],"RSD#MHH":["PD-ADLT-ME","PD-ADLT-ST"],"ZSA#GHB":["PD-ADLT-ME","PD-ADLT-ST"],"ZSA#GGT":["PD-ADLT-ME","PD-ADLT-ST"],"MYG#RSD":["PD-ADLT-ME","PD-ADLT-ST"],"MYG#MIA":["PD-ADLT-ME","PD-ADLT-ST"],"ZSA#MCO":["PD-ADLT-ME","PD-ADLT-ST"],"GHB#FPO":["PD-ADLT-ME","PD-ADLT-ST"],"AXP#FLL":["PD-ADLT-ME","PD-ADLT-ST"],"FPO#MHH":["PD-ADLT-ME","PD-ADLT-ST"],"AXP#LGI":["PD-ADLT-ME","PD-ADLT-ST"],"FLL#MHH":["PD-ADLT-ME","PD-ADLT-ST"],"FLL#MYG":["PD-ADLT-ME","PD-ADLT-ST"],"LGI#NAS":["PD-ADLT-ME","PD-ADLT-ST"],"MYG#MHH":["PD-ADLT-ME","PD-ADLT-ST"],"FPO#MYG":["PD-ADLT-ME","PD-ADLT-ST"],"NAS#GGT":["PD-ADLT-ME","PD-ADLT-ST"],"GGT#NAS":["PD-ADLT-ME","PD-ADLT-ST"],"NAS#MCO":["PD-ADLT-ME","PD-ADLT-ST"],"MYG#FLL":["PD-ADLT-ME","PD-ADLT-ST"],"NAS#GHB":["PD-ADLT-ME","PD-ADLT-ST"],"ELH#MHH":["PD-ADLT-ME","PD-ADLT-ST"],"MIA#NAS":["PD-ADLT-ME","PD-ADLT-ST"],"IGA#FLL":["PD-ADLT-ME","PD-ADLT-ST"],"RSD#FLL":["PD-ADLT-ME","PD-ADLT-ST"],"MYG#LGI":["PD-ADLT-ME","PD-ADLT-ST"],"ELH#ZSA":["PD-ADLT-ME","PD-ADLT-ST"],"AXP#ELH":["PD-ADLT-ME","PD-ADLT-ST"],"AXP#HAV":["PD-ADLT-ME","PD-ADLT-ST"],"ELH#MIA":["PD-ADLT-ME","PD-ADLT-ST"],"GGT#IGA":["PD-ADLT-ME","PD-ADLT-ST"],"ELH#LGI":["PD-ADLT-ME","PD-ADLT-ST"],"IGA#MIA":["PD-ADLT-ME","PD-ADLT-ST"],"MIA#IGA":["PD-ADLT-ME","PD-ADLT-ST"],"CRI#NAS":["PD-ADLT-ME","PD-ADLT-ST"],"MHH#FLL":["PD-ADLT-ME","PD-ADLT-ST"],"CRI#AXP":["PD-ADLT-ME","PD-ADLT-ST"],"RSD#MIA":["PD-ADLT-ME","PD-ADLT-ST"],"IGA#RSD":["PD-ADLT-ME","PD-ADLT-ST"],"RSD#ZSA":["PD-ADLT-ME","PD-ADLT-ST"],"IGA#LGI":["PD-ADLT-ME","PD-ADLT-ST"],"FPO#PLS":["PD-ADLT-ME","PD-ADLT-ST"],"RSD#LGI":["PD-ADLT-ME","PD-ADLT-ST"],"FLL#PLS":["PD-ADLT-ME","PD-ADLT-ST"],"MYG#ELH":["PD-ADLT-ME","PD-ADLT-ST"],"GGT#FLL":["PD-ADLT-ME","PD-ADLT-ST"],"MHH#PBI":["PD-ADLT-ME","PD-ADLT-ST"],"MCO#NAS":["PD-ADLT-ME","PD-ADLT-ST"],"ZSA#MHH":["PD-ADLT-ME","PD-ADLT-ST"],"CAP#NAS":["PD-ADLT-ME","PD-ADLT-ST"],"MIA#PLS":["PD-ADLT-ME","PD-ADLT-ST"],"RSD#ELH":["PD-ADLT-ME","PD-ADLT-ST"],"FLL#CAP":["PD-ADLT-ME","PD-ADLT-ST"],"IGA#NAS":["PD-ADLT-ME","PD-ADLT-ST"],"FPO#CAP":["PD-ADLT-ME","PD-ADLT-ST"],"GHB#GGT":["PD-ADLT-ME","PD-ADLT-ST"],"FLL#CRI":["PD-ADLT-ME","PD-ADLT-ST"],"GHB#MCO":["PD-ADLT-ME","PD-ADLT-ST"],"FPO#CRI":["PD-ADLT-ME","PD-ADLT-ST"],"FLL#GHB":["PD-ADLT-ME","PD-ADLT-ST"],"FPO#GHB":["PD-ADLT-ME","PD-ADLT-ST"],"MIA#CAP":["PD-ADLT-ME","PD-ADLT-ST"],"MHH#HAV":["PD-ADLT-ME","PD-ADLT-ST"],"PLS#MHH":["PD-ADLT-ME","PD-ADLT-ST"],"GGT#MIA":["PD-ADLT-ME","PD-ADLT-ST"],"NAS#PBI":["PD-ADLT-ME","PD-ADLT-ST"],"GGT#RSD":["PD-ADLT-ME","PD-ADLT-ST"],"MIA#CRI":["PD-ADLT-ME","PD-ADLT-ST"],"GGT#ZSA":["PD-ADLT-ME","PD-ADLT-ST"],"GGT#LGI":["PD-ADLT-ME","PD-ADLT-ST"],"AXP#FPO":["PD-ADLT-ME","PD-ADLT-ST"],"RSD#HAV":["PD-ADLT-ME","PD-ADLT-ST"],"MHH#ELH":["PD-ADLT-ME","PD-ADLT-ST"],"PLS#RSD":["PD-ADLT-ME","PD-ADLT-ST"],"HAV#FLL":["PD-ADLT-ME","PD-ADLT-ST"],"LGI#ELH":["PD-ADLT-ME","PD-ADLT-ST"],"PLS#MIA":["PD-ADLT-ME","PD-ADLT-ST"],"LGI#HAV":["PD-ADLT-ME","PD-ADLT-ST"],"GGT#MYG":["PD-ADLT-ME","PD-ADLT-ST"],"GGT#ELH":["PD-ADLT-ME","PD-ADLT-ST"],"NAS#AXP":["PD-ADLT-ME","PD-ADLT-ST"],"MCO#FPO":["PD-ADLT-ME","PD-ADLT-ST"],"MYG#FPO":["PD-ADLT-ME","PD-ADLT-ST"],"MHH#IGA":["PD-ADLT-ME","PD-ADLT-ST"],"HAV#LGI":["PD-ADLT-ME","PD-ADLT-ST"],"NAS#IGA":["PD-ADLT-ME","PD-ADLT-ST"],"FLL#GGT":["PD-ADLT-ME","PD-ADLT-ST"],"ZSA#FLL":["PD-ADLT-ME","PD-ADLT-ST"],"FPO#GGT":["PD-ADLT-ME","PD-ADLT-ST"],"RSD#FPO":["PD-ADLT-ME","PD-ADLT-ST"],"MIA#GHB":["PD-ADLT-ME","PD-ADLT-ST"],"IGA#FPO":["PD-ADLT-ME","PD-ADLT-ST"],"FLL#MCO":["PD-ADLT-ME","PD-ADLT-ST"],"FPO#MCO":["PD-ADLT-ME","PD-ADLT-ST"],"GGT#HAV":["PD-ADLT-ME","PD-ADLT-ST"],"MIA#GGT":["PD-ADLT-ME","PD-ADLT-ST"],"AXP#NAS":["PD-ADLT-ME","PD-ADLT-ST"],"MYG#IGA":["PD-ADLT-ME","PD-ADLT-ST"],"HAV#RSD":["PD-ADLT-ME","PD-ADLT-ST"],"LGI#FPO":["PD-ADLT-ME","PD-ADLT-ST"],"HAV#MIA":["PD-ADLT-ME","PD-ADLT-ST"],"ZSA#LGI":["PD-ADLT-ME","PD-ADLT-ST"],"MHH#FPO":["PD-ADLT-ME","PD-ADLT-ST"],"CRI#GGT":["PD-ADLT-ME","PD-ADLT-ST"],"ZSA#RSD":["PD-ADLT-ME","PD-ADLT-ST"],"NAS#FPO":["PD-ADLT-ME","PD-ADLT-ST"],"ZSA#MIA":["PD-ADLT-ME","PD-ADLT-ST"],"CRI#MCO":["PD-ADLT-ME","PD-ADLT-ST"],"CRI#GHB":["PD-ADLT-ME","PD-ADLT-ST"],"HAV#MHH":["PD-ADLT-ME","PD-ADLT-ST"],"MYG#NAS":["PD-ADLT-ME","PD-ADLT-ST"],"CRI#MHH":["PD-ADLT-ME","PD-ADLT-ST"],"HAV#NAS":["PD-ADLT-ME","PD-ADLT-ST"],"HAV#AXP":["PD-ADLT-ME","PD-ADLT-ST"],"MCO#HAV":["PD-ADLT-ME","PD-ADLT-ST"],"RSD#NAS":["PD-ADLT-ME","PD-ADLT-ST"],"GGT#CAP":["PD-ADLT-ME","PD-ADLT-ST"],"NAS#MIA":["PD-ADLT-ME","PD-ADLT-ST"],"ZSA#ELH":["PD-ADLT-ME","PD-ADLT-ST"],"IGA#GHB":["PD-ADLT-ME","PD-ADLT-ST"],"NAS#RSD":["PD-ADLT-ME","PD-ADLT-ST"],"PLS#HAV":["PD-ADLT-ME","PD-ADLT-ST"],"NAS#ZSA":["PD-ADLT-ME","PD-ADLT-ST"],"NAS#LGI":["PD-ADLT-ME","PD-ADLT-ST"],"GGT#CRI":["PD-ADLT-ME","PD-ADLT-ST"],"CRI#MIA":["PD-ADLT-ME","PD-ADLT-ST"],"ZSA#HAV":["PD-ADLT-ME","PD-ADLT-ST"],"CRI#ZSA":["PD-ADLT-ME","PD-ADLT-ST"],"CRI#RSD":["PD-ADLT-ME","PD-ADLT-ST"],"FPO#NAS":["PD-ADLT-ME","PD-ADLT-ST"],"CRI#LGI":["PD-ADLT-ME","PD-ADLT-ST"],"MIA#LGI":["PD-ADLT-ME","PD-ADLT-ST"],"IGA#GGT":["PD-ADLT-ME","PD-ADLT-ST"],"FLL#NAS":["PD-ADLT-ME","PD-ADLT-ST"],"MHH#AXP":["PD-ADLT-ME","PD-ADLT-ST"],"RSD#AXP":["PD-ADLT-ME","PD-ADLT-ST"],"NAS#MYG":["PD-ADLT-ME","PD-ADLT-ST"],"IGA#MCO":["PD-ADLT-ME","PD-ADLT-ST"],"MHH#NAS":["PD-ADLT-ME","PD-ADLT-ST"],"LGI#MHH":["PD-ADLT-ME","PD-ADLT-ST"],"ELH#MCO":["PD-ADLT-ME","PD-ADLT-ST"],"RSD#IGA":["PD-ADLT-ME","PD-ADLT-ST"],"MIA#RSD":["PD-ADLT-ME","PD-ADLT-ST"],"ELH#GGT":["PD-ADLT-ME","PD-ADLT-ST"],"NAS#MHH":["PD-ADLT-ME","PD-ADLT-ST"],"CRI#FLL":["PD-ADLT-ME","PD-ADLT-ST"],"ELH#GHB":["PD-ADLT-ME","PD-ADLT-ST"],"MIA#ZSA":["PD-ADLT-ME","PD-ADLT-ST"],"PBI#NAS":["PD-ADLT-ME","PD-ADLT-ST"],"FLL#IGA":["PD-ADLT-ME","PD-ADLT-ST"],"MCO#FLL":["PD-ADLT-ME","PD-ADLT-ST"],"LGI#ZSA":["PD-ADLT-ME","PD-ADLT-ST"],"FPO#IGA":["PD-ADLT-ME","PD-ADLT-ST"],"LGI#MIA":["PD-ADLT-ME","PD-ADLT-ST"],"HAV#FPO":["PD-ADLT-ME","PD-ADLT-ST"],"NAS#HAV":["PD-ADLT-ME","PD-ADLT-ST"],"NAS#ELH":["PD-ADLT-ME","PD-ADLT-ST"],"GGT#MHH":["PD-ADLT-ME","PD-ADLT-ST"],"CAP#FPO":["PD-ADLT-ME","PD-ADLT-ST"],"GHB#CRI":["PD-ADLT-ME","PD-ADLT-ST"],"ZSA#FPO":["PD-ADLT-ME","PD-ADLT-ST"],"NAS#RDU":["PD-ADLT-ME","PD-ADLT-ST"],"MIA#MHH":["PD-ADLT-ME","PD-ADLT-ST"],"FPO#AXP":["PD-ADLT-ME","PD-ADLT-ST"],"LGI#RSD":["PD-ADLT-ME","PD-ADLT-ST"],"MHH#GGT":["PD-ADLT-ME","PD-ADLT-ST"],"MCO#LGI":["PD-ADLT-ME","PD-ADLT-ST"],"PLS#FLL":["PD-ADLT-ME","PD-ADLT-ST"],"AXP#GHB":["PD-ADLT-ME","PD-ADLT-ST"],"MCO#ZSA":["PD-ADLT-ME","PD-ADLT-ST"],"LGI#FLL":["PD-ADLT-ME","PD-ADLT-ST"],"MCO#RSD":["PD-ADLT-ME","PD-ADLT-ST"],"FLL#FPO":["PD-ADLT-ME","PD-ADLT-ST"],"NAS#FLL":["PD-ADLT-ME","PD-ADLT-ST"],"AXP#MCO":["PD-ADLT-ME","PD-ADLT-ST"],"GGT#PLS":["PD-ADLT-ME","PD-ADLT-ST"],"MCO#MHH":["PD-ADLT-ME","PD-ADLT-ST"],"AXP#GGT":["PD-ADLT-ME","PD-ADLT-ST"]} || {};

		this.dateFormat = "dd/MM/yyyy";

		this.language = "en" || $("html").attr("lang");

		this.digits = ["0","1","2","3","4","5","6","7","8","9"] || [];

		this.cabinClassListMap =  {} || {};
		this.currencyListMap =  {"USD":"USD","BSD":"BSD"} || {};
		this.paxNationType = {} || {};
		this.rbd = $("input#rbd");

	};

	FlightSearch.prototype.init = function(){

		for (var i = 0; i < this.maxMultiDestinationCount; i++) {
			this.multiRouteAreaMap.set('multiRouteArea_'+i,$("#multiRouteArea_"+i));
			this.multiDepPortMap.set('multiDepPort_'+i,$("select#multiDepPort_"+i));
			this.multiArrPortMap.set('multiArrPort_'+i,$("select#multiArrPort_"+i));
			this.multiDepartureDateMap.set('multiDepartureDate_'+i,$("input#multiDepartureDate_"+i));
			this.multiCabinClassMap.set('multiCabinClass_'+i,$("select#multiCabinClass_"+i));
		}

		this.selectTripType(this.tripType);
		this.selectDepPort(this.depPort.val());
		this.selectArrPort(this.arrPort.val());

		if(this.multiDepPort.length > 0 && this.multiArrPort.length > 0){
			this.selectMultiDepPort(this.multiDepPort.val());
			this.selectMultiArrPort(this.multiArrPort.val());
		}

		this.selectDateFormat(this.dateFormat);

		this.fillDepPorts();
		this.fillPaxCombos();
		this.fillCabinClass();
		this.fillCurrency();

	};

	FlightSearch.prototype.addRoute = function(){
		var show=false;
		this.routesArea.children().each(function(e){
			if(flightSearch.multiRouteAreaMap.get($(this).attr('id')) && !show && !$(this).is(':visible')){
				$(this).show();
				show=true;
			}
		});
		if(!show){
			this.btnAddRouteArea.hide();
		}else{
			this.btnResetRouteArea.show();
		}
	};

	FlightSearch.prototype.resetRoute = function(element){
		this.routesArea.children().each(function(i){
			if(i>1){
				$(this).hide();
			}
		});
		this.btnResetRouteArea.hide();
		this.btnAddRouteArea.show();
	};

	FlightSearch.prototype.selectDateFormat = function(dateFormat){

		this.dateFormat = dateFormat;

		this.departureDate.attr("format", dateFormat);

		this.returnDate.attr("format", dateFormat);

	};

	FlightSearch.prototype.fillDepPorts = function(){

		var depPortList = this.depPortList;

		var departurePortCombos = this.depPort.add(this.multiDepPort);
		for (var [key,value] of this.multiDepPortMap) {
			departurePortCombos=departurePortCombos.add(value);
		}
		departurePortCombos.each(function(){

			var placeholder = $(this).attr("placeholder");

			var selectMenu = $(this);

			selectMenu.html("<option value=''>"+placeholder+"</option>");

			$.each(depPortList, function(i, selectItem){
				var group = selectItem.selectItems;
				if(group){
					var optGroup = $("<optgroup/>").prop(selectItem).text(selectItem.label).attr('val', selectItem.value);
					$.each(group, function(i, selectItem){
						$("<option/>")
						.prop(selectItem)
						.text(selectItem.label)
						.appendTo(optGroup);
					});
					optGroup.appendTo(selectMenu);
				}else{
					 $("<option/>")
					 .prop(selectItem)
					 .text(selectItem.label)
					 .appendTo(selectMenu);
				}
			});

		});
	};

	FlightSearch.prototype.fillPaxCombos = function(){

		var digits = this.digits;

		var paxCombos = this.adult;
		paxCombos = paxCombos.add(this.child);
		paxCombos = paxCombos.add(this.infant);
		paxCombos = paxCombos.add(this.soldier);
		paxCombos = paxCombos.add(this.student);


		var maxPaxCount = this.maxPaxCount;

		paxCombos.each(function(){

			var selectMenu = $(this);

			selectMenu.html("");


			var placeholder = typeof ($(this).attr("placeholder") && $(this).attr("placeholder").length) != "undefined" ? $(this).attr("placeholder") : 0;

			selectMenu.append("<option value='0'>"+placeholder+"</option>");

			for(var i = 1; i <= maxPaxCount; i++){

				selectMenu.append("<option value='"+i+"'>"+digits[i]+"</option>");

			}

		});
	};

	FlightSearch.prototype.fillCabinClass = function(){

	    var flightSearch = this;

	    flightSearch.isAvailable.cabinClass = !flightSearch.isNullOrEmpty(this.cabinClassListMap);


		if (flightSearch.isAvailable.cabinClass) {

			flightSearch.cabinClass.html("<option value=''>"+ flightSearch.cabinClass.attr("placeholder") +"</option>");

			$.each(flightSearch.cabinClassListMap, function(key, val) {

	            $("<option/>")
	                .val(key)
	                .text(val)
	                .appendTo(flightSearch.cabinClass);

			});
			flightSearch.cabinClass.val(flightSearch.defaultCabinClass);
			for(i=0; i<this.multiCabinClassMap.size; i++ ){
				multiCabinClass = this.multiCabinClassMap.get('multiCabinClass_'+i);
				multiCabinClass.html("<option value=''>"+ multiCabinClass.attr("placeholder") +"</option>");
				$.each(flightSearch.cabinClassListMap, function(key, val) {
					$("<option/>")
						.val(key)
						.text(val)
						.appendTo(multiCabinClass);
				});
				multiCabinClass.val(flightSearch.defaultCabinClass);
			}

		}else{
			flightSearch.cabinClassArea.remove();
			for(i=0; i<this.multiCabinClassMap.size; i++ ){
				$('#multiCabinClassArea_'+i).remove();
			}
	    }


	};

	FlightSearch.prototype.fillCurrency = function(){

	    var flightSearch = this;

	    flightSearch.isAvailable.currency = !flightSearch.isNullOrEmpty(this.currencyListMap);

		if (flightSearch.isAvailable.currency) {

			flightSearch.currency.html("<option value=''>"+ flightSearch.currency.attr("placeholder") +"</option>");

			$.each(flightSearch.currencyListMap, function(key, val) {

	            $("<option/>")
	                .val(key)
	                .text(val)
	                .appendTo(flightSearch.currency);

			});

		}else{
			flightSearch.currencyArea.remove();
	    }


	};

	FlightSearch.prototype.selectDepPort = function(portCode){

			this.depPort.val(portCode);
			this.generateArrivalOptions(
				this.depPort,
				this.arrPort
			);
			this.residentNationAreaControl();
	};

	FlightSearch.prototype.selectArrPort = function(portCode){

			this.arrPort.val(portCode);
			this.toggleConditionalDiscountSelect(
				this.depPort,
				this.arrPort
			);
			this.residentNationAreaControl();
	};

	FlightSearch.prototype.selectMultiDepPort = function(portCode){

			this.multiDepPort.val(portCode);
			this.generateArrivalOptions(
				this.multiDepPort,
				this.multiArrPort
			);

	};

	FlightSearch.prototype.selectMultiArrPort = function(portCode){

			this.multiArrPort.val(portCode);
			this.toggleConditionalDiscountSelect(
				this.multiDepPort,
				this.multiArrPort
			);

	};

	FlightSearch.prototype.selectDepartureDate = function(date){

			this.departureDate.val(date);

			this.returnDate.attr("min", date);


	};

	FlightSearch.prototype.selectExtraMultiDepPort = function(element){

			this.multiDepPortMap.get(element.id).val(element.value);
			this.generateArrivalOptions(
				this.multiDepPortMap.get(element.id),
				this.multiArrPortMap.get(element.id.replace('Dep','Arr'))
			);

	};

	FlightSearch.prototype.selectExtraMultiArrPort = function(element){

			this.multiArrPortMap.get(element.id).val(element.value);
			if (this.discountsArea.length) {
				this.discountsArea[0].innerHTML = "";
			};
	};

	FlightSearch.prototype.selectMultiDepartureDate = function(element){
			this.multiDepartureDateMap.get(element.id).val(element.value);
	};
	FlightSearch.prototype.selectReturnDate = function(date){

			this.returnDate.val(date);

			this.departureDate.attr("max", date);

	};

	FlightSearch.prototype.selectTripType = function(tripType){

			this.tripType = tripType.length == 0 ? this.tripTypeArea.find(":checked").val() : tripType;

			this.tripTypeArea.find(":not([value='"+tripType+"'])").prop("checked",false);
			this.tripTypeArea.find("[value='"+tripType+"']").prop("checked",true);

			/*Hide all conditional areas*/

			this.departureDateArea.hide();
			this.returnDateArea.hide();
			this.multiDepPortArea.hide();
			this.multiArrPortArea.hide();
			this.openDepartureDateArea.hide();
			this.openReturnDateArea.hide();
			this.extraMultiRoutesArea.hide();

			/*Clean isAvailable List*/
			this.isAvailable = {};

			this.depPortArea.show();
			this.arrPortArea.show();
			this.cabinClassArea.show();

			switch(tripType){

				case "ONE_WAY":
					this.departureDateArea.show();
					this.isAvailable.departureDate = true;
					break;

				case "ROUND_TRIP":
					this.departureDateArea.show();
					this.returnDateArea.show();
					this.isAvailable.departureDate = true;
					this.isAvailable.returnDate = true;
					break;

				case "MULTI_DIRECTIONAL":
					if(this.extendedMultiDestination){
						this.depPortArea.hide();
						this.arrPortArea.hide();
						this.extraMultiRoutesArea.show();
						this.cabinClassArea.hide();
					}else{
						this.departureDateArea.show();
						this.returnDateArea.show();
						this.isAvailable.departureDate = true;
						this.isAvailable.returnDate = true;

						this.multiDepPortArea.show();
						this.isAvailable.multiDepPort = true;

						this.multiArrPortArea.show();
						this.isAvailable.multiArrPort = true;
					}
					break;

				case "INBOUND_OPEN":
					this.departureDateArea.show();
					this.openReturnDateArea.show();
					this.isAvailable.departureDate = true;
					this.isAvailable.openReturnDate = true;
					break;

				case "OUTBOUND_OPEN":
					this.openDepartureDateArea.show();
					this.returnDateArea.show();
					this.isAvailable.openDepartureDate = true;
					this.isAvailable.returnDate = true;
					break;

			}

			this.toggleConditionalDiscountSelect(
				this.depPort,
				this.arrPort
			);
	};

	FlightSearch.prototype.search = function(){

		if(this.check()){

	    var that = this;
			
			if (this.stcr.length && this.adult.val() < 2 && this.stcr[0].checked) {
				alert("ERROR_STRETCHER_PNR_ADULT_COUNT");
				return false;
			}
			
			var formData = {};

			formData.tripType = this.tripType;
			formData.language = this.language;
			formData.dateFormat = this.dateFormat;
			formData.rbd = this.rbd.val();

			formData.depPort = this.depPort.val();
			formData.arrPort = this.arrPort.val();

			formData.adult = this.adult.val();
			formData.child = this.child.val();
			formData.infant = this.infant.val();

			formData.prefferedCabinClass = this.cabinClass.val();
			formData.currency = this.currency.val();
			if(this.stcr.length){
				formData.stcr=this.stcr[0].checked;
			}
			if (this.discountsArea.length && this.discountsArea[0].innerHTML != "") {
				for (i=0; i<this.discountsArea[0].childNodes.length; i++) {
					var id = this.discountsArea[0].childNodes[i].childNodes[1].id;
					formData[id] = document.getElementById(id).value;
				};
			};

			$.each(this.isAvailable, function(key, val){
				if(val){
					formData[key] = that[key].val();
				}
			});


			if("F" == "T" ){
				if( parseInt(this.soldier.val()) > 0 ){
					alert("?FLT_SEARCH_SLDR_ALERT_TEXT?");
				}
				if(parseInt(this.student.val()) > 0 || parseInt(formData["PD-ADLT-ST"]) > 0){
					alert("?FLT_SEARCH_STDT_ALERT_TEXT?");
				}
			}

			if(this.tripType == "MULTI_DIRECTIONAL" && this.extendedMultiDestination){
				for (var [key, value] of this.multiRouteAreaMap) {
					if(value.is(':visible')){
						var count=key.split('_')[1];
						formData['multiDepPort_'+count]  =this.multiDepPortMap.get('multiDepPort_'+count).val();
						formData['multiArrPort_'+count]  =this.multiArrPortMap.get('multiArrPort_'+count).val();
						formData['multiDepartureDate_'+count]  =this.multiDepartureDateMap.get('multiDepartureDate_'+count).val();
						var cabin =this.multiCabinClassMap.get('multiCabinClass_'+count);
						if(cabin){
							formData['multiCabinClass_'+count]  =cabin.val();
						}
					}
				}
			}
			if ($("#residentNation").is(":checked")){
				formData.residentFare = "true";
			}
			this.postData(formData, this.actionURL);
		}

	};

	FlightSearch.prototype.check = function(){

		var errorMessages = "";

		if(this.tripType == "")
			errorMessages += "?Please select trip type.?" + '\n';

		/*---------------------Port Check---------------------*/
		if(this.tripType == "MULTI_DIRECTIONAL" && this.extendedMultiDestination){
			for (var [key, value] of this.multiRouteAreaMap) {
				if(value.is(':visible')){
					var count=key.split('_')[1];
					if(this.isNullOrEmpty(this.multiDepPortMap.get('multiDepPort_'+count).val())){
						errorMessages += "ERROR_MULTI_DEPARTURE_PORT" + '\n';
					}
					if(this.isNullOrEmpty(this.multiArrPortMap.get('multiArrPort_'+count).val())){
						errorMessages += "ERROR_MULTI_ARRIVAL_PORT" + '\n';
					}
					var multiDate=this.multiDepartureDateMap.get('multiDepartureDate_'+count);
					if( this.isInvalidDate(multiDate.val()) || this.checkDateIsBeforeToday(multiDate.val())){
						errorMessages += "ERROR_MULTI_DATE" + '\n';
					}
				}
			}
		}else {
			if(this.isNullOrEmpty(this.depPort.val())){
				errorMessages += "?Please select departing port?" + '\n';
			}

			if(this.isNullOrEmpty(this.arrPort.val())){
				errorMessages += "?Please select arrival port?" + '\n';
			}
			/*---------------------Date Check----------------------*/

			if( this.isInvalidDate(this.departureDate.val()) || this.checkDateIsBeforeToday(this.departureDate.val())){
				errorMessages += "Please Select Departure Date" + '\n';
			}

			if( this.isAvailable.returnDate && this.isInvalidDate(this.returnDate.val()) ){
				errorMessages += "Please Select Arrival Date" + '\n';
			}

			/*-----------------------------------------------------*/
		}

		if(this.isAvailable.multiDepPort && this.isNullOrEmpty(this.multiDepPort.val()))
			errorMessages += "?Please select departing port?" + '\n';

		if(this.isAvailable.multiArrPort && this.isNullOrEmpty(this.multiArrPort.val()))
			errorMessages += "?Please select arrival port?" + '\n';

		/*-----------------------------------------------------*/

		/*---------------------Pax Check-----------------------*/

		var totalAdultCount =
	            parseInt(this.adult.val() || 0) +
	            parseInt(this.student.val() || 0) +
	            parseInt(this.soldier.val() || 0);

		var totalChildCount = parseInt(this.child.val() || 0);
		var totalInfantCount = parseInt(this.infant.val() || 0);

		if (this.discountsArea.length) {
			for (i=0; i<this.discountsArea[0].childNodes.length; i++) {
				var adultExp = new RegExp("ADLT", "g");
				var childExp = new RegExp("CHLD", "g");

				if (adultExp.test(this.discountsArea[0].childNodes[i].id))
					totalAdultCount += parseInt(this.discountsArea[0].childNodes[i].childNodes[1].value || 0);
				else if (childExp.test(this.discountsArea[0].childNodes[i].id))
					totalChildCount += parseInt(this.discountsArea[0].childNodes[i].childNodes[1].value || 0);
			};
		};

		/*Infant Check*/
		if(totalInfantCount > totalAdultCount)
			errorMessages += "Infant Count Can Not Be Greater Than Adult Count" + '\n';

		/*Child Check*/
		if(totalAdultCount == 0 && totalChildCount > 0)
			errorMessages += "If you want to make a trip without your parents, you should inform the call center first" + '\n';

		/*Minimum Pax Count Check*/
		if( (totalAdultCount + totalChildCount) == 0 )
			errorMessages += "At Least One Passenger Should Be Selected" + '\n';

		/*Maximum Pax Count Check*/
		if( (totalAdultCount + totalChildCount) > this.allowedPaxCount )
			errorMessages += "Passenger Count Exceeds Max Number" + '\n';

		/*-----------------------------------------------------*/

		/*-------------Parametric Cabin Class Check------------*/

		if(this.isNullOrEmpty(this.cabinClassList) && (false || false) && this.isNullOrEmpty(this.cabinClass.val()))
			errorMessages += "?Please select cabin class.?" + '\n';

		/*-----------------------------------------------------*/

		if(false && this.isNullOrEmpty(this.currency.val()))
			errorMessages += "?Please select currency.?" + '\n';

		if(errorMessages.length > 0){
			alert(errorMessages);
			return false;
		}else{
			return true;
		}

	};

	/**
		Private functions

		Warning:
		It is not safe to call externally!
	**/

	FlightSearch.prototype.postData = function(formData, actionURL){

			//Create a virtual form
			var form = $("<form/>").prop({
					action : actionURL,
					method : 'post',
					target : '_self'
				});

			//Each value is processed in here as an property of that virtual form.
			$.each(formData, function (i, e) {
				//Create a virtual input
				var input = $("<input/>");
				input.prop({
					type : "hidden",
					name : i
				}).val(e);
				//Append that input to our form
				form.append(input);
			});

			form
			.appendTo('body').submit().remove();


	};

	FlightSearch.prototype.generateArrivalOptions = function(departurePort, arrivalPort){

		var placeholder = arrivalPort.attr("placeholder");

		arrivalPort.html("<option value=''>"+placeholder+"</option>");

		var destinationList = this.arrPortMatrix[departurePort.val()]

		if(destinationList){
			$.each(destinationList, function(i, selectItem){
				var group = selectItem.selectItems;
				if(group){
					var optGroup = $("<optgroup/>").prop(selectItem).text(selectItem.label).attr('val', selectItem.value);
					$.each(group, function(i, selectItem){
						$("<option/>")
						.prop(selectItem)
						.text(selectItem.label)
						.appendTo(optGroup);
					});
					optGroup.appendTo(arrivalPort);
				}else{
					$("<option/>")
					.prop(selectItem)
					.text(selectItem.label)
					.appendTo(arrivalPort);
				}
			});
		}


	};

	FlightSearch.prototype.toggleConditionalDiscountSelectFunction = function(departurePort, arrivalPort){

		/*Set both to zero*/
		this.student.val(0);
		this.soldier.val(0);

		this.isAvailable.student = false;
		this.isAvailable.soldier = false;

		var that = this;

		var studentArea = this.studentArea.hide();

		var soldierArea = this.soldierArea.hide();

		function generateDiscountArea(code){
				if (document.getElementById(code) == null) {
					var elID = code;
					var elemDiv = document.createElement("div");
					elemDiv.id = elID + "Area";
					var label = document.createElement("label");
					label.innerHTML = that.conditionalDiscountTypes[elID];
					var select = document.createElement("select");
					select.id = elID;

					var discounts = document.getElementById("discountsArea");
					discounts.innerHTML = "";
					discounts.appendChild(elemDiv);
					document.getElementById(elID + "Area").appendChild(label)
					document.getElementById(elID + "Area").appendChild(select);

					var selectMenu = document.getElementById(elID);



					var option = document.createElement("option");
					option.value = 0;
					option.innerHTML = that.conditionalDiscountTypes[elID];
					selectMenu.appendChild(option);

					var digits = new FlightSearch;
					for(var i = 1; i <= digits.digits.length - 1; i++){
						var option = document.createElement("option");
						option.value = digits.digits[i];
						option.innerHTML = digits.digits[i];
						selectMenu.appendChild(option);

					};

					discounts.style.display = "block";
				};
		}
		if('F' != 'T'){
				var eligiblePassengerTypeList = this.conditinalDiscountMatrix[departurePort.val() + '#' + arrivalPort.val()];

				var tripExp = new RegExp("ROUND", "g");
				if (tripExp.test(this.tripType) && eligiblePassengerTypeList) {
					eligiblePassengerTypeList = eligiblePassengerTypeList.concat(this.conditinalDiscountMatrix[arrivalPort.val() + '#' + departurePort.val()]);
				}

				if(eligiblePassengerTypeList){
					$.each(eligiblePassengerTypeList, function(index, code){
						switch(code){
							case "STDT":
								that.isAvailable.student = true;
								studentArea.show();
								break;
							case "SLDR":
								that.isAvailable.soldier = true;
								soldierArea.show();
								break;
							default:
								generateDiscountArea(code);
								break;

						};

				});
			}
		}
	};

	FlightSearch.prototype.toggleConditionalDiscountSelect = function(departurePort, arrivalPort){

			if (this.discountsArea.length) {
				this.discountsArea[0].innerHTML = "";
			};

			this.toggleConditionalDiscountSelectFunction(departurePort, arrivalPort);
	};

	FlightSearch.prototype.isNullOrEmpty = function(value){

		return (value == null || value == ""); //  || !(Object.keys(value).length)

	};

	FlightSearch.prototype.isInvalidDate = function(dateString){

		return (dateString == null || dateString == "");

	};

	FlightSearch.prototype.checkDateIsBeforeToday = function(dateString){

		return false;
	};

	FlightSearch.prototype.residentNationAreaControl = function (){
		if (this.paxNationType.depCountry && this.paxNationType.arrCountry) {
			var depSelected = $('select#depPort option:selected');
			var arrSelected = $('select#arrPort option:selected');

			if (depSelected && arrSelected) {
				var depCountry = depSelected.closest('optgroup').val();
				var arrCountry = arrSelected.closest('optgroup').val();

				if (depCountry && arrCountry && this.paxNationType.depCountry === depCountry && this.paxNationType.arrCountry === arrCountry) {
					$('#residentNationArea').show();
				} else {
					$('#residentNationArea').hide();
				}
			} else {
				$('#residentNationArea').hide();
			}
		} else {
			$('#residentNationArea').hide();
		}
	}

	global.FlightSearch = FlightSearch; //Put FlightSearch API prototype into global object

}(jQuery, window)); //Assign jQuery as $, window as global in this scope. To be extended for other frameworks
