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 + '&r_number=' + Math.floor(Math.random()*999999), 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;
         } 
     } 
 }
 
 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 = '';
                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/go_button.gif';
                    getRefToObject('Logo' + aSearchers[i][1]).title = aSearchers[i][6];
                    getRefToObject('GO' + aSearchers[i][1]).alt = aSearchers[i][6];
                }
                else {
                    getRefToObject('Logo' + aSearchers[i][1]).style.display = 'none';
                }
                aSearchers[i][4] = lDep;
                aSearchers[i][5] = lArr;
            }
         } 
     }
}
 
 function getXMLContentsIntoOptions(http_request, rDestObj) {
    var sDefaultDesc = rDestObj.options[0].innerHTML;


     
     if (http_request.readyState == 4) {
         if (http_request.status == 200) {
            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;
                          }
                        }
                    }
               }
            }

            rDestObj.disabled = false;
            rDestObj.style.display = 'block';
            if(getRefToObject('WaitingFor' + rDestObj.name)) {getRefToObject('WaitingFor' + rDestObj.name).style.display = 'none';}
       } 
     }
     else {
     }
     if (rDestObj.options.length < 2) {
        rDestObj.disabled = true;
        rDestObj.style.display = 'none';
     }
 }
 

