function getResponseXml(xmlUrl)
{
  return getResponseXml(xmlUrl, null);
}

function getResponseXml(xmlUrl, body)
{
/*

  // branch for native XMLHttpRequest object
  if (window.XMLHttpRequest) {
      req = new XMLHttpRequest();
      req.onreadystatechange = processReqChange;
      req.open("GET", xmlUrl, false);
      req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
//      if(req.overrideMimeType)
//        req.setRequestHeader('Connection', 'close');
      req.send(body);
  // branch for IE/Windows ActiveX version
  } else if (window.ActiveXObject) {
      req = new ActiveXObject("Microsoft.XMLHTTP");
      if (req) {
          req.onreadystatechange = processReqChange;
          req.open("GET", xmlUrl, false);
          req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
          req.send(body);
      }
  }
  return req;

*/

        if (window.XMLHttpRequest) {
        	req = new XMLHttpRequest();
        } else if (window.ActiveXObject) {
        	req = new ActiveXObject("Microsoft.XMLHTTP");
        }
        req.open("GET", xmlUrl, true);
        req.onreadystatechange = processReqChange;
        req.send(body);

}

// handle onreadystatechange event of req object
function processReqChange(){
    // only if req shows "loaded"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
        	procesaReq();
                //reqXml = get_DOM_DOC(req);
		//alert("reqXml: " + reqXml);
		//procesaReq(reqXml);
         } else {
            alert("There was a problem retrieving the XML data:\n" +
                req.statusText);
         }
    }
}

function procesaReq(){
//Redefinir en cada una de las jsp´s
alert("Se debe redefinir el tratamiento de la función procesaReq en la jsp");
/*
var idSocio = req.responseXML.getElementsByTagName("idSocio")[0].childNodes[0].nodeValue;
var idProducto = req.responseXML.getElementsByTagName("idProducto")[0].childNodes[0].nodeValue;
var descripcionProducto = req.responseXML.getElementsByTagName("descripcionProducto")[0].childNodes[0].nodeValue;
var puntosProducto = req.responseXML.getElementsByTagName("puntosProducto")[0].childNodes[0].nodeValue;
var puntosSocio = req.responseXML.getElementsByTagName("puntosSocio")[0].childNodes[0].nodeValue;
*/
//userMessageElement.innerHTML = "<font color=\"red\">" + message + "</font>";
}

/*

function get_DOM_DOC(XMLReq){
    //Verificamos que la etiqueta del nodo raiz exista en el texto
    //y si existe, verificamos si existe en la estructura XML
    //en caso de que no exista, intentamos crear la estructura
    //a partir del texto en responseText

    alert("XMLReq.responseText: " + XMLReq.responseText);
    alert("XMLReq.responseXML.documentElement: " + XMLReq.responseXML.documentElement);

    if(XMLReq.responseText.indexOf("<vaillantpremium>")!=-1 &&
        (XMLReq.responseXML.documentElement==null || XMLReq.responseXML.documentElement=="")){
	alert("1");
        var xmlDoc;
        //ProgIDs de los posibles ActiveX
        var progIdDOM_DOC = [
            "Msxml2.DOMDocument.4.0",
            "Msxml2.DOMDocument.3.0",
            "MSXML2.DOMDocument",
            "MSXML.DOMDocument"];
        for(var i=0; !_xmlDoc && i<progIdDOM_DOC.length; i++){
            try {
                xmlDoc = new ActiveXObject(progIdDOM_DOC[i]);
            }catch(ex){
                xmlDoc = false;
            }
        }

        if(xmlDoc){
            xmlDoc.async = false;
            //El texto del documento es válido así que
             //podemos crear un documento XML con él
            xmlDoc.loadXML(XMLReq.responseText);
        }

	alert("2");

	return xmlDoc;

    }
    return XMLReq.responseXML;
}

*/