// 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);
}

