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);
 }


 function assignResult(http_request, rDestObj) {
  
     if (http_request.readyState == 4) {
         if (http_request.status == 200) {            
             rDestObj.value = http_request.responseText;
         } else {
             //rDestObj.value = '';
         }
     }
 }
  
 function displayLogos(http_request, aSearchers) {
 
     if (http_request.readyState == 4) {
         if (http_request.status == 200) {            
            var xmlS;
            xmlS = http_request.responseXML;
            
            for(i=0;i<=NoOfSearchers-1;i++) {
                var lFound = false;
                var lDep = '';
                var lArr = '';
                
                var TotalClients = xmlS.getElementsByTagName('c')[0].firstChild.data;
                
                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('GO' + aSearchers[i][1]).src = '/images/compareprices.gif';
                    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) {
                        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';
                }
                aSearchers[i][4] = lDep;
                aSearchers[i][5] = lArr;
            }
            if (TotalClients < 5 && document.getElementById("Logooverturetopofferflin"))
                document.getElementById("Logooverturetopofferflin").style.display = "block";
            else
                document.getElementById("Logooverturetopofferflin").style.display = "none";

            if (TotalClients < 5 && document.getElementById("Logooverturefeelingluckyflin"))
                document.getElementById("Logooverturefeelingluckyflin").style.display = "block";
            else
                document.getElementById("Logooverturefeelingluckyflin").style.display = "none";

            if (TotalClients < 5 && document.getElementById("Logooverturelastminuteflin"))
                document.getElementById("Logooverturelastminuteflin").style.display = "block";
            else
                document.getElementById("Logooverturelastminuteflin").style.display = "none";
               
         } 
     }
 }
 
 function getXMLContentsIntoOptions(http_request, rDestObj) {

    var sDefaultDesc = rDestObj.options[0].innerHTML;
    var lSelected = '';
    var preselected = false;
    var t;
     
     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 
             if (http_request.responseText.indexOf('/root') - http_request.responseText.indexOf('root') == 10){
                try{
    
                    if (document.getElementById("flightsfound"))
                    {            
                        document.getElementById("flightsfound").style.display = "block";
                    }       
                    if (document.getElementById("flightsfound2"))
                    {            
                        document.getElementById("flightsfound2").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';
     }
 }
 

    var xmlHttpAFS;
    var totalCount;
    totalCount = 0;

    function makeStraightRequest(str)
    {    
        totalCount = totalCount + 2;
        if ((!document.getElementById('gafsno')) || (totalCount > 1)) {
          var randomnumber=Math.floor(Math.random()*1001);
          document.getElementById("gafsno").innerHTML = '';
          document.getElementById("gafsno").style.display = 'block';
          document.getElementById("gafsno").innerHTML = '<iframe name="AFSif" id="AFSif" src="/Includes/AFS1.asp?q=' + escape(str) + '&rnd=' + randomnumber + '" width="450px" height="230px" scrolling="no" frameborder="0" marginwidth="0" marginheight="0" ></iframe>';
        }        
        if ((!document.getElementById('tzMarq')) || (totalCount > 1)) {
          document.getElementById("tzMarq").src = '/tzMarq.asp?q=' + escape(str);
        }
    } 
