function togglediv(theTable) {
    var currentRef = document.getElementById(theTable).style
    if (currentRef.display == 'none') {
        showdiv(theTable);
    }
    else {
        hidediv(theTable);
    }
}
function showdiv(theTable) {
    if (document.getElementById(theTable).style.display == 'none') {
        document.getElementById(theTable).style.display = 'block';
    }
}

function hidediv(theTable) {
    if (document.getElementById(theTable).style.display == 'none') {
        document.getElementById(theTable).style.display = 'none';
    }
    else {
        document.getElementById(theTable).style.display = 'none';
    }
}




function hideAll() {
    hidediv("divSWS");
    hidediv("divGWS");
    hidediv("divS35");
    hidediv("divG35");
    hidediv("divSFN");
    hidediv("divGFN");
    hidediv("divFAB");
    hidediv("divGSC");
    hidediv("divSSC");
}

function arrangeDivs() {
    var s;
    if (document.getElementById("connectionType").value == 'XXX') {
        hideAll();
    }
    else {
        s = "div" + document.getElementById("connectionType").value;
        hideAll();
        showdiv(s)
    }
}
function setSelectedUser(sForm, sValue) {
    document.getElementById(sForm).selected_user_id[sValue].checked = true;
    document.getElementById(sForm).submit();
}
function setFormValueAndSubmit(sForm, sField, sValue) {
    document.getElementById(sField).value = sValue;
    document.getElementById(sForm).submit();
}
function setValueAndSubmit(sField, sValue) {
    document.getElementById(sField).value = sValue;
    document.getElementById("frmSubmit").submit();
}
function setValueAndDelete(sField, sValue, sParentField, sParentValue, sNewAction) {
    document.getElementById(sField).value = sValue;
    document.getElementById(sParentField).value = sParentValue;
    document.getElementById("sub_action").value = sNewAction;
    document.getElementById("frmSubmit").submit();
}

function copyFrom(sFrom, sTo) {
    document.getElementById(sTo).value = document.getElementById(sFrom).value;
}

function disableInbound() {
    document.getElementById("spnIn1").innerHTML = '';
}
function enableInbound() {
    document.getElementById("spnIn1").innerHTML = 'Inbound from:';
}

function pleaseWait(sSessionKey, sAction) {
    hidediv('divTable');
    showdiv('divWait');
    IFrame = document.getElementById('myIFrame');
    IFrame.src = "tsx_wait.aspx?action=" + sAction + "&session_key=" + sSessionKey;
    IFrame.style.display = "inline";
}
function returnJourney() {
    showdiv('tdIn1');
    showdiv('tdIn2');
    showdiv('tdIn3');
    showdiv('tdIn4');
    showdiv('tdIn5');
    showdiv('tdIn6');
}
function oneWay() {
    hidediv('tdIn1');
    hidediv('tdIn2');
    hidediv('tdIn3');
    hidediv('tdIn4');
    hidediv('tdIn5');
    hidediv('tdIn6');
}
function validatePublicForm(sSessionKey, paxCount) {
    serrors = '';
    errOccurred = false;

    // Check Mandatory Fields
    s = (document.getElementById('mandatory_fields').value);
    MandArray = s.split(";")
    for (var i = 0; i < MandArray.length - 1; i++) {
        fieldname = MandArray[i];
        s = document.getElementById(fieldname).value;
        if (s == '') {
            errOccurred = true;
            if (serrors.indexOf('mandatory') == -1) {
                serrors += "Please complete mandatory fields.\n";
            }
        }
    }

    if (errOccurred == true) {
        alert(serrors);
        return false;
    }
    else {
        pleaseWait(sSessionKey, "book");
        return true;
    }

}
function validateForm(mandatory, sSessionKey, paxCount) {
    serrors = '';
    errOccurred = false;
    paxSoFar = '';
    for (var i = 1; i < paxCount + 1; i++) {
        if (mandatory) {
            if (document.getElementById('reason_for_travelling_' + i).value == "") {
                serrors += "Please enter a reason for travel.\n";
                errOccurred = true;
            }
        }
        if (document.getElementById('reason_id').value == '-1') {
            serrors += "Please select a reason for declining savings.\n";
            errOccurred = true;
        }
        if (document.getElementById('payment_type').value == '-1') {
            if (serrors.indexOf('select a payment type') < 1) {
                serrors += "Please select a payment type.\n";
            }
            errOccurred = true;
        }
        if (document.getElementById('pax_' + i).value == '-1') {
            serrors += "Please select Passenger " + i + ".\n";
            errOccurred = true;
        }
        else {
            //ralph 5 nov 2008 need to allow guest to be used more than once
        var paxDDList = document.getElementById('pax_' + i).options.selectedIndex
        var username = document.getElementById('pax_' + i).options[paxDDList].text;
        if (username.indexOf('Guest, Mr Xxxxx') == -1) 
            { 
                s = '[' + document.getElementById('pax_' + i).value + ']'
                // if already encountered this passenger...
                if (paxSoFar.indexOf(s) > -1) {
                    serrors += "Selected passengers must be different.\n";
                    errOccurred = true;
                }
                else {
                    paxSoFar += '[' + document.getElementById('pax_' + i).value + ']'
                }
            }
        }
    }

    // Check Mandatory Fields
    s = (document.getElementById('mandatory_fields').value);
    MandArray = s.split(";")
    for (var i = 0; i < MandArray.length - 1; i++) {
        fieldname = MandArray[i];
        s = document.getElementById(fieldname).value;
        if (s == '') {
            errOccurred = true;
            if (serrors.indexOf('mandatory') == -1) {
                serrors += "Please complete mandatory fields.\n";
            }
        }
    }

    // Check Masked Fields

    s = (document.getElementById('masked_fields').value);
    MaskArray = s.split(";")
    for (var i = 0; i < MaskArray.length - 1; i++) {
        fieldname = MaskArray[i];
        sMaskValue = document.getElementById(fieldname).value;
        sField = fieldname.replace('mask', 'field');
        sFieldValue = document.getElementById(sField).value;

        var re = new RegExp(sMaskValue);
        if (sFieldValue.match(re)) {
            // alert("Successful match");
        } else {
            sFieldDesc = document.getElementById(fieldname + '_desc').value;
            serrors += sFieldDesc + " is not in a valid format.\n";
            errOccurred = true;
        }
    }


    if (errOccurred == true) {
        alert(serrors);
        return false;
    }
    else {
        pleaseWait(sSessionKey, "book");
        return true;
    }
}

