// $Id: utils.js,v 1.67 2010/06/17 12:45:52 charliej Exp $

function popup(URL, ID, X, Y)
{
	day = new Date();
	id = day.getTime();
	eval("page" + ID + " = window.open(URL, '" + ID + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=" + X + ",height=" + Y + "');");
    eval("page" + ID + ".focus();");
}

function newPopup(URL, ID, X, Y)
{
	day = new Date();
	id = day.getTime();
	eval("page" + ID + " = window.open(URL, '" + ID + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=" + X + ",height=" + Y + "');");
    eval("page" + ID + ".focus();");
     return false;
}

function popupExt(URL,ID)
{
	eval("page" + ID + " = window.open(URL, '" + ID + "');");
    eval("page" + ID + ".focus();");
}

function handle_return_key(ev)
{
	if(ev.keyCode == 13)
	{
		alert('Return pressed in ' + ev.target);
		return 0;
	}
	else
	{
		return 1;
	}
}

// These functions handle the updating of the form elements of the
// Hotel Search on the homepage.
function searchbox_date_handler() {
	
	// If the user selects "Any Date" then flexibility
	// does not apply.
	if (document.pageform.data_traveldate.selectedIndex == 0) 
	{
		document.pageform.data_flex.selectedIndex = 0;	
	}
	else
	{
		if (document.pageform.data_flex.selectedIndex == 0) 
		{
			document.pageform.data_flex.selectedIndex = 1;	
		}
	}
}

function searchbox_flex_handler() {

	if (document.pageform.data_traveldate.selectedIndex == 0 && document.pageform.data_wantflight.value === 'Y')
	{
		document.pageform.data_flex.selectedIndex = 0;	
	}
	else
	{
		if ( document.pageform.data_flex.selectedIndex == 0 ) 
		{
			document.pageform.data_flex.selectedIndex = 1;	
		}
	}
}

// Be Free functions follow

// A function to check if username and password were entered

function bf_check_login(form)
{
	var user_name = form.username_in.value;
	var password  = form.password_in.value;

	if (user_name == "")
	{
		alert ('Please enter your user name')
		form.username_in.focus();
		form.username_in.select();
		return (false)
	}

	if (password == "")
	{
		alert ('Please enter your password')
		form.password_in.focus();
		form.password_in.select();
		return (false)
	}
	return (true)
}

function loadHandler()
{
	if( window.destOptions ) {
// alert("wantflight: " + document.pageform.data_wantflight.value);
		if(document.pageform.data_duration != null && document.pageform.data_wantflight.value == 'Y')
		{
// alert("duration: " + document.pageform.data_duration.value);
			if(destOptions[document.pageform.data_duration.value] != null)
			{
				updateAirportsFromDuration(document.pageform.data_duration.value);
// 				updateDestinations(document.pageform.data_airport.value, document.pageform.data_duration.value);
			}
		}
		else {
            // if(document.pageform.data_week_policy.value != null)
            // {
            //  updateDestinationByPolicy(document.pageform.data_week_policy.value);    
            // }    
		}
	}
}

function updateDestinationByPolicy(policy)
{
	if(weekPolicyDuration[ policy ] != null)
		updateDestinations('X', weekPolicyDuration[ policy ]);
	else
		updateDestinations('X', 7);		
}

function updateDestinations(airport, duration)
{
	if(document.pageform.data_country == null)
	{
		return;
	}
	
	var selectedItem = document.pageform.data_country.options[document.pageform.data_country.selectedIndex].value;
	
	if (document.pageform.data_default_destination != null)
	{
	    selectedItem = document.pageform.data_default_destination.value;
	}
	
// alert('index: '+document.pageform.data_country.selectedIndex + '\nitem: '+selectedItem);
	
	document.pageform.data_country.options.length = 0;

	var dests = destOptions[duration];

	var found=false;
	var j = 0;
	for (var i = 0; i < dests.length; i++)
	{
		for(var test in dests[i])
		{
			if(test == airport)
			{
				// Do we need a spacer line?
				if(dests[i].isCountry)
				{
					document.pageform.data_country.options[j] = new Option('', '--');
					j++;
				}
				document.pageform.data_country.options[j] = new Option(dests[i].text, dests[i].value, dests[i].selected, dests[i].selected);
				if (document.pageform.data_country.options[j].value == selectedItem) {
				    document.pageform.data_country.selectedIndex = j;
				    found=true;
				}
				j++;
			}
		}
	}
	
/*alert*/("found: " + found);
	
    if (selectedItem == 'X' && document.pageform.data_default_destination != null)
    {
        var default_dest=document.pageform.data_default_destination.value;
        
        for (var i=0; i<document.pageform.data_country.options.length; i++) 
        {
            if (document.pageform.data_country.options[i].value == default_dest)
            {
                document.pageform.data_country.selectedIndex = i;
                break;
            }
        }
    }
}

function originalAirport()
{
	var air = document.pageform.data_airport;
	var origAirport;
	for (var i=0; i < air.length; i++) {
		origAirport = air.options[i].selected ? air.options[i].value : null;
		if (origAirport) break;
	};
	return origAirport;
}

function updateAirportsFromDuration(duration)
{
	if(document.pageform.data_airport == null || ! document.pageform.data_airport.options)
	{
		return;
	}

	var origAirport = originalAirport();
	document.pageform.data_airport.options.length = 0;
	
	var airports = airportOptions;
	var j = 0;
	if (origAirport == 'XXXX') 
	{  
		document.pageform.data_airport.options[j] = new Option('Please select...', 'XXXX', true, true);
		j++;
	};
	for (var i = 0; i < airports.length; i++)
	{
		for (var test in airports[i])
		{
			if(test == duration)
			{
				var sel = airports[i].value == origAirport ? 1 : 0;
				document.pageform.data_airport.options[j] = new Option(airports[i].text, airports[i].value, sel, sel);
				j++;
			}
		}
	}
	updateDestinations(document.pageform.data_airport.value, duration);
}

function questCountryChangeHandler(newCountry)
{
	var gridCountry = newCountry;
	if (gridCountry != 'ie' && gridCountry != 'gb') gridCountry = 'gb';
	var oldCountry = 'ie';
	if (gridCountry == 'ie') oldCountry = 'gb';
	var blockOn = document.getElementById("hear:" + gridCountry);
	var block2On = document.getElementById("read:" + gridCountry);
	var blockOff = document.getElementById("hear:" + oldCountry);
	var block2Off = document.getElementById("read:" + oldCountry);
    blockOn.style.display = "block";
    block2On.style.display = "block";
    blockOff.style.display = "none";
    block2Off.style.display = "none";

	var imageFile = "win_500.gif";
	if (newCountry == 'gb') imageFile = "win_350.gif"
	document.images["winsplash"].src = "/images/ovals/" + imageFile;
}

function toggleBlockVisibility(blockID, me)
{
	var openPicture ="/images/minus2.gif";
 	var closePicture ="/images/plus2.gif";

	var block = document.getElementById(blockID);

	if(block.style.display == 'block')
	{
		block.style.display = "none";
		me.src = closePicture;
	}
	else
	{
		block.style.display = "block";
		me.src = openPicture;
	}
}

/*########INSURANCE########*/

function insuranceFormHandler()
{
	var myform = getInsuranceForm();
	for (var i=0; i < myform.elements.length; i++)
	{
		var element = myform.elements[i];

		if (element.type == 'radio')
		{
			handleRadio(element);
		}

		if (element.type == 'select-one')
		{
			handleSelect(element);
		}

	}
	calculateSubTotals();
	setHaveHealthInsuranceWarn();
	setDisclosureMedicalFacts();
	return true;
}


function rowOn(travcode)
{
	showRow(travcode);
	showTable("UseOwnTable");
}

function rowOff(travcode)
{
	hideRow(travcode);
	if (noRowsShowing())
	{
		hideTable("UseOwnTable");
	}
}

function hideElement(elementName)
{
	var element = document.getElementById(elementName);
	if (element)
	{
		element.style.display = "none";
	}
}

function showElement(elementName)
{
	var element = document.getElementById(elementName);
	if (element)
	{
		element.style.display = "";
	}
}

function showRow(travcode)
{
	showElement(travcode);
}

function hideRow(travcode)
{
	hideElement(travcode);
}

function showTable(tableName)
{
	showElement(tableName);
}

function hideTable(tableName)
{
	hideElement(tableName);
}

function noRowsShowing()
{
	return getNumTravellersUsingOwnInsurance() == 0;
}

function getNumTravellersUsingOwnInsurance()
{
	var numUsingOwnInsurance = 0;
	for (var i=0; i < travellers.length; i++)
	{
		if (travellerUsingOwnInsurance(travellers[i].code))
		{
			numUsingOwnInsurance++;
		}
	}
	return numUsingOwnInsurance;
}

function travellerUsingOwnInsurance(travcode)
{
	var element = getRadioByTravellerAndValue(travcode,'X');
	if (element)
	{
		return element.checked;
	}
	return false;
}

function setHaveHealthInsuranceWarn()
{
	if(getNumTravellersHaveHealthInsurance() > 0)
	{
		showRow("warnVHI");
	}
	else
	{
		hideRow("warnVHI");
	}
}

function getNumTravellersHaveHealthInsurance()
{
	var numHaveHealthInsurance = 0;
	for (var i=0; i < travellers.length; i++)
	{
		if (getHealthInsurance(travellers[i].code))
		{
			numHaveHealthInsurance++;
		}
	}
	return numHaveHealthInsurance;
}


function setDisclosureMedicalFacts()
{
	if(getNumTravellersUsingOurInsurance() > 0)
	{
		showRow("disclosureMedicalFacts");
		showTable("importantNoticeTable");
	}
	else
	{
		hideTable("importantNoticeTable");
	}
}

function getNumTravellersUsingOurInsurance()
{
	var numUsingOurInsurance = 0;
	for (var i=0; i < travellers.length; i++)
	{
		var inschoice = getInsuranceChoice(travellers[i].code)
		if ((inschoice)&&(inschoice!='X'))
		{
			numUsingOurInsurance++;
		}
	}
	return numUsingOurInsurance;
}

function getInsuranceForm()
{
	return document.forms["pageform"];
}

function getInsuranceChoice(travcode)
{
	var myform = getInsuranceForm();
	var name = "inschoice:" + travcode;
	var travellerRadios = myform.elements[name];
	if (travellerRadios)
	{
		for (var i=0; i < travellerRadios.length; i++)
		{
			if (travellerRadios[i].checked)
			{
				return travellerRadios[i].value;
			}
		}
	}
	return;
}

function insuranceJoinHandler(travcode)
{
	var element = getRadioByTravellerAndValue(travcode,'JOIN');
	if (element)
	{
		element.checked = true;
	}
	insuranceFormHandler();
}

function getRadioByTravellerAndValue(travcode, evalue)
{
	return document.getElementById("inschoice:" + travcode + ":" + evalue);
}

function handleRadio(radio)
{
	if (radio.value == 'X')
	{
		handleOwnInsurance(radio);
	}

	if (radio.value == 'JOIN')
	{
		handleJoin(radio);
	}

	var travcode = parseTravCode(radio.name);
	var ptype = getInsuranceChoice(travcode);
	if ( !(isGroupPolicy(ptype) || ptype == "JOIN"))
	{
		var element = document.getElementById("insjoin:" + travcode);
		if (element)
		{
			element.options[0].selected = true;
		}
	}
}

function handleJoin(joinRadio)
{
	disableElementIfNoGroupPolicySelected(joinRadio);
}

function handleOwnInsurance(ownRadio)
{
	var travcode = parseTravCode(ownRadio.name);
	if (ownRadio.checked == true)
	{
		rowOn(travcode);
	}
	else
	{
		rowOff(travcode);
	}
}

function parseTravCode(string)
{
	return string.substring(string.lastIndexOf(":")+1);
}

function handleSelect(element)
{
	disableElementIfNoGroupPolicySelected(element);
	setOptionBox(element);
}

function disableElementIfNoGroupPolicySelected(element)
{
	if (anyGroupPolicySelected())
	{
		element.disabled = false;
	}
	else
	{
		element.disabled = true;
	}
}

function anyGroupPolicySelected()
{
	for (var i=0; i < travellers.length; i++)
	{
		var ptype = getInsuranceChoice(travellers[i].code);
		if(isGroupPolicy(ptype))
		{
			return true;
		}
	}
	return false;
}

function isGroupPolicy(ptype)
{
	if (ptype == 'COMU')
	{
		return true;
	}
	else if (ptype == 'FAMU')
	{
		return true;
	}
	else
	{
		return false;
	}
}

function disableJoinPopup(travcode)
{
	disableElementById("insjoin:" + travcode);
}

function disableElementById(id)
{
	var element = document.getElementById(id);
	if (element)
	{
		element.disabled = true;
	}
}

function enableJoinPopup(travcode)
{
	enableElementById("insjoin:" + travcode);
}

function enableElementById(id)
{
	var element = document.getElementById(id);
	if (element)
	{
		element.disabled = false;
	}
}

function setOptionBox(element)
{
	var mytravellers = travellers;
	var travcode = parseTravCode(element.name);
	var currentValue = element.value;

	var foundTravellerInList = false;

	element.options.length = 0;
	element.options[0] = new Option("N/A", "X");
	if (currentValue == 'X')
	{
		element.options[0].selected = true ;
	}

	var nextIndex = 1;
	for (var i = 0; i < mytravellers.length; i++)
	{
		var thisTravellerCode = mytravellers[i].code;
		if ( (travcode != thisTravellerCode) 
				&& (travellers[i].ageCategory == 'A') 
					&& (travellerHasGroupPolicy(thisTravellerCode)) )
		{
			var thisTravellerCode = mytravellers[i].code;
			element.options[nextIndex] = new Option(mytravellers[i].name, mytravellers[i].code);
			if ( currentValue == thisTravellerCode )
			{
				foundTravellerInList = true;
				element.options[nextIndex].selected = true;
			}
			nextIndex++;
		}
	}
	
	if (nextIndex > 1)
	{
		element.options[0] = new Option("Whose Policy?", "X");
	}

	if (!foundTravellerInList)
	{
		element.options[0].selected = true ;
	}
}

function travellerHasGroupPolicy(travcode)
{
	var ptype = getInsuranceChoice(travcode);
	return isGroupPolicy(ptype);
}

function calculateSubTotals()
{
	var labelDiv = document.getElementById("subtotal_heading");
	labelDiv.innerHTML = "<strong>Cost</strong>";
	for (var i=0; i < travellers.length; i++)
	{
		var travcode = travellers[i].code;
		var targetDiv = document.getElementById("subtotal:" + travcode);

		if (targetDiv != null)
		{
			subtotal = getSubTotal(travcode);
			targetDiv.innerHTML = subtotal;
		}
	}
}

function getSubTotal(travcode)
{
	for (var i=0; i < policyPrice.length; i++)
	{
		var code              = policyPrice[i].code;
		var ageCategory       = policyPrice[i].ageCategory;
		var requiresHealthIns = policyPrice[i].requiresHealthInsurance;
		var price             = policyPrice[i].price;

		var travPolicy    = getInsuranceChoice(travcode);
		var travAge       = getAgeCategory(travcode);
		var travHealthIns = getHealthInsurance(travcode);

		var insuranceReqOk = true;

		if ( (requiresHealthIns != 0) && (!travHealthIns) )
		{
			insuranceReqOk = false;
		}

		if (travPolicy == code && travAge == ageCategory && insuranceReqOk)
		{
			return price;
		}
	}
	return zeroPrice;
}

function getHealthInsurance(travcode)
{
	var element = document.getElementById("inschoice_health:" + travcode);
	if (element)
	{
		return element.checked;
	}
	return false;
}

function getAgeCategory(travcode)
{
	for (var i=0; i < travellers.length; i++)
	{
		if (travellers[i].code == travcode)
		{
			return travellers[i].ageCategory;
		}
	}
	return 'A';	
}

function killDoubleClicks()
{
	alert('Please do not double-click links!');
	return false;
}

function paymentFormHandler()
{
	var cardValue = getCardRadioValue();
	if (((cardValue == 'Mastercard') || (cardValue == 'VISA')) && (document.pageform.wantcccharge.value == 1))
	{
		calculateCreditCardCharge();
		showElement('cardamount');
	}
	else
	{
		hideElement('cardamount');
	}
}

function paymentFormHandlerText(cardAmount)
{
	var amount = cardAmount.value;
	if (amount > 0) { paymentFormHandler(); }
}

function getCardRadioValue()
{
	var radioName = document.pageform.choice_kktype;
	var radioValue;
	for(var i = 0; i < radioName.length; i++)
	{
		if (radioName[i].checked) { radioValue = radioName[i].value }
	}
	return radioValue;
}

function calculateCreditCardCharge()
{
	var targetDiv = document.getElementById("cardamount");

	if (targetDiv != null)
	{
		var currency = document.pageform.amountcurrency.value;
		var amount;
		if (document.pageform.data_chargeamt) { amount = Number(document.pageform.data_chargeamt.value); }
		if (!amount) { amount = Number(getCheckedRadio(document.pageform.elements['data_chargeamt'])); }
		if (!amount) { amount = Number(document.pageform.data_chargeamt_h.value); }
		var rate = Number(document.pageform.chargerate.value);
		var cardCharge = amount * (1 + (rate/100));
		
		var ccchargetext1 = document.pageform.ccchargetext1.value;
		var ccchargetext2 = document.pageform.ccchargetext2.value;
		
		targetDiv.innerHTML = "(" + ccchargetext1 + " " + rate + "% " + ccchargetext2 + " " + currency + formatPrice(Number(cardCharge)) + ")";
	}
}

function getCheckedRadio(radioObj)
{
	if (!radioObj) return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
	{
		if(radioObj.checked)
		{
			return radioObj.value;
		}
		else
		{
			return "";
		}
	}
	for(var i =0; i < radioLength; i++)
	{
		if(radioObj[i].checked)
		{
			return radioObj[i].value;
		}
	}
}

function formatPrice(price)
{
// Because Mac Camino doesn't know the method 'toFixed', we cannot use this: return price.toFixed(2);

	var tempprice = Math.round(price * 100);
	tempprice = String(tempprice).substring(0, String(tempprice).length-2) + "." +
				String(tempprice).substring(String(tempprice).length-2,String(tempprice).length);
	return tempprice;
}

function showSeal()
{

	window.open
	("https://www.digi-sign.com/digi-seal/siteseal.pl?id=627DB90","newWin"," scrollbars=no,status=yes,width=400,height=460");
}

function countdown_clock(seconds)
{

	html_code = '<div id="countdown" class="promotion_clock_small"></div>';
	
	document.write(html_code);

	countdown(seconds);
}

function countdown(totalSeconds)
{
	var targetDiv = document.getElementById("countdown");
	
	//Find their difference, and convert that into seconds.
	Time_Left = Math.round(totalSeconds);

	if(Time_Left < 0)
		Time_Left = 0;

	if (Time_Left == 0)
	{
		targetDiv.innerHTML = 'expired';
		return 0;
	}
	
	days = Math.floor(Time_Left / (60 * 60 * 24));
	Time_Left %= (60 * 60 * 24);
	hours = Math.floor(Time_Left / (60 * 60));
	Time_Left %= (60 * 60);
	minutes = Math.floor(Time_Left / 60);
	Time_Left %= 60;
	seconds = Time_Left;

	dps = 's';
	if(days == 1) dps ='';

	targetDiv.innerHTML = '';
	if (days > 0)
	{
		targetDiv.innerHTML = days + ' day' + dps + '&nbsp;';
	}

	targetDiv.innerHTML += formatNumbers(hours) + ':';
	targetDiv.innerHTML += formatNumbers(minutes) + ':';
	targetDiv.innerHTML += formatNumbers(seconds);
	
	totalSeconds -= 1;

	setTimeout('countdown(' + totalSeconds + ');', 1000);
}

function formatNumbers(number)
{
	if (number < 10)
	{
		return '0' + number;
	}
	else
	{
		return number;
	}
}

function infantTravellerAgeNotice()
{
	if(document.pageform.data_airport)
	{
		var airport = document.pageform.data_airport.value;
		if(airport == 'X')
		{
			hideElement("infantalert");
			return 0;
		}
	}
	
	var heads = Number(document.pageform.heads.value);
	
	var infantPresent = 0;
	
	for(var i = 0; i < heads; i++)
	{
		if(document.getElementById('age' + i))
		{
			var travellerAge = document.getElementById('age' + i).value;
			
			if (travellerAge == 1)
			{
				infantPresent = 1;
			}
		}
	}
	
	if (infantPresent == 1)
	{
		showElement("infantalert");
	}
	else
	{
		hideElement("infantalert");
	}
	
	return 0;
}

function selectDeselectResorts(elementid)
{
	var myelement = document.getElementById(elementid);
	var myform = document.forms["pageform"];
	
	for (var i=0; i < myform.elements.length; i++)
	{
		var element = myform.elements[i];
		
		if(element.type == 'checkbox' && element.id == elementid && element.name != 'selectdeselectall')
		{
			element.checked = myelement.checked;
		}
	}
	return 0;
}

function deselectAllSelector(elementid)
{
	var myelement = document.getElementById(elementid);
	var myform = document.forms["pageform"];
	
	for (var i=0; i < myform.elements.length; i++)
	{
		var element = myform.elements[i];
		
		if(element.type == 'checkbox' && element.id == elementid && element.name == 'selectdeselectall')
		{
			element.checked = false;
		}
	}
	return 0;
}

function transferHandler()
{
	var myform = document.forms["pageform"];

	for (var i=0; i < myform.elements.length; i++)
	{
		var element = myform.elements[i];
		
		if(element.type == 'radio' && element.name == 'data_want_transfer' && element.value == 'want')
		{
			element.checked = true;
		}
	}
}

function disableTransferInput()
{
	var myform = document.forms["pageform"];
	var element = document.getElementById("data_want_transfer");
	
	var disable = 0;
	if(element.value == 'dontwant' && element.checked == true)
	{
		disable = 1;
	}
	
	myform.data_transfer_num.disabled = disable;
	for (var i=0; i < myform.elements.length; i++)
	{
		var radioelement = myform.elements[i];
		if(radioelement.type == 'radio' && radioelement.name == 'data_transfer_id')
		{
			radioelement.disabled = disable;
		}
	}
	myform.data_flight_out.disabled = disable;
	myform.data_arrival_hour.disabled = disable;
	myform.data_arrival_min.disabled = disable;
	myform.data_flight_in.disabled = disable;
	myform.data_departure_hour.disabled = disable;
	myform.data_departure_min.disabled = disable;

}

function includeHead(file)
{
	var script  = document.createElement('script');
	script.src  = file;
	script.type = 'text/javascript';
	script.defer = true;
	document.getElementsByTagName('head').item(0).appendChild(script);
}

function createMarker(point,html,icon)
{
	var marker = new GMarker(point,icon);
	GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(html); } );
	return marker;
}

