/*******************************************************************************
 * Fichero para el control del buscador V9, pasa_página y carga de los datos de
 * las casas con JQuery
 * 
 * @author Arturo Díaz
 * @copyright RGD Solutions S.L.
 * @since 15/10/2009
 * @version 1.0.0.0
 * @licencia Privada de RGDSolutions. Está prohibida su utilización, venta o
 *           distribución parcial o total de la misma
 * 
 * Log´s: 15/10/2009 - Inicio
 * 
 ******************************************************************************/

var isIE = (navigator.appName.indexOf("Microsoft") != -1) ? 1 : 0;
var isNN = (navigator.appName == "Netscape") ? 1 : 0;

/* Nueva solo numeros */
var nav4 = window.Event ? true : false;
function onlyDigits(evt) {
	// NOTE: Backspace = 8, Enter = 13, '0' = 48, '9' = 57
	if (isIE) {
		key = evt.keyCode;
	} else {
		// if (isNN)
		key = evt.which;
	}
	return (key <= 13 || (key >= 48 && key <= 57));
}

var buscador_seleccionado = '';
function ControlFechaBusqueda(buscador) {

	if (buscador=='busca_destino'){
		_dia = $('#dia_entrada').val();
		_mes = $('#mes_entrada').val();
		_anio = $('#anio_entrada').val();
		
	}else{
		fecha_seleccionada=$('#fecha_entrada_91').val().split('-');
		_dia = fecha_seleccionada[0];
		_mes = fecha_seleccionada[1];
		_anio = fecha_seleccionada[2];

	}
	// alert(_anio+"-"+anio_hoy+" / "+_mes+"-"+mes_hoy+" / "+_dia+"-"+dia_hoy);
		if ((_anio) < (anio_hoy))
			return false;
		else if ((_anio) > (anio_hoy))
			return true;
		else if ((_mes) < (mes_hoy))
			return false;
		else if ((_mes) > (mes_hoy))
			return true;
		else if ((_dia) < (dia_hoy))
			return false;
		else
			return true;

}

function ControlFechaBusqueda_91(buscador) {
	if(buscador=='busca2'){
		if (($('#fecha_entrada_91').val() == 'dd-mm-aaaa')
				|| ($('#fecha_entrada_91').val() == '')) {
			return false;
		} else {
			if (($('#fecha_salida_91').val() == 'dd-mm-aaaa')
					|| ($('#fecha_salida_91').val() == '')) {
				return false;
			} else {
				return true;
			}
		}
	}else{
		return true;
	}
}

/**
 * Función que controla el submit del formulario de disponibilidad
 * 
 * @param string
 *            buscador => nombre del formulario a lanzar
 * @return => false: si no puede lanzar disponibilidad, si se puede se lanza
 *         desde aquí el submit
 */
function ControlForm2(buscador) {
	
	$('#opciones_zona_texto').css('display','none');
	if (!buscador)
		buscador = 'busca2';

	buscador_seleccionado = buscador;
	String.prototype.trim = function() {
		return this.replace(' ', '');
		return this.replace(/^s+|s+$/g, '');
	}
	_buscador = document.getElementById(buscador);
	_n_person = _buscador.n_personas;

	if ((_n_person.value.trim() == '') || (isNaN(_n_person.value))) {
		if ((desde_fuera == '0')&&(buscador!='busca_destino'))
			CapaNP_Ver();
		else
			alert('Debe introducir un valor válido para el Nº de personas. Revíselo e inténtelo de nuevo.');
		return false;
	}

	if (ControlFechaBusqueda_91(buscador)) {
		if (ControlFechaBusqueda(buscador)) {
			// MostrarGifBusqueda();
			/*
			 * if
			 * ($("#contenido_ventana_avanzada").parents(".ui-dialog").is(":visible")) { //
			 * alert('ejecuta_funcion'); busqueda_avanzada(); }else {
			 * monta_avan_exter(); }
			 */

			// $('#contenido_ventana_avanzada').dialog('close');
			busqueda_avanzada();
			
			if ($('#portal_V9').length != 0) // V9.2
			{
				muestra_cargando2(true);
				$('#pasa_pagina').val(0);
				LanzarBusquedaAjax(buscador, 'fila_1');
				
				if (!$('#fila_1').hasClass('cuadro_fono_azul'))
					$('#fila_1').addClass('cuadro_fono_azul');
				if ($('#menu').css('display')=='none')
					$('#menu').css('display','block');
				
				// ---- Por orden de David color de fondo fijo
				//$('#fila_1').css('background-color','#F7F7F7 !important');
			} else // V9
			{
				/*
				 * alert('submit'); muestra_cargando();
				 * $("#"+buscador).submit();
				 */
				$('#busca2').attr('target', '_blank');
				//alert(dominio_propio);
				$('#busca2').attr('action',
						'http://' + dominio_propio + '/operadoresV9/index.php');
				$('#busca2').submit();
			}
		} else {
			alert('La fecha de búsqueda no puede ser inferior a la de hoy');
			// window.close();
			return false;

		}
	} else {
		alert('Debe seleccionar una fecha de entrada y salida');
		// window.close();
		return false;
	}
}

