function comprobarBusqueda(){
	//Desde el directorio de venezuelatuya no se permite la búsqueda por locación
	if (window.desdeDir) return [true];
	if (window.desdeBus){
		var searchField = locationValue();
		var searchValue = GE(searchField).value;
		if ('HOTNombre' == searchField  && searchValue.length < 3){
			//Vino el nombre y no tiene al menos 3 caracteres
			return [false, MM['NombreAlMenos3Letras'], GE('HOTNombre')];
		}else if ('HOTLinea1' == searchField  && searchValue.length < 3){
			//Vino la ciudad y no tiene al menos 3 caracteres
			return [false, MM['CiudadAlMenos3Letras'], GE('HOTLinea1')];
		}else if ('' == searchValue){
			//El valor es nulo. Para cualquiera de las búsquedas esto es fatal
			return [false, MM['IndicarDestino'], GE(searchField)];
		};
	}else{
		var vHOTNombre = GE('HOTNombre').value;
		var vHOTLinea1 = GE('HOTLinea1').value;
		var vHOTLista1 = GE('HOTLista1').value;
		var vHOTLista2 = GE('HOTLista2').value;
		if (vHOTNombre){
			if (vHOTNombre.length < 3){
				//Vino el nombre y no tiene al menos 3 caracteres
				return [false, MM['NombreAlMenos3Letras'], GE('HOTNombre')];
			};
		}else if (vHOTLinea1){
			if (vHOTLinea1.length < 3){
				//Vino la ciudad y no tiene al menos 3 caracteres
				return [false, MM['CiudadAlMenos3Letras'], GE('HOTLinea1')];
			};
		}else if (!vHOTLista1 && !vHOTLista2){
			//El valor es nulo. Para cualquiera de las búsquedas esto es fatal
			return [false, MM['IndicarDestino'], GE(searchField)];
		};
	};
	return [true];
};
function borrarFechas(){
	$('#fechaDesde').val('');
	$('#fechaHasta').val('');
	actCantHoteles();
};
//Sólo actualizar los resultados de búsqueda si se tiene una búsqueda con coherente
function actFechas(){
	var v1 = $('#fechaDesde').val(),
		v2 = $('#fechaHasta').val()
	if (v1 && v2 || !v1 && !v2 && !$('#cantPersonas').val())
		actCantHoteles();
};
function locationValue(){
	var elems = document.forms['search'].location;
	for (i = 0; i < elems.length; i ++){
		if (elems[i].checked) return elems[i].value.substring(1);
	};
	return undefined;
};
function locationClicked(){
	//Dar tiempo para que después de click se cambie el valor
	setTimeout(locationChanged, 50);
};
function locationChanged(){
	var searchField = locationValue();
	var disabled;
	$.each(['HOTLista1', 'HOTLista2', 'HOTLinea1', 'HOTNombre'], function(dummy, currField){
		if (currField == searchField){
			disabled = false;
		}else{
			disabled = true;
		};
		GE(currField).disabled = disabled;
	});
	actCantHoteles();
};
function getSearchParam(){
	//Datos de la búsqueda
	var param = {
		'se':se,
		'TA1': GE('TA1').checked ? 1 : 0,
		'TA2': GE('TA2').checked ? 1 : 0,
		'TA3': GE('TA3').checked ? 1 : 0,
		'TA4': GE('TA4').checked ? 1 : 0,
		//Esto cambia la manera de la que se reciben los códigos y mantiene la búsqueda activa aún cuando el sistema esté deshabilitado
		'desdeVT': window.desdeVT ? 1 : 0,
		'PAGCodigo': PAGCodigo
	};
	if (window.desdeDir){
		//Desde el directorio de venezuelatuya siempre hay región
		param['HOTLista1'] = GE('HOTLista1').value;        
        if(GE('AGHMLink1_HOT').value != ""){
            param['AGHMLink1_HOT'] = GE('AGHMLink1_HOT').value;
        }
	}else if (window.desdeBus){
		//En cualquier otro caso sólo vamos a colocar el campo que se esté buscando
		var searchField = locationValue();
		param[searchField] = GE(searchField).value;
	}else{
		param['HOTLista1'] = GE('HOTLista1').value;
		param['HOTLista2'] = GE('HOTLista2').value;
		param['HOTLinea1'] = GE('HOTLinea1').value;
		param['HOTNombre'] = GE('HOTNombre').value;
	};
	var check;
	for (var i = 0; i < cajasAvanzada.length; i ++){
		check = cajasAvanzada[i];
		param[check] = GE(check).checked ? 1 : 0;
	};
	// Validaciones de fechas
	var fechasValidas = comprobarFechas();
	if (!fechasValidas[0]){
		$('.fastResults').html(fechasValidas[1]);
	}else if(window.desdeVT){
		//En caso de venir desde venezuelatuya sólo se necesitan concidiones extra
		param['condicionExtra'] = GE('condicionExtra').value;
	};
	param['fechaDesde'] = $('#fechaDesde').val() ? $('#fechaDesde').val() : '';
	param['fechaHasta'] = $('#fechaHasta').val() ? $('#fechaHasta').val() : '';
	param['cantPersonas'] = $('#cantPersonas').val() ? $('#cantPersonas').val() : '';
	return param;
};
function actCantHoteles(cid){
	var spanColor;
	//Vaciar la lista de hoteles de la búsqueda anterior
	//$('.results').find('div.hotline').slideDown('slow', function (){
		$('.results').html(
			"<table class='searchAction' cellspacing='0'><tr><td class='fastResults'></td><td>" +
			"&nbsp;<input class='showButton' type='submit' onclick='buscar();' value='" + MM['Mostrar'] + "' style='display:none' />" +
			"</td></tr></table>"
		);
	//});
	//Marcar las características activadas
	for (var i = 0; i < cajasAvanzada.length; i ++){
		var caja = cajasAvanzada[i];
		var obj = GE(caja);
		if (obj.checked){
			spanColor = 'PowderBlue';
		}else{
			spanColor = '';
		};
		$('#td' + caja).css('background-color', spanColor);
	};
	var busquedaValida = comprobarBusqueda();
	if (!busquedaValida[0]){
		$('.fastResults')
			.css('background-color', 'salmon')
			.html(busquedaValida[1]);
		return false;
	};
	$('.fastResults')
		//.css('background-color', '#73DD4F')
		.css('border', '0')
		//.html("<img src='"+URLstl+"/ajax-loader-busqueda.gif' height='11' /> " + MM['Buscando'] + '...');
		.html("<img src='"+URLstl+"/loading_galery.gif' />");
	//Get search parameters
	var param = getSearchParam();
	param.cid = cid;
	busquedasEnviadas ++;
	//Obtener resultados de una vez
	ajax = ajaxRequest(URLpax + '/buscar.php', param, function(res){obtenerResultados(res, param)});
};
function resultadosRapidos(cantidades){
	var disp = cantidades[0];
	busquedasRecibidas ++;
	//Evitar mostrar resultados si se está haciendo aún otra búsqueda
	if (busquedasEnviadas != busquedasRecibidas) return true;
	$('.fastResults').html(
		MM['BusquedaExisten'].replace('[[CANT]]', disp)
	);
	$('input.showButton').css('display', 'inline');
	return true;
};
function chequearBuscar(e){
	if(!e) e = window.event;
	var key = e.keycode ? e.keycode : e.which;
	if (13 == key) buscar();
};
function buscar(){
	var busquedaValida = comprobarBusqueda();
	if (!busquedaValida[0]){
		busquedaValida[2].focus();
		alert(busquedaValida[1]);
		return false;
	};
	// Validaciones de fechas
	var fechasValidas = comprobarFechas();
	if (!fechasValidas[0]){
		fechasValidas[2].focus();
		alert(fechasValidas[1]);
		return false;
	};
	busquedasEnviadas ++;
	var param = getSearchParam();
	ajax = ajaxRequest(URLpax + '/buscar.php', param,
		function(hoteles){
			obtenerResultados(hoteles);
            acomodarEnlaces();
			if (!window.desdeVT){
				window.location.href = '#ResultadosBusqueda';
			};
		}
	, 'Buscando');
};

