jq(function() {
	initHomepage();		
	if( (document.referrer+'').indexOf('BookXpress_Hitchhiker', 0) != -1)
	{
		document.getElementById('dep_apcode').value = "";
		document.getElementById('des_apcode').value = "";
		document.getElementById('dep2_apcode').value = "";
		document.getElementById('des2_apcode').value = "";
	}
	if (document.getElementById('searchbox_more_advanced'))
	{
		ReadLastFlightsCookie();
	}
});

var focused = null;
var hidden = true;
var autocomp = new Array(4);

var scriptVars = {
	isSearchboxAdvancedVisible: false,
	slideSarchboxAdvanced: null,
	retourdate_initialized:false,
	cal_v:null,	
	cal_r:null,
	isLastSearchVisible: false,
	cal1:null,
	cal2:null
};

function initHomepage() {
	initLayout();
};

function initLayout(){
	try {
	jq('#dep_apname').focus();
	} catch(e) {}
	if (window.location.search.toLowerCase().indexOf('maatschappijen') >= 0) sbToggleExtendedSearch(true);
	if (window.location.search.toLowerCase().indexOf('ecobusfir') >= 0) sbToggleExtendedSearch(true);
	
	//additional check on the cookie. 
	//only when the button is displayed run the checks
	if (document.getElementById('lastsearch'))
	{
		var showButton = true;
		
		resetCookie();
		var tempCookie = readCookie("LATESTFLIGHTS");
		if((tempCookie == null) || (tempCookie == ""))
		{
			showButton = false;
		}
		else
		{
			tempCookie = unescape(tempCookie);
			if (tempCookie == null || tempCookie == "")
			{
				showButton = false;
			}
			else
			{
				var aFlights = tempCookie.split("|");
				if (aFlights.length >= 1 && aFlights[0].split(':').length >= 5)
				{
					showButton = true;
				}
				else
				{
					showButton = false;
				}
			}
		}
		
		ShowHideObj('lastsearch', showButton);
	}
	
	SwapOneway();
};

function pp(aa){
	alert(aa);	
}

function logg(txt){
	jq('#logg').html(jq('#logg').html()+'<div>'+txt+'</div>');	
};

function Controle(f) {
	var datum1  = back_date(f.vertrekdate.value);
	
	var vandaag = new Date();
	vandaag = new Date(vandaag.getFullYear(), vandaag.getMonth(), vandaag.getDate());
	
	// nogmaals checken als er geen onChange is geweest
	if  (isNaN(datum1)) {
		alert(localVars.valid_departuredate_msg);
		f.vertrekdate.focus();
		return false;
	}
	
	if (f.dep_apname.value == "") {
		alert(localVars.valid_departure_msg);
		f.dep_apname.focus();
		return false;
	}
	
	if (f.des_apname.value == "") {
		alert(localVars.valid_destination_msg);
		f.des_apname.focus();
		return false;
	}
	
	if (f.dep_apname.value == f.des_apname.value)
	{
		alert(localVars.valid_route_msg);	
		f.des_apname.focus();
		return false;
	}
	
	if (f.Roundtrip[0].checked) {
		if (f.dep2_apname.value == "") {
			alert(localVars.valid_departure_msg);
			f.dep2_apname.focus();
			return false;
		}
		
		if (f.des2_apname.value == "") {
			alert(localVars.valid_destination_msg);
			f.des2_apname.focus();
			return false;
		}
		
		if (f.dep_apname.value == f.dep2_apname.value && f.des_apname.value == f.des2_apname.value) {
			alert(localVars.valid_route_msg);				
			return false;
		}
		
		if (f.dep2_apname.value == f.des2_apname.value)
		{
			alert(localVars.valid_route_msg);	
			f.des2_apname.focus();
			return false;
		}
	}	
	if (datum1 < vandaag) {
		alert(localVars.valid_departuredate_past_msg);
		f.vertrekdate.focus();
		return false;
	}
	if (f.Roundtrip[0].checked) {
		var datum2  = back_date(f.retourdate.value);
		if (isNaN(datum2) ) {
			alert(localVars.valid_returndate_msg);
			f.retourdate.focus();
			return false;
			}
		if (datum2 < vandaag) {
			alert(localVars.valid_arrivaldate_past_msg);
			f.retourdate.focus();
			return false;
		}			
		if (datum2 < datum1) {
			alert(localVars.valid_departuredate_after_returndate_msg);
			f.vertrekdate.focus();
			return false;
		}
	}	
	// Omzetten naar juiste datumformaat BookXpress...
	f.dag1.value = datum1.getDate();
	f.maandjaar1.value = (datum1.getMonth()+1) + "/" + datum1.getFullYear();
	if (f.Roundtrip[0].checked) {
		f.dag2.value = datum2.getDate();
		f.maandjaar2.value = (datum2.getMonth()+1) + "/" + datum2.getFullYear();	
	}
	
	/*if (f.vertrekdate.value == f.retourdate.value) {
		return confirm('\nDe terugreis is op dezelfde dag als de heenreis.\n\nIs het de bedoeling dat u een korte reis maakt?\n\n');
	}*/
	
	return true;
};

