var XMLRequestObject;

/*
try 
{
	netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
} 
catch (e) 
{
	alert("Permission UniversalBrowserRead denied.");
}
*/

function createRequestObject()
{
    if(window.XMLHttpRequest) 
	{
    	try 
		{
			XMLRequestObject = new XMLHttpRequest();
        } 
		catch(e) 
		{
			XMLRequestObject = false;
        }
    } 
	else if(window.ActiveXObject) 
	{
       	try 
		{
        	XMLRequestObject = new ActiveXObject("Msxml2.XMLHTTP");
      	} 
		catch(e) 
		{
        	try 
			{
          		XMLRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
        	} 
			catch(e) 
			{
          		XMLRequestObject = false;
        	}
		}
    }
	if(XMLRequestObject) 
	{
		XMLRequestObject.onreadystatechange = processRequestResults;
		try
		{
			XMLRequestObject.onerror = flagAJAXError;
		}
		catch(e) 
		{
		}
	}
}

function loadXMLDoc(url,method,sendPost,postprocessor) 
{
	if (XMLRequestObject && (XMLRequestObject.readyState != 4 && XMLRequestObject.readyState != 0))
	{
		delayParams = "'" + url + "','" + method + "','" + sendPost + "'";
		if (postprocessor != null) delayParams += ",'" + postprocessor + "'";
		AutoLoadInterval = setTimeout("loadXMLDoc("+delayParams+")",100);	
	}
	else
	{
		createRequestObject();
	
		if(XMLRequestObject) 
		{
			if (method == "POST")
			{
				XMLRequestObject.open(method, url, true);
				XMLRequestObject.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
				XMLRequestObject.send(encodeURI(sendPost));
			}
			else
			{
				url += "?";
				url += encodeURI(sendPost);
				XMLRequestObject.open(method, url, true);
				XMLRequestObject.send(null);
			}
		}
	}
}

function checkRequestResults() 
{
	return (XMLRequestObject.readyState == 4 && XMLRequestObject.status == 200);
}

function getNodeValue(node,subnode)
{
	if (!node) node = XMLRequestObject.responseXML;
	try
	{
		if (node.getElementsByTagName(subnode)[0].hasChildNodes())
		{
			return node.getElementsByTagName(subnode)[0].firstChild.nodeValue;
		}
		else
		{
			return node.getElementsByTagName(subnode)[0];
		}
	}
	catch (ooErrMissus)
	{
		return "";
	}
}

function getResponseHTML()
{
	try
	{
		return XMLRequestObject.responseText;
	}
	catch (oErr)
	{
		return "";
	}
}

function flagAJAXError()
{
	alert(XMLRequestObject.responseText);
}
