
/* 
   Aquí están las funciones que manejan el Ajax.

   El proceso es el siguiente: Primero se crea el objeto (que dependerá del
   navegador que se use) A continuación se trata ese objeto. Cuando la propiedad
   readyState tenga valor 4 significa que el objeto está preparado y por tanto, si el
   estado es 200 (Ok) se mostrará el resultado en la capa correspondiente. Si por el 
   contrario se obtiene otro código, se mostrará el error.

   José Manuel.
   Última revisión: 18/08/2008.
*/

function crearAjax(){
  var miAjax=false;
  try{
    miAjax = new ActiveXObject("Msxml2.XMLHTTP");
  } 
  catch(excepcion1){
    try{
      miAjax = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch(excepcion2){
      miAjax = false;
    }
  }

  if(!miAjax && typeof XMLHttpRequest != 'undefined'){
     miAjax = new XMLHttpRequest();
  }
  return miAjax;
}

function tratarAjax(miAjax,capa){
  var capaResultados = document.getElementById(capa);
  if((miAjax.readyState == 1) && (capa == "cuerpo")){
    capaResultados.innerHTML = "<p align = 'center'><img src = 'imagenes/cargando.gif' alt = 'Cargando...'></p>";    
  }
  if(miAjax.readyState == 4){
    if(miAjax.status == 200){
      document.getElementById(capa).innerHTML=miAjax.responseText;
     }
     else{
       capaResultados.innerHTML = "<b>Se ha producido un error.</b>";
     }
  }
}

function iniciarAjax(url,capa,valores){
  var miAjax = crearAjax();
  miAjax.open('POST',url,true);
  miAjax.onreadystatechange = function(){
    tratarAjax(miAjax,capa);
  }
  miAjax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  miAjax.send(valores);
  return;
}

