// Functions required by Fusion
// Mostly by Javascript kung-fu master Richard Smith
// (c) Copyright Traveltek 2007
// CHANGE THE DAY DROPDONW TO THE RIGHT NUMBER OF DAYS FOR THE SELECTED MONTH
function changedays() {
    var days = new Array("","31","28","31","30","31","30","31","31","30","31","30","31");
    var monthyear = document.getElementById("monthyear").value;
    var datearray = monthyear.split("_");
    if (datearray[0].substr(0,1) == "0") {
        datearray[0] = datearray[0].substr(1,1);
    }
    if (datearray[1] == "2008") {
        days[2]++;
    }
    box = document.getElementById("day");
    var remember = box.value;
    var size = box.options.length;
    for (i = size; i >= 1; i--) {
        box.options[i] = null;
    }
    var padnum;
    for ( i = 1; i <= days[datearray[0]]; i++ ) {
        if (i < 10) { padnum = '0' + i; } else { padnum = i; }
        option = new Option( padnum, padnum );
        box.options[box.length] = option;
        if (padnum == remember) {
            box.options[box.length-1].selected = true;
        }
    }
}
// EMPTY A DROPDOWN
function emptyList( box, start ) {
    if (box) {
        if (box.options) {
            var size = box.options.length;
            var current = box.value;
            for (i = size; i >= start; i--) {
                box.options[i] = null;
            }
            return current;
        }
    }
}
// FILL A DROPDOWN
function fillList( box, arr, selecteditem ) {
    for ( i = 0; i < arr[0].length; i++ ) {
        option = new Option( arr[0][i], arr[1][i] );
        box.options[box.length] = option;
    }
    if (selecteditem) {
        box.value = selecteditem;
    } else {
        box.value = "";
    }
}
// UPDATE THE SHIPS LIST
function updateships( box, selecteditem ) {
    var selectedindex;
    if (!selecteditem) {
        if (document.all) {
            selectedindex = document.getElementById("shipid").selectedIndex;
        } else {
            selecteditem = document.getElementById("shipid").value;
        }
    }
    if (box.value == "") {
        list = allships[0];
        emptyList( document.getElementById("shipid"), 1 );
        fillList( document.getElementById("shipid"), list, selecteditem );
    } else {
        list = ships[box.options[box.selectedIndex].value];
        emptyList( document.getElementById("shipid"), 1 );
        fillList( document.getElementById("shipid"), list, selecteditem );
    }
    if (!selecteditem) {
        document.getElementById("shipid").selectedIndex = selectedindex;
    }
    updateregions(box, document.getElementById("regionid").value);
}
// UPDATE THE CRUISE LIST (USED IN EXTRANET UGC SYSTEM)
function updatecruises( box, selecteditem ) {
    if (box.value != "") {
        list = cruises[box.options[box.selectedIndex].value];
        emptyList( document.getElementById("cruiseid"), 1 );
        fillList( document.getElementById("cruiseid"), list, selecteditem );
    }
}
// UPDATE THE REGIONS LIST
function updateregions(box, selecteditem ) {
    if (!selecteditem) {
        selecteditem = '';
    }
    if (box.value == "") {
        list = allregions[0];
        emptyList( document.getElementById("regionid"), 1 );
        fillList( document.getElementById("regionid"), list, selecteditem );
    } else {
        if (box.id == "lineid") {
            list = lineregions[box.options[box.selectedIndex].value];
            emptyList( document.getElementById("regionid"), 1 );
            if (list) {
                fillList( document.getElementById("regionid"), list, selecteditem );
            }
        } else {
            list = shipregions[box.options[box.selectedIndex].value];
            emptyList( document.getElementById("regionid"), 1 );
            if (list) {
                fillList( document.getElementById("regionid"), list, selecteditem );
            }
        }
    }
}
function showhide(item) {
    if (document.getElementById(item).checked == true) {
        document.getElementById(item + 'div').style.display = 'block';
    } else {
        document.getElementById(item + 'div').style.display = 'none';
    }
}
// HIDE SOME CRUISE ADD ON EXTRAS DEPENDING ON WHAT WAS CHOSEN
function hideflightdates() {
    var prehotelchecked;
    var posthotelchecked;
    if (document.getElementById('prehotel')) {
        prehotelchecked = document.getElementById('prehotel').checked;
    } else {
        prehotelchecked = document.getElementById('prehotelholder').value;
        if (prehotelchecked == 1) {
            prehotelchecked = true;
        } else {
            prehotelchecked = false;
        }
    }
    if (document.getElementById('posthotel')) {
        posthotelchecked = document.getElementById('posthotel').checked;
    } else {
        posthotelchecked = document.getElementById('posthotelholder').value;
        if (posthotelchecked == 1) {
            posthotelchecked = true;
        } else {
            posthotelchecked = false;
        }
    }
    if (prehotelchecked == true && posthotelchecked == false) {
        document.getElementById('flightdepdivout').style.display = 'none';
        document.getElementById('flightdepdivouttext').style.display = 'block';
        document.getElementById('flightdepdivin').style.display = 'block';
        document.getElementById('flightdepdivintext').style.display = 'none';
    } else if (prehotelchecked == false && posthotelchecked == true) {
        document.getElementById('flightdepdivout').style.display = 'block';
        document.getElementById('flightdepdivouttext').style.display = 'none';
        document.getElementById('flightdepdivin').style.display = 'none';
        document.getElementById('flightdepdivintext').style.display = 'block';
    } else if (prehotelchecked == false && posthotelchecked == false) {
        document.getElementById('flightdepdivout').style.display = 'block';
        document.getElementById('flightdepdivouttext').style.display = 'none';
        document.getElementById('flightdepdivin').style.display = 'block';
        document.getElementById('flightdepdivintext').style.display = 'none';
    } else if (prehotelchecked == true && posthotelchecked == true) {
        document.getElementById('flightdepdivout').style.display = 'none';
        document.getElementById('flightdepdivouttext').style.display = 'block';
        document.getElementById('flightdepdivin').style.display = 'none';
        document.getElementById('flightdepdivintext').style.display = 'block';
    } 
}
// IMAGE BROWSER
var currentimage = 0;
function initimagebrowser() {
    if (images) {
        document.getElementById("image").src = images[currentimage];
        document.getElementById("imagelink").href = bigimages[currentimage];
        document.getElementById("currentimage").innerHTML = currentimage + 1;
        document.getElementById("totalimages").innerHTML = images.length;
        if (captions) {
            document.getElementById("caption").innerHTML = captions[currentimage];
            document.getElementById("imagelink").title = captions[currentimage];
        }
    }
}
function nextimage() {
    if (images) {
        currentimage++;
        if (currentimage > images.length - 1) {
            currentimage = 0;
        }
        document.getElementById("image").src = images[currentimage];
        document.getElementById("imagelink").href = bigimages[currentimage];
        document.getElementById("currentimage").innerHTML = currentimage + 1;
        document.getElementById("totalimages").innerHTML = images.length;
        if (captions) {
            document.getElementById("caption").innerHTML = captions[currentimage];
            document.getElementById("imagelink").title = captions[currentimage];
        }
    }
}
function previmage() {
    if (images) {
        currentimage--;
        if (currentimage < 0) {
            currentimage = images.length - 1;
        }
        document.getElementById("image").src = images[currentimage];
        document.getElementById("imagelink").href = bigimages[currentimage];
        document.getElementById("currentimage").innerHTML = currentimage + 1;
        document.getElementById("totalimages").innerHTML = images.length;
        if (captions) {
            document.getElementById("caption").innerHTML = captions[currentimage];
            document.getElementById("imagelink").title = captions[currentimage];
        }
    }
}
// SWITCH DECK PLAN
function changeplan(sessionkey, imagename, caption) {
    document.getElementById("deckplan").src = '/fusion/displaydeckplan.pl?sessionkey=' + sessionkey + '&image=' + imagename + '&caption=' + caption;
}
// SWITCH TAB INTERFACE
function switchtab(tab) {
    if (tab == 'cabingrades') {
        document.getElementById("cabingrades").style.display = 'block';
        document.getElementById("descrip").style.display = 'none';
        document.getElementById("itinerary").style.display = 'none';
        document.getElementById("cabingradesli").className = 'tabon';
        document.getElementById("descripli").className = '';
        document.getElementById("itineraryli").className = '';
    } else if (tab == 'descrip') {
        document.getElementById("cabingrades").style.display = 'none';
        document.getElementById("descrip").style.display = 'block';
        document.getElementById("itinerary").style.display = 'none';
        
        document.getElementById("cabingradesli").className = '';
        document.getElementById("descripli").className = 'tabon';
        document.getElementById("itineraryli").className = '';
    } else if (tab == 'itinerary') {
        document.getElementById("cabingrades").style.display = 'none';
        document.getElementById("descrip").style.display = 'none';
        document.getElementById("itinerary").style.display = 'block';
        
        document.getElementById("cabingradesli").className = '';
        document.getElementById("descripli").className = '';
        document.getElementById("itineraryli").className = 'tabon';
    }
}
function changedeckplan(deckid) {
    // Show Deckplan...
    document.getElementById("deckplanimage").src = deckplans[deckid];
    document.getElementById("deckplanname").innerHTML = decknames[deckid];
}
// SHIPS PAGE SWITCH TAB
function switchshiptab(tab) {
    if (tab == 'descrip') {
        document.getElementById("descrip").style.display = 'block';
        document.getElementById("cabintypes").style.display = 'none';
        document.getElementById("facilities").style.display = 'none';
        document.getElementById("shipdecks").style.display = 'none';
        document.getElementById("cruises").style.display = 'none';
        document.getElementById("descripli").className = 'tabon';
        document.getElementById("cabintypesli").className = '';
        document.getElementById("facilitiesli").className = '';
        document.getElementById("shipdecksli").className = '';
        document.getElementById("cruisesli").className = '';
    } else if (tab == 'cabintypes') {
        document.getElementById("descrip").style.display = 'none';
        document.getElementById("cabintypes").style.display = 'block';
        document.getElementById("facilities").style.display = 'none';
        document.getElementById("shipdecks").style.display = 'none';
        document.getElementById("cruises").style.display = 'none';
        document.getElementById("descripli").className = '';
        document.getElementById("cabintypesli").className = 'tabon';
        document.getElementById("facilitiesli").className = '';
        document.getElementById("shipdecksli").className = '';
        document.getElementById("cruisesli").className = '';
    } else if (tab == 'facilities') {
        document.getElementById("descrip").style.display = 'none';
        document.getElementById("cabintypes").style.display = 'none';
        document.getElementById("facilities").style.display = 'block';
        document.getElementById("shipdecks").style.display = 'none';
        document.getElementById("cruises").style.display = 'none';
        document.getElementById("descripli").className = '';
        document.getElementById("cabintypesli").className = '';
        document.getElementById("facilitiesli").className = 'tabon';
        document.getElementById("shipdecksli").className = '';
        document.getElementById("cruisesli").className = '';
    } else if (tab == 'shipdecks')    {
        document.getElementById("descrip").style.display = 'none';
        document.getElementById("cabintypes").style.display = 'none';
        document.getElementById("facilities").style.display = 'none';
        document.getElementById("shipdecks").style.display = 'block';
        document.getElementById("cruises").style.display = 'none';
        document.getElementById("descripli").className = '';
        document.getElementById("cabintypesli").className = '';
        document.getElementById("facilitiesli").className = '';
        document.getElementById("shipdecksli").className = 'tabon';
        document.getElementById("cruisesli").className = '';
    } else if (tab == 'cruises') {
        document.getElementById("descrip").style.display = 'none';
        document.getElementById("cabintypes").style.display = 'none';
        document.getElementById("facilities").style.display = 'none';
        document.getElementById("shipdecks").style.display = 'none';
        document.getElementById("cruises").style.display = 'block';
        document.getElementById("descripli").className = '';
        document.getElementById("cabintypesli").className = '';
        document.getElementById("facilitiesli").className = '';
        document.getElementById("shipdecksli").className = '';
        document.getElementById("cruisesli").className = 'tabon';
    }
}
// SHIPS PAGE SWITCH TAB
function switchlinetab(tab) {
    if (tab == 'descrip') {
        document.getElementById("descrip").style.display = 'block';
        document.getElementById("ships").style.display = 'none';
        document.getElementById("furtherinfo").style.display = 'none';
        document.getElementById("cruises").style.display = 'none';
        document.getElementById("descripli").className = 'tabon';
        document.getElementById("shipsli").className = '';
        document.getElementById("furtherinfoli").className = '';
        document.getElementById("cruisesli").className = '';
    } else if (tab == 'ships') {
        document.getElementById("descrip").style.display = 'none';
        document.getElementById("ships").style.display = 'block';
        document.getElementById("furtherinfo").style.display = 'none';
        document.getElementById("cruises").style.display = 'none';
        document.getElementById("descripli").className = '';
        document.getElementById("shipsli").className = 'tabon';
        document.getElementById("furtherinfoli").className = '';
        document.getElementById("cruisesli").className = '';
    } else if (tab == 'furtherinfo') {
        document.getElementById("descrip").style.display = 'none';
        document.getElementById("ships").style.display = 'none';
        document.getElementById("furtherinfo").style.display = 'block';
        document.getElementById("cruises").style.display = 'none';
        document.getElementById("descripli").className = '';
        document.getElementById("shipsli").className = '';
        document.getElementById("furtherinfoli").className = 'tabon';
        document.getElementById("cruisesli").className = '';
    } else if (tab == 'cruises') {
        document.getElementById("descrip").style.display = 'none';
        document.getElementById("ships").style.display = 'none';
        document.getElementById("furtherinfo").style.display = 'none';
        document.getElementById("cruises").style.display = 'block';
        document.getElementById("descripli").className = '';
        document.getElementById("shipsli").className = '';
        document.getElementById("furtherinfoli").className = '';
        document.getElementById("cruisesli").className = 'tabon';
    }
}
// SHOW AGE SELECTIONS FOR CRUISE CHILDREN
function showcruisechildren() {
    var i;
    if (document.getElementById("childline")) {
        document.getElementById("childline").style.display = 'none';
            for (i = 2; i <= 5; i++) {
                document.getElementById("childtext-" + i).style.display = 'none';
                document.getElementById("childdrop-" + i).style.display = 'none';
            }
    }
    if (document.getElementById("children").value > 0) {
        document.getElementById("childline").style.display = 'block';
        document.getElementById("childages").style.display = 'block';
        for (i = 1; i <= document.getElementById("children").value; i++) {
            if (i > 1) {
                document.getElementById("childtext-" + i).style.display = 'block';
                document.getElementById("childdrop-" + i).style.display = 'block';
            }
        }
    }
}
// ITINERARY CONTINUE. NO IDEA WHY.
function itinerarycontinue() {
    document.getElementById("itineraryform").submit();
}
// ON STARTUP
function dpinitlists(setcountry, setdestination, setresort, setdepart) {
    
    var box = document.getElementById("noinitlists");
    if (box) {
        return;
    }
    if (document.getElementById("country")) {
        if (document.getElementById("country").options) {
            dpfillcountry(setcountry);
        }
    }
    if (document.getElementById("destair")) {
        dpfilldestination(setcountry || document.getElementById("country").value, setdestination);
    }
    if (document.getElementById("resort")) {
        dpfillresort(setdestination || document.getElementById("destair").value, setresort);
    }
    if (document.getElementById("depair")) {
        dpfilldepart(setdestination || document.getElementById("destair").value, setdepart);
    }
//alert('init ' + document.getElementById("country").value);
//    dpchangecountry();
}
// WHEN SOMEBODY CHANGES COUNTRY
function dpchangecountry(setcountry) {
    
    // fill dests of this country
    dpfilldestination(setcountry || document.getElementById("country").value);
    
    
    // call dest change
    dpchangedestination();
}
function dpchangedestination() {
    // fill resorts of this dest
    dpfillresort(document.getElementById("destair").value);
    // fill departs of this dest
    dpfilldepart(document.getElementById("destair").value);
}
function dpchangedepair() {
    
    document.getElementById("from").value = document.getElementById("depair").value;
}
function dpchangefrom() {
    document.getElementById("depair").value = document.getElementById("from").value;
}
function dpfillcountry(setcountry) {
    var box = document.getElementById("country");
    if (box) {
        if (!box.options) {
            return;
        }
    }
    var was = emptyList(box, 0);
    for (var i = 0; i < countrylist.length; i++) {
        option = new Option( countrylist[i], countrylist[i] );
        box.options[box.length] = option;
    }
    setfield("country", setcountry || was);
}
function dpfilldestination(countrysel, setdestination) {
    var box = document.getElementById("destair");
    if (box) {
        if (!box.options) {
            return;
        }
    }
    var was = emptyList(box, 0);
    // Check to see if the country passed in actually exists within the country list, if not, take whatever
    // is in the country list right tnow
    if (!inlist(countrysel, "country")) {
        countrysel = document.getElementById("country").value || document.getElementById("country").options[0].value;
    }
    for (var i = 0; i < destinationlist[countrysel].length; i++) {
        var res = destinationlist[countrysel][i].split(":");
        if (res[1]) {
            option = new Option( res[1], res[0] );
        } else {
            option = new Option( res[0], res[0] );
        }
        box.options[box.length] = option;
    }
    setfield("destair", setdestination || was);
//    box.value = setdestination || was || box.options[0].value;
}
function dpfillresort(destairsel, setresort) {
    var box = document.getElementById("resort");
    if (box) {
        if (!box.options) {
            return;
        }
    }
    // Check to see if the destair passed in actually exists within the destair list, if not, take whatever
    // is in the destair list right tnow
    if (!inlist(destairsel, "destair")) {
        destairsel = document.getElementById("destair").value || document.getElementById("destair").options[0].value;
    }
    if (box) {
        var was = emptyList(box, 0);
        option = new Option( "[Any Resort]", "" );
        box.options[box.length] = option;
        for (var i = 0; i < resortlist[destairsel].length; i++) {
            var res = resortlist[destairsel][i].split(":");
            if (res[1]) {
                option = new Option( res[1], res[0] );
            } else {
                option = new Option( res[0], res[0] );
            }
            box.options[box.length] = option;
        }
        setfield("resort", setresort || was);
    //    box.value = setresort || was || box.options[0].value;
    }
}
function dpfilldepart(destairsel, setdepart) {
    var box = document.getElementById("depair");
    if (box) {
        if (!box.options) {
            return;
        }
    }
    var box2 = document.getElementById("from");
    var was = emptyList(box, 0);
    // Check to see if the destair passed in actually exists within the destair list, if not, take whatever
    // is in the destair list right tnow
    if (!inlist(destairsel, "destair")) {
        destairsel = document.getElementById("destair").value || document.getElementById("destair").options[0].value;
    }
    if (box) {
        for (var i = 0; i < departlist[destairsel].length; i++) {
            var res = departlist[destairsel][i].split(":");
            if (res[1]) {
                option = new Option( res[1], res[0] );
            } else {
                option = new Option( res[0], res[0] );
            }
            box.options[box.length] = option;
        }
        setfield("depair", setdepart || was);
        setfield("from", setdepart || was);
    }
//    box.value = setdepart || was || box.options[0].value;
//    box2.value = setdepart || was || box2.options[0].value;
}
function dpsearchtype(which) {
    var bytext = document.getElementById("bytext");
    var bydest = document.getElementById("bydest");
    if (which == 'text') {
        if (bydest) {
            bydest.style.display = 'none';
        }
        if (bytext) {
            bytext.style.display = 'block';
        }
        if (document.getElementById("searchby")) {
            document.getElementById("searchby").value = 'text';
        }
    } else if (which == 'dest') {
        if (bydest) {
            bydest.style.display = 'block';
        }
        if (bytext) {
            bytext.style.display = 'none';
        }
        if (document.getElementById("searchby")) {
            document.getElementById("searchby").value = 'dest';
        }
    }
}
function dpshowmoreoptions() {
    document.getElementById("extraoptionslink").style.display = 'none';
    document.getElementById("extraoptions").style.display = 'block';
}
function setfield(field, val) {
    if (document.getElementById(field)) {
        // Is it a dropdown
        if (document.getElementById(field).options) {
            if (val) {
                if (inlist(val, field)) {
                    document.getElementById(field).value = val;
                } else {
                    document.getElementById(field).value = document.getElementById(field).options[0].value;
                }
            } else {
                document.getElementById(field).value = document.getElementById(field).options[0].value;
            }
        } else {
            document.getElementById(field).value = val;
        }
    }
}
function inlist(value, list) {
    var box = document.getElementById(list);
    var inlist = 0;
    if (box) {
        for (var i = 0; i < box.length; i++) {
            if (box.options[i].value == value) {
                inlist = 1;
            }
        }
    }
    return inlist;
}
function roomchange() {
    var box = document.getElementById("roomcount");
    if (box) {
        if (document.getElementById("roomcount").value == 1) {
            if (document.getElementById("room2label")) {
                document.getElementById("room2label").style.display = 'none';
            }
            if (document.getElementById("room2select")) {
                document.getElementById("room2select").style.display = 'none';
            }
            if (document.getElementById("room2select2")) {
                document.getElementById("room2select2").style.display = 'none';
            }
            if (document.getElementById("room2select3")) {
                document.getElementById("room2select3").style.display = 'none';
            }
            if (document.getElementById("room3label")) {
                document.getElementById("room3label").style.display = 'none';
            }
            if (document.getElementById("room3select")) {
                document.getElementById("room3select").style.display = 'none';
            }
            if (document.getElementById("room3select2")) {
                document.getElementById("room3select2").style.display = 'none';
            }
            if (document.getElementById("room3select3")) {
                document.getElementById("room3select3").style.display = 'none';
            }
            if (document.getElementById("room4label")) {
                document.getElementById("room4label").style.display = 'none';
            }
            if (document.getElementById("room4select")) {
                document.getElementById("room4select").style.display = 'none';
            }
            if (document.getElementById("room4select2")) {
                document.getElementById("room4select2").style.display = 'none';
            }
            if (document.getElementById("room4select3")) {
                document.getElementById("room4select3").style.display = 'none';
            }
            if (document.getElementById("room5label")) {
                document.getElementById("room5label").style.display = 'none';
            }
            if (document.getElementById("room5select")) {
                document.getElementById("room5select").style.display = 'none';
            }
            if (document.getElementById("room5select2")) {
                document.getElementById("room5select2").style.display = 'none';
            }
            if (document.getElementById("room5select3")) {
                document.getElementById("room5select3").style.display = 'none';
            }
        } else if (document.getElementById("roomcount").value == 2) {
            if (document.getElementById("room2label")) {
                document.getElementById("room2label").style.display = 'block';
            }
            if (document.getElementById("room2select")) {
                document.getElementById("room2select").style.display = 'block';
            }
            if (document.getElementById("room2select2")) {
                document.getElementById("room2select2").style.display = 'block';
            }
            if (document.getElementById("room2select3")) {
                document.getElementById("room2select3").style.display = 'block';
            }
            if (document.getElementById("room3label")) {
                document.getElementById("room3label").style.display = 'none';
            }
            if (document.getElementById("room3select")) {
                document.getElementById("room3select").style.display = 'none';
            }
            if (document.getElementById("room3select2")) {
                document.getElementById("room3select2").style.display = 'none';
            }
            if (document.getElementById("room3select3")) {
                document.getElementById("room3select3").style.display = 'none';
            }
            if (document.getElementById("room4label")) {
                document.getElementById("room4label").style.display = 'none';
            }
            if (document.getElementById("room4select")) {
                document.getElementById("room4select").style.display = 'none';
            }
            if (document.getElementById("room4select2")) {
                document.getElementById("room4select2").style.display = 'none';
            }
            if (document.getElementById("room4select3")) {
                document.getElementById("room4select3").style.display = 'none';
            }
            if (document.getElementById("room5label")) {
                document.getElementById("room5label").style.display = 'none';
            }
            if (document.getElementById("room5select")) {
                document.getElementById("room5select").style.display = 'none';
            }
            if (document.getElementById("room5select2")) {
                document.getElementById("room5select2").style.display = 'none';
            }
            if (document.getElementById("room5select3")) {
                document.getElementById("room5select3").style.display = 'none';
            }
        } else if (document.getElementById("roomcount").value == 3) {
            if (document.getElementById("room2label")) {
                document.getElementById("room2label").style.display = 'block';
            }
            if (document.getElementById("room2select")) {
                document.getElementById("room2select").style.display = 'block';
            }
            if (document.getElementById("room2select2")) {
                document.getElementById("room2select2").style.display = 'block';
            }
            if (document.getElementById("room2select3")) {
                document.getElementById("room2select3").style.display = 'block';
            }
            if (document.getElementById("room3label")) {
                document.getElementById("room3label").style.display = 'block';
            }
            if (document.getElementById("room3select")) {
                document.getElementById("room3select").style.display = 'block';
            }
            if (document.getElementById("room3select2")) {
                document.getElementById("room3select2").style.display = 'block';
            }
            if (document.getElementById("room3select3")) {
                document.getElementById("room3select3").style.display = 'block';
            }
            if (document.getElementById("room4label")) {
                document.getElementById("room4label").style.display = 'none';
            }
            if (document.getElementById("room4select")) {
                document.getElementById("room4select").style.display = 'none';
            }
            if (document.getElementById("room4select2")) {
                document.getElementById("room4select2").style.display = 'none';
            }
            if (document.getElementById("room4select3")) {
                document.getElementById("room4select3").style.display = 'none';
            }
            if (document.getElementById("room5label")) {
                document.getElementById("room5label").style.display = 'none';
            }
            if (document.getElementById("room5select")) {
                document.getElementById("room5select").style.display = 'none';
            }
            if (document.getElementById("room5select2")) {
                document.getElementById("room5select2").style.display = 'none';
            }
            if (document.getElementById("room5select3")) {
                document.getElementById("room5select3").style.display = 'none';
            }
        } else if (document.getElementById("roomcount").value == 4) {
            if (document.getElementById("room2label")) {
                document.getElementById("room2label").style.display = 'block';
            }
            if (document.getElementById("room2select")) {
                document.getElementById("room2select").style.display = 'block';
            }
            if (document.getElementById("room2select2")) {
                document.getElementById("room2select2").style.display = 'block';
            }
            if (document.getElementById("room2select3")) {
                document.getElementById("room2select3").style.display = 'block';
            }
            
            if (document.getElementById("room3label")) {
                document.getElementById("room3label").style.display = 'block';
            }
            if (document.getElementById("room3select")) {
                document.getElementById("room3select").style.display = 'block';
            }
            if (document.getElementById("room3select2")) {
                document.getElementById("room3select2").style.display = 'block';
            }
            if (document.getElementById("room3select3")) {
                document.getElementById("room3select3").style.display = 'block';
            }
            if (document.getElementById("room4label")) {
                document.getElementById("room4label").style.display = 'block';
            }
            if (document.getElementById("room4select")) {
                document.getElementById("room4select").style.display = 'block';
            }
            if (document.getElementById("room4select2")) {
                document.getElementById("room4select2").style.display = 'block';
            }
            if (document.getElementById("room4select3")) {
                document.getElementById("room4select3").style.display = 'block';
            }
            if (document.getElementById("room5label")) {
                document.getElementById("room5label").style.display = 'none';
            }
            if (document.getElementById("room5select")) {
                document.getElementById("room5select").style.display = 'none';
            }
            if (document.getElementById("room5select2")) {
                document.getElementById("room5select2").style.display = 'none';
            }
            if (document.getElementById("room5select3")) {
                document.getElementById("room5select3").style.display = 'none';
            }
        } else if (document.getElementById("roomcount").value == 5) {
            if (document.getElementById("room2label")) {
                document.getElementById("room2label").style.display = 'block';
            }
            if (document.getElementById("room2select")) {
                document.getElementById("room2select").style.display = 'block';
            }
            if (document.getElementById("room2select2")) {
                document.getElementById("room2select2").style.display = 'block';
            }
            if (document.getElementById("room2select3")) {
                document.getElementById("room2select3").style.display = 'block';
            }
            if (document.getElementById("room3label")) {
                document.getElementById("room3label").style.display = 'block';
            }
            if (document.getElementById("room3select")) {
                document.getElementById("room3select").style.display = 'block';
            }
            if (document.getElementById("room3select2")) {
                document.getElementById("room3select2").style.display = 'block';
            }
            if (document.getElementById("room3select3")) {
                document.getElementById("room3select3").style.display = 'block';
            }
            if (document.getElementById("room4label")) {
                document.getElementById("room4label").style.display = 'block';
            }
            if (document.getElementById("room4select")) {
                document.getElementById("room4select").style.display = 'block';
            }
            if (document.getElementById("room4select2")) {
                document.getElementById("room4select2").style.display = 'block';
            }
            if (document.getElementById("room4select3")) {
                document.getElementById("room4select3").style.display = 'block';
            }
            if (document.getElementById("room5label")) {
                document.getElementById("room5label").style.display = 'block';
            }
            if (document.getElementById("room5select")) {
                document.getElementById("room5select").style.display = 'block';
            }
            if (document.getElementById("room5select2")) {
                document.getElementById("room5select2").style.display = 'block';
            }
            if (document.getElementById("room5select3")) {
                document.getElementById("room5select3").style.display = 'block';
            }
        }
        if (document.getElementById("childline-1")) {
            showchildren();
        }
    }
    else
    {
        // Change by Andy Shellam - allow flight only search to select child ages (no room count selector)
        showchildren();
    }
}
function showchildren() {
    if (document.getElementById("childline-1")) {
        var n;
        var shown = 0;
        for (n = 1; n <= 5; n++) {
            if (document.getElementById("childline-" + n)) {
                document.getElementById("childline-" + n).style.display = 'none';
                for (i = 2; i <= 5; i++) {
                    document.getElementById("childtext-" + n + "-" + i).style.display = 'none';
                    document.getElementById("childdrop-" + n + "-" + i).style.display = 'none';
                }
            }
        }
        
        // Change by Andy Shellam - allow flight only search to select child ages (no room count selector)
        var rooms = 1;
        
        if (document.getElementById("roomcount"))
        {
            rooms = document.getElementById("roomcount").value;
            
            // Added in by Brett
            // IE is rubbish
            if (rooms == 0)
            {
                if (document.getElementById("children").value > 0) {
                document.getElementById("childline-1").style.display = 'block';
                document.getElementById("childages").style.display = 'block';
                for (i = 1; i <= document.getElementById("children").value; i++) {
                    if (i > 1) {
                        document.getElementById("childtext-" + 1 + "-" + i).style.display = 'block';
                        document.getElementById("childdrop-" + 1 + "-" + i).style.display = 'block';
                    }
                }
                shown = 1;
            }
            }
            
            for(n = 1; n <= rooms; n++) {
            if (document.getElementById("children-" + n).value > 0) {
                document.getElementById("childline-" + n).style.display = 'block';
                document.getElementById("childages").style.display = 'block';
                for (i = 1; i <= document.getElementById("children-" + n).value; i++) {
                    if (i > 1) {
                        document.getElementById("childtext-" + n + "-" + i).style.display = 'block';
                        document.getElementById("childdrop-" + n + "-" + i).style.display = 'block';
                    }
                }
                shown = 1;
            }
            }
          }
        else
        {
            if (document.getElementById("children").value > 0) {
                document.getElementById("childline-1").style.display = 'block';
                document.getElementById("childages").style.display = 'block';
                for (i = 1; i <= document.getElementById("children").value; i++) {
                    if (i > 1) {
                        document.getElementById("childtext-" + 1 + "-" + i).style.display = 'block';
                        document.getElementById("childdrop-" + 1 + "-" + i).style.display = 'block';
                    }
                }
                shown = 1;
            }
        }
        if (shown == 0) {
            document.getElementById("childages").style.display = 'none';
                }
    }
    if (document.getElementById("childline")) {
        for (i = 2; i <= 5; i++) {
            document.getElementById("childtext-" + i).style.display = 'none';
            document.getElementById("childdrop-" + i).style.display = 'none';
        }
        for (i = 1; i <= document.getElementById("children").value; i++) {
            if (i > 1) {
                document.getElementById("childtext-" + i).style.display = 'block';
                document.getElementById("childdrop-" + i).style.display = 'block';
            }
        }
        if (document.getElementById("children").value > 0) {
            document.getElementById("childages").style.display = 'block';
        } else {
            document.getElementById("childages").style.display = 'none';
        }
    }
}
function displayflights(sortby) {
    if (!sortby) {
        sortby = 'price';
    }
    if (document.getElementById("flightresults")) {
        var flightresults = "";
        var n;
        for (n = 0; n < flightlist[sortby].length; n++) {
            if (document.getElementById('flight' + flightlist[sortby][n])) {
                flightresults += document.getElementById('flight' + flightlist[sortby][n]).innerHTML;
            }
        }
        document.getElementById('flightresults').innerHTML = flightresults;
    }
    if (document.getElementById("altflightresults")) {
        var altflightresults = "";
        var n;
        for (n = 0; n < altflightlist[sortby].length; n++) {
            if (document.getElementById('flight' + altflightlist[sortby][n])) {
                altflightresults += document.getElementById('flight' + altflightlist[sortby][n]).innerHTML;
            }
        }
        document.getElementById('altflightresults').innerHTML = altflightresults;
    }
}
function changeflightsort(sortby) {
    if (!sortby) {
        sortby = 'price';
    }
    if (document.getElementById("flightsortlist")) {
        var flightsort = "";
        if (sortby == 'price') {
            flightsort += document.getElementById("sortpricehigh").innerHTML;
        } else {
            flightsort += document.getElementById("sortprice").innerHTML;
        }
        if (sortby == 'stops') {
            flightsort += document.getElementById("sortstopshigh").innerHTML;
        } else {
            flightsort += document.getElementById("sortstops").innerHTML;
        }
        if (sortby == 'journeytime') {
            flightsort += document.getElementById("sortjourneytimehigh").innerHTML;
        } else {
            flightsort += document.getElementById("sortjourneytime").innerHTML;
        }
        displayflights(sortby);
        document.getElementById("flightsortlist").innerHTML = flightsort;
    }
//    document.getElementById('sortform').submit();
}
function showsmallimages() {
    document.getElementById("smallimages").style.display = 'block';
    document.getElementById("largeimages").style.display = 'none';
}
function showlargeimages() {
    document.getElementById("smallimages").style.display = 'none';
    document.getElementById("largeimages").style.display = 'block';
}
var bookingstarted = 0;
function submitbooking() {
    var box = document.getElementById("bookbutton");
    
    if (box) {
        if (bookingstarted) {
            alert("You've already clicked the Make Booking button. Please be patient as we complete the process.");
            return false;
        } else {
            bookingstarted = 1;
            return true;
        }
    }
    return true;
}
function format (expr, decplaces) {
    var str = "" + Math.round(eval(expr) * Math.pow(10, decplaces));
    while (str.length <= decplaces) {
        str = "0" + str;
    }
    var decpoint = str.length - decplaces;
    return str.substring(0, decpoint) + "." + str.substring(decpoint, str.length);
}
function updateprice(cardtype, totalprice, creditcard, debitcard) {
    if ((cardtype.value == 'AMX' || cardtype.value == 'VIS' || cardtype.value == 'MSC') && creditcard != 0) {
        displaytotal = parseFloat(totalprice) + ((totalprice / 100) * creditcard);
    
    } else if (debitcard != 0) {
        displaytotal = parseFloat(totalprice) + ((totalprice / 100) * debitcard);
    
    } else {
        displaytotal = totalprice;
    
    }
    document.getElementById("totalprice").innerHTML = format(displaytotal, 2);
}
function updateoneway(option) {
    var one;
    var ret;
    var box = document.getElementById("returndate");
    if (!option) {
        if (document.getElementById("onewayyes")) {
            if (document.getElementById("onewayyes").checked) {
                option = "Y";
            } else {
                option = "N";
            }
        }
    }
    if (box) {
        if (!ret && !one) {
            if (option == "Y") {
                document.getElementById("onewayyes").checked = true;
                document.getElementById("onewayno").checked = false;
                ret = 0;
                one = 1;
                
            } else if (option == "N") {
                document.getElementById("onewayyes").checked = false;
                document.getElementById("onewayno").checked = true;
                ret = 1;
                one = 0;
                
            } else {
                if (document.getElementById("onewayno")) {
                    document.getElementById("onewayno").checked = true;
                }
            
                if (document.getElementById("onewayyes")) {
                    document.getElementById("onewayyes").checked = false;
                }
                ret = 1;
                one = 0;
            }
        }
        if (ret) {
            document.getElementById("returndate").style.display = 'block';
            document.getElementById("returndatetext").style.display = 'none';
        } else {
            document.getElementById("returndate").style.display = 'none';
            document.getElementById("returndatetext").style.display = 'block';
        }
    }
}
function updatemanualprice() {
    var box = document.getElementById("manualprice");
    if (box) {
        var manualprice = 0;
        var n;
        var itinitems = document.getElementById("itinitems").value;
        for (n = 0; n < itinitems; n++) {
            if (document.getElementById("item-" + n)) {
                manualprice += parseFloat(document.getElementById("item-" + n).value);
            }
        }
        box.innerHTML = formatnumber(manualprice, 2);
        // Manual Price PP
        document.getElementById("manualpricepp").innerHTML = formatnumber(manualprice / parseInt(document.getElementById("totalguests").value), 2);    
        // Profit
        var profit = formatnumber(manualprice - parseFloat(document.getElementById("nettprice").innerHTML), 2);
        var percentage = formatnumber((profit / manualprice) * 100, 2);
        document.getElementById("profit").innerHTML = profit + " (" + percentage + "%)";
        // Manual Price Diff
        document.getElementById("manualdiff").innerHTML = formatnumber(manualprice - parseFloat(document.getElementById("totalprice").innerHTML), 2);    
    }
}
function formatnumber(expr, decplaces) {
    var str = "" + Math.round(eval(expr) * Math.pow(10, decplaces));
    while (str.length <= decplaces) {
        str = "0" + str;
    }
    var decpoint = str.length - decplaces;
    return str.substring(0, decpoint) + "." + str.substring(decpoint, str.length);
}
function popupwindow(file,key,widt,heit) {
    var popup;
    popup = window.open(file,key,'status=yes,scrollbars=yes,resizable=yes,width=' + widt + ',height=' + heit);
    popup.focus();
}
// ON STARTUP
function transferinitlists(settransfertype, setpickupcountry, setpickup, setdropoffcountry, setdropoff) {
    
    var box = document.getElementById("noinitlists");
    if (box) {
        return;
    }
    if (document.getElementById("transfertype")) {
        transferfilltransfertypes(settransfertype);
    }
    var types = (settransfertype || document.getElementById("transfertype").value).split(":");
    if (document.getElementById("pickupcountry")) {
        transferfillpickupcountry(types[0], setpickupcountry);
    }
    if (document.getElementById("pickup")) {
        transferfillpickup(types[0], setpickupcountry || document.getElementById("pickupcountry").value, setpickup);
    }
    if (document.getElementById("dropoffcountry")) {
        transferfilldropoffcountry(types[1], setpickup || document.getElementById("pickup").value, setdropoffcountry);
    }
    if (document.getElementById("pickup")) {
        transferfilldropoff(types[1], setpickup || document.getElementById("pickup").value, setdropoffcountry || document.getElementById("dropoffcountry").value, setdropoff);
    }
}
function changetransfertype() {
    var transfertypes = document.getElementById("transfertype").value.split(":");    
    transferfillpickupcountry(transfertypes[0]);
    transferfillpickup(transfertypes[0], document.getElementById("pickupcountry").value);
    transferfilldropoffcountry(transfertypes[1], document.getElementById("pickup").value);
    transferfilldropoff(transfertypes[1], document.getElementById("pickup").value, document.getElementById("dropoffcountry").value);    
}
function transferchangepickupcountry () {
    var transfertypes = document.getElementById("transfertype").value.split(":");
    transferfillpickup(transfertypes[0], document.getElementById("pickupcountry").value);
    transferfilldropoffcountry(transfertypes[1], document.getElementById("pickup").value);
    transferfilldropoff(transfertypes[1], document.getElementById("pickup").value, document.getElementById("dropoffcountry").value);    
}
function transferchangepickup() {
    var transfertypes = document.getElementById("transfertype").value.split(":");
    transferfilldropoffcountry(transfertypes[1], document.getElementById("pickup").value);
    transferfilldropoff(transfertypes[1], document.getElementById("pickup").value, document.getElementById("dropoffcountry").value);    
}
function transferchangedropoffcountry () {
    var transfertypes = document.getElementById("transfertype").value.split(":");    
    transferfilldropoff(transfertypes[1], document.getElementById("pickup").value, document.getElementById("dropoffcountry").value);    
}
function transferfilltransfertypes (settransfertype) {
    var box = document.getElementById("transfertype");
    if (box) {
        if (!box.options) {
            return;
        }
    }
    var was = emptyList(box, 0);
    for (var i = 0; i < transfertypelist.length; i++) {
        var res =  transfertypelist[i].split("|");
        if (res[1]) {
            option = new Option( res[1], res[0] );
        } else {
            option = new Option( res[0], res[0] );
        }
        box.options[box.length] = option;
    }
    setfield("transfertype", settransfertype || was);    
}
function transferfillpickupcountry(pickuptype, setcountry) {
    var box = document.getElementById("pickupcountry");
    if (box) {
        if (!box.options) {
            return;
        }
    }
    var was = emptyList(box, 0);
    //alert("Pickup Type " + pickuptype);
    for (var i = 0; i < pickupcountrylist[pickuptype].length; i++) {
        var res =  pickupcountrylist[pickuptype][i].split("|");
        if (res[1]) {
            option = new Option( res[1], res[0] );
        } else {
            option = new Option( res[0], res[0] );
        }
        box.options[box.length] = option;
    }
    setfield("pickupcountry", setcountry || was);
}
function transferfillpickup(pickuptype, countrysel, setpickup) {
    var box = document.getElementById("pickup");
    if (box) {
        if (!box.options) {
            return;
        }
    }
    var was = emptyList(box, 0);
    // Check to see if the country passed in actually exists within the country list, if not, take whatever
    // is in the country list right tnow
    if (!inlist(countrysel, "country")) {
        countrysel = document.getElementById("pickupcountry").value || document.getElementById("pickupcountry").options[0].value;
    }
    //alert("Pickup Settings - " + countrysel + " : " + pickuptype);
    for (var i = 0; i < pickuplist[pickuptype][countrysel].length; i++) {
        var res = pickuplist[pickuptype][countrysel][i].split("|");
        if (res[1]) {
            option = new Option( res[1], res[0] );
        } else {
            option = new Option( res[0], res[0] );
        }
        box.options[box.length] = option;
    }
    setfield("pickup", setpickup || was);
}
function transferfilldropoffcountry(dropofftype, pickup, setcountry) {
    var box = document.getElementById("dropoffcountry");
    if (box) {
        if (!box.options) {
            return;
        }
    }
    var was = emptyList(box, 0);
    //alert("Pickup Details - " + pickup + " : " + dropofftype);
    for (var i = 0; i < dropoffcountrylist[pickup][dropofftype].length; i++) {
        var res = dropoffcountrylist[pickup][dropofftype][i].split("|");
        if (res[1]) {
            option = new Option( res[1], res[0] );
        } else {
            option = new Option( res[0], res[0] );
        }
        box.options[box.length] = option;
    }
    setfield("dropoffcountry", setcountry || was);
}
function transferfilldropoff(dropofftype, pickup, countrysel, setdropoff) {
    var box = document.getElementById("dropoff");
    if (box) {
        if (!box.options) {
            return;
        }
    }
    var was = emptyList(box, 0);
    // Check to see if the country passed in actually exists within the country list, if not, take whatever
    // is in the country list right tnow
    if (!inlist(countrysel, "dropoffcountry")) {
        countrysel = document.getElementById("dropoffcountry").value || document.getElementById("dropoffcountry").options[0].value;
    }
    for (var i = 0; i < dropofflist[pickup][dropofftype][countrysel].length; i++) {
        var res = dropofflist[pickup][dropofftype][countrysel][i].split("|");
        if (res[1]) {
            option = new Option( res[1], res[0] );
        } else {
            option = new Option( res[0], res[0] );
        }
        box.options[box.length] = option;
    
    }
    setfield("dropoff", setdropoff || was);
}
function updatefaretype (option) {
    var sin;
    var ret;
    var box = document.getElementById("returndate");
    if (!option) {
        if (document.getElementById("faretypesingle")) {
            if (document.getElementById("faretypesingle").checked) {
                option = "single";
            } else {
                option = "return";
            }
        }
    }
    if (box) {
        if (!ret && !sin) {
            if (option == "single") {
                document.getElementById("faretypesingle").checked = true;
                document.getElementById("faretypereturn").checked = false;
                ret = 0;
                sin = 1;
                
            } else if (option == "return") {
                document.getElementById("faretypesingle").checked = false;
                document.getElementById("faretypereturn").checked = true;
                ret = 1;
                sin = 0;
                
            } else {
                if (document.getElementById("faretypereturn")) {
                    document.getElementById("faretypereturn").checked = true;
                }
            
                if (document.getElementById("faretypesingle")) {
                    document.getElementById("faretypesingle").checked = false;
                }
                ret = 1;
                sin = 0;
            }
        }
        if (ret) {
            document.getElementById("returndate").style.display = 'block';
            document.getElementById("returndatetext").style.display = 'none';
        } else {
            document.getElementById("returndate").style.display = 'none';
            document.getElementById("returndatetext").style.display = 'block';
        }
    }
}
function readcookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}