function creaAjax() {
  var objetoAjax=false;
  try { /* para navegadores distintos a Internet Explorer */
    objetoAjax = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try { /* para IE */
      objetoAjax = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      objetoAjax = false;
    }
  }

  if (!objetoAjax && typeof XMLHttpRequest!='undefined') {
    objetoAjax = new XMLHttpRequest();
  }
  return objetoAjax;
}

function cargarCapaAjax (url,capa,valores,metodo,fCallBackPOST,fCallBackGET) {
  var ajax=creaAjax();
  var capaContenedora = document.getElementById(capa);

  /* Creamos y ejecutamos la instancia si el metodo elegido es POST */
  if(metodo.toUpperCase()=='POST'){
    ajax.open ('POST', url, true);
    ajax.onreadystatechange = function() {
        if (ajax.readyState==1){
          //capaContenedora.innerHTML="Cargando.......";
        } else if (ajax.readyState == 2){
          //capaContenedora.innerHTML="Enviado.......";
        } else if (ajax.readyState == 3){
          //capaContenedora.innerHTML="Recibiendo.......";
        } else if (ajax.readyState==4){
          if(ajax.status==200){
			fCallBackPOST(capa,ajax);
          } else if(ajax.status==404){
            //capaContenedora.innerHTML = "La direccion no existe";
          } else {
            //capaContenedora.innerHTML = "Error: ".ajax.status;
          }
        }
    }
    ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    ajax.send(valores);
    return;
  }

  /* Creamos y ejecutamos la instancia si el metodo elegido es GET */
  if (metodo.toUpperCase()=='GET'){
    ajax.open ('GET', url, true);
    ajax.onreadystatechange = function() {
        if (ajax.readyState==1){
          //capaContenedora.innerHTML="Cargando.......";
        } else if (ajax.readyState==4){
          if(ajax.status==200){
            // document.getElementById(capa).innerHTML=ajax.responseText;
            fCallBackGET(capa,ajax); // ˇno se utiliza en toda la aplicación!
          } else if(ajax.status==404){
            // capaContenedora.innerHTML = "La direccion existe";
          } else {
            // capaContenedora.innerHTML = "Error: ".ajax.status;
          }
        }
    }
    ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    ajax.send(null); // los parámetros se pasan junto a la URL
    return;
  }
}