/* ------------------ Capa Nº Personas -------------- */
function CapaNP_Cerrar() {
	document.getElementById('capa_n_personas').style.visibility = 'hidden';
}

function CapaNP_Ver() {
	_capa_np = document.getElementById('capa_n_personas');
	_capa_np.style.left = '200px';
	_capa_np.style.top = '180px';
	_capa_np.innerHTML = _contenido;
	_capa_np.style.visibility = 'visible';
	_capa_np.style.zIndex = 9000000;
}

function CapaNP_Cancelar() {
	CapaNP_Cerrar();
	// alert('Para realizar una búsqueda deberá indicar un Nº de personas
	// válido.');
	alert($('#alerta_prompt').val());
}

function CapaNP_Aceptar(valor) {

	String.prototype.trim = function() {
		return this.replace(' ', '');
		return this.replace(/^s+|s+$/g, '')
	}
	_n_person = document.getElementById(buscador_seleccionado).n_personas;
	if ((valor.trim() == '') || (isNaN(valor))) {
		alert($('#alerta_prompt_valor_valido').val());
		CapaNP_Ver();
		return false;
	} else {
		_n_person.value = valor;
		CapaNP_Cerrar();
		ControlForm2(buscador_seleccionado);
	}

}

/* funciones de busqueda por texto */
aux_valor = '';
campo_anterior = '';

/**
 * Seleccionar todo el texto al entrar en un input
 * 
 * @param object =>
 *            objeto HTML para selección del texto
 */
function select_all(campo) {
	if (campo_anterior != '') {
		document.getElementById(campo_anterior).value = ''
		document.getElementById(campo_anterior).value = aux_valor;
		aux_valor = campo.value;
		campo_anterior = campo.id
	} else {
		campo_anterior = campo.id
		aux_valor = campo.value;
	}
	campo.value = "";
	campo.focus();
}

/*
 * comprobamos si el campo tiene un valor distinto al inicial si no es asi no lo
 * ponemos
 */
function no_modificado(campo) {
	//alert(campo.value+' == '+campo.id);
	//return true;
	if (campo.value == eval('original_' + campo.id)) {
		return false;
	} else {
		return true;
	}

}

