/**
 * Función para enviar información por el metodo GET o POST y
 * recibir una respuesta sin recargar la página en un <div></div>
 * especifico.
 *
 * @param pagina - Página en donde se va a consultar
 * @param respuesta - Id de la etiqueta a donde va a llegar la respuesta <div> <spam>
 * @param metodo - Metodo por el cual se envian las variables GET o POST
 * @param variables - Conjunto de Variables a enviar EJ: 'var1=Julian' ó
 *                    'nom=Julian&ape=Lasso&edad=22' ó 'dir=Calle 2 # 36&tel=4451555'
 * @param senal - Es el ID de la que va a contener el satelite que indica el estado
 *                de la conección al servidor [opcional]
 * @param dir - Es la dirección raiz donde se encuentra el sitio EJ: http://localhost/3RooKS/
 *              este paso pude ser opcional, pero si la imagenes de espera no cargan entonces es mejor
 *              utilizarolo.
 * @param ancho - Aqui pasamos el valor en pixeles de la posición a lo ancho,
 *                este valor es opcional si senal es null
 * @param alto - Aqui pasamos el valor en pixeles de la posición a lo largo,
 *               este valor es opcional si senal es null
 */
function consultar(pagina, respuesta, metodo, variables){
    document.getElementById('msg').innerHTML = '<img src="Images/loader.gif" alt="" />';
    document.getElementById('msg').style.visibility = 'visible';    
  /* Preparación de la variable 'pagina' en caso de que se haga uso del metodo GET */
  if(metodo == 'get' || metodo == 'GET'){
    metodo = 'GET';
    pagina = pagina + '?' + variables;
  }
  else{
    if(metodo == 'post' || metodo == '' || metodo == null){
      metodo = 'POST';
    }
  }
  /* Compatibilidad con FireFox, Opera y cualquier otro BUEN navegador */
  if(typeof(XMLHttpRequest) != 'undefined'){
    try{var miajax = new XMLHttpRequest();}
    catch(e){ }
  }
  else{ /* Compatibilidad para Internet Explorer 6 y 7*/
    try{var miajax = new ActiveXObject('Microsoft.XMLHTTP');}
    catch(e){var miajax = new ActiveXObject('Msxml2.XMLHTTP');}
  }
  /* Una vez incializado el objeto y definido en el contexto de nuestro script
     intentaremos abrir la conexión a la dirección indicada por la variable 'pagina' */
  try{miajax.open(metodo,pagina,true);}
  catch(e){return false;}
  /* Esta variable envía una cabecera indicando que enviaremos los datos método 'post' en
     forma urlencoded ejemplo ("mi_variable=cosa&otra_variable=otra_cosa"); */
  miajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  /* Enviamos los datos 'elementos' */
  miajax.send(variables);
  try{
    /* Justo cuando el estatus de la petición cambia esperamos a que sea igual a 4 que es igual a OK. */
    miajax.onreadystatechange = function(){
      if(miajax.readyState == 4){
          document.getElementById('msg').style.visibility = 'hidden';
          document.getElementById(respuesta).innerHTML = miajax.responseText;
      }
    }
  }
  catch(e){
    return false;
  }
  return true;
} // fin consultar();
