<!--
// Documento JavaScript
//Las funciones de ajax se usan cuando se hace una consulta a la bd, existe la maquetacion y se va a cargar un url en un div

																										/*======================  Tabla   1.0  ======================================= \
                                                                                                        |                                                                              |
																										|   PROPIEDAD          | DESCRIPCION                                           |   
																										|==============================================================================|
																										|   responseText       | Guarda cualquier información obtenida del servidor    |
																										|                      | como resultado de una petición en esta propiedad.     |
																										|==============================================================================|
																										|   onreadystatechange | Guarda una función que se va a llamar automaticamente |
																										|	                   | cada vez que la propiedad readyState cambie.          |
																										|==============================================================================|
																										|   readyState         | Guarda el status de la respuesta del servidor, donde: |
																										|	                   | 0: request not initialized                            |
																										|                      | 1: server connection established                      |
																										|                      | 2: request received                                   |
																										|                      | 3: processing request                                 | 
																										|                      | 4: request finished and response is ready             |
																										|==============================================================================|
																										|  status              | 200: "OK"                                             |
																										|	                   | 404: Page not found                                   |
																										\============================================================================*/

var xmlhttp; //variable global
var bandera=0;


function generarObjetoAjax(url, parametros, divPegar, sincrono){//funcion generalizada para usar ajax
  var url = url + parametros;	//ej. url =  cinemex.com + ?Idpelicula=234
  if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();//se instancia XMLHttpRequest, el cual es usado para pedir informacion de un servidor
  }//if si es IE7, Firefox, etc...
  else{// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");//se instancia ActiveXObject, el cual es usado para pedir informacion de un servidor
  }//else 
  if(sincrono==true){
      xmlhttp.onreadystatechange=function(){//la propiedad 'onreadystatechange' contiene una funcion que checa si la respuesta del servidor esta lista para ser procesada ver tabla 1.0
          if (xmlhttp.readyState==3){
              document.getElementById(divPegar).innerHTML  = "<img src='../../imagenes/please_wait.gif'> Procesando datos, espere por favor.";
          }//if
          else if (xmlhttp.readyState==4) { //si la peticion del objeto xmlhttp esta finalizada y la respuesta del servidor lista
              cargarDiv(divPegar);//llamamos a la funcion cargarDiv y mandamos como parametro el div donde queremos que se cargue nuestra peticion
          }//else if ready state ==4
      }//funcion .onreadystatechange
  //Mandamos nuestra peticion al servidor usamos los metodos open() y send()
      xmlhttp.open("GET",url, true);//especifica el tipo de peticion GET/POST, el url, y si debe ser manejado asincronamente o no, es decir si usamos false le estamos diciendo al objeto que espere hasta que la petición al servidor este completa antes de que se ejecute la siguiente orden
      xmlhttp.send();//quita la peticion del servidor, metdo usado con post para mandar los parametros
  }//asincrono es true
  else{
      xmlhttp.open("GET",url, false);
      xmlhttp.send();
      cargarDiv(divPegar);
  }//asincrono es false
  return false;
}//funcion generarObjetoAjax

function inyectarHtml(div, html){
  document.getElementById(div).innerHTML = html;
}

function cargarDiv(nombreDivCargar){
  if (xmlhttp.readyState==4 && xmlhttp.status==200){
      inyectarHtml(nombreDivCargar, '');
      inyectarHtml(nombreDivCargar, xmlhttp.responseText);
  }//if que la peticion esta lista
  else {
      alert("Hay un problema con los datos regresados");
  }//else
}// funcion cargar div

function limpiarDiv(){//lenght argumentos
  var tope = arguments.length;
  for(var i=0; i<tope; i++){
      inyectarHtml(arguments[i], '');
  }//for
}//funcion

function limpiarDivs(arreglo){//recibe un arreglo
  for(var i in arreglo){
      inyectarHtml(arreglo[i], '');
  }//for
}//funcion

function desplegarElementoAjax(url, parametros, divPegar, divEsconder) {
  esconderElemento(divEsconder);	// llamamos a una funcion ubicada en el archivo objetoEM.js
  generarObjetoAjax (url, parametros, divPegar, true);
}

function cargarCombo(combo, nombreVar, url, divPegar){
  var parametros = '?' + nombreVar + '=' + combo.value;
  generarObjetoAjax (url, parametros, divPegar, false);
}

function mostrarInput(combo, divMostrar){
  if (combo.value>0) mostrarElemento(divMostrar);
  else esconderElemento(divMostrar);	
}
-->
