var XML_UNINITIALIZED = 0;
var XML_LOADING = 1;
var XML_LOADED = 2;
var XML_INTERACTIVE = 3;
var XML_COMPLETE = 4;

document.ELEMENT_NODE = 1;
document.TEXT_NODE = 3;

function XMLFactory()
{
	return this;
}

XMLFactory.createHttp = function()
{ 	
	obj = null;
	
	if (window.XMLHttpRequest && !browser.isIE)
	{
		obj = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		obj = new ActiveXObject(XMLFactory.getValidPrefix()+".XmlHttp");
	}
	
	return obj;
}

XMLFactory.getValidPrefix = function()
{
	if (XMLFactory.validPrefix)
		return XMLFactory.validPrefix;

	var prefixes = ["MSXML2","Microsoft","MSXML","MSXML3"];

	for(var i=0; i < prefixes.length; i++)
	{
		try
		{
			xmlhttpobj = new ActiveXObject(prefixes[i]+".XmlHttp");
			xmldomobj = new ActiveXObject(prefixes[i]+".XmlDom");
			XMLFactory.validPrefix = prefixes[i];
			return XMLFactory.validPrefix;
		}
		catch(error)
		{
		}
	}
};

function getXml(method,url,data,async,callback,params)
{ 
	/*var urlParts = url.split("?");

	if (urlParts.length > 1)
	{
		//alert(url);
		params = urlParts[1].split("&");			
		url = urlParts[0] + "?" + encodeURI(urlParts[1]);
		//alert(url);
	}*/
	
	var xmlhttp = XMLFactory.createHttp(); if (callback) xmlhttp.onreadystatechange = function(){ callback.call([xmlhttp,params]); }; xmlhttp.open(method,url,async); xmlhttp.setRequestHeader("Content-Type","text/xml"); xmlhttp.send(data); return xmlhttp;
}