function readTC() {

    if (document.getElementById('chkConfirm').checked == true) {
        document.getElementById('continue_button').disabled = false;
    }
    else {
        document.getElementById('continue_button').disabled = true;
    }
}

function validateSearch(sSessionKey, sAction) {
    err = false;
    serr = '';

    if (document.getElementById('out_from').value == '') {
        serr += 'Please enter your departure point.\n';
        err = true;
    }
    if (document.getElementById('out_to').value == '') {
        serr += 'Please enter your destination.\n';
        err = true;
    }
    if (document.getElementById('departure_date').value == '') {
        serr += 'Please enter your departure date.\n';
        err = true;
    }

    if (document.getElementById('tdIn1').style.display != 'none') {
        if (document.getElementById('in_from').value == '') {
            serr += 'Please enter your returning departure point.\n';
            err = true;
        }
        if (document.getElementById('in_to').value == '') {
            serr += 'Please enter your return destination.\n';
            err = true;
        }
        if (document.getElementById('return_date').value == '') {
            serr += 'Please enter your return date.\n';
            err = true;
        }
    }

    if (err == true) {
        alert(serr);
        return false;
    }
    else {
        pleaseWait(sSessionKey, sAction)
        return true;
    }
}

function viewBooking(i_id, sAction) {
    document.frmView.action.value = 'v' + sAction;
    document.getElementById('itinerary_id').value = i_id;
    document.getElementById('frmView').submit();
}

