// JavaScript Document
//  Vamos a presuponer que el usuario es una persona inteligente...
var isIE = false;
//  Creamos una variable para el objeto XMLHttpRequest
var req;

function processReqChange(elemento){
    //    Referencia a nuestro DIV con ID unica:
    var detalles = document.getElementById(elemento);
    //    Si se ha completado la carga de datos, los mostramos en el DIV...
    if(req.readyState == 4){
        detalles.innerHTML = req.responseText;
    } else {
        //    ...en caso contrario, le diremos al usuario que los estamos cargando:
        detalles.innerHTML = '<select class="inputText"><option value=""> Cargando...</option></select>';
    }
}

//  Creamos una funcion para cargar los datos en nuestro objeto.
//  Logicamente, antes tenemos que crear el objeto.
//  Vease que la sintaxis varia dependiendo de si usamos un navegador decente
//  o Internet Explorer
function cargaXML(url, elemento) {
    //  Primero vamos a ver si la URL es una URL :)
    if(url==''){
        return;
    }
    //  Usuario inteligente...
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = function()
		{
			processReqChange(elemento)
		};
        req.open("GET", url, true);
        req.send(null);
    //  ...y usuario de Internet Explorer Windows
    } else if (window.ActiveXObject) {
        isIE = true;
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = function()
			{
				processReqChange(elemento)
			};
            req.open("GET", url, true);
            req.send();
        }
    }
}


function processReqChangeVarios(elemento1, elemento2){
    //    Referencia a nuestro DIV con ID unica:
    var elemento1 = document.getElementById(elemento1);
	var elemento2 = document.getElementById(elemento2);
	
    //    Si se ha completado la carga de datos, los mostramos en el DIV...
    if(req.readyState == 4){
		var s = req.responseText.split('|||');
        elemento1.innerHTML = s[0];
		elemento2.innerHTML = s[1];
    } else {
        //    ...en caso contrario, le diremos al usuario que los estamos cargando:
        elemento1.innerHTML = '<select class="inputText"><option value=""> Cargando...</option></select>';
    }
}

//  Igual que la anterior, pero puedes sustituir los datos de dos elementos del html
// 	El URL tiene que devolvernos tantos bloques de html como elementos vamos a sustituir
//	Dichos bloques tienen que estar separados por la cadena '|||'
function cargaVariosXML(url, elemento1, elemento2) {
    //  Primero vamos a ver si la URL es una URL :)
    if(url==''){
        return;
    }
    //  Usuario inteligente...
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = function()
		{
			processReqChangeVarios(elemento1, elemento2)
		};
        req.open("GET", url, true);
        req.send(null);
    //  ...y usuario de Internet Explorer Windows
    } else if (window.ActiveXObject) {
        isIE = true;
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = function()
			{
				processReqChangeVarios(elemento1, elemento2)
			};
            req.open("GET", url, true);
            req.send();
        }
    }
}


function processReqChangeArray(elementos){
    //    Si se ha completado la carga de datos, los mostramos en el DIV...
    if(req.readyState == 4){
		var s = req.responseText.split('|||');
		var esteElemento;
		for (esteElemento in elementos)
		{
		   	document.getElementById(elementos[esteElemento]).innerHTML = s[esteElemento];
		}
	
    } else {
        //    ...en caso contrario, le diremos al usuario que los estamos cargando:
		for (esteElemento in elementos)
		{
		   	document.getElementById(elementos[esteElemento]).innerHTML = '<select class="inputText"><option value=""> Cargando...</option></select>';
		}
    }
}


//  Funcion para cargar los datos en nuestro objeto.
//  Logicamente, antes tenemos que crear el objeto.
//  Vease que la sintaxis varia dependiendo de si usamos un navegador decente
//  o Internet Explorer
//  Pasamos como parametro la url que generara el nuevo codigo php y un array de elementos. 
//  La funcion dividira el codigo que devuelve el php por la cadena '|||' y cargara 
//  las distintas partes resultantes en cada uno de los elementos
function cargaArrayXML(url, elementos) {
	 //  Primero vamos a ver si la URL es una URL :)
    if(url==''){
        return;
    }
    //  Usuario inteligente...
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = function()
		{
			processReqChangeArray(elementos)
		};
        req.open("GET", url, true);
        req.send(null);
    //  ...y usuario de Internet Explorer Windows
    } else if (window.ActiveXObject) {
        isIE = true;
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = function()
			{
				processReqChangeArray(elementos)
			};
            req.open("GET", url, true);
            req.send();
        }
    }
	
}
