var xmlhttp = null;
var xmlDoc = null;
var statusArray = new Array();
var xmlResultsReturned = false;
var xmlTimeout;
//initialize here. We will overwrite this if a new error message is returned
var tmpXMLResponse = "Timeout while connecting to DB";
tmpXMLFor = "";

function initializeXmlHttp() {
    //initialize the XML object
	  //load appropriate xml parser, based on browser    
    /*@cc_on @*/
    /*@if (@_jscript_version >= 5)
    try {
        xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    try {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {

    xmlhttp=false;
    }
    }
    @else
    xmlhttp=false
    @end @*/
  

    if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
	      try {
		        xmlhttp = new XMLHttpRequest();
	      } catch (e) {
		        xmlhttp=false;
	      }
    }
    if (!xmlhttp && window.createRequest) {
	      try {
		        xmlhttp = window.createRequest();
	      } catch (e) {
		        xmlhttp=false;
	      } 
    }
}

function getXML(url, xmlRequestType) {
    
    //reset globals
    xmlResultsReturned = false;
    statusArray = [];
        
    initializeXmlHttp();
    
    //using async set to false - now code is synchronous 
    xmlhttp.open("GET", url, true);
    
    //put a setTimeout here to check if statusMessage comes back
    xmlTimeout = setTimeout("xmlFailed("+ xmlRequestType +")", 30000);  
   
    xmlhttp.onreadystatechange = function () {
        //need some type of error checking here since we turned
        //off asynchronous xmlhttp.open - it is now synchronous
        //so if we never get successful XML, we will be stuck in a loop
        
        if (xmlhttp.readyState == 4){
            //if xmlResultsReturned is true, alert the user 
            //and submit the form
    
            clearTimeout(xmlTimeout);
            xmlResultsReturned = parseXML(xmlRequestType);
            
            if (xmlResultsReturned){
                //successful xml return
                //clear the xml response
                xmlResultsReturned = false;
                xmlhttp = null;
                xmlDoc = null;
                if (xmlRequestType != "carriers") {
                    showResults(xmlRequestType);
                }
            }
            else {
                //problem returning xml
                xmlFailed(xmlRequestType);
            }
        }//end if xmlhttp.readystate = 4
    }
        
    xmlhttp.send(null);

}//end function getXML


function parseXML(xmlRequestType) {
    var results = false;  
    //now open xml doc and parse it
    xmlDoc = xmlhttp.responseXML;
    //alert(xmlhttp.responseText);
    //store xml response in a variable for debugging if necessary
    tmpXMLResponse = xmlhttp.responseText;
    
    if (xmlDoc != null) {
        if (xmlRequestType == "maintenance") {
			var elem = xmlDoc.getElementsByTagName("maintenance");
					
			if (elem.length > 0) {
				statusArray[0] = xmlDoc.getElementsByTagName("status")[0].firstChild.nodeValue;
				statusArray[1] = xmlDoc.getElementsByTagName("statusMsg")[0].firstChild.nodeValue;
				results = true;
			}
		}
		else if (xmlRequestType == "carriers") {
		    var elem = xmlDoc.getElementsByTagName("facility");
		    	
			updateCarrierFacilityList(elem);
            results = true;
			
		}
	}//end if xmlDoc != null
	  
	return results;
}//end function getXML

function showResults(xmlRequestType){
    //now handle the xml results
	alert(statusArray[0] + "-" + statusArray[1]);
	
	if (xmlRequestType == "maintenance") {
	    document.ModifymaintForm.submitButton.disabled = false;
	}
}

function xmlFailed(xmlRequestType) {
    //xmlhttp.send(null);
    clearTimeout(xmlTimeout);
    if (xmlRequestType != "carriers") {
        alert("Failed to return XML from DB. Error message is:");
        alert(tmpXMLResponse);
    }
   
}
