/*	function getXMLHttpRequest() {
		if(window.XMLHttpRequest) {	
			return new XMLHttpRequest();
		}
		else if(window.ActiveXObject) {
			versions=["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];
			for (var v in versions) {
				try {
					var h=new ActiveXObject(versions[v]);
					return h;
				}
				catch (e) {
				}
			}
		}
	}
*/
	function getXMLHttpRequest() {
		var x=null;
		if(window.XMLHttpRequest) {	
			x= new XMLHttpRequest();
			x.selectSingleNode=function(xpath) {
				var evaluator=new XPathEvaluator();
				var result=evaluator.evaluate(xpath,this,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null);
				if(result!=null) return result.singleNodeValue;
				else return null;
			};
		}
		else if(window.ActiveXObject) x=new ActiveXObject("Microsoft.XMLHttp");
		return x;
	}

	function getXML(load,onLoad,async) {
		var implementation=document.implementation && document.implementation.createDocument?"standard":window.ActiveXObject?"microsoft":0
		var standard=(document.implementation && document.implementation.createDocument);
		var microsoft=(window.ActiveXObject);
		var x;
		if (standard) {
			x=document.implementation.createDocument("", "",null);
			x.onload=function() {
				x.xml=new XMLSerializer().serializeToString(this);
				if (onLoad) onLoad();
				//alert(x.xml);
			}
		}
		else if (microsoft) {
			x=new ActiveXObject("Microsoft.XMLDOM");
			x.async=true;
			x.onreadystatechange=function() {
				if(x.readyState==4) if(onLoad) onLoad();
			}
		}
		else {
			alert('Your browser can\'t handle this script'); return;
		}
		x.async=async;
		x.load(load);
		return x;
	}

	function loadXML(text) {
		var implementation=document.implementation && document.implementation.createDocument?"standard":window.ActiveXObject?"microsoft":0
		var standard=(document.implementation && document.implementation.createDocument);
		var microsoft=(window.ActiveXObject);
		var xml;
		if(standard) {
			var x=new DOMParser();
			x=x.parseFromString(text,"text/xml");
			x.xml=new XMLSerializer().serializeToString(x);
			//alert(x.xml);
			return x;
		}
		else if(microsoft) {
			xml=new ActiveXObject("Microsoft.XMLDOM");
			return xml.loadXML(text);
		}
	}

	function xml2text(xml,contents) {
		var implementation=document.implementation && document.implementation.createDocument?"standard":window.ActiveXObject?"microsoft":0
		var standard=(document.implementation && document.implementation.createDocument);
		var microsoft=(window.ActiveXObject);
		alert(xml.childNodes.length);
		if(standard) {
			return new XMLSerializer().serializeToString(xml)
		}
		else if(microsoft) {
			return xml.xml;
		}
	}

	if (typeof Element!='undefined' && !Element.selectSingleNode) {
		try {
			Element.prototype.selectSingleNode=function(xpath) {
				var evaluator=new XPathEvaluator();
				var result=evaluator.evaluate(xpath,this,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null);
				if(result!=null) return result.singleNodeValue;
				else return null;
			}
		} catch (oops) {
			alert("oops");
		}
		//alert(Element.prototype.selectSingleNode);
	}

function xml2array(xml) {
	var array=new Array();
	for (var node in xml.childNodes) {
		var item;
		if(node.hasChildNodes()) {
			
			//array[node.nodeName]=xml2array(
		}
	}
}

