// $RCSfile: searches.js,v $
// $Source: /cvs/cyplonweb-live/javascript/searches.js,v $, $Revision: 1.1 $, $Date: 2010/07/12 10:32:46 $, $State: Exp $

var depSel = "";
var durSel= "7";
var arrSel = "";

if (onlyCyp) {
	onlyCyp = onlyCyp;
} else {
	var onlyCyp = "";
}

if (arrFix) {
	arrFix = arrFix;
} else {
	var arrFix = "";
}

var firstLoad = true;

function selectConstructor() {
	$('arrival').onchange = function() {
		firstLoad = false;
		depSel = $('departure').options[$('departure').options.selectedIndex].value;
		/*durSel = $('duration').options[$('duration').options.selectedIndex].value;*/
		fillDeparture('arrival');
		//fillDuration('arrival');
		//setSelected('departure', depSel);
		//setSelected('duration', durSel);
	}
	$('departure').onchange = function() {
		firstLoad = false;
		arrSel = $('arrival').options[$('arrival').options.selectedIndex].value;
		/*durSel = $('duration').options[$('duration').options.selectedIndex].value;*/
		
		fillArrival('departure');
		/*fillDuration('departure');*/
		//setSelected('arrival', arrSel);
		//setSelected('duration', durSel);
	}
	/*
	$('duration').onchange = function() {
		firstLoad = false;
		arrSel = $('arrival').options[$('arrival').options.selectedIndex].value;
		depSel = $('departure').options[$('departure').options.selectedIndex].value;
		fillArrival('duration');
		fillDeparture('duration');
		//setSelected('arrival', arrSel);
		//setSelected('departure', depSel);
	}
	*/
}

function setSelected(target, value) {
	if ((target == "arrival") && (arrFix != "")) {
		value = arrFix;
	}
	target = $(target);
	targetOptions = target.getElementsByTagName('option');
	for (var i = 0; i < targetOptions.length; i++) {
		//alert(targetOptions.value);
		//alert("TARGET[" + target.id + "] Option value: " + targetOptions[i].value + " // Passed value: " + value);
		if (targetOptions[i].value == value) {
			targetOptions[i].selected = "selected";
		}
	}
}
	

function clearSelect(target) {
	target = $(target);
	//targetLength = $(target).length;
	//targetOptions = document.getElementsByTagName('option');
	while (target.childNodes.length) {
		target.removeChild(target.firstChild);
	}
	newoption = document.createElement('option');
	newoption.value = "";
	newoption.innerHTML = " - Select - ";
	
	target.appendChild(newoption);
}

function onlyCyprus() {
	if (onlyCyp == true) {
		//alert('bing');
		pfoCheck = false;
		lcaCheck = false;
		
		target = $('arrival');
		targetOptions = target.getElementsByTagName('option');
		for (var i = 0; i < targetOptions.length; i++) {
			if (targetOptions[i].value == "PFO") {
				pfoCheck = true;
			}
			if (targetOptions[i].value == "LCA") {
				lcaCheck = true;
			}
		}
		//alert("PFO: " + pfoCheck + "// LCA: " + lcaCheck);
		clearSelect('arrival');
		if (pfoCheck == true) {
			newPfo = document.createElement('option');
			newPfo.value = "PFO";
			newPfo.innerHTML = "Paphos";
			$('arrival').appendChild(newPfo);
		}
		if (lcaCheck == true) {
			newLca = document.createElement('option');
			newLca.value = "LCA";
			newLca.innerHTML = "Larnaca";
			$('arrival').appendChild(newLca);
		}
	}
}
		

function fillArrival(caller) {	
	var url = "flight-info.php?fromurl="+window.location;
	if (caller == "departure") {
		sentvar = $('departure').options[$('departure').options.selectedIndex].value;
		durvar = $('duration').options[$('duration').options.selectedIndex].value;
		pars = "func=arrival&caller=departureAJAX&var=" + sentvar + "&durVar=" + durvar;
	} else if (caller == "duration") {
		sentvar = $('duration').options[$('duration').options.selectedIndex].value;
		depvar =  $('departure').options[$('departure').options.selectedIndex].value;
		pars = "func=arrival&caller=durationAJAX&var=" + sentvar + "&depVar=" + depvar;
	} else {
		pars = "func=arrival";
	}
	
	//alert(pars);
	
	var arrivalAjax = new Ajax.Request( url, { 
		method: 'get',
		parameters: pars,
		onLoading: function() {
		//$('arrInd').innerHTML = 'Please wait <img src="images/indicator.gif" alt="Please Wait" />';
		if (firstLoad != true) {
			$('arrival').disabled = "disabled";
		}
		},
		onComplete: arrivalResponse
	}); 	
}