function Carga_por_texto(modo_buscador, campo, valor, valor_isla) {
	// alert(modo_buscador+'**'+campo.id+'**'+valor);
	// modo_buscador => 0=NombreCasa, 1=LocalidadComarca, 2=PorProvincia
	// 3=PorZona 4=comarca 5=region
	enviar = false;
	$("#modo_buscador").val(modo_buscador);
	if (campo == "mapa") {
		switch (modo_buscador) {
		case 2:// provincia
			$("#bus_id_isla").val(valor_isla);
			$("#bus_id_provincia").val(valor);
			enviar = true;
			break;
		case 3:
			$("#bus_id_zona").val(valor);
			enviar = true;
			break;
		case 5:
			$("#bus_region_casa").val(valor);
			enviar = true;
			break;
		}
	} else {
		if (no_modificado(campo)) {
			if (modo_buscador == 0) // Nombre casa
			{
				if (campo.value != '') {
					$("#bus_texto_casa").val(campo.value);
					enviar = true;
				}
			} else {
				if ((modo_buscador == 1) || (modo_buscador == 4)) {
					if (campo.value != '') {
						$("#bus_texto_casa").val(campo.value);
						enviar = true;
					}
				}
			}
		}
	}
	//alert(campo.value);
	if (enviar) {

		if ($('#portal_V9').length == 0) {
			$('#por_zona_texto').attr('target', '_blank');
		} else {
			muestra_cargando2(true);
		}
		
		/*---- MODIFICACION ---*/
		var parametros = $("#por_zona_texto").formSerialize();
		var operador = parametros.split("&");
		var id_operador = operador[0].split("=")[1];
		
		if(id_operador != "348")
			$("#por_zona_texto").submit();
		else{
			parametros = parametros + "&accion=1";
			//$("#por_zona_texto").attr("action")
			var ruta = "./modulos/buscador/accion.buscador.php";
			$("#fila_1").hide();
			$.post(ruta,parametros,function(data,textStatus){
				$("#menu").show();
				$("#fila_1").html(data);
				$("#buscando").hide();
				addEstilo("fila_1");
				$("#fila_1").show();
				location.hash = "#top";
			});
		}
		
		/*---- MODIFICACION ---*/
	}
}

function addEstilo(identificadorCapa){
	
	$("#"+identificadorCapa).addClass("bloque_");
	$("#"+identificadorCapa).addClass("cuadro_fono_azul");
	$("#"+identificadorCapa).addClass("espacio_bottom_25");
	$("#"+identificadorCapa).css("margin-bottom","20px");
	$("#"+identificadorCapa).css("width:","685px");
	$("#"+identificadorCapa).css("overflow:","hidden");
	
}

function submitViaEnter(evt, modo, campo) {

	evt = (evt) ? evt : event;
	var target = (evt.target) ? evt.target : evt.srcElement;
	var form = target.form;
	var charCode = (evt.charCode) ? evt.charCode : ((evt.which) ? evt.which
			: evt.keyCode);
	if (charCode == 13)
		Carga_por_texto(modo, campo);
}

/**
 * Lanza la búsqueda de disponibilidad en modo Ajax, cargando el resultado sólo
 * en el contenido de la página.
 * 
 * @param string
 *            form_buscador => nombre del formulario a convertir y enviar
 * @param string
 *            capa_resultado => Capa donde volcar el resultado del buscador
 * @return
 */
function LanzarBusquedaAjax(form_buscador, capa_resultado) {
	// ---- Prepara el interface para que se vean bien los cuadros botando
	$('#menu').show();
	$('#fila_1').css('width', '686px');
	
	
	// ---- Al pasar de página hace scroll hasta la cabecera para que se vea
	// bien los cuadros
	if($('#cabecera').length>0)
		document.getElementById('cabecera').scrollIntoView(true);

	// ---- Llamada Ajax al buscador
	parametros = '&accion_post=1&' + $("#" + form_buscador).formSerialize();
	parametros+='&navegador_ie=0';//+($.browser.msie ? '1' : '0');
	URL_ = './modulos/buscadorV9/lib/accion.buscadorV9.php';
	//alert(URL_+'?'+parametros);
	
	// ----- Control si es por POSt o por getJSON
	if(false)
	{
		$.post(URL_, parametros, function(data, Status) 
		{
			alert(capa_resultado);
			$('#'+capa_resultado).html(data);
			
			/*
			 * cuando un operador tiene mas de una publicidad en el buscando y lo
			 * tiene configurado para que rote cambiamos el contenido del buscando
			 */
			modifica_cartel_buscando();
			CargarDatosCasaAjax();
			muestra_cargando2(false);
			
			//BV10_seeFiltroLateral();
		});
	} else
	{
		URL_=URL_+'?'+parametros+'&es_json=1&jsoncallback=?';
		//URL_=URL_+'?accion_post=1&operador=75&dia_entrada=25&mes_entrada=7&anio_entrada=2011&n_noches=2&n_personas=2&lang=0&es_json=1&jsoncallback=?';
		$.getJSON(URL_,function(data)
		{
			$('#'+capa_resultado).html("");
			$('#'+capa_resultado).html(data.resultado);
			$("#"+capa_resultado).addClass("bloque_");
			//alert(data.resultado);
			//document.getElementById(capa_resultado).innerHTML=data.resultado;
			
			/*
			 * cuando un operador tiene mas de una publicidad en el buscando y lo
			 * tiene configurado para que rote cambiamos el contenido del buscando
			 */
			modifica_cartel_buscando();
			CargarDatosCasaAjax();
			muestra_cargando2(false);
			
			// ----- Filtro Lateral -- Quitado por orden de David 11/05/2011
			BV10_seeFiltroLateral(data.filtro);
		});
	}
}

