function autoSetForm(destination, departure) {
		if (departure == '???'){
		//fromvar = document.getElementById('from1');
		//fromvar.value = '';		
		tovar = document.getElementById('to1');
		tovar.value = destination;				
		} else {		
		fromvar = document.getElementById('from1');
		fromvar.value = departure;		
		tovar = document.getElementById('to1');
		tovar.value = destination;				
		}
}		


function closePaxLayer(){
	changeDisplay("paxLayer", "none");
	resetAll();
}


function openPaxLayer(e, mm1, discountCode) {

	// get cursor position
	e = e || window.event;
	var cursor = {x:0, y:0};
	if (e.pageX || e.pageY) {
		cursor.x = e.pageX;
		cursor.y = e.pageY;
	}
	else {
		var de = document.documentElement;
		var b = document.body;
		cursor.x = e.clientX + (de.scrollLeft || b.scrollLeft) - (de.clientLeft || 0);
		cursor.y = e.clientY + (de.scrollTop || b.scrollTop) - (de.clientTop || 0);
	}
	
	// set form hidden field to be the mm1 attribute - this can be sl or tos deeplink code
	document.getElementById("pax_m1").setAttribute("value", mm1);	
	
	// set form hidden field to be the discountCode attribute - only applies to SL, TOS is ""
	document.getElementById("discountCode").setAttribute("value", discountCode);	
	
	//check if it a tos or a sl flight - modify paxLayer accordingly
	//determine search type from link_info
	var pattern = /www1\.flythomascook\.com/;
	if (pattern.test(mm1)) { //TOS	
		changeDisplay("returnOption", "none");
		document.getElementById("action").setAttribute("value", "tos");
	}
	else {
		changeDisplay("returnOption", "block");
		setFlightDates(document.getElementById("duration").options[document.getElementById("duration").selectedIndex].value);
		document.getElementById("action").setAttribute("value", "slOneWay");
	}
	
	//show and position the layer
	var paxLayer = document.getElementById("paxLayer");
	if (document.all){ //win
		paxLayer.style.display = "block";
		paxLayer.style.top = (cursor.y-20);
		paxLayer.style.left = (cursor.x-0);
	}
	else { //moz
		paxLayer.setAttribute("style", "display: block; position: absolute; top: " + (cursor.y - 20) + "px ; left: 500px ;");
	}
}


function setFlightDates(duration) {

	if ((duration == 0) || (duration == "")) {
		resetAll();
	} 
	else {	
		changeDisplay("displayDepDates", "inline");
		changeDisplay("displayRetDates", "inline");
		document.getElementById("action").setAttribute("value", "slReturn");
		var dayArray = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
		var monthArray = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
		// departing
		var depDateStr = document.getElementById("pax_m1").value.substring(0,8);
		var depDate = new Date(depDateStr.substring(0,4), (depDateStr.substring(4,6)-1), depDateStr.substring(6,8));
		var oldDEl = document.getElementById("displayDepDates").childNodes[0];
		var newDEl = document.createTextNode("Departing on: " + dayArray[depDate.getDay()] + " " + addLeadingZero(depDate.getDate()) + " " + monthArray[depDate.getMonth()] + " " + depDate.getFullYear());
		document.getElementById("displayDepDates").replaceChild(newDEl, oldDEl);	
		// returning
		var retDateMS = ( (depDate.getTime()) + (duration * 24 * 60 * 60 * 1000) );
		var retDate = new Date(retDateMS);
		document.getElementById("retDate").setAttribute("value", retDate.getFullYear().toString() + addLeadingZero(retDate.getMonth()+1) + addLeadingZero(retDate.getDate()) );
		var oldREl = document.getElementById("displayRetDates").childNodes[0];
		var newREl = document.createTextNode("Returning on: " + dayArray[retDate.getDay()] + " " + addLeadingZero(retDate.getDate()) + " " + monthArray[retDate.getMonth()] + " " + retDate.getFullYear());
		document.getElementById("displayRetDates").replaceChild(newREl, oldREl);
	}
}

function changeDisplay(elId, state) {
	if (document.getElementById(elId)) {
		if (document.all){ //win
			document.getElementById(elId).style.display = state;
		}
		else { //moz
			document.getElementById(elId).setAttribute("style","display: " + state);
		}	
	}
}

function addLeadingZero(num) {
	var numAsStr;
	if (num < 10) {
		numAsStr = "0" + num;
	} 
	else {
		numAsStr = num;
	}
	return numAsStr.toString();
}


