/****************************************************
 * This function is currently used by an onclick event
 * of a search button in the flightInputVanilla.jsp
 * page. It can be used by any external booking form
 * to search the aerlingus booking engine. Additional 
 * functionality may be added to generate more 
 * parameters if required.
 ****************************************************/

function JSQueryString(par) {

/** This function is to extract program ID and affiliate information and build redirection **/
var sTemp
var sPar
var sFin, iStart, iEnd
	sTemp = new String(window.location)
	sPar = new String(par + "=")
	iStart = sTemp.indexOf(sPar)
	if (iStart>0) {
		iFin = sTemp.length
		sFin = sTemp.substring(iStart + sPar.length,iFin)
	} else {
		sFin = ""
	}
	return sFin
}
var preurl = JSQueryString("url");


function doSearch(){
	
	var location = window.location.toString();
	var index = location.indexOf('bookonline');
	var url = location.substr(0,index);
	
	var urlParameters = getURLParameters();
	window.open(url + 'bookonline/email.jsp?'+urlParameters);
}

/***********************************
 * 
 * A version of doSearch for Trade Doubler
 * 
 ***********************************/
function doTdSearch(){
	
	var location = window.location.toString();
	var index = location.indexOf('bookonline');
	var url = location.substr(0,index);

	var urlParameters = getURLParameters();
	var eiUrl = url + 'bookonline/email.jsp?'+urlParameters;
	window.open(preurl+'&url='+eiUrl);
}

/***********************************
 * 
 * A version of doSearch for Static HTML Files
 * 
 ***********************************/
function doStaticSearch(){
	//define static URL 
	var URL = 'http://www.aerlingus.com/cgi-bin/obel01im1/'

	var urlParameters = getURLParameters();
	if(CURRENT_LOCALE)
		urlParameters += '&locale='+CURRENT_LOCALE;
	var eiUrl = URL + 'bookonline/email.jsp?'+urlParameters;
	window.open(eiUrl);
}

/**************************
 * This function builds the
 * URL parameters required
 * for searching for fares
 **************************/
function getURLParameters(){
	return getSelectedFareCategory()+'&'+getSelectedFlightType()+'&'+getSelectedSearchType()+'&'+getSelectedMonth('1')+'&'+getSelectedMonth('2')+'&'+getSelectedDay('1')+'&'+getSelectedDay('2')+'&'+getSelectedAirport('Source')+'&'+getSelectedAirport('Destination')+'&'+getSelectedPersonTypeNumber('Adult')+'&'+	getSelectedPersonTypeNumber('Children')+'&'+getSelectedPersonTypeNumber('Infant')+'&'+getMethodToUse()+getPromoCode();
}

/**********************************************
 * This function key and value for the fare category 
 * for this booking request. 
 * e.g selectedFareCategory==2 
 * e.g selectedFareCategory==0 
 **********************************************/
function getSelectedFareCategory(){
	var selectedFareCategory = 'selectedFareCategory=';
	var selectedElement = document.getElementsByName('selectedFareCategory')[0];
	return selectedFareCategory = selectedFareCategory + selectedElement.value;
}


/**********************************************
 * This function returns a parameter key and 
 * value for the type and amount of people 
 * for this booking request. The person type is
 * based on the argument provided
 * e.g selectedAdultNumber=2 or 
 * selectedChildrenNumber=1 or
 * selectedInfantNumber=1
 **********************************************/
function getSelectedPersonTypeNumber(personType){
	var selectedPersonType = 'selected'+personType+'Number=';
	var selectedElement = document.getElementsByName('selected'+personType+'Number')[0];
	return selectedPersonType = selectedPersonType + selectedElement.value;
}

/**********************************************
 * This function returns a parameter key and 
 * value for the selected origin or destination
 * month for this booking request. Origin or
 * destination is based on the argument provided
 * e.g selectedMonth_1=2 or 
 * selectedMonth_2=1
 **********************************************/
function getSelectedMonth(index){
	var selectedMonth = 'selectedMonth_'+index+'=';
	var selectedElement = document.getElementsByName('selectedMonth_'+index)[0];
	return selectedMonth = selectedMonth + selectedElement.value;
}

/**********************************************
 * This function returns a parameter key and 
 * value for the selected origin or destination
 * day for this booking request. Origin or
 * destination is based on the argument provided
 * e.g selectedDay_1=2 or 
 * selectedDay_2=1
 **********************************************/
function getSelectedDay(index){
	var selectedDay = 'selectedDay_'+index+'=';
	var selectedElement = document.getElementsByName('selectedDay_'+index)[0];
	return selectedDay = selectedDay + selectedElement.value;
}

/**********************************************
 * This function returns a parameter key and 
 * value for the selected origin or destination
 * airport for this booking request. Origin or
 * destination is based on the argument provided
 * e.g selectedSourceAirport_1=2 or 
 * selectedDestinationAirport_1=1
 **********************************************/
function getSelectedAirport(direction){
	var selectedAirport = 'selected'+direction+'Airport_1=';
	var selectedElement = document.getElementsByName('selected'+direction+'Airport_1')[0];
	return selectedAirport = selectedAirport + selectedElement.value;
}

/**********************************************
 * This function returns a parameter key and 
 * value for the selected flight type for this 
 * booking request. 
 * e.g selectedFlightType=RETURN or 
 * selectedFlightType=ONEWAY
 **********************************************/
function getSelectedFlightType(){
	var radioElements = document.getElementsByName('selectedFlightType');
	var selectedFlightType = 'selectedFlightType=';
	for(var i=0;i<radioElements.length;i++){
		if(radioElements[i].checked){
			selectedFlightType = selectedFlightType + radioElements[i].value;
		}
	}
	return selectedFlightType;	
}

/**********************************************
 * This function returns a parameter key and 
 * value for the selected search type for this 
 * booking request. 
 * e.g selectedSearchType=FLEXIBLE or 
 * selectedSearchType=FIXED
 **********************************************/
function getSelectedSearchType(){
	var radioElements = document.getElementsByName('selectedSearchType');
	var selectedSearchType = 'selectedSearchType=';
	for(var i=0;i<radioElements.length;i++){
		if(radioElements[i].checked){
			selectedSearchType = selectedSearchType + radioElements[i].value;
		}
	}
	return selectedSearchType;	
}

function getMethodToUse(){
       var val = document.getElementById('methodToUse').value;
       var methodToUse = 'methodToUse=';
       methodToUse = methodToUse + escape(val);
       return methodToUse;  
}

function getPromoCode(){
	var chk = document.getElementById('chkPromoCode');
    var promoCode = '';
	if(chk.checked){
		var val = document.getElementById('txtPromoCode').value;
		if(val!=undefined){
	    	promoCode = '&promoCode=' + val;
		}
	}
	return promoCode;	
}