function SetAirportNameCode() {
	if(jq('#dep_apname').val() != jq('#dep_apname2').val()) {
		jq('#dep_apcode').val("");
	}
	if(jq('#dep2_apname').val() != jq('#dep2_apname2').val()) {
		jq('#dep2_apcode').val("");
	}
	if(jq('#des_apname').val() != jq('#des_apname2').val()) {
		jq('#des_apcode').val("");
	}
	if(jq('#des2_apname').val() != jq('#des2_apname2').val()) {
		jq('#des2_apcode').val("");
	}
	return true;
}

function SwapOneway() {
	//var f = document.formulierQuickSearch;
	var f = document.getElementById('searchboxFlightsForm');
	if (f.Roundtrip[1].checked) {
		//alert(localVars.msg_onewaytrip);
		ShowHideUseCalendar();
		f.dep2_apname.disabled = true;
		f.des2_apname.disabled = true;
		f.retourdate.disabled = true;
		f.dep2_apname.style.backgroundColor = '#CCCCCC';
		f.des2_apname.style.backgroundColor = '#CCCCCC';
		f.retourdate.style.backgroundColor = '#CCCCCC';	
		try
		{
			f.uur2.disabled = true;		
			f.uur2.style.backgroundColor = '#CCCCCC';
		}
		catch(e) {}
		try { jq('#date2_button').attr('disabled', 'disabled'); } catch(e) {}
	} else {
		ShowHideUseCalendar();
		f.dep2_apname.disabled = false;
		f.des2_apname.disabled = false;
		f.retourdate.disabled = false;
		f.dep2_apname.style.backgroundColor = '#FFFFFF';
		f.des2_apname.style.backgroundColor = '#FFFFFF';
		f.retourdate.style.backgroundColor = '#FFFFFF';	
		try
		{
			f.uur2.disabled = false;
			f.uur2.style.backgroundColor = '#FFFFFF';
		}
		catch(e) {}
		try { jq('#date2_button').removeAttr('disabled'); } catch(e) {}
	}		
};

function infoPassengers(lbl){
	alert(localVars['msg_passengers_'+lbl]);
}

function SetNumberOfBabies() {
	var tempMaxBabies = jq('#nr_adults').val();
	var selBabies = jq('#nr_infants').val();
	if(selBabies > tempMaxBabies) {selBabies = tempMaxBabies;}
	while(jq('#nr_infants option').length > 1) {
		//jq('#nr_infants').remove(1);
		jq('#nr_infants :last').remove();
	}
	for(i = 1; i <= tempMaxBabies; i++) {
		var objOption = document.createElement("option");
		objOption.text = i;
		objOption.value = i;
		if(i == selBabies) {objOption.selected = true;}
		if(document.all && !window.opera) {
			//jq('#nr_infants').add(objOption);
			jq('#nr_infants:last')[0].options.add(objOption);
		} else {
			//jq('#nr_infants').add(objOption, null);
			jq('#nr_infants:last')[0].options.add(objOption);
		}
	}
}

function ShowHideUseCalendar() {
	var f = document.getElementById('searchboxFlightsForm');
	//var f = document.formulierQuickSearch;
	var dep = document.getElementById('dep_continent').value;
	var des = document.getElementById('des_continent').value;
	if(f.Roundtrip[0].checked && dep != "" && des != "" && dep != des) {
		//document.getElementById('UseCalendarDiv').style.visibility = 'visible';
		jq('#UseCalendar2').removeAttr('disabled');
		jq('#UCLabel').css('color', '');
	} else {
		jq('#UseCalendar2').attr('disabled', 'disabled');
		jq('#UCLabel').css('color', '#CCC');
		f.UseCalendar2.checked = false;
		f.UseCalendar.value = 0;
		//document.getElementById('UseCalendarDiv').style.visibility = 'hidden';
	}
}

function CheckUseCalendar() {
	var f = document.formulierQuickSearch;
	if(f.UseCalendar2.checked) {
		f.UseCalendar.value = 1;
	} else {
		f.UseCalendar.value = 0;
	}
}