/**
 * Muestra "Los cuadritos saltando" la ventana de espera en el contenido de la
 * página
 * 
 * @param int
 *            visible => True:Se muestra la capa de Cargando...
 * @return
 */
function muestra_cargando2(visible) {
	$('#principal_contenido_portada_personal').hide();
	if (visible) {
		$('#fila_1').hide();
		$('#buscando').show();
	} else {
		$('#fila_1').show();
		$('#buscando').hide();
	}
	$('#fila_2').hide();
}

/**
 * Lanza el pasa página para el buscador
 * 
 * @param int
 *            pagina
 * @return
 */
function PasaPaginaV9(pagina) {
	muestra_cargando2(true);

	/*
	 * var form_aux_=document.getElementById('destino_pasa_pagina');
	 * $("input[id='pag_actual']").attr('value',pagina); form_aux_.submit();
	 */

	$("input[id='pag_actual']").attr('value', pagina);
	$("#pag_actual_V10").val(pagina);
	LanzarBusquedaAjax('destino_pasa_pagina', 'fila_1');
	
	location.hash = "#top";
	
}

/**
 * Lanza para cada casa, una consulta Ajax para obtener Hab libres
 * 
 * @return
 */
function CargarDatosCasaAjax() {
	$('.precio_medio').each( function() {
		CargarDatosCasaAjax_Indv(this.id, '');
	});
}

/**
 * Hace la llamada Ajax para una casa, cargando con la respuesta la capa del
 * precio_medio con el HTML obtenido
 * 
 * @return
 */
function CargarDatosCasaAjax_Indv(identificador_capa, ruta_raiz) 
{
	$('#' + identificador_capa).html(BV9_getHTMLCargando());
	datos_identificador = identificador_capa.split('_');
	id_casa=datos_identificador[1];
	tipo_invertida=datos_identificador[2];
	parametros = 'accion_post=4&id_casa=' + id_casa +
	             '&tipo_invertida=' + tipo_invertida + '&' +
	             $("#destino_pasa_pagina").formSerialize();
	// alert(parametros);
	
	// ---- Control de versiones del buscador
	version_buscador=9;
	if($('#csOfertasSimplesV10_'+id_casa+'_'+tipo_invertida).length>0)
		version_buscador=10;
	
	// ---- Si es la versión 10 sólo cargamos las ofertas
	if(version_buscador==10)
	{
		return CargarDatosCasaAjax_Indv_10(identificador_capa, ruta_raiz);
	}
	
	// ----- Versión 9 del Buscador
	URL_ = ruta_raiz + './modulos/buscadorV9/lib/accion.buscadorV9.php';
	$.post(URL_,parametros,function(data, Status) 
	{
		//alert(data);
		datos_data = data.split('|');
		if (datos_data[0] == 'KO') {
			$('#' + identificador_capa).html('Ocurrieron problemas al cargar los precios de las habitaciones => ' + datos_data[4]);
			$('#capa_casas_ocultas').html(parseInt($('#capa_casas_ocultas').html()) + 1);
			$('#capa_casas_ocultas').attr('title',
					$('#capa_casas_ocultas').attr('title')
							+ datos_data[3] + "("
							+ datos_data[1] + ")-"
							+ datos_data[2] + "  |  ");

			nombre_capa_aux = '#capa_simple_' + datos_data[1]+ '_' + datos_data[2];
			$(nombre_capa_aux).hide();
			enlace_btn_situtar = $('#btn_situar_busqueda').attr('href');
			// alert(datos_data[1]);
			enlace_btn_situtar = enlace_btn_situtar.replace(datos_data[1] + '|', "");
			enlace_btn_situtar = enlace_btn_situtar.replace(datos_data[1] + '&', "&");
			enlace_btn_situtar = enlace_btn_situtar.replace('|&', "&");
			$('#btn_situar_busqueda').attr('href',enlace_btn_situtar);
			cuantas_situar_busqueda = cuantas_situar_busqueda - 1;
			if (cuantas_situar_busqueda == 0)
				$('#btn_situar_busqueda').hide();
			// alert(cuantas_situar_busqueda);
		} else {
			datos_data = data.split('[*/separador_javascript/*]');
			datos_data2 = datos_data[1].split('_');
			if (datos_data2[0] == 'min')
				$('#capa_btn_presupuesto_' + datos_data2[1]).html('');
			$('#' + identificador_capa).html(datos_data[0]);
		}
	});
}

