//First XML Request Type
var xmlHTTPRequest;
var xmlHTTPRequestStatus = false;

function loadXMLDoc (inURL, inRequestFunction) {
	if (xmlHTTPRequestStatus == true) {
		return;
	}
	
	xmlHTTPRequest = false;

	if (window.XMLHttpRequest && !(window.ActiveXObject)) {
		//branch for native XMLHttpRequest object
		try {
			xmlHTTPRequest = new XMLHttpRequest();
		} catch(e) {
			xmlHTTPRequest = false;
		}
	} else if (window.ActiveXObject) {
		//branch for IE/Windows ActiveX version
		try {
			xmlHTTPRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				xmlHTTPRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				xmlHTTPRequest = false;
			}
		}
	}
	
	if (xmlHTTPRequest) {
		xmlHTTPRequest.onreadystatechange = inRequestFunction;
		xmlHTTPRequest.open("GET", inURL, true);
		xmlHTTPRequest.send("");
		xmlHTTPRequestStatus = true;
	}
}

//Second XML Request Type
var xmlHttp = createXmlHttpRequestObject();

function createXmlHttpRequestObject() {
	// will store the reference to the XMLHttpRequest object
	var xmlHttp;
	// this should work for all browsers except IE6 and older
	try {
		// try to create XMLHttpRequest object
		xmlHttp = new XMLHttpRequest();
	} catch(e) {
		// assume IE6 or older
		var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
		"MSXML2.XMLHTTP.5.0",
		"MSXML2.XMLHTTP.4.0",
		"MSXML2.XMLHTTP.3.0",
		"MSXML2.XMLHTTP",
		"Microsoft.XMLHTTP");
		// try every prog id until one works
		for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) {
			try {
				// try to create XMLHttpRequest object
				xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
			}
			catch (e) {}
		}
	}
	// return the created object or display an error message
	if (!xmlHttp) {
		alert("Error creating the XMLHttpRequest object.");
	} else {
		return xmlHttp;
	}
}

