/////////////////////////////////////////

//var indice; //valor del select
var orden; //id del div en el que va incluiudo el resultado
var pagina; //nombre de la página dentro de "php"
//var lista; //nombre de la lista de la que se mostrarán resultados
//var param; //parámetro variable para establecer orden
var indice_lista; //parámetro para en el Request final cargar los primeros valores
var materia_cargada; //materia a cargar nada más iniciar la página

/*
Carga inicial de la página
*/
function cargaInicial(){
	//indice = "materias";
	var nodo_indice = document.getElementById('seleccion');
	
	//si no cargamos materia la dejamos en blanco
	materia_cargada = "";
	//loadOrden(1,indice);
	selectOption(nodo_indice);
}

/*
Carga inicial de la página con materia seleccionada
*/
function cargarMateria(id_materia){
	//indice = "materias";
	
////alert("cargando: " + id_materia);
	
	var nodo_indice = document.getElementById('seleccion');
	
	materia_cargada = id_materia;
	
	selectOption(nodo_indice);
}

/*
igual que carga inicial de la página pero para cambio de índice.
Carga el índice desde nodo "this" o el especificado por seleccionado.
*/
function selectOption(seleccionado){

	limpiarVariablesGlobales();
	var indice = seleccionado.value;
	indice_lista = indice;
	//loadOrden(1,indice);
////////alert("selectOption: " + indice);
	
	loadOrden(indice);
}

function selectResultado(seleccionado,listado){

	limpiarVariablesGlobales();
	var param = seleccionado.value;	
	var lista=listado;
	//loadOrden(2, lista, param);
	
////////alert("selectResultado: " + param + " - " + lista);	
	
	loadSeleccion(lista, param);
}

function loadOrden(seleccion){

	//comprobación del índice escogido y llamada a página
	//if (selección... blah blah blah
	
	//orden cambiaría por otros valores
	//se necesita:
	// - id del div a cambiar (orden o resultados)
	// - dirección de la página en que se encuentra (php/pagina.php)
	orden = "orden";
	pagina = "orden.php" + "?lista=" + seleccion;
	
//////alert("loadOrden: pagina = " + pagina);	
	
	makeGetRequest();
}

function loadSeleccion(lista, param){
	//comprobación del índice escogido y llamada a página
	//if (selección... blah blah blah
	
	//orden cambiaría por otros valores
	//se necesita:
	// - id del div a cambiar (orden o resultados)
	// - dirección de la página en que se encuentra (php/pagina.php)
	orden = "resultados";
	pagina = "resultados.php"  + "?lista=" + lista + "&valor=" + param;
			
////////alert("loadSeleccion: pagina = " + pagina);				
			
	makeGetRequest();
}

/*
function realizarBusqueda(){
	
//alert("buscando");
	
	limpiarVariablesGlobales();
	
	//cargamos las variables
	var T1 = document.getElementById('T1').value;
	var T2 = document.getElementById('T2').value;
	var T3 = document.getElementById('T3').value;
	var T4 = document.getElementById('T4').value;
	var T5 = document.getElementById('T5').value;
	var T6 = document.getElementById('T6').value;
	var T7 = document.getElementById('T7').value;
	
	//cargamos la página
	orden = "resultados";
	pagina = "datosbuscar.php"  + "?T1=" + T1 + "&T2=" + T2 + "&T3=" + T3 + "&T4=" + T4 + "&T5=" + T5 + "&T6=" + T6 + "&T7=" + T7;
	//pagina = "datosbuscar.php" + "?T1=" + T1;
	
//alert(orden);

	makeGetRequest();
}
*/

function createRequestObject() {
    var tmpXmlHttpObject;

    //depending on what the browser supports, use the right way to create the XMLHttpRequest object
    if (window.ActiveXObject) {
		//////////alert("activeX");
		browserIsIE =  true;
        // IE would use this method ...
        tmpXmlHttpObject = new ActiveXObject("Microsoft.XMLHTTP");
    }
	else if (window.XMLHttpRequest) {
		browserIsIE = false;
        //////////alert(browser);
		// Mozilla, Safari would use this method ...
        tmpXmlHttpObject = new XMLHttpRequest();
	
    } 

    
    return tmpXmlHttpObject;
}

var http = createRequestObject();

function makeGetRequest() {
	
//alert(orden);	
	
	page = "php/" + pagina;
	//page = "php/orden.html";
//alert("cargando petición: " + page);	
	//////////alert(page);
	
	http.open('post', page);
	
	//assign a handler for the response
	http.onreadystatechange = processResponse;
	
	//actually send the request to the server
	http.send(null);
}

function processResponse() {

	if(http.readyState == 4){
	
		//read and assign the response from the server
		var response = http.responseText;
		
////alert(response);

//alert(orden);

		//in this case simply assign the response to the contents of the <div> on the page. 
		if(orden=="orden"){
		
//alert("Es orden");
		
			document.getElementById("orden").innerHTML = response;
			
			document.getElementById("resultados").innerHTML = "";
			
			//limpiarVariablesGlobales();
			
//////alert("indice vale: " + indice_lista);

////alert("cargar materia: '" + materia_cargada + "'");
			
			if(indice_lista != "materias"){
////////alert("dentro");		
				//los organismos no tienen desplegable y hay que cargarlos directamente
				if (indice_lista == "organismos"){
					loadSeleccion(indice_lista, null);
				}
				else{
					selectResultado(document.getElementById('ordenar'),indice_lista);
				}	
			}
			
			else if (materia_cargada != ""){
////alert("cargando materia: " + materia_cargada);
				loadSeleccion(indice_lista, materia_cargada);
				materia_cargada = "";
			}
			
		}
		else if (orden == "resultados"){
		
//alert("Es resultados");		
		
			document.getElementById("resultados").innerHTML = response;
			
		}
		//If the server returned an error message like a 404 error, that message would be shown within the div tag!!. 
		//So it may be worth doing some basic error before setting the contents of the <div>
	}
	
//alert(orden);	
	
}

/*
Limpia todas las variables globales excepto indice_lista
que indica el último indice cargado
*/
function limpiarVariablesGlobales(){
	//limpiamos las variables globales
	orden = "";
	pagina = "";
	//materia_cargada = "";
}

/////////////////////////////////////////

function seleccionarDatos(datos){
	datos.parentNode.className = "datosSeleccionados";
}

function desSeleccionarDatos(datos){
	datos.parentNode.className = "datos";
}