function resetAll() {
	changeDisplay("displayDepDates", "none");
	changeDisplay("displayRetDates", "none");
	document.getElementById("displayDepDates").replaceChild(document.createTextNode(" "), document.getElementById("displayDepDates").childNodes[0]);
	document.getElementById("displayRetDates").replaceChild(document.createTextNode(" "), document.getElementById("displayRetDates").childNodes[0]);
	document.getElementById("retDate").setAttribute("value","");
	document.getElementById("action").setAttribute("value","slOneWay");
	document.getElementById("duration").selectedIndex=0;
}


function process(form) {

	// grab some form info
	var deals_totalPax;
	var deals_adultPax = document.getElementById("pax_adult");
	var deals_childPax = document.getElementById("pax_child");
	var deals_infantPax = document.getElementById("pax_infant");
	var deals_url;
	var link_info = document.getElementById("pax_m1").getAttribute("value");
	var retDate = document.getElementById("retDate").getAttribute("value"); 
	var action = document.getElementById("action").getAttribute("value");

	// do some pax checking first
	if (parseInt(deals_adultPax.options[deals_adultPax.selectedIndex].value) + parseInt(deals_childPax.options[deals_childPax.selectedIndex].value) + parseInt(deals_infantPax.options[deals_infantPax.selectedIndex].value) > 9) {
		alert("You are allowed a maximum of 9 passengers \n per booking online. If your party is larger \n than this, please call our reservation center.");
		return false;
	}
	if (parseInt(deals_infantPax.options[deals_infantPax.selectedIndex].value) > parseInt(deals_adultPax.options[deals_adultPax.selectedIndex].value)) {
		alert("Sorry, you cannot select more infants \n than the number of adults travelling.");
		return false;
	}

// start FTCMOD
	//let set the discounting type, these will be ignored for TOS and SLReturn:
	var DiscountType = document.getElementById("discountCode").getAttribute("value");
	if (DiscountType == "N") {
		var deals_ADULTpx = "&ADULTpx=ADT";
		var deals_CHILDpx = "&CHILDpx=CHD";
		var deals_MODE = "&MODE=";
	} 
	else if ((DiscountType == "X") || (DiscountType == "Y")) {
		var deals_ADULTpx = "&ADULTpx=ADT" + DiscountType;
		var deals_CHILDpx = "&CHILDpx=CHD" + DiscountType;
		var deals_MODE = "&MODE=PROMO_" + DiscountType;
	}
	else if (DiscountType == "I") {
		var deals_ADULTpx = "&ADULTpx=ADTI";
		var deals_CHILDpx = "&CHILDpx=CHDI";
		var deals_MODE = "&MODE=";
	} 
	else { //default
		var deals_ADULTpx = "&ADULTpx=ADT";
		var deals_CHILDpx = "&CHILDpx=CHD";
		var deals_MODE = "&MODE=";
	}
	
	//other shared values
	var deals_root="https://book.flythomascook.com/skylights/cgi-bin/skylights.cgi?";
	var deals_CHILD = "&CHILD=" + deals_childPax.options[deals_childPax.selectedIndex].value;
	var deals_INFANT = "&INFANT=" + deals_infantPax.options[deals_infantPax.selectedIndex].value;
	var deals_language = "&language=EN";
	var deals_module = "&module=SB";
	var deals_sid = "&sid=";	
	var deals_from1 = "&from1=" +  link_info.substring(16,19);
	var deals_to1 = "&to1=" + link_info.substring(19,22);					
					
	// do the required action
	switch (action) {
		case "slOneWay": //SL deep linked search
			var deals_ADULT = "&ADULT=" + deals_adultPax.options[deals_adultPax.selectedIndex].value;
			var deals_numberMarkets = "&numberMarkets=1";
			var deals_page = "&page=SELECT";
			var deals_m1 = "&m1=" + link_info;
			var deals_flight_1 = "&flight_1=" + link_info.substring(0,50) + "|" + link_info.substring(50,52) + "|" + link_info.substring(52,54) + "||" + link_info.substring(54,55) + "|" + link_info.substring(56,61);
			var deals_event= "&event=select";
			var deals_departDay1 = "&departDay1=" + link_info.substring(6,8);
			var deals_departMonth1 = "&departMonth1=" + link_info.substring(0,6);
			var deals_travel = "&travel=1";
			//build url for deep link
			var deals_url = deals_root + deals_MODE + deals_ADULT + deals_ADULTpx + deals_CHILD + deals_CHILDpx + deals_INFANT + deals_numberMarkets + deals_language + deals_module + deals_page + deals_m1 + deals_flight_1 + deals_sid + deals_event + deals_from1 + deals_to1 + deals_departDay1 + deals_departMonth1 + deals_travel;
			//build url for nedstat tracking
			//var nedstat_url = "http://uk.sitestat.com/tcook/flythomascook/s?flytc.seoLinks.sl_OneWay." + "from-" + deals_m1.substring(20,23) +	".to-" + deals_m1.substring(23,26) + ".date-" + deals_m1.substring(4,12) + "&ns_type=clickout&ns_url=" ;				
		break;
		
		case "slReturn": //SL std search
			var deals_ADULT = "ADULT=" + deals_adultPax.options[deals_adultPax.selectedIndex].value;
			var deals_numberMarkets = "&numberMarkets=2";
			var deals_page = "&page=SEARCH";
			var deals_event= "&event=search";
			var deals_departDay1 = "&departDay1=" + link_info.substring(6,8);
			var deals_departDay2 = "&departDay2=" + retDate.substring(6,8);
			var deals_departMonth1 = "&departMonth1=" + link_info.substring(0,6);
			var deals_departMonth2 = "&departMonth2=" + retDate.substring(0,6);
			var deals_travel = "&travel=2";
			//build url for deep link
			var deals_url = deals_root + deals_ADULT + deals_CHILD + deals_INFANT + deals_numberMarkets + deals_language + deals_module + deals_page + deals_sid + deals_event + deals_from1 + deals_to1 + deals_departDay1 + deals_departMonth1 + deals_departDay2 + deals_departMonth2 + deals_travel;
			//build url for nedstat tracking
			//var nedstat_url = "http://uk.sitestat.com/tcook/flythomascook/s?flytc.seoLinks.sl_Return." + "from-" + link_info.substring(16,19) +	".to-" + link_info.substring(19,22) + ".date-" + link_info.substring(0,6) + link_info.substring(6,8) + "_" + retDate + "&ns_type=clickout&ns_url=" ;
		break;
		
// end FTCMOD


		case "tos":
			var deals_root="http://www1.flythomascook.com/flytc/productSearch.vm?";
			var deals_searchType = "&searchType=R";
			var deals_departureCode = "&departureCode=" + link_info.substring(80,83);
			var deals_departureDay = "&departureDay=" + link_info.substring(97,99);
			var deals_departureYearMonth =	"&departureYearMonth=" + link_info.substring(119,126);
			var deals_departureDateMinus =	"&departureDateMinus=" + 7;
			var deals_departureDatePlus = "&departureDatePlus=" + 7;
			var deals_noAdults = "&noAdults=" + deals_adultPax.options[deals_adultPax.selectedIndex].value;
			var deals_noChildren = "&noChildren=" + deals_childPax.options[deals_childPax.selectedIndex].value;
			var deals_destinationCode = "&destinationCode=" + link_info.substring(208,211);
			var deals_returnDay = "&returnDay=" + link_info.substring(222,224);
			var deals_returnYearMonth = "&returnYearMonth=" + link_info.substring(241,248);;
			var deals_noInfants = "&noInfants=" + deals_infantPax.options[deals_infantPax.selectedIndex].value;
			//build url for deep link
			var deals_url = deals_root+deals_searchType+deals_departureCode+deals_departureDay+deals_departureYearMonth+deals_departureDateMinus+deals_departureDatePlus+deals_noAdults+deals_noChildren+deals_destinationCode+deals_returnDay+deals_returnYearMonth+deals_noInfants;
			//build url for nedstat tracking
			//var nedstat_url = "http://uk.sitestat.com/tcook/flythomascook/s?flytc.seoLinks.tos." + "from-" + deals_departureCode.substring(15,18) + ".to-" + deals_destinationCode.substring(17,20) + ".date-" + deals_departureYearMonth.substring(20,24) + deals_departureYearMonth.substring(25,27) + deals_departureDay.substring(14,16) + "&ns_type=clickout&ns_url=" ;
		break;
	}
	
	// a bit of debugging help in dev
	var pattern = /149.122.160.43/;
	if (pattern.test(window.location.href)) {
		//alert("Booking Type: \n " + action + "\n\n" +	"Tracking link: \n" + nedstat_url + "\n\n" + "URL: \n " + deals_url + "\n\n");
		alert("Booking Type: \n " + action + "\n\n" +	"Tracking link: \n" + "\n\n" + "URL: \n " + deals_url + "\n\n");
	}
	
	//window.location.href = nedstat_url + deals_url;
	window.location.href = deals_url;
}

