// Generic xml request functions
// Ben Draper - 12/22/2006
function getXMLRequestObject() {
	var xmlH = false;

	if (!xmlH) {
		try {
			xmlH = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xmlH = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (E) {}
		}
	}

	if (!xmlH && typeof XMLHttpRequest != 'undefined') {
		try {
			xmlH = new XMLHttpRequest();
		} catch (e) {}
	}
	
	if (!xmlH && window.createRequest) {
		try {
			xmlH = window.createRequest();
		}
		catch (e) {}
	}

	return xmlH;
}

function sendXMLRequest(method, url, func) {
	sendXMLRequest(method, url, func, null);
}


function sendXMLRequest(method, url, func, params) {
	var xmlhttp = getXMLRequestObject();
	if (url == null) url = '/';
	xmlhttp.open(method, url, true);
    if (func != null) {
        xmlhttp.onreadystatechange = function()	{
            eval('if (xmlhttp.readyState==4) {' + func + '}');
        };
    }
    if (params==null) { params = '' }; // to fix "Length Required" bug in Firefox
	xmlhttp.send(params);
}


