function ajaxhttp()
{
    if(window.XMLHttpRequest) {
    	try {
			objhttp = new XMLHttpRequest();
        } catch(e) {
			objhttp = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
       	try {
        	objhttp = new ActiveXObject("Microsoft.XMLHTTP");
      	} catch(e) {
        	try {
          		objhttp = new ActiveXObject("Msxml2.XMLHTTP");
        	} catch(e) {
          		objhttp = false;
        	}
		}
    }
  return(objhttp);
}

function ajaxexec(programa,xsl,qdiv)
{
  var ohttp = ajaxhttp();
  ohttp.open("GET",programa,true);
  
  ohttp.setRequestHeader("Cache-Control", "no-cache");
  ohttp.setRequestHeader("Pragma", "no-cache");
  

  ohttp.onreadystatechange=function()
  {
   if (ohttp.readyState==4)
    {
	  var retorno = ohttp.responseText;
	  //var retorno = ohttp.statusText;
	  
      produceXML(retorno,xsl,qdiv);
      ///TransformarXML(retorno,xsl,qdiv);

    }
   /*
   else if (ohttp.readyState==1) {
       if( document.implementation && document.implementation.createDocument ) {
		  document.getElementById(qDiv).innerHTML = "";
		  document.getElementById(qDiv).innerHTML = "Carregando...";
		  //document.getElementById(pDiv).appendChild("Carregando...");
       }
       else // Windows
       {
          document.all.item(qDiv).innerHTML = "";
          document.all.item(qDiv).innerHTML = "Carregando...;

       }
   }
   */ 
  }
  
  if( window.ActiveXObject && /Win/.test(navigator.userAgent) ) {
     ohttp.send();
  }
  else {
     ohttp.send(null);
  }
}

function ajaxpost(programa,xsl,qdiv,parameters)
{
  var ohttp = ajaxhttp();
 
  
      ohttp.open('POST', programa, true);
      ohttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      ohttp.setRequestHeader("Content-length", parameters.length);
      ohttp.setRequestHeader("Connection", "close");
      ohttp.send(parameters);

  ohttp.onreadystatechange=function()
  {
   if (ohttp.readyState==4)
    {
	  var retorno = ohttp.responseText;
	  //var retorno = ohttp.statusText;
	  
      produceXML(retorno,xsl,qdiv);
      ///TransformarXML(retorno,xsl,qdiv);

    }
  }
  
}
function ajaxfunc(programa)
{
  var ohttp = ajaxhttp();
  ohttp.open("GET",programa,false);
  
  //ohttp.setRequestHeader("Cache-Control", "no-cache");
  //ohttp.setRequestHeader("Pragma", "no-cache");
  
  ohttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

  if( window.ActiveXObject && /Win/.test(navigator.userAgent) ) {
     ohttp.send();
  }
  else {
     ohttp.send(null);
  }

  var retorno = ohttp.responseText;
  return retorno;
}


function produceXML(pXml,pXsl,pDiv) {
	
   var objeDiv = document.getElementById(pDiv);

   if( window.ActiveXObject && /Win/.test(navigator.userAgent) ) {

	  var xmlParse = new ActiveXObject("Microsoft.xmldom");
	  xmlParse.async = false;
	  xmlParse.loadXML(pXml);
	  xmlParse.setProperty("SelectionLanguage", "XPath");

	  var xmlFormat = new ActiveXObject("Microsoft.xmldom");
	  xmlFormat.async = false;
	  xmlFormat.load(pXsl);

//Transformação
	  
	  objeDiv.innerHTML = "";
      //document.all.item(pDiv).innerHTML = "";
      var tempHTML;
	  tempHTML = xmlParse.transformNode(xmlFormat);
      objeDiv.innerHTML = tempHTML;
	  //document.all.item(pDiv).innerHTML = tempHTML;

   }

   else if( document.implementation && document.implementation.createDocument ) {

		  var xslStylesheet;
	 	  var xsltProcessor = new XSLTProcessor();
		  var myDOM;

		  //var my1XMLHTTPRequest = new XMLHttpRequest();
		  //my1XMLHTTPRequest.open("GET", "php/modelo.xml", false);
		  //my1XMLHTTPRequest.send(null);
		  //xmlDocument = my1XMLHTTPRequest.responseXML;

		  var myXMLHTTPRequest = new XMLHttpRequest();
		  myXMLHTTPRequest.open("GET", pXsl, false);
		  myXMLHTTPRequest.send(null);
		  xslStylesheet = myXMLHTTPRequest.responseXML;
		  xsltProcessor.importStylesheet(xslStylesheet);

		  // load the xml file isto continua quando for xml do php
     	  var xmlParser = new DOMParser();
    	  var xmlDocument = xmlParser.parseFromString(pXml, 'text/xml');


		  var fragment = xsltProcessor.transformToFragment(xmlDocument,document);
		  document.getElementById(pDiv).innerHTML = "";
		  myDOM = fragment;
		  document.getElementById(pDiv).appendChild(fragment);
   }

}

// Esta função não está sendo usada, pode servir para estudo

function TransformarXML(pXml,pXsl,pDiv) {
var ConteudoTransformado;
var objeDiv = document.getElementById('divConteudo');
var objeXml;
var objeXsl;

//Para funcionar no Internet Explorer
if (window.ActiveXObject) {
//Carregando o Arquivo XML
var objeXml = new ActiveXObject("Microsoft.XMLDOM");
objeXml.async = false;
objeXml.load(pXml);
//Carregando o Arquivo XSL
var objeXsl = new ActiveXObject("Microsoft.XMLDOM");
objeXsl.async = false;
objeXsl.load(pXsl);
//Transformação
ConteudoTransformado = objeXml.transformNode(objeXsl);
objeDiv.innerHTML = ConteudoTransformado;
}
//Para funcionar no Mozilla/Firefox
else if(window.XMLHttpRequest) {
var objeXSLTProcessor;
var objeXmlDoc;
var objeXSLT;
//Criando o processador de XLST
objeXSLTProcessor = new XSLTProcessor();

//Carregando o arquivo XSL
objeXsl = new XMLHttpRequest();
objeXsl.open("GET", pXsl, false);
objeXsl.send(null);

objeXSLT = objeXsl.responseXML;
objeXSLTProcessor.importStylesheet(objeXSLT);

//Carregando o arquivo XML
objeXml = new XMLHttpRequest();
objeXml.open("GET", pXml, false);
objeXml.send(null);

objeXmlDoc = objeXml.responseXML;

ConteudoTransformado = objeXSLTProcessor.transformToFragment(objeXmlDoc, document);
objeDiv.innerHTML = '';
objeDiv.appendChild(ConteudoTransformado);
}
}
