$(document).ready(function()
{
	
	// BUSCADOR
	// ============= convertimos en un datepicker todos los input con class "date_picker"
	$('.date_picker').datepicker({numberOfMonths: 2, closeText: 'Cerrar', showButtonPanel: true, showOn:'both', buttonImage:'/images/calendar2.png', buttonImageOnly:true, firstDay:1, monthNames:['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'], dayNamesMin:['D', 'L', 'M', 'M', 'J', 'V', 'S'], dayNames:['Domingo', 'Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sábado'], dateFormat:'dd/mm/yy', minDate: 'defaultDate'});
	
	// ============= establecemos el valor de los campos fecha del buscador: cómo mínimo 1 días más de la fecha actual (NO)
	var minDate = new Date();
	//minDate.setDate(minDate.getDate()+1);
	minDate.setDate(minDate.getDate());
	$("#search_fecha_entrada").datepicker('option','minDate',minDate);
	$("#search_fecha_salida").datepicker('option','minDate',minDate);
	
	// ============= comportamiento del campo "fecha de entrada" del buscador
	$('#search_fecha_entrada').datepicker('option', 'onSelect', 
		function(inDateText, inst) 
		{ 
			var day=inDateText.substring(0,2);
			var month=inDateText.substring(3,5);
			var year=inDateText.substring(6,10);	
					
			// actualizamos minDate del calendario de salida
			var outDate = new Date(year,month-1,day);	
			outDate.setDate(outDate.getDate()+1);	// 1 más que la fecha de entrada
				
			$("#search_fecha_salida").datepicker('option','minDate',outDate);	
				
			// actualizamos fecha de salida si no está establecida o si es menor que la fecha de entrada
			if (($("#search_fecha_salida").val()=="") || fechaEsMenor($("#search_fecha_salida").val(),inDateText))
			{					
				var outDateText = fromDate(outDate);
				$("#search_fecha_salida").val(outDateText);  
			}
		}
	);	

	// ============= comportamiento del campo "tipo" del buscador
	$('.search_tipo').click(function()
	{
		$("#search_nombre_hotel").val("");
		
		var tipo = $(this).val();		
		
		loadProvinciasByTipo(tipo,"","");	
		$("#search_fecha_entrada").val("");		
		$("#search_fecha_salida").val("");
		$("#searcher_error").html("");
		
		
		if ((tipo=="spa_urbano") || (tipo=="centro_masajes")) 
		{
			//$("#linea_fecha_salida").css('visibility','hidden'); //
			$("#linea_fecha_salida").hide();
		}
		else 
		{
			//$("#linea_fecha_salida").css('visibility','visible'); //
			$("#linea_fecha_salida").show();
		}
		
	});	
	
	// ============= comportamiento del campo "provincia" del buscador	
	$('#search_codigo_provincia').change(function()
	{
		var codigo_provincia = $(this).val();
		loadLocalidadesByProvincia(codigo_provincia,"");	
		
	});	
	
	// ============= comportamiento del campo "nombre" del buscador (autocomplete)		
	
	$("#search_nombre_hotel").autocomplete("/searcher/autocomplete", {
		   extraParams: {
		       tipo: function() { return $("input[name='search[tipo]']:checked").val(); }
		   }
		}); 

	
	// ============= comportamiento del buscador al hacer "submit"
	$('#searcher_form').submit(function()
	{

		var error_msg = "";
		var tipo = $("input[name='search[tipo]']:checked").val();
		var fecha_entrada = $("#search_fecha_entrada").val();
		var fecha_salida;
		var nombre_hotel = $("#search_nombre_hotel").val();
		//if ((tipo=="spa_urbano") || (tipo=="centro_masajes")) fecha_salida = $("#search_fecha_entrada").val();
		//else fecha_salida = $("#search_fecha_salida").val();
		fecha_salida = $("#search_fecha_salida").val();
		
		
		if ((tipo == null) && (nombre_hotel == ""))
		{				
			error_msg = "Es necesario seleccionar el tipo de establecimiento<br />";				
		}
		if ((fecha_entrada == "") && (fecha_salida != "")) 
		{				
			error_msg += "Es necesario seleccionar la fecha de entrada<br />";				
		}
		if ((fecha_entrada != "") && (fecha_salida == "")) 
		{				
			error_msg += "Es necesario seleccionar la fecha de salida<br />";				
		}
		if ((fecha_entrada != "") && (fecha_salida != "") && (tipo!="spa_urbano") && (tipo!="centro_masajes"))
		{
			if (!fechaEsMenor(fecha_entrada, fecha_salida))
			{
				error_msg += "La fecha de entrada tiene que ser menor que la fecha de salida<br />";
			}			
			else // calculamos que el período elegido no sea mayor a 15 días	
			{
				var num_days_between = numDaysBetween(fecha_entrada,fecha_salida);
				num_days_between = Math.ceil(num_days_between);
				if (num_days_between >15) error_msg += "El período seleccionado debe ser menor ó igual a 15 días<br />";
			}
		}
		if (error_msg != "")
		{
			$("#searcher_error").html(error_msg);
			$("#searcher_error").show();
			return false;
		}
		
		if (fecha_entrada != "")
		{
			$.blockUI({ css: { border: 'none', padding: '15px', backgroundColor: '#000', '-webkit-border-radius': '10px', '-moz-border-radius': '10px', opacity: .6, color: '#fff',fontSize: '15px' },
			            message: 'Buscando establecimientos que se ajusten a tus criterios... Espera por favor'

			           }); 
			
		}		
		
		return true;
	});	
	
	// ============= comportamiento de la capa buscador "reservaSpa"
	$("#reservaSpa a").toggle(
		function(){
			$("#cajaReserva").fadeIn(1000);
			$("#reservaSpa").css("background-image", "url(/images/bg_reservaSpa_hover.png)");
		},
		function(){
			$("#cajaReserva").css("display", "none");
			$("#reservaSpa").css("background-image", "url(/images/bg_reservaSpa.png)");
		}
	);
	
	$("#close_reservaSpa").click(function(){
		$("#cajaReserva").css("display", "none");
		$("#reservaSpa").css("background-image", "url(/images/bg_reservaSpa.png)");
	});
	
});	 // document.ready	


// mostrar buscador
function show_buscador()
{
	$("#cajaReserva").fadeIn(1000);
	$("#reservaSpa").css("background-image", "url(/images/bg_reservaSpa_hover.png)");

	
}

function loadProvinciasByTipo(tipo, codigo_provincia_selected, codigo_localidad_selected)
{
	var url = '/searcher/ajax_provincias';	
	
	$("#search_codigo_provincia").load(url, {tipo: tipo},
	
							function (result)
							{
								if (codigo_provincia_selected!="") 
								{									
									$("#search_codigo_provincia").val(codigo_provincia_selected); 
									loadLocalidadesByProvincia(codigo_provincia_selected,codigo_localidad_selected);
								}
								else
								{
									$("#search_codigo_localidad").empty().append('<option value="">Todas</option>');
								}								
							}
	);
}

function loadLocalidadesByProvincia(codigo_provincia, codigo_localidad_selected)
{
	var url = '/searcher/ajax_localidades';	
	$("#search_codigo_localidad").load(url, {codigo_provincia: codigo_provincia}, function(result){ if (codigo_localidad_selected!="") $("#search_codigo_localidad").val(codigo_localidad_selected)  });	
}