function BV9_getHTMLCargando() {
	return $('#BV9_getHTMLCargando').html();
	// return '<div style="" id="BV9_getHTMLCargando"><span class="texto_negro"
	// style="color:#999999;">&nbsp;&nbsp;<img class="tool_naranja"
	// src="./images/ajax-loader.gif" title="Por favor espere ...." border="0"
	// align="absmiddle">&nbsp;Please wait ....</span></div>';
}

function BV9_IrAFicha_con_Busqueda(P_id_casa, var_adicionales) {
	// ----- Enlaces a la ficha para conservar la búsqueda
	enlace = '../scr/mod_b/ficha_casa/index.php?' + var_adicionales;
	enlace=$('#posicionamiento_enlace_'+P_id_casa).val()+'?' + var_adicionales+'&operador='+$('#id_operador').val()+'&id_of='+$('#id_oficina').val();
	nombre_form = 'f_reservar_' + P_id_casa + '_0';
	// ---- Modificamos el action
	document.getElementById(nombre_form).action = enlace;
	// ----- Modificamos el target
	document.getElementById(nombre_form).target = '_blank';
	// ----- Submit del Form
	document.getElementById(nombre_form).submit();
}

/**
 * Carga los icono servicios para la casa
 * 
 * @param int
 *            P_id_casa
 * @param int
 *            tipo_invertida
 * @return
 */
function BV9_CargarIconosServicios(P_id_casa, tipo_invertida) {
	nombre_capa = '#iconosservicios_' + P_id_casa + '_' + tipo_invertida;
	$(nombre_capa).html(BV9_getHTMLCargando());

	parametros = 'accion_post=5&id_casa=' + P_id_casa;
	URL_ = './modulos/buscadorV9/lib/accion.buscadorV9.php';
	$.post(
					URL_,
					parametros,
					function(data, Status) {
						datos_data = data.split('|');
						if (datos_data[0] == 'KO') {
							$(
									'#capa_simple_' + P_id_casa + '_'
											+ tipo_invertida).hide();
							$(nombre_capa)
									.html(
											'Ocurrieron problemas al cargar más opciones => ' + datos_data[1]);
						} else
							$(nombre_capa).html(data);
					});
}

/**
 * Para el botón de +Opciones => Monta SingleSearch Devuelve el SingleSearch
 * para la casa
 * 
 * @param int
 *            P_id_casa
 * @param int
 *            tipo_invertida => 0=Normal, 1=Si no cumple con la búsqueda de
 *            tipo_aloja
 * @return
 */
function BV9_VerMasOpciones_old(P_id_casa, tipo_invertida) {
	nombre_capa = '#bv9masopciones_' + P_id_casa + '_' + tipo_invertida;

	// ---- Cerramos las ficha
	if ($('#capa_simple_' + P_id_casa + '_' + tipo_invertida).css('display') == 'none') {
		$(nombre_capa).show('slow');
		ficha_VerDetalle(P_id_casa, 0, 0, 1, tipo_invertida);
	} else
		$(nombre_capa).slideToggle('slow');
	if ($(nombre_capa).html() != '')
		return;

	$(nombre_capa).html(BV9_getHTMLCargando());
	// parametros='accion_post=2&id_casa='+P_id_casa+'&'+$("#f_reservar_"+P_id_casa+"_0").formSerialize();
	parametros = 'accion_post=2&id_casa=' + P_id_casa + '&version=V9&&'
			+ $("#destino_pasa_pagina").formSerialize();
	URL_ = './modulos/buscadorV9/lib/accion.buscadorV9.php';
	$.post(
					URL_,
					parametros,
					function(data, Status) {
						datos_data = data.split('|');
						if (datos_data[0] == 'KO') {
							$(
									'#capa_simple_' + P_id_casa + '_'
											+ tipo_invertida).hide();
							$(nombre_capa)
									.html(
											'Ocurrieron problemas al cargar más opciones => ' + datos_data[1]);
						} else {
							$(nombre_capa).html(data);

							// ----- A partir de aquí son eventos del Single
							// Search
							setParpadeoTextos();

							// ---- eventos del resultado
							setEventosResultados();

							// ----- Evento del Boton Presupuesto
							$('.btn_click_presupuesto').click( function() {
								setPresupuesto(P_id_casa);
							});
						}
					});
}

