/*
 * Archivo: JavaScript/gridAZ.js
 * Descripcion: Script para uso de AJAX de gridAZ
 * Autor: Ing. Carlos Yerena <cyerena@aztecomp.com>
 * Fecha: 22/04/2010
 * 
 */

function generaGrid(directorio,contenedor,orden){
	creaGridAjax(directorio+'gridAZ.php',contenedor,'POST','','contenedor='+contenedor+'&orden='+orden);
}

// Automáticamente se crea un iFrame para cargar archivos JScritp
function creaFrame(){
		var miFrame=document.createElement("iframe");
		miFrame.style.display="none";
		miFrame.id="frameGridAZJS";
		miFrame.name="frameGridAZJS";
		document.body.appendChild(miFrame);	
}

// Validando navegador para insertar el objeto XMLHttpRequest
function obtenXMLHttp(){
	var xmlhttp = false;

	try{
		// Si la versión de Explorer es superior a la 5
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		// Si no, se usa el ActiveX antiguo
		try{
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
		}
	}

	// Se se está usando un navegador distinto a IE
	if(!xmlhttp && typeof XMLHttpRequest != 'undefined'){
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}

// Función para mostrar un respuesta XMLHttpRequest de una página dada en un contenedor
function creaGridAjax(pagina,objeto,GetPost,formulario,cadena,comandos,archivoJS,nocarga){
	// Parte constante de avisos de carga
	var cargandoImg = '';
	
	// Establece el DOM del objeto en que se incrutstará el resultado
	var Obj = document.getElementById(objeto);
	
	// Generar el objeto XMLHttpRequest
	var xmlhttp = obtenXMLHttp();
	
	// Valida que el método GET o POST se escribieron correctamente y existen
	if(GetPost != "GET" && GetPost != "POST"){
		Obj.innerHTML = "<div class=\"carga\">No se estableci&oacute; el m&eacute;todo de env&iacute;o</div>";
	}
	
	// En caso de que sea GET el método
	if(GetPost == "GET"){
		if(nocarga != 1)
			Obj.innerHTML = "<div class=\"carga\"><center>" + cargandoImg + " Cargando ..</center></div>";
		xmlhttp.open("GET", pagina,true);
	}

	// En caso de que sea POST el método
	if(GetPost == "POST"){
		/* Deterina si el formulario existe, en caso de que si exista se invalida la cadena de caracteres de petición
		 * formando una nueva cadena en base a los elementos de formulario */
	
		if(Formul = document.getElementById(formulario)){
			if(Formul.elements.length > 0)
				valores = "";
	
			for(var i = 0; i < Formul.elements.length; i++){
				if(Formul.elements[i].name != ""){
					valores += Formul.elements[i].name + "=" + escape(Formul.elements[i].value);
				}
				if(Formul.elements[i + 1]){
					valores += "&";
				}
			}	
			if(cadena.length > 0)
				valores += "&"+cadena;
		} else {
			valores = cadena;
		}
		valores = unescape(valores);
		if(nocarga != 1)
			Obj.innerHTML = "<div class=\"carga\"><center>" + cargandoImg + " Cargando ..</center></div>";
		xmlhttp.open("POST", pagina,true);
		xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	}
	
	// Realiza la consulta esperando que se complete la petición
	xmlhttp.onreadystatechange=function() {
		if(xmlhttp.readyState == 1){
			if(nocarga != 1)
				Obj.innerHTML = "<div class=\"carga\"><center>" + cargandoImg + " Abriendo ...</center></div>";
		}
		if(xmlhttp.readyState == 2){
			if(nocarga != 1)
				Obj.innerHTML = "<div class=\"carga\"><center>" + cargandoImg + " Enviando ...</center></div>";
		}
		if(xmlhttp.readyState == 3){
			if(nocarga != 1)
				Obj.innerHTML = "<div class=\"carga\"><center>" + cargandoImg + " Cargando ...</center></div>";
		}
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
			Obj.innerHTML = xmlhttp.responseText;
		
			// Establece si existe el frame de carga de archivo JS
			try {
				document.getElementById('frameGridAZJS').src;
			} catch (E) {
				creaFrame();
			}
			if(archivoJS != null && archivoJS != "") {
				document.getElementById('frameGridAZJS').src=archivoJS;
			} else {
				//document.getElementById('frameGridAZJS').src='';
			}
			
			if(comandos != null && comandos != "")
				eval(comandos);
			

		}
	}
	
	// Envía los valores necesario según el tiempo de petición, GET = null POST = cadena
	if(GetPost == "GET")
		xmlhttp.send(null);
	if(GetPost == "POST")
		xmlhttp.send(valores);
}