function viewBookingVYTlocal(surname, locator, b_id, c_id) {
    sURL = "http://localhost/VYT/viewyourtrip.aspx";
    sURL += "?surname=" + surname + "&locator=" + locator + "&b_id=" + b_id + "&c_id=" + c_id;
    window.open(sURL);
}
function viewBookingVYT(surname, locator, b_id, c_id) {
    sURL = "http://www.viewyourtrip.com/viewyourtrip.aspx";
    sURL += "?surname=" + surname + "&locator=" + locator + "&b_id=" + b_id + "&c_id=" + c_id;
    window.open(sURL);
}
function selectPax(paxNo) {
    // Clear Options
    var sel = document.getElementById('address_id_' + paxNo);
    sel.options.length = 0;

    // Clear Boxes
    document.getElementById('address_line_1_' + paxNo).value = '';
    document.getElementById('address_line_2_' + paxNo).value = '';
    document.getElementById('address_line_3_' + paxNo).value = '';
    document.getElementById('address_line_4_' + paxNo).value = '';
    document.getElementById('postcode_' + paxNo).value = '';
    document.getElementById('telephone_' + paxNo).value = '';
    document.getElementById('email_address_' + paxNo).value = '';

    var paxDDList  = document.getElementById('pax_' + paxNo).options.selectedIndex
    var username = document.getElementById('pax_' + paxNo).options[paxDDList].text;
    

    var el = document.getElementById('GuestPax_' + paxNo);
    // if value of dd contains guest then show else dont

    if (username.indexOf('Guest, Mr Xxxxx') > -1) {
        el.style.display = 'block';
    }
    else {
        el.style.display = 'none';
    }


    //Get the value of the selected User ID
    var u_id = document.getElementById('pax_' + paxNo).value
    var pageUrl = "tsx_http_clientcallback.aspx?action=addresses&user_id=" + u_id;

    // Get Addresses
    xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
    xmlRequest.open("GET", pageUrl, false);
    xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xmlRequest.send(null);

    var addresses = xmlRequest.responseText;

    AddressesArray = addresses.split("¬")

    for (var i = 0; i < AddressesArray.length; i++) {
        addSelOption = true;
        AddressArray = AddressesArray[i].split(";");
        if (AddressArray[0] == '-101') {
            addSelOption = false;
            document.getElementById('email_address_' + paxNo).value = AddressArray[1];
        }
        if (addSelOption) {
            sel[sel.options.length] = new Option(AddressArray[1], AddressArray[0]);
        }
    }

    // Get Fields
    pageUrl = "tsx_http_clientcallback.aspx?action=fields&user_id=" + u_id;
    xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
    xmlRequest.open("GET", pageUrl, false);
    xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xmlRequest.send(null);
    var customFields = xmlRequest.responseText;
    fieldArray = customFields.split(";");
    for (i = 0; i < fieldArray.length; i++) {
        fieldValues = fieldArray[i].split("=");
        if (fieldValues[0].indexOf('field') > -1) {
            document.getElementById(fieldValues[0] + '_' + paxNo).value = fieldValues[1];
        }
    }

}
function selectAddress(paxNo) {
    // Clear Boxes
    document.getElementById('address_line_1_' + paxNo).value = '';
    document.getElementById('address_line_2_' + paxNo).value = '';
    document.getElementById('address_line_3_' + paxNo).value = '';
    document.getElementById('address_line_4_' + paxNo).value = '';
    document.getElementById('postcode_' + paxNo).value = '';
    document.getElementById('telephone_' + paxNo).value = '';

    //Get the value of the selected Address ID
    var a_id = document.getElementById('address_id_' + paxNo).value;
    if (a_id == -1) {
    }
    else {
        var pageUrl = "tsx_http_clientcallback.aspx?action=address&address_id=" + a_id;

        // Get Addresses
        xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
        xmlRequest.open("GET", pageUrl, false);
        xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        xmlRequest.send(null);

        var addresses = xmlRequest.responseText;

        AddressArray = addresses.split(";")
        document.getElementById('address_line_1_' + paxNo).value = AddressArray[0];
        document.getElementById('address_line_2_' + paxNo).value = AddressArray[1];
        document.getElementById('address_line_3_' + paxNo).value = AddressArray[2];
        document.getElementById('address_line_4_' + paxNo).value = AddressArray[3];
        document.getElementById('postcode_' + paxNo).value = AddressArray[4];
        document.getElementById('telephone_' + paxNo).value = AddressArray[5];
    }
}
function resetAction(anyId, newAction) {
    document.getElementById("select_form")('action').value = newAction;
    document.getElementById('delete_id').value = anyId;
    document.getElementById("select_form").submit();
}


function showToolTip(e, text) {

    document.all.ToolTip.innerHTML = "<table><tr><td class=ToolTipTD>" + text + "</td></tr></table>";
    popUp(e, 'ToolTip');
    //ToolTip.style.pixelLeft=(e.x+15+document.body.scrollLeft); 
    //ToolTip.style.pixelTop=(e.y+document.body.scrollTop); 
    //ToolTip.style.visibility="visible"; 
}
function showToolTipCSS(e, text, css) {

    document.all.ToolTip.innerHTML = "<table><tr><td class=" + css + ">" + text + "</td></tr></table>";
    popUp(e, 'ToolTip');
    //ToolTip.style.pixelLeft=(e.x+15+document.body.scrollLeft); 
    //ToolTip.style.pixelTop=(e.y+document.body.scrollTop); 
    //ToolTip.style.visibility="visible"; 
}
function hideToolTip() {
    ToolTip.style.visibility = "hidden";
}

function printWindow() {
    document.getElementById("tblSection1").width = 800;
    window.print();
    document.getElementById("tblSection1").width = 200;
}

// Extended Tooltip Javascript
// copyright 9th August 2002, 3rd July 2005
// by Stephen Chapman, Felgall Pty Ltd

