// AJAX (Asynchronous Javascript And Xml) functions
//
// History:
// 2005-Dec-13 - Created - DMB


var AJAXhttpRequest = false;
	   
function OpenAJAXRequest (sURL, oFunctionToCall) {
	// purpose:
	// begin the XMLHTTP data transfer.
	//
	// parameters:
	// sURL - a string URL that will provide the XML
	// oFunctionToCall - a passed function that will be executed once the XMLHTTP request completes

  	AJAXhttpRequest = false;
   	if (window.XMLHttpRequest) { // for Mozilla, Safari, Opera etc.
       	AJAXhttpRequest = new XMLHttpRequest();
       	if (AJAXhttpRequest.overrideMimeType) {
           	AJAXhttpRequest.overrideMimeType('text/xml');
       	}
  	} else if (window.ActiveXObject) { // for IE
       	try {
	       	AJAXhttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
   		} catch (e) {
       		try {
       			AJAXhttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
       		} catch (e) {}
   		}
	}
   	if (!AJAXhttpRequest) {
   		alert('XMLHttp instance failed - Your browser does not support this feature.');
   		return false;
   	}

   	AJAXhttpRequest.onreadystatechange = oFunctionToCall;
   	AJAXhttpRequest.open('GET', sURL, true);
  	AJAXhttpRequest.send(null);
}


function AJAXRequestComplete () {
	// purpose:
	// return the ready state of the XMLHTTP request.
	// returns true if the XML is ready to be read.
	// returns false if the XML is not yet ready.
	//
	// parameters:
	// none
	
	if (AJAXhttpRequest.readyState == 4) {
		if (AJAXhttpRequest.status == 200) {
			return true;
		} else {
			return false;
		}
	} else {
		return false;
	}
}

function GetAJAXRequestXML () {
	// purpose:
	// return the XML from the XMLHTTP request.
	//
	// parameters:
	// none
	
	if (AJAXRequestComplete()) {
		return AJAXhttpRequest.responseXML;
	} else {
		return null;
	}
}	