function acomodarEnlaces(){
    if (facebook){
        //agregamos el parametro fb=1 a todos los enlace de hoteles, 
        //al resto solo le agregamos un target='_top' para forzarlo 
        //a salir del ambiente facebook
        $.each($('a'), function(){
            //es un enlace de hotel
            if ($(this).parent().hasClass('hotelMiddle')){  
                //$(this).attr("href", $(this).attr("href")+"&fb=1");
            }else{
                $(this).attr("target", "_blank");
            }
        })
    }
}

function obtenerResultados(res, param){
	//Guardar los parámetros
	param.cid = res[1];
	var cookie = '';
	$.each(param, function(key, value){
		cookie += '&' + encodeURIComponent(key) + '=' + encodeURIComponent(value);
	});
	$.cookie('buscar.php', cookie);

	busquedasRecibidas ++;
	var hoteles = res[0];
	//Evitar mostrar resultados si se está haciendo aún otra búsqueda
	if (busquedasEnviadas != busquedasRecibidas) return true;
	if (!window.desdeVT){
		var fechaDesde = $('#fechaDesde').val();
		var fechaHasta = $('#fechaHasta').val();
	};
	if (0 != hoteles.length){
		if (!window.desdeVT && fechaDesde && fechaHasta){
			$('.mensajes').html(MM['SoloDisponibles']);
		}else{
			//$('.mensajes').html(MM['EncabezadoBusqSinFecha']);
		};
	};
	$('#resultTitle').text(hoteles.length + ' Resultados');
	//Vaciar la lista de hoteles de la búsqueda anterior
	var jResults = $('.results');
	//Añadir la línea de hoteles
	var jBoxLine = $("<div class='hotline'></div>");
	jBoxLine.css('display', 'none');
	//Siempre se compara con la ciudad anterior
	var ultimos = false, saltarAUltimos = true; i = 0, ciudad = ''; rows = 1;
	//Llenar la tabla de los hoteles
	$.each(hoteles, function(dummy, hotel){
		textoselecthotel = typeof(textoselecthotel) != 'undefined' ? textoselecthotel : "";
		//Si no hay ciudad, ya se pasó a los últimos
		if (saltarAUltimos && !hotel.imagen){
			ultimos = true;
			i = 0;
		};
		//Cada cinco divs se salta de línea. También se salta de línea cuando se pasa a los que no tienen ciudad o foto.
        if (!facebook){
            var nroDivs = 5;
        }else{
        //si es una pagina dentro de facebook, solo se muestran 4 por fila
            var nroDivs = 4;
        }
        
		if (i && i % nroDivs == 0 || ultimos && saltarAUltimos){
			rows ++;
			if (textoselecthotel!= "" && rows==3){				
				//Crear un div transparente para solucionar el problema de duplicación de márgenes en IE6
				jBoxLine.append("<div style='float:left;visibility:hidden;'></div>");
				//Averiguar el tamaño del div ya que todos sus elementos son flotantes (NS)
				jBoxLine.append("<div style='clear:both;visibility:hidden;'></div>");
				//turismo receptivo
				jBoxLine.append("<p class='explicTurismoReceptivo'>"+textoselecthotel+"</p>");
				//Añadir la línea de hoteles
				jResults.append(jBoxLine);
				//Crear la nueva línea de hoteles
				jBoxLine = $("<div class='hotline'></div>");
				jBoxLine.css('display', 'none');
			}else{
				//Crear un div transparente para solucionar el problema de duplicación de márgenes en IE6
				jBoxLine.append("<div style='float:left;visibility:hidden;'></div>");
				//Averiguar el tamaño del div ya que todos sus elementos son flotantes (NS)
				jBoxLine.append("<div style='clear:both;visibility:hidden;'></div>");
				//Añadir la línea de hoteles
				jResults.append(jBoxLine);
				//Crear la nueva línea de hoteles
				jBoxLine = $("<div class='hotline'></div>");
				jBoxLine.css('display', 'none');
			}
		};
		
		//Clase especial para reservación instantánea
		var sri = 1 == hotel.sri ? '-sri' : '';      
        if(hotel.grupoafi == 1 && AFICodigo > 0){
            boolafiliados = true;            
        }else{
            boolafiliados = false;            
        }
		boolvt = hotel.recomendado;
		afiliados = (boolafiliados || boolvt ? "afiliados" : "");
		
		//Div que contiene el html completo del hotel
		var jHotel = $("<div class='hotel"+sri+"'></div>");

		//Ciudad tipo título
		jHotel.append("<span class='cityTitle'>" + hotel.ciudad + "</span>");
		
		
		//Colocar el texto explicativo de las reservaciones instantáneas
		if (0 == i && (sri || afiliados) && !ultimos){
			if (0 == res[2] && ($('#fechaDesde').val() || $('#fechaHasta').val() || $('#cantPersonas').val())){
				cls = 'explicFondoSalmon';
				//La persona intentó hacer una búsqueda por fechas, pero no las introdujo bien
				msg = 'Para realizar una búsqueda por fechas o cantidad de personas, debe seleccionar un período válido de fechas.';
			}else if (1 == res[2]){
				cls = 'explicFondoAmarillo';
				//La persona realizó una búsqueda por fechas
				msg = 'Mostrando sólo alojamientos que ofrecen disponibilidad garantizada para estas fechas y reservación inmediata. Para ver todos los alojamientos, presione "Borrar" más arriba.';
			}else{
				cls = 'explicFondoAmarillo';
				//msg = MM['ExplicFondoAmarillo'];
				msg  = ""
				if (sri) msg += "<span style='width:40px; height:18px; background:#FFDE9B; display:inline-block; border:1px solid #C07400; margin-right:10px;'></span> "+MM['msjparrillasri']+"<br />";
				if (boolafiliados) msg += "<span style='width:40px; height:24px; display:inline-block; margin-right:10px; text-align:center;'><img src='"+URLstl+"/logo-Banesco.png' title='afiliados banesco'/></span> "+MM['afiliadosbanesco']+"<br />";
				msg += "<span style='width:40px; height:24px; display:inline-block; margin-right:10px; padding:6px 0;'><img src='"+URLstl+"/vt-recomienda.gif' title='afiliados banesco'/></span> "+MM['ventuyarecomienda'];
			};
			jBoxLine.append(
				"<p class='" + cls + "'>" + msg + "</p>"+
				"<center class='noprint'><!-- LiveZilla Chat Button Link Code (ALWAYS PLACE IN BODY ELEMENT) -->"+
                "<a href=\"javascript:void(window.open('http://dev.venezuelatuya.com/livezilla/chat.php','',"+
                "'width=590,height=580,left=0,top=0,resizable=yes,menubar=no,location=no,status=yes,scrollbars=yes'))\">"+
                "<img src=\"http://dev.venezuelatuya.com/livezilla/image.php?id=05&amp;type=inlay\" width=\"200\""+
                "height=\"55\" border=\"0\" alt=\"LiveZilla Live Help\"></a>"+
                "<!-- http://www.LiveZilla.net Chat Button Link Code -->"+
                "<!-- LiveZilla Tracking Code (ALWAYS PLACE IN BODY ELEMENT) -->"+
                "<div id=\"livezilla_tracking\" style=\"display:none\"></div>"+
                "<script type=\"text/javascript\">"+
                "var script = document.createElement(\"script\");"+
                "script.type=\"text/javascript\";"+
                "var src=\"http://dev.venezuelatuya.com/livezilla/server.php?request=track&output=jcrpt&nse=\"+Math.random();"+
                "setTimeout(\"script.src=src;document.getElementById('livezilla_tracking').appendChild(script)\",1);"+
                "</script>"+
                "<noscript>"+
                "<img src=\"http://dev.venezuelatuya.com/livezilla/server.php?request=track&amp;output=nojcrpt\""+
                "width=\"0\" height=\"0\" style=\"visibility:hidden;\" alt=\"\">"+
                "</noscript>"+
                "<!-- http://www.LiveZilla.net Tracking Code --></center>"+
				"<div style='clear: both; visibility: hidden;'></div>"
			);
		};
		//Añadir la imagen de tope
		//jHotel.append("<div class='hotelTop'></div>");
		//La clase cambia dependiendo de si es un hotel
		var classHotelMiddle = 'hotelMiddle' + (ultimos ? 'Last' : '');
		//Contenido del hotel
		var jHotelMiddle = $("<div class='" + classHotelMiddle + "'></div>");
		//Dependiendo del lugar, el enlace varía
        var fb = facebook?"&fb=1":"";
		if (window.desdeVT){
			var enlace = 'mostrarhotel' + Extension + '.htm?HOTCode=' + hotel.codigo + '&cid=' + res.nombre + fb;
		}else{
			var enlace = URLpax + '/crear.php?HOTCode=' + hotel.codigo + fb;
		};
		if (window.desdeBus){
			var target = " target='_blank'";
		}else{
			var target = '';
		};
		//Nombre
		jHotelMiddle.append("<span class='name'><a href='" + enlace + "'" + target + ">" + hotel.nombre + "</a></span>");
		//Imagen
		if (hotel.imagen && !ultimos){
			//jHotelMiddle.append("<div class='thumb'><a href='" + enlace + "'" + target + "><img src='" + URLimg + '/' + hotel.imagen + "' alt='" + hotel.nombre + "' /></a></div>");
			jHotelMiddle.append("<a href='"+ enlace +"' " + target + "><div class='thumb' style='background-image:url(" + URLimg + "/" + hotel.imagen + ")' title='" + hotel.nombre + "'></div></a>");
		}else{
			//jHotelMiddle.append("<div class='thumb sin-img'><a href='" + enlace + "'" + target + "><img src='" + URLstl + "/sin-img.png ' alt='" + hotel.nombre + "' /></a></div>");
			jHotelMiddle.append("<a href='"+ enlace +"' " + target + "><div class='thumb sin-img' style='background-image:url(" + URLstl + "/sin-img.png)' title='" + hotel.nombre + "'></div></a>");
		};
		
		/*ciudad = '';
		if (hotel[3]){
			ciudad = '<br />' + hotel[3];
		};*/
		
        if (hotel.precio_por) 
            precio_por_sin_acento = hotel.precio_por.replace('ó','o');
        else
            precio_por_sin_acento = "";
		precio = (hotel.precio_desde > 0 ? "<label class='precio'><b>Desde</b>: " + hotel.precio_desde + "Bs <span class='x" + precio_por_sin_acento + sri + "' title='Precio por" + hotel.precio_por + "'> </span> <span class='_" + hotel.precio_incluye + sri + "' title='Incluye comida'></span></label>" : "");
		categoria = "<label class='tipo-categoria'><b>" + hotel.tipo + "</b>" + (hotel.categoria != "" ? ": " + hotel.categoria : "") + "</label>";
		
		//Tipo y Precio
		jHotelMiddle.append("<div class='tipo-precio-"+ afiliados + "'>" + categoria + precio + "</div>");
		
		jHotelMiddle.append("<div class='afiliados'>"+
            (boolafiliados ? "<a href='"+enlace+"'><img src='"+URLimg+"/"+AFILogo+"' title='Afiliados "+AFINombre+"'/></a>" : '')+
			//(boolafiliados ? "<a href='"+enlace+"'><img src='"+URLstl+"/logo-USB.png' /></a>" : '')+
			(boolvt ? "<a href='"+enlace+"'><img src='"+URLstl+"/vt-recomienda.gif' title='Venezuelatuya recomienda'/></a>": '')+
			"</div>");
		
		//Imagen distintiva para los hoteles que ofrecen reservación inmediata
		/*if (sri){
			var a = CE('a', {'href': enlace, 'target': target});
			$(a).append(CE('img', {
				'src': URLstl + '/rayo.gif',
				'alt': 'Hotel con reservación inmediata',
				'title': 'Hotel con reservación inmediata',
				'class': 'sri-rayo'
			}));
			jHotelMiddle.append(a);
		};*/
		//Añadi el contenido
		jHotel.append(jHotelMiddle);
		//Añadir la imagen de pie
		//jHotel.append("<div class='hotelBottom'></div>");
		//Añadir el hotel a la línea
		jBoxLine.append(jHotel);
		i ++;
		//Si ya se empezaron los divs sin foto, ya se realizó el salto
		if (ultimos) saltarAUltimos = false;
	});
	if (0 == hoteles.length){
		jBoxLine.append("<p class='noResults'>" + MM['NoResultados'] + "</p>");
	}else{;
		//Crear un div transparente para solucionar el problema de duplicación de márgenes en IE6
		jBoxLine.append("<div style='float:left;visibility:hidden;'></div>");
		//Averiguar el tamaño del div ya que todos sus elementos son flotantes (NS)
		jBoxLine.append("<div style='clear:both;visibility:hidden;'></div>");
	};
	//Añadir la última línea de hoteles
	jResults.append(jBoxLine);
	//Fix IE6 style bugs
	if (window.ie6StyleFix) ie6StyleFix();
	setTimeout(function(){
		jResults.find('table.searchAction').fadeOut('fast', function (){$(this).remove()});
		jResults.find('div.hotline').slideDown('slow');
	}, 400);
};
function applyCid(cid){
	$('div.results div.hotel a').map(function(){
		$(this).attr('href', $(this).attr('href') + '&cid=' + cid);
	});
};
function restoreSearch(){
	var cookie = $.cookie('buscar.php');
	if (null === cookie) return;
	var param = {};
	$.each(cookie.split('&'), function(key, value){
		if (!value) return true;
		var couple = value.split('=');
		param[decodeURIComponent(couple[0])] = decodeURIComponent(couple[1]);
	});
	if (!param.PAGCodigo || window.PAGCodigo != param.PAGCodigo) return;
	if (!param.PAGCodigo || window.PAGCodigo != param.PAGCodigo) return;
	GE('TA1').checked = param.TA1 * 1;
	GE('TA2').checked = param.TA2 * 1;
	GE('TA3').checked = param.TA3 * 1;
	GE('TA4').checked = param.TA4 * 1;
	if (window.desdeDir){
		//Desde el directorio de venezuelatuya siempre hay región
		GE('HOTLista1').value = param.HOTLista1;
	}else if (window.desdeBus){
		//En cualquier otro caso sólo vamos a colocar el campo que se esté buscando
		var searchField = locationValue();
		param[searchField] = GE(searchField).value;
	}else{
		GE('HOTLista1').value = param.HOTLista1;
		GE('HOTLista2').value = param.HOTLista2;
		GE('HOTLinea1').value = param.HOTLinea1;
		GE('HOTNombre').value = param.HOTNombre;
	};
	var check;
	for (var i = 0; i < cajasAvanzada.length; i ++){
		check = cajasAvanzada[i];
		GE(check).checked = param[check] * 1;
	};
	// Validaciones de fechas
	if(window.desdeVT){
		//En caso de venir desde venezuelatuya sólo se necesitan concidiones extra
		GE('condicionExtra').value = param.condicionExtra;
	}else{
		$('#fechaDesde').val(param.fechaDesde);
		$('#fechaHasta').val(param.fechaHasta);
		$('#cantPersonas').val(param.cantPersonas);
	};
	actCantHoteles(param.cid);
};