function ReadLastFlightsCookie() {
	resetCookie();
	for(var j = 0; j < 5; j++) {
		document.getElementById("WrapDiv" + j).style.visibility = "hidden";
	}
	var tempCookie = readCookie("LATESTFLIGHTS");
	if(tempCookie == null) {
		tempCookie = "";
	}
	if(tempCookie == "") {
		return;
	}
	tempCookie = unescape(tempCookie);
	var aFlights = tempCookie.split("|");
	for(var i = 0; (i < aFlights.length) && (i < 5); i++) {
		var oneFlight = aFlights[i].split(":");
		document.getElementById("airp" + i).innerHTML = oneFlight[4].split(",")[0] + " - " + oneFlight[6].split(",")[0];
		if(oneFlight[8].length == 0) {
			if(oneFlight[8].split("-")[0].length == 2) {
				document.getElementById("dat" + i).innerHTML = oneFlight[7].split("-")[0] + "/" + oneFlight[7].split("-")[1] + "/" + oneFlight[7].split("-")[2] + " v.a. &euro; " + oneFlight[2];
			} else {
				document.getElementById("dat" + i).innerHTML = oneFlight[7].split("-")[2] + "/" + oneFlight[7].split("-")[1] + "/" + oneFlight[7].split("-")[0] + " v.a. &euro; " + oneFlight[2];
			}
		} else {
			if(oneFlight[8].split("-")[0].length == 2) {
				document.getElementById("dat" + i).innerHTML = oneFlight[7].split("-")[0] + "/" + oneFlight[7].split("-")[1] + "/" + oneFlight[7].split("-")[2] + " - " + oneFlight[8].split("-")[0] + "/" + oneFlight[8].split("-")[1] + "/" + oneFlight[8].split("-")[2] + " " + localVars.lastsearchfrom + " &euro; " + oneFlight[2];
			} else {
				document.getElementById("dat" + i).innerHTML = oneFlight[7].split("-")[2] + "/" + oneFlight[7].split("-")[1] + "/" + oneFlight[7].split("-")[0] + " - " + oneFlight[8].split("-")[2] + "/" + oneFlight[8].split("-")[1] + "/" + oneFlight[8].split("-")[0] + " " + localVars.lastsearchfrom + " &euro; " + oneFlight[2];
			}
		}
		document.getElementById("airpimg" + i).src = "https://lijnvluchten.cheaptickets.nl/shared/logos/airlines/th_" + oneFlight[1] + "_ic.gif";
		document.getElementById("airpimg" + i).alt = oneFlight[0];
		
		document.getElementById("WrapDiv" + i).style.visibility = "visible";
	}
}

function removeCookieFlight(i) {
	var tempCookie = readCookie("LATESTFLIGHTS");
	if(tempCookie == null) {
		tempCookie = "";
	}
	if(tempCookie == "") {
		return;
	}
	tempCookie = unescape(tempCookie);
	var aFlights = tempCookie.split("|");
	if(i > aFlights.length - 1) {
		return;
	}
	var tempArr = new Array();
	var k = 0;
	for(var j = 0; j < aFlights.length; j++) {
		if(j != i) {
			tempArr[k] = aFlights[j];
			k++;
		}
	}
	tempCookie = escape(tempArr.join("|"));
	createCookieCT("LATESTFLIGHTS",tempCookie,365);
	
	ReadLastFlightsCookie();
}

