

function newDoc(xmlstr){
	try
		{
		Doc=new ActiveXObject("Microsoft.XMLDOM");
		Doc.async="false";
		Doc.loadXML(xmlstr);
		}
		catch(e)
		{
		try //Firefox, Mozilla, Opera, etc.
			{
			parser=new DOMParser();
			Doc=parser.parseFromString(xmlstr,"text/xml");
			}
		catch(e) {alert(e.message)}
		}
	return Doc
}


function XMLstring(xml2str, tab) {
	// Esctribe un XML 
	var i, E1
	var tipoAt
	var xmlstr
	xmlstr = tab + "<" + xml2str.nodeName 

	Ats = xml2str.attributes
	
	for (At = 0; At <= Ats.length -1; At++){
		xmlstr += " " + Ats[At].nodeName + "=\"" + Ats[At].value + "\""
	}
		ntab = tab + "  "


	if (xml2str.hasChildNodes()) { 
	
		xmlstr += ">"	;

		if  (xml2str.childNodes[0].nodeType != 3) { 
			xmlstr += '\r\n';
		}else{
			if (xml2str.childNodes.length > 1){
		 		if(xml2str.childNodes[1].nodeType != 3) {
				 	xmlstr += '\r\n';
				}
		   }
		}

		for (i = 0 ; i <= (xml2str.childNodes.length -1 )  ; i++){
			E1 = xml2str.childNodes[i];
			if (E1.nodeType == 1){
					xmlstr += XMLstring(E1, tab + "    ")
					xmlstr += '\r\n'
			}else if (E1.nodeType == 3){
					if (E1.data){
						str = E1.data
					}else if (E1.textContent) {
						str = E1.textContent
					}else{
						str = ""
					}		
					xmlstr += "" + str + ""
					tab = ""
			}	
		}	
		xmlstr +=  tab + "</" + xml2str.nodeName + ">"
	
	}else{
	
		xmlstr += ">"
	}
	
	
	return xmlstr
	
}

function createAJAX() {
	var xmlhttp
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");		
	} catch (e1) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");	
		} catch (e2) {
			xmlhttp = null;	
		}
	}

	if (! xmlhttp) {
		if (typeof XMLHttpRequest != "undefined") {
			xmlhttp = new XMLHttpRequest();
		} else {
			failed = true;
		}
	}
	return  xmlhttp
};


function xmlDoc(Url){

	xmlhttp = createAJAX()
	xmlhttp.open("GET", Url, false);
	xmlhttp.send("");		

	try
		{
		Doc=new ActiveXObject("Microsoft.XMLDOM");
		Doc.async="false";
		Doc.loadXML(xmlhttp.responseText);
	
		}
		catch(e)
		{		

		try //Firefox, Mozilla, Opera, etc.
			{

			parser=new DOMParser();
			Doc=parser.parseFromString(xmlhttp.responseText,"text/xml");
			}
		catch(e) {alert(e.message)}
		}
		
		
		Doc = newDoc(xmlhttp.responseText)
	return Doc
}