var XML={};
XML.debug=false;
XML.newDocument=function(rootTagName,namespaceURL){
	if (!rootTagName) rootTagName="";
	if (!namespaceURL) namespaceURL="";
	if (document.implementation && document.implementation.createDocument){
		return document.implementation.createDocument(namespaceURL,rootTagName,null);
	}
	else {
		var doc=new ActiveXObject("MSXML2.DOMDocument");
		if (rootTagName){
			var prefix="";
			var tagname=rootTagName;
			var p=rootTagName.indexOf(':');
			if (p!=-1){
			prefix=rootTagName.substring(0,p);
				tagname=rootTagName.substring(p+1);
			}
			if (namespaceURL) {
				if (!prefix) prefix="a0";
			}
			else prefix="";
			var text="<"+(prefix?(prefix+":"):"")+tagname+
				(namspaceURL?("xmlns:"+prefix+'="'+namspaceURL+'"')
				:"")+"/>";
				doc.loadXML(text);
		}
if (XML.debug) alert("in new xml: doc " + typeof doc);		
		return doc;
	}
};
XML.load = function(url){
	if (XML.debug) alert('in XML.load('+url+')');
	var xmldoc=XML.newDocument();
	if (XML.debug) alert(xmldoc);
	xmldoc.async=false;
	xmldoc.load(url);
	if (XML.debug){
		alert('in XML.load');
		alert(xmldoc.async);
	};	
	return xmldoc;
};
XML.loadasync=function(url,callback){
	var xmldoc=XML.newDocument();
	if (document.implementation && document.implementation.creatDocument){
		xmldoc.onload=function(){callback(xmldoc);};
	}
	else {
		xmldoc.onreadystatechange=function(){
			if (xmldoc.readyState==4) callback(xmldoc);
		};
	}
	xmldoc.load(url);
	
};