	var xml;
	var xsl;
	var bLoaded = true;
	var bXmlLoaded = false;
	var bXslLoaded = false;
	var xmlUrl;
	var xslUrl;
	var divName;
	var processor;
	var objXmlCont;
	var pathXmlCont;
	var ownerDocument;
	var ajaxDebugMode = false;

	function getAjaxXML(strXML, fncName){
		if (window.ActiveXObject){    
			try    
			{        
				objXmlCont = new ActiveXObject("Msxml2.DomDocument");
			}catch(e){        
				alert(e.description)    
			}
	
			try
			{
				objXmlCont.async = false;
				objXmlCont.load(strXML);
				if (ajaxDebugMode){ window.open(strXML); }
			}catch(e){        
				alert(e.description)    
			}
		}else{     
			if (document.implementation && document.implementation.createDocument){
				objXmlCont = document.implementation.createDocument("", "xml", null);        
				objXmlCont.addEventListener("load", fncName, false); 				
				objXmlCont.load(strXML);
			}else{     
				alert("Seu browser não possúi suporte aos recursos necessários.");
			}
		}
		if (window.ActiveXObject) { fncName(); }
	}
	
	function getXMLContent(pathXmlCont){
		oDocument = objXmlCont.documentElement; 
		var sPath = pathXmlCont; 
		var oDoc = oDocument; 

		if (typeof(oDoc.selectSingleNode)!='undefined'){
			return (oDoc.selectSingleNode(sPath).text); 
		}else{ 
			var doc=oDoc.nodeType==9?oDoc:oDoc.ownerDocument; 
			var res = doc.createNSResolver(oDoc.nodeType==9?oDoc.documentElement:oDoc); 
			var selectedNode = doc.evaluate(sPath,oDoc, res, 9, null).singleNodeValue;
			return (doc.evaluate(sPath,oDoc, res, 9, null).singleNodeValue.textContent);
		}
	}

	function getAjaxContent(strXLS, strXML, divNameContent){
		xmlUrl = strXML;
		xslUrl = strXLS;
		divName = divNameContent;
		if (window.ActiveXObject){    
			try    
			{        
				xml = new ActiveXObject("Msxml2.DomDocument");
				xsl = new ActiveXObject("Msxml2.DomDocument");    
			}catch(e){        
				// xml = new ActiveXObject("Microsoft.XMLDOM");        
				// xsl = new ActiveXObject("Microsoft.XMLDOM")        
				alert("Seu browser não possúi suporte aos recursos necessários.");   
			}
			
			try
			{
				xml.async = false;
				xml.load(xmlUrl);
				xsl.async = false;
				xsl.load(xslUrl)
				if (ajaxDebugMode){ window.open(strXML); }
			}catch(e){        
				alert(e.description)    
			}
		}else{     
			if (document.implementation && document.implementation.createDocument){
				xml = document.implementation.createDocument("", "xml", null);        
				xsl = document.implementation.createDocument("", "xsl", null);
				xml.addEventListener("load", onloadXml, false); 				
				xsl.addEventListener("load", onloadXsl, false);
				xml.load(xmlUrl);
				xsl.load(xslUrl);
			}else{     
				alert("Seu browser não possúi suporte aos recursos necessários.");
			}
		}
		if (window.ActiveXObject) { ajaxOnload(); }
	}

	function onloadXml(){
		bXmlLoaded = true;
		ajaxOnload();
	}

	function onloadXsl(){
		bXslLoaded = true;
		ajaxOnload();
	}

	function transformContent(){     
		try     
		{
			if (window.ActiveXObject){
				objDiv = document.getElementById(divName);              
				objDiv.innerHTML = xml.transformNode(xsl)
			}else{
				objDiv = document.getElementById(divName);              
				processor = new XSLTProcessor();
				processor.importStylesheet(xsl);
				ownerDocument = document.implementation.createDocument("", "ajaxContent", null);
				var xmlserial = new XMLSerializer();
				var newFragment = processor.transformToFragment(xml, ownerDocument);
				objDiv.innerHTML = '';
				objDiv.appendChild(newFragment);
			}
		}catch(e){
			alert(e.description);
		}
	}

	function ajaxOnload(){
		if ((bLoaded && bXmlLoaded && bXslLoaded) || window.ActiveXObject){
			transformContent();
		}
	}
