
var xmlRequest;

function loadXMLDoc(url, process, requestType, params) {
	//  Set Default of "GET" for request type
	if (requestType === undefined) {
		requestType = 'GET';
	}
	if (params === undefined && requestType == 'POST') {
		params = null;
	}
	
	//	Branch for native XMLHttpRequest object
	if (window.XMLHttpRequest) {
		xmlRequest = new XMLHttpRequest();
		xmlRequest.onreadystatechange = function() { processReqChange(process); };
		if (requestType == 'POST') {
			xmlRequest.open('POST', url, true);
			xmlRequest.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
		} else {
			xmlRequest.open('GET', url, true);
		}
		xmlRequest.send(params);
		return true;
	//	Branch for IE/Windows ActiveX version
	} else if (window.ActiveXObject) {
		xmlRequest = new ActiveXObject('Microsoft.XMLHTTP');
		if (xmlRequest) {
			xmlRequest.onreadystatechange = function() { processReqChange(process); };
			if (requestType == 'POST') {
				xmlRequest.open('POST', url, true);
				xmlRequest.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
			} else {
				xmlRequest.open('GET', url, true);
			}
			//req.send();
			xmlRequest.send(params);
			return true;
		}
	//	Browser doesn't support XMLHttp Requests
	} else {
		return false;
	}
}

function processReqChange(requestFunction) {
	// "Complete"
	if (xmlRequest.readyState == 4) {
		// "OK"
		if (xmlRequest.status == 200) {
			if (requestFunction != null) {
				eval(requestFunction + '();');
			}
		} else {
			alert('There was a problem retrieving the requested data:\nPlease try back later');
			catchError('processReqChange', xmlRequest.statusText);
		}
	}
}

