﻿var repeatrequestcount = 0;
var repeatrequest = '';

function getRefToObject(objID) {
    if (document.layers) {					//Netscape layers
        return document.layers[objID];
    }
    if (document.getElementById) {			//DOM; IE5, NS6, Mozilla, Opera
        return document.getElementById(objID);
    }
    if (document.all) {					//Proprietary DOM; IE4
        return document.all[objID];
    }
    if (document[objID]) {					//Netscape alternative
        return document[objID];
    }
    return false;
}


function fDisplayHint(http_request, rDestObj) {

    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            if (http_request.responseText) {
                if (http_request.responseText.length > 0 && http_request.responseText != '<b></b>') {
                    rDestObj.innerHTML = http_request.responseText;
                    rDestObj.style.display = 'block';
                }
            }
        }
    }
}


function makeRequest(url, rDestObj, vType) {

    var http_request = false;
    var r;

    //MKC20071214 don't repeat same request more than 5 times
    if (url == repeatrequest) {
        repeatrequestcount += 1;
    } else {
        repeatrequest = url;
        repeatrequestcount = 0;
    }

    if (repeatrequestcount >= 5)
        return false;

    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
        }
    } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) { }
        }
    }

    if (!http_request) {
        alert('Giving up :( Cannot create an XMLHTTP instance');
        return false;
    }
    http_request.open('GET', url, true);
    switch (vType) {
        case 'o':
            http_request.onreadystatechange = function () { getXMLContentsIntoOptions(http_request, rDestObj) };
            break;
        case 'l':
            http_request.onreadystatechange = function () { displayLogos(http_request, rDestObj) };
            break;
        case 'v':
            http_request.onreadystatechange = function () { assignResult(http_request, rDestObj) };
            break;
        case 'd':
            rDestObj.style.display = 'none';
            http_request.onreadystatechange = function () { fDisplayHint(http_request, rDestObj) };
            break;
    }
    http_request.send(null);
}


var xmlHttpAFS;
var totalCount;
totalCount = 0;

function makeStraightRequest(str) {
    totalCount = totalCount + 1;
    if ((!document.getElementById('gafsno')) || (totalCount > 1)) {
        var randomnumber = Math.floor(Math.random() * 1001);
        document.getElementById("ntMoreLatestDealsWide").innerHTML = '';
        document.getElementById("ntMoreLatestDealsWide").innerHTML = '<iframe name="AFSif" id="AFSif" src="/Includes/AFS.asp?q=' + escape(str) + '&rnd=' + randomnumber + '&siteid=NETL" width="550px" height="230px" scrolling="no" frameborder="0" marginwidth="0" marginheight="0" ></iframe>';
    }

    if ((!document.getElementById('tzMarq')) || (totalCount > 0)) {
        document.getElementById("tzMarq").src = '/Travel/tzMarq.asp?q=' + escape(str);
    }
}


function stateChangedAFS() {
    if (xmlHttpAFS.readyState == 4) {
        document.getElementById("ntMoreLatestDealsWide").innerHTML = xmlHttpAFS.responseText;

        var x = document.getElementById("ntMoreLatestDealsWide").getElementsByTagName("script");
        for (var i = 0; i < x.length; i++) {
            eval(x[i].text);
        }

    }
}


function assignResult(http_request, rDestObj) {

    if (http_request.readyState == 4) {
        if (http_request.status == 200) {

            rDestObj.value = http_request.responseText;
        }
    }
}

