// Ordenación
var sTipoOrden = aArrayAlertas[iIdioma][2];

// Cambiar el action de los submit y añadir eventos a los checks
function cambiarActions() {

	var oFormBuscador = document.getElementById("formBuscaHotel");
	var oFormOrden = document.getElementById("formOrdenacion");
	
	if(oFormBuscador) {
		asignarEventos(oFormBuscador);
		oFormBuscador.onsubmit = function() {recargarListado(oFormBuscador, oFormOrden); return false;};
	}
	if(oFormOrden) {
		oFormOrden.onsubmit = function() {recargarListado(oFormBuscador, oFormOrden); return false;};
		
		// Asignar eventos a los botones de ordenación
		document.getElementById("tipoOrden_1").onclick = function() {sTipoOrden=aArrayAlertas[iIdioma][2];};
		document.getElementById("tipoOrden_2").onclick = function() {sTipoOrden=aArrayAlertas[iIdioma][3];};
	}
	
	
}

// Asignar eventos a los elementos checks y select del formulario
function asignarEventos(oForm) {

	var i;
	var sTipo;

	for(i=0;i<oForm.elements.length;i++){
		
		sTipo = oForm.elements[i].type;
			 	
	 	if(sTipo=="checkbox") {
	 		oForm.elements[i].onclick = function() {registrarUrchin(this); recargarListado(oForm, "");};
	 	}
	 	else if(sTipo=="select-one") {
	 		oForm.elements[i].onchange = function() {registrarUrchin(this); recargarListado(oForm, "");};
	 	}
	 
	}

}

// Obtener el nombre y categoría del elemento en el formulario y registrarlo en las estadísticas de Urchin 
function registrarUrchin(oElem) {
	
	var sNombre = "";
	var bEnviar = false;
	
	switch (oElem.id.split("_")[0]) {
		case "categoria":	sNombre = "/categoria/" + oElem.value + " estrella";
							if(oElem.value > 1) sNombre+="s";
							if(oElem.checked) bEnviar = true; 
							break;
		case "localizacion":	sNombre = "/localizacion/" + oElem.className;
								if(oElem.checked) bEnviar = true;
								break;
		case "agrupacion":	sNombre = "/tipo_de_hotel/" + oElem.className;
							if(oElem.checked) bEnviar = true;
							break;
		case "servicio":	sNombre = "/servicios/" + oElem.className;
							if(oElem.checked) bEnviar = true;
							break;
		case "entorno":		sNombre = "/entorno/" + oElem.className;
							if(oElem.checked) bEnviar = true;
							break;
		case "concejo":		sNombre = "/concejo/" + oElem.options[oElem.selectedIndex].text;
							if(oElem.value > 0) bEnviar = true;
							break;
	}
	
	if(bEnviar) pageTracker._trackPageview(sNombre);
}

// Recargar el listado de hoteles
function recargarListado(oForm1, oForm2) {

	var sDatos = "";
	var sPreload = '<div style="width:100%;height:740px;position:absolute;top:15px;left:0;background: transparent url(/img/css/aplicaciones/fondoTrans.gif) repeat 0 0">' +
		'<img style="left:48%;top:45%;position:absolute;" src="/img/css/iconos/iconoPrecarga.gif" />' +
		'</div>';
	
	sDatos = "?" + capturarDatosForms(oForm1, oForm2); 
	sDatos += "tipoOrden=" + sTipoOrden;
	
	ajax("/inc/aplicacionesPerso/hoteles/ajax_listado.asp", sDatos, "resultados", true, sPreload);
//	window.open("/inc/aplicacionesPerso/hoteles/ajax_listado.asp" + sParametros, "_blank");

}

// Captura todos los datos de varios formularios
function capturarDatosForms(oForm1, oForm2) {

	var i, j;
	var sTipo, sParametros;
	var aForms = Array(oForm1, oForm2);
	
	sParametros = "";
	
	for(j=0; j<aForms.length;j++) {
		
		if(aForms[j]) {
			for(i=0;i<aForms[j].elements.length;i++){
		
			 	sTipo = aForms[j].elements[i].type;
			 	
			 	if(sTipo == "hidden" || sTipo=="text" || sTipo=="checkbox" || sTipo=="textarea" || sTipo=="select-one" || sTipo=="radio") {
		
					if (sTipo != "checkbox" &&  sTipo != "radio" ){
						sNombre = aForms[j].elements[i].name;
						sValor  = escape(aForms[j].elements[i].value);
					}
					else {
		
						sNombre = aForms[j].elements[i].name;
		
						if(aForms[j].elements[i].checked){
							sValor  = escape(aForms[j].elements[i].value);
						}else {
							sValor = "";
						}
		
					}
		
					//Problemas con los radios (todos con el mismo nombre)
					if( sTipo != "radio" && sValor != "" ) {
						sParametros +=sNombre+"="+sValor;
						sParametros +="&";
					}
		
				}
			}
		}
	
	}
	
	return sParametros;
	
}


//---------------------------------------------------------------------
// Carga una página web mediante AJAX.
// Parámetros:
// - Url a cargar
// - Parámetros para la url
// - Capa para cargar el resultado (NO OBLIGATORIO)
// - Petición asincrona (true/false) (NO OBLIGATORIO, ASINCRONO POR DEFECTO) 
//		ATENCIÓN -- EN EL FIREFOX FUNCIONA DE FORMA ASINCRONA --
//---------------------------------------------------------------------
function ajax(){
	
	var sFichero	= arguments[0];
	var sParametros	= arguments[1];
	var sDiv		= arguments[2];
	var bAsincrono	= arguments[3] ? arguments[3] : true;
	var sPreload	= arguments[4];
	
	var peticion = false;
	if (window.XMLHttpRequest){
		peticion = new XMLHttpRequest();
	}else if (window.ActiveXObject) {
		peticion = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
//	prompt('',sFichero+sParametros);

	if(peticion) {
	  	peticion.open("POST", sFichero, bAsincrono);
	  	peticion.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	  	if (sDiv!=""){devolverResultado(peticion, sDiv, sPreload);}
		peticion.send(sParametros);
	}
}

//---------------------------------------------------------------------
// Devuelve el resultado de la petición AJAX.
// Parámetros:
// - Objeto httpRequest
// - Nombre de la capa para escribir los resultados
//---------------------------------------------------------------------
function devolverResultado(){
	
	var peticion	= arguments[0];
	var sDiv		= arguments[1];
	var sPreload	= arguments[2];
	
	var obj = document.getElementById(sDiv);
	if(obj){
	
		if (sPreload != undefined) obj.innerHTML += sPreload;
	
		peticion.onreadystatechange = function(){
			if (peticion.readyState == 4){
				obj.innerHTML = peticion.responseText;
			}
		}
	}
}