function openFlightCookie(i) {
	var tempCookie = readCookie("LATESTFLIGHTS");
	if(tempCookie == null) {
		tempCookie = "";
	}
	if(tempCookie == "") {
		return;
	}
	tempCookie = unescape(tempCookie);
	var aFlights = tempCookie.split("|");
	if(i > aFlights.length - 1) {
		return;
	}
	var oneFlight = aFlights[i].split(":");
	var templink = "index.cfm?";
	templink += "dep_apcode=" + oneFlight[3];
	templink += "&dep_apname=" + oneFlight[4];
	templink += "&des_apcode=" + oneFlight[5];
	templink += "&des_apname=" + oneFlight[6];
	if(oneFlight[7].split("-")[0].length == 2) {
		templink += "&vertrekdate=" + oneFlight[7].split("-")[0] + "/" + oneFlight[7].split("-")[1] + "/" + oneFlight[7].split("-")[2];
	} else {
		templink += "&vertrekdate=" + oneFlight[7].split("-")[2] + "/" + oneFlight[7].split("-")[1] + "/" + oneFlight[7].split("-")[0];
	}
	if(oneFlight[8].length > 0) {
		if(oneFlight[8].split("-")[0].length == 2) {
			templink += "&retourdate=" + oneFlight[8].split("-")[0] + "/" + oneFlight[8].split("-")[1] + "/" + oneFlight[8].split("-")[2];
		} else {
			templink += "&retourdate=" + oneFlight[8].split("-")[2] + "/" + oneFlight[8].split("-")[1] + "/" + oneFlight[8].split("-")[0];
		}
		templink += "&des2_apcode=" + oneFlight[3];
		templink += "&des2_apname=" + oneFlight[4];
		templink += "&dep2_apcode=" + oneFlight[5];
		templink += "&dep2_apname=" + oneFlight[6];
	} else {
		templink += "&roundtrip=0";
	}
	//templink += "&autosubmit=1";
	document.location.href = templink;
}
function resetCookie() {
	var tempCookie = readCookie("LATESTFLIGHTS");
	if(tempCookie == null) {
		tempCookie = "";
	}
	if(tempCookie == "") {
		return;
	}
	tempCookie = unescape(tempCookie);
	var aFlights = tempCookie.split("|");
	//fix airportcodes
	for(var i = 0; i < aFlights.length; i++) {
		var oneFlight = aFlights[i].split(":");
		if(oneFlight[4].length == 3) {
			var t = oneFlight[4];
			oneFlight[4] = oneFlight[3];
			oneFlight[3] = t;
		}
		if(oneFlight[6].length == 3) {
			var t = oneFlight[6];
			oneFlight[6] = oneFlight[5];
			oneFlight[5] = t;
		}
		aFlights[i] = oneFlight.join(":");
	}
	
	//remove old flights
	var aFlightsNew = new Array();
	for(var i = 0; i < aFlights.length; i++) {
		var oneFlight = aFlights[i].split(":");
		
		var departDate = oneFlight[7];
		if (departDate && departDate.split('-').length == 3)
		{
			var depDate = back_date(departDate);
			var today = new Date();

			var dateValid = (depDate > today);
			
			if (dateValid)
			{
				aFlightsNew.push(oneFlight.join(":"));
			}
		}
	}
	
	tempCookie = escape(aFlightsNew.join("|"));
	createCookieCT("LATESTFLIGHTS",tempCookie,365);
}

function ShowHideObj(obj, visible) {
	if (visible){
		jq('#'+obj).css('display', '');
		jq('#'+obj).css('visibility', 'visible');
	} 
	else {
		jq('#'+obj).css('display', 'none');
		jq('#'+obj).css('visibility', 'hidden');
	}
}

function ShowOverlay(id,overlayText) {
	jq('#overlayBoxContent').html(overlayText);
	jq('#overlayBoxContent').css('position', 'inherit');
	jq('#overlaybox').css('top', findPosY(id) + 15);
	jq('#overlaybox').css('left', findPosX(id) + 20);	
	ShowHideObj('overlaybox',true);
}

//Function that returns the correct top of a specific object, works cross browsers
function findPosY(obj) {
	var nTopPos = obj.offsetTop; // initialize var to store calculations
	var eParElement = obj.offsetParent; // identify first offset parent element
	while (eParElement != null)	{ // move up through element hierarchy
		nTopPos += eParElement.offsetTop; // appending top offset of each parent
		eParElement = eParElement.offsetParent; // until no more offset parents exist
	}
	return nTopPos; // return the number calculated
}

//Function that returns the correct top of a specific object, works cross browsers
function findPosX(obj) {
	var nLeftPos = obj.offsetLeft; // initialize var to store calculations
	var eParElement = obj.offsetParent; // identify first offset parent element
	while (eParElement != null)	{ // move up through element hierarchy
		nLeftPos += eParElement.offsetLeft; // appending left offset of each parent
		eParElement = eParElement.offsetParent; // until no more offset parents exist
	}
	return nLeftPos; // return the number calculated
} 

/* function for help input */
function ClearHomepageHelpInfo() {
	if (jq('#headerSearchboxHelp').val() == localVars.msg_homepage_input) {
		jq('#headerSearchboxHelp').val("");
	}
}
function FillHomepageHelpInfo() {
	if (jq('#headerSearchboxHelp').val() == "") {
		jq('#headerSearchboxHelp').val(localVars.msg_homepage_input);
 	}
}
function OnCheckEnter(e) { // check if enter was pressed on homepage search input
	var evt = e || window.event;
	if (evt.keyCode == 13) {
		OnHomepageHelp();
	}
}
function OnHomepageHelp() { // open support page with entered user question
	var question = jQuery.trim(jq('#headerSearchboxHelp').val());
	if ((question == "") || (question == localVars.msg_homepage_input)) {
		return;
	}
	
	// open help page
	window.open("http://support.cheaptickets.nl/direct.aspx?ug=14&t=nl&z=" + escape(question),'Voorwaarden','scrollbars=yes,height=500,width=700,left=50,top=50');
}