function loadMapsAndSearch()
{
	loadMaps();
	loadHandler();
}

function loadMaps()
{
	if ( window.loadGoogleMaps) {
		loadGoogleMaps();
	}	
}

function unloadMaps()
{
	if ( window.GUnload) {
		GUnload();
	}
}


function copyTextToClipboard(elementId)
{
	var texttocpy = document.getElementById(elementId).value;
	window.clipboardData.setData('text',texttocpy);
}

function select_tab(tabs_id, number){
    var tabs = document.getElementById(tabs_id);
    var list = tabs.getElementsByTagName("li");
    for (i = 0; i < list.length; i++) {
        list[i].removeAttribute('id');
    }
    list[number].setAttribute('id', 'active');
}

function tab_loader(tab,number){
	var tab_content = document.getElementById("tab_effective_content");
    switch (tab) {
		case 'map':
	    case 'maps':
        case 'location':			
	        var tab_location = document.getElementById("tab_" + tab);
	  		select_tab('tabs', number);
	        tab_content.innerHTML = tab_location.innerHTML;
			if ( window.loadGoogleMaps)
				loadGoogleMaps();
	      	break;							
        default:
            var div = document.getElementById("tab_" + tab);
            select_tab('tabs', number);
            tab_content.innerHTML = div.innerHTML;
    }
}