function fillDeparture(caller) {
	var url = "flight-info.php";
	if (caller == "arrival") {
		sentvar = $('arrival').options[$('arrival').options.selectedIndex].value;
		durvar = $('duration').options[$('duration').options.selectedIndex].value;
		pars = "func=departure&caller=arrivalAJAX&var=" + sentvar + "&durVar=" + durvar;
	} else if (caller == "duration") {
		sentvar = $('duration').options[$('duration').options.selectedIndex].value;
		arrvar = $('arrival').options[$('arrival').options.selectedIndex].value;
		pars = "func=departure&caller=durationAJAX&var=" + sentvar + "&arrVar=" + arrvar;
	} else {		
		pars = "func=departure";
	}
	
	//alert(pars);
	
	var departureAjax = new Ajax.Request( url, {
		method: 'get',
		parameters: pars,
		onLoading: function() {
		//$('depInd').innerHTML = 'Please wait <img src="images/indicator.gif" alt="Please Wait" />';
		if (firstLoad != true) {
			$('departure').disabled = "disabled";
		}
		},
		onComplete: departureResponse
	});
}

function fillDuration(caller) {
	/*
	var url = "flight-info.php?fromurl="+window.location;
	if (caller == "departure") {
		var sentvar = $('departure').options[$('departure').options.selectedIndex].value;
		var arrvar = $('arrival').options[$('arrival').options.selectedIndex].value;		
		var pars = "func=duration&caller=departureAJAX&var=" + sentvar + "&arrVar=" + arrvar;
	} else if (caller == "arrival") {
		var sentvar = $('arrival').options[$('arrival').options.selectedIndex].value;
		var depvar =  $('departure').options[$('departure').options.selectedIndex].value;
		var pars = "func=duration&caller=arrivalAJAX&var=" + sentvar + "&depVar=" + depvar;
	} else {
		var pars = "func=duration";
	}
	
	//alert(pars);
	
	var durationAjax = new Ajax.Request( url, {
		method: 'get',
		parameters: pars,
		onLoading: function() {
		//$('durInd').innerHTML = 'Please wait <img src="images/indicator.gif" alt="Please Wait" />';
		if (firstLoad != true) {
			$('duration').disabled = "disabled";
		}
		},
		onComplete: durationResponse
	});
	*/
}

function durationResponse(requestObject) {
	clearSelect('duration');
	var durations = requestObject.responseXML.getElementsByTagName('dur');
	for (var i = 0; i < durations.length; i++) {
		durval = durations[i].firstChild.nodeValue;
		newoption = document.createElement('option');
		newoption.innerHTML = durval;
		newoption.value = durval;
		/*if (newoption.value == durSel) {
			newoption.selected = "selected"
		}
		durSel = "";*/
		
		$('duration').appendChild(newoption);
		
		newoption = null;
	}
	//$('durInd').innerHTML = "";
	$('duration').disabled = "";
	setSelected('duration', durSel);
}

function departureResponse(requestObject) {
	clearSelect('departure');
	var departureap = requestObject.responseXML.getElementsByTagName('departureap');
	for (var i = 0; i < departureap.length; i++) {
		apname = departureap[i].getElementsByTagName('apname')[0].firstChild.nodeValue;
		apcode = departureap[i].getElementsByTagName('apcode')[0].firstChild.nodeValue;
		newoption = document.createElement('option');
		newoption.innerHTML = apname;
		newoption.value = apcode;
		/*if (newoption.value == depSel) {
			newoption.selected = "selected"
		}
		depSel = "";*/
		
		$('departure').appendChild(newoption);
		
		newoption = null;
	}
	//$('depInd').innerHTML = "";
	$('departure').disabled = "";
	setSelected('departure', depSel);
}

function arrivalResponse(requestObject) {
	clearSelect('arrival');
	var arrivalap = requestObject.responseXML.getElementsByTagName('arrivalap');
	for (var i = 0; i < arrivalap.length; i++) {
		apname = arrivalap[i].getElementsByTagName('apname')[0].firstChild.nodeValue;
		apcode = arrivalap[i].getElementsByTagName('apcode')[0].firstChild.nodeValue;
		newoption = document.createElement('option');
		newoption.innerHTML = apname;
		newoption.value = apcode;
		/*if (newoption.value == arrSel) {
			newoption.selected = "selected"
		}
		arrSel = "";*/
		
		$('arrival').appendChild(newoption);
		
		newoption = null;
	}
	//$('arrInd').innerHTML = "";
	$('arrival').disabled = "";
	
	onlyCyprus();
	setSelected('arrival', arrSel);
	
	if (arrFix != "") {
		depSel = $('departure').options[$('departure').options.selectedIndex].value;
		durSel = $('duration').options[$('duration').options.selectedIndex].value;
		fillDeparture('arrival');
		fillDuration('arrival');
		$('arrival').disabled = 'disabled';
	}
}

function addLoadEvent(func) {
    Event.observe(window, 'load', func);
    /**
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			if (oldonload) {
				oldonload();
			}
			func();
		}
	}
    **/
}

function fadeBox() {
	new Effect.Appear('waitBox', {to: 0.8});
}

addLoadEvent(function() {
    if($('arrival')) {
        selectConstructor();
        fillArrival();
        fillDeparture();
        fillDuration();
    }
});