/**
 * Para el botón de +Opciones => Monta el antiguo +Opciones Devuelve el
 * SingleSearch para la casa
 * 
 * @param int
 *            P_id_casa
 * @param int
 *            tipo_invertida => 0=Normal, 1=Si no cumple con la búsqueda de
 *            tipo_aloja
 * @return
 */
function BV9_VerMasOpciones(P_id_casa, tipo_invertida) {
	nombre_capa = '#bv9masopciones_' + P_id_casa + '_' + tipo_invertida;
	// ---- Cerramos las ficha
	if ($('#capa_simple_' + P_id_casa + '_' + tipo_invertida).css('display') == 'none') {
		$(nombre_capa).show('slow');
		ficha_VerDetalle(P_id_casa, 0, 0, 1, tipo_invertida);
	} else
		$(nombre_capa).slideToggle('slow');
	if ($(nombre_capa).html() != '')
		return;

	$(nombre_capa).html(BV9_getHTMLCargando());

	// javascript:Opc_MostrarCapaV9(_capa_Opc_nombre+'5813',true,'&id=75&id_casa=5813&fecha_entrada=22/10/2009&n_noches=3&n_personas=2',1);

	parametros = "modo=0&version_op=9&id=" + id_operador + "&id_of="
			+ id_oficina + "&id_casa=" + P_id_casa + "&fecha_entrada="
			+ $('#dia_entrada').val() + "/" + $('#mes_entrada').val() + "/"
			+ $('#anio_entrada').val() + "&n_noches=" + $('#n_noches').val()
			+ "&n_personas=" + $('#n_personas').val();
	// alert(parametros);
	$
			.post(
					"./modulos/buscadorV9/mas_opciones.php",
					parametros,
					function(data, textStatus) {
						// alert(data);
						if (data == 'KO') {
							alert('No se han localizado más opciones en el establecimiento para los criterios de búsqueda. KO');
							$(nombre_capa).hide();
							return false;
						} else {
							HabitacionesLibres[P_id_casa] = new Array();
							datos_eval = data
									.split('[param_ajax/*/param_ajax]');
							// $(nombre_capa).html(datos_eval[0]+"<br><br><br><br>"+datos_eval[1]);
							eval(datos_eval[0]);
							$(nombre_capa).html(datos_eval[1]);
							$('#btn_presupuesto_' + P_id_casa).css(
									'background-color', '#666666');
							$('#btn_reservar_opc_' + P_id_casa).css(
									'background-color', '#666666');
						}
					});
}

/**
 * Recarga el menú izquierdo para sacar las casas actualizadas
 * 
 * @return
 */
function muestraMenuPortal10() {
	$('#menu').show();
	parametros = 'accion_post=6&' + $("#busca2").formSerialize();
	URL_ = './modulos/buscadorV9/lib/accion.buscadorV9.php';
	$.post(URL_, parametros, function(data, Status) {
		$('#menu').html(data);
	});
}

var tiempo_parpadeo = null;
function setPaginacionParpadeante() {
	$('.paginacion_parpadeante')
			.each(
					function() {
						$(this)
								.css(
										'color',
										(($(this).css('color') == '#4a4949')
												|| ($(this).css('color') == 'rgb(74, 73, 73)') ? '#FF0000'
												: '#4a4949'));
						clearInterval(tiempo_parpadeo);
						tiempo_parpadeo = setInterval(
								'setPaginacionParpadeante()', 500);
					});
}