// function searchform_action(type, default_opt ) {
// 	var departure_airport = document.getElementById("departure_airport");
//     switch (type) {
//         case 'pack':			
// 		    var select_list = departure_airport.getElementsByTagName("select");
// 			var selectBox = select_list[0];
// 		    var opt_list = departure_airport.getElementsByTagName("option");
// 		    for (i = 0; i < opt_list.length; i++) {
// 				if( opt_list[i].value === default_opt )
// 					selectBox.selectedIndex = i;
// 		    }		
// 			departure_airport.style.display = "";						
// 			break;
// 		case 'acc_only':
// 			departure_airport.style.display = "none";
// 			break;
// 	}
// 	return 1;
// }
function searchform_action(show,hide, default_opt ) {
	var tabs = new Object();
	tabs['pack'] = ['package_date','package_airport','package_duration'];
	tabs['accom'] = ['accom_date','accom_policy'];
	var hide_fields = tabs[ hide ];
	for (var i in hide_fields) {
		var field = document.getElementById(hide_fields[i]);
		if (field)
			field.style.display = "none";
	}
	var show_fields = tabs[ show ];
	for (var i in show_fields) {
		var field = document.getElementById(show_fields[i]);
		if (field)
			field.style.display = "block";		
	}
	if (show === 'pack') {
		searchbox_date_handler();
		updateAirportsFromDuration(document.pageform.data_duration.value);	
	}
	else {
		updateDestinationByPolicy(document.pageform.data_week_policy.value);
		if (document.pageform.data_flex.selectedIndex == 0) 
		{
			document.pageform.data_flex.selectedIndex = 1;	
		}
	}
	return 1;
} 