function displayLogos(http_request, aSearchers) {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            var xmlS;
            xmlS = http_request.responseXML;

            var TotalClients = xmlS.getElementsByTagName('c')[0].firstChild.data;

            for (i = 0; i <= NoOfSearchers - 1; i++) {
                var lFound = false;
                var lDep = '';
                var lArr = '';
                for (j = 0; (xmlS.getElementsByTagName('sid')[j]); j++) {
                    if (aSearchers[i][0] == xmlS.getElementsByTagName('sid')[j].firstChild.data) {
                        lFound = true;

                        if (xmlS.getElementsByTagName('scd')[j].firstChild) { lDep = xmlS.getElementsByTagName('scd')[j].firstChild.nodeValue; }
                        if (xmlS.getElementsByTagName('sca')[j].firstChild) { lArr = xmlS.getElementsByTagName('sca')[j].firstChild.nodeValue; }

                    }
                }
                if (lFound) {
                    var l_InfoRequired;
                    if (ms_InfoRequired) {
                        l_InfoRequired = ms_InfoRequired + ' ';
                    } else {
                        l_InfoRequired = '';
                    }
                    getRefToObject('Logo' + aSearchers[i][1]).style.display = 'block';
                    getRefToObject('Logo' + aSearchers[i][1]).style.height = '56px';
                    getRefToObject('Logo' + aSearchers[i][1]).title = aSearchers[i][6];
                    getRefToObject('GO' + aSearchers[i][1]).alt = aSearchers[i][6];
                    if (document.forms.FlightMetaSearch['DestinationL1'].selectedIndex != 0 && aSearchers[i][1] != 'overturecheapflights') {
                        //MKC20110712 don;t do this for cheapflightsoverture, which has it's directurl set from backfill
                        getRefToObject('directurl' + aSearchers[i][1]).value = '';
                    }
                }
                else if (aSearchers[i][0] != '') { //MKC20100504 only disable items that are actual flight clients
                    getRefToObject('Logo' + aSearchers[i][1]).style.display = 'none';
                    getRefToObject('Logo' + aSearchers[i][1]).style.height = '0';
                }
                aSearchers[i][4] = lDep;
                aSearchers[i][5] = lArr;
            }

            if (TotalClients < 5 && document.getElementById("Logooverturetopoffer"))
                document.getElementById("Logooverturetopoffer").style.display = "block";
            else if (document.getElementById("Logooverturetopoffer"))
                document.getElementById("Logooverturetopoffer").style.display = "none";

            if (TotalClients < 5 && document.getElementById("Logooverturefeelinglucky"))
                document.getElementById("Logooverturefeelinglucky").style.display = "block";
            else if (document.getElementById("Logooverturefeelinglucky"))
                document.getElementById("Logooverturefeelinglucky").style.display = "none";

            if (TotalClients < 5 && document.getElementById("Logooverturelastminute"))
                document.getElementById("Logooverturelastminute").style.display = "block";
            else if (document.getElementById("Logooverturelastminute"))
                document.getElementById("Logooverturelastminute").style.display = "none";

        }
    }
}

function getXMLContentsIntoOptions(http_request, rDestObj) {

    var sDefaultDesc = rDestObj.options[0].innerHTML;
    var lSelected = '';
    var preselected = false;

    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            //MKC20080909 hack to display "check prices" image when no more locations are available
            //at which point the root nodes will be 10 characters apart 
            //alert(http_request.responseText.indexOf('/root') - http_request.responseText.indexOf('root')) 
            if (http_request.responseText.indexOf('/root') - http_request.responseText.indexOf('root') == 10) {
                try {

                    if (document.getElementById("CheckPricesImage")) {
                        document.getElementById("CheckPricesImage").style.display = "block";
                    }
                }
                catch (e) { }
            }

            var xmldoc;
            xmldoc = http_request.responseXML;

            rDestObj.disabled = true;
            rDestObj.options.length = 0;
            rDestObj.options[0] = new Option(sDefaultDesc, -1);

            for (i = 0; (xmldoc.getElementsByTagName('value')[i]); i++) {
                if ((xmldoc.getElementsByTagName('display')[i].firstChild) && (xmldoc.getElementsByTagName('value')[i].firstChild)) {
                    rDestObj.options[rDestObj.options.length] = new Option(xmldoc.getElementsByTagName('display')[i].firstChild.data, xmldoc.getElementsByTagName('value')[i].firstChild.data);
                    //MKC20060928 pre-select country option from the URL
                    var selectedoption = xmldoc.getElementsByTagName('display')[i].getAttribute('s')
                    if (selectedoption != null) {
                        if (selectedoption == 1) {
                            rDestObj.options[rDestObj.options.length - 1].selected = 'selected';
                            switch (getRefToObject('CurrentLevel').value) {
                                case "1":
                                    fArrivalsL1OnChange(getRefToObject('DestinationL1'));
                                    break;
                                case "2":
                                    fArrivalsL2OnChange(getRefToObject('DestinationL2'));
                                    break;
                                case "3":
                                    fArrivalsL3OnChange(getRefToObject('DestinationL3'));
                                    break;
                                case "4":
                                    fArrivalsL4OnChange(getRefToObject('DestinationL4'));
                                    break;
                            }
                        }
                    }
                }
            }

            //MKC20060928 If there's only one option then preselect it and load the next level of options
            if (i == 1) {
                rDestObj.options[1].selected = 'selected';
                switch (getRefToObject('CurrentLevel').value) {
                    case "1":
                        fArrivalsL1OnChange(getRefToObject('DestinationL1'));
                        break;
                    case "2":
                        fArrivalsL2OnChange(getRefToObject('DestinationL2'));
                        break;
                    case "3":
                        fArrivalsL3OnChange(getRefToObject('DestinationL3'));
                        break;
                    case "4":
                        fArrivalsL4OnChange(getRefToObject('DestinationL4'));
                        break;
                }
            }

            rDestObj.disabled = false;
            rDestObj.style.display = 'block';
            if (getRefToObject('WaitingFor' + rDestObj.name)) { getRefToObject('WaitingFor' + rDestObj.name).style.display = 'none'; }
        }
    }

    if (rDestObj.options.length < 2) {
        rDestObj.disabled = true;
        rDestObj.style.display = 'none';
    }

}
 