// permission is granted to use this javascript provided that the below code is not altered
var DH = 0; var an = 0; var al = 0; var ai = 0; if (document.getElementById) { ai = 1; DH = 1; } else { if (document.all) { al = 1; DH = 1; } else { browserVersion = parseInt(navigator.appVersion); if ((navigator.appName.indexOf('Netscape') != -1) && (browserVersion == 4)) { an = 1; DH = 1; } } } function fd(oi, wS) { if (ai) return wS ? document.getElementById(oi).style : document.getElementById(oi); if (al) return wS ? document.all[oi].style : document.all[oi]; if (an) return document.layers[oi]; }
function pw() { return window.innerWidth != null ? window.innerWidth : document.body.clientWidth != null ? document.body.clientWidth : null; }
function mouseX(evt) { if (evt.pageX) return evt.pageX; else if (evt.clientX) return evt.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft); else return null; }
function mouseY(evt) { if (evt.pageY) return evt.pageY; else if (evt.clientY) return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); else return null; }
function popUp(evt, oi) { if (DH) { var wp = pw(); ds = fd(oi, 1); dm = fd(oi, 0); st = ds.visibility; if (dm.offsetWidth) ew = dm.offsetWidth; else if (dm.clip.width) ew = dm.clip.width; if (st == "visible" || st == "show") { ds.visibility = "hidden"; } else { tv = mouseY(evt) + 20; lv = mouseX(evt) - (ew / 4); if (lv < 2) lv = 2; else if (lv + ew > wp) lv -= ew / 2; if (!an) { lv += 'px'; tv += 'px'; } ds.left = lv; ds.top = tv; ds.visibility = "visible"; } } }

function seatSelect(seatNum, segmentNumber) {
    var btn = valButton(frmSeatmap.selected_pax);

    if (btn == null) btn = 1;

    if (document.getElementById('p' + btn + '_seat').value != '') {
        s = document.getElementById('p' + btn + '_seat').value;
        document.getElementById(s).src = 'images/seat_empty.gif';
    }
    document.getElementById('p' + btn + '_seat').value = seatNum;
    document.getElementById(seatNum).src = 'images/seat_green.gif';
    window.opener.document.getElementById('p' + btn + '_seg_' + segmentNumber).value = seatNum;
}

function valButton(btn) {
    var cnt = -1;
    for (var i = btn.length - 1; i > -1; i--) {
        if (btn[i].checked) { cnt = i; i = -1; }
    }
    if (cnt > -1) return btn[cnt].value;
    else return null;
}

function clearBox(i) {
    if (i == 1) document.getElementById('departure_date').value = '';
    if (i == 2) document.getElementById('return_date').value = '';
}

function addAirline() {
    var bError = false;

    if (document.getElementById('airline').value == '00') {
        document.getElementById('error_text').innerHTML = 'Please select an airline.';
        bError = true;
    }

    sStringToSearch = window.opener.document.getElementById('airline1').value + '/' + window.opener.document.getElementById('airline2').value + '/' + window.opener.document.getElementById('airline3').value;
    sStringToSearch = sStringToSearch.toUpperCase();

    sCompare = document.getElementById('airline').value;

    if (bError == false) {
        if (sStringToSearch.indexOf(sCompare) < 0) {
            // Doesn't exist.
        }
        else {
            document.getElementById('error_text').innerHTML = 'You already have that airline selected.';
            bError = true;
        }
    }

    if (bError == false) {
        document.getElementById('error_text').innerHTML = ' ';
        if (window.opener.document.getElementById('airline1').value == '') {
            window.opener.document.getElementById('airline1').value = document.getElementById('airline').value;
        }
        else {
            if (window.opener.document.getElementById('airline2').value == '') {
                window.opener.document.getElementById('airline2').value = document.getElementById('airline').value;
            }
            else {
                if (window.opener.document.getElementById('airline3').value == '') {
                    window.opener.document.getElementById('airline3').value = document.getElementById('airline').value;
                }
                else {
                    document.getElementById('error_text').innerHTML = 'You already have three airlines selected.';
                }
            }
        }
    }
}

function placeIt(obj) {
    x = 2;
    y = 120;
    obj = document.getElementById(obj);
    if (document.documentElement) {
        theLeft = document.documentElement.scrollLeft;
        theTop = document.documentElement.scrollTop;
    }
    else if (document.body) {
        theLeft = document.body.scrollLeft;
        theTop = document.body.scrollTop;
    }
    theLeft += x;
    theTop += y;
    obj.style.left = theLeft + 'px';
    obj.style.top = theTop + 'px';
    if (screen.height >= 1024) {
        setTimeout("placeIt('layer1')", 500);
    }
}

function preselectMyItem(sObject, itemToSelect) {    // Get a reference to the drop-down
    var myDropdownList = document.getElementById(sObject);

    // Loop through all the items
    for (iLoop = 0; iLoop < myDropdownList.options.length; iLoop++) {
        if (myDropdownList.options[iLoop].value == itemToSelect) {
            // Item is found. Set its selected property, and exit the loop
            myDropdownList.options[iLoop].selected = true;
            break;
        }
    }
}