function searchform_tab_action(show,hide,number) {
	var tabs = new Object();
	tabs['pack'] = ['package_date','package_airport','package_duration','package_msg'];
	tabs['accom'] = ['accom_date','accom_policy','accom_msg'];
	var hide_fields = tabs[ hide ];
	for (var i in hide_fields) {
		var field = document.getElementById(hide_fields[i]);
		if (field)
			field.style.display = "none";
	}
	var show_fields = tabs[ show ];
	for (var i in show_fields) {
		var field = document.getElementById(show_fields[i]);
		if (field)
			field.style.display = "";		
	}	
	if (show === 'pack') {
		document.pageform.data_wantflight.value = 'Y';
		updateAirportsFromDuration(document.pageform.data_duration.value);
	}			
	else {
		document.pageform.data_wantflight.value = 'X';
		updateDestinationByPolicy(document.pageform.data_week_policy.value);		
	}
	select_tab('searchform_tabs', number);
	searchbox_flex_handler();
	return 1;
}

function flexi_searchbox_need_resort_or_country() {
	
	if ((document.pageform.data_dest_resort.value == undefined || document.pageform.data_dest_resort.value == '' || document.pageform.data_dest_resort.value == '(country or resort)') && document.pageform.data_dest_airport.value == 'X')
	{
		alert('Please enter your destination OR Select destination airport.');
		return false;
	}
	return true;
}

function check_extras_booked(msg) {
    if (window.extras_popup_shown) {
        return true;
    } else {
        var form=document.forms["pageform"];

        var any_checked = false;
        var any_nonx_radio = false;

        for(var i=0; i<form.elements.length; i++) {
            var e=form.elements[i];

            if (e.type == 'checkbox' && e.checked) {
                any_checked = true;
            } 
            if (e.type == 'radio' && e.checked && e.value != 'X') {
                any_nonx_radio = true;
            }
        }

        if (!any_checked && !any_nonx_radio) {
            window.extras_popup_shown = true;
            return confirm(msg);
        }
    }

    return true;
}

function change_result_search_by_criteria() {    
    var accomodation_dropdown = document.pageform.data_standard;
    var sortby_dropdown = document.pageform.data_sortby;
    
    if ((!sortby_dropdown) || (!accomodation_dropdown)) {
        return;
    }
    
    var accom_value = accomodation_dropdown.options[accomodation_dropdown.selectedIndex].value;
    
    if (accom_value == "X")
    {
        return;
    }
    
    var indexOfSUGGESTION=-1;
    
    for(var i=0; i<sortby_dropdown.options.length; i++) {
        var o = sortby_dropdown.options[i];
        if (o.value == 'SUGGESTION')
        {
            indexOfSUGGESTION = i;
        }
    }
    
    if (indexOfSUGGESTION == -1)
    {
        return;
    }
    
    sortby_dropdown.selectedIndex=indexOfSUGGESTION;
}

// Pads a string with a number of digits
function padDigits(n, totalDigits) {
    n = n.toString();
    var pd = '';
    if (totalDigits > n.length) {
        for (i = 0; i < (totalDigits - n.length); i++) {
            pd += '0';
        }
    }
    return pd + n.toString();
} 
