var g_ids_oficinas;
var g_oficinas;
var g_ciudades;
var g_paises;
var ultimo="primero";
var array_ids = new Array();
var last_id=0;
var busquedas_pendientes=0;
var btnText;

var semaforo_oficinas=0;
var busqueda_pendiente=false;
var ciudad_anterior="";
	
	

$().ready(function() {

	$("#boton_buscar").button();
	
	getciudades2();

	$("#frecogida").datepicker({
			showOn: 'both',
			buttonImage: '/buscador/img/calendar_icon_mini.png',
			buttonImageOnly: true,
			autoSize: true 
		});
	$("#frecogida").datepicker( "option", "dateFormat", 'dd-mm-yy' );
	
	
});
	


function getciudades() {
	$.getJSON('/buscador/ajax_ciudad.php', 														 
		function(data) {
			g_ciudades=data.ciudades;
			g_paises=data.paises;
		    
			$("#ciudad").autocomplete(g_ciudades, {
				width: 260,
				selectFirst: false
		   });	
			
	});	
}


function getciudades2() {
	
	$("#ciudad").autocomplete({
			source: g_ciudades,
			change: function(event, ui) { 
			actualizaroficinas();
			}

		});

}


function actualizaroficinas() {
	var buscarpais,indiceciudad;
	indiceciudad=g_ciudades.indexOf($("#ciudad").val());
	
	buscarpais=g_paises[indiceciudad];
	
	ciudad_anterior=$("#ciudad").val();
	
	depurar("Actualizando oficinas");
	semaforo_oficinas=1;
	
	$.getJSON('/buscador/buscaroficinas.php', { pais: buscarpais,ciudad: $("#ciudad").val() },														 
		function(data) {
			g_ids_oficinas=data.id;
			g_oficinas=data.oficina;
			semaforo_oficinas=0;
		     depurar("Oficinas actualizadas");
			if (busqueda_pendiente) {
				busqueda_pendiente=false;
				depurar("Teniamos una busqueda pendiente");
				buscar();
			}
	});
}

function depurar(mensaje) {
	
  if ($('#depurar')) {
	   $('#depurar').append(mensaje+'<br>');
   }
}
function buscar() {
	
   $('#resultados').empty(); 
   
   depurar("Inicio buscar");
  
   var resultados_anteriores = new Array();
   
  if ($('#boton_buscar').attr("value")!="Buscando..."){  
	   btnText = $('#boton_buscar').attr("value");
	   $('#boton_buscar').attr("value", "Buscando...");
	   $('#boton_buscar').attr("disabled", "true");
	   
	   $("#progressbar").progressbar({ value: 1});
	   $("#progressbar").show();
	   
	   $('#oficinas').html("Buscando ofertas...");
	   
   }
   
   if (ciudad_anterior!=$("#ciudad").val()) {
	depurar("La ciudad ha cambiado de "+ciudad_anterior+" a "+$("#ciudad").val());
	actualizaroficinas();
   } 
	 
   if (semaforo_oficinas==1) {
	  busqueda_pendiente=true;
	  depurar("Esperamos que que termine la busqueda de oficinas");
	  return 0;
   } else {
	  busqueda_pendiente=false;
   }
   

   total_oficinas=g_ids_oficinas.length;
   
   var conta=0;
   
   for (var i in g_ids_oficinas)
	{	  
	   busquedas_pendientes++;
	   
	   depurar("Inicio buscar en oficina "+g_ids_oficinas[i] +":"+g_oficinas[i]);
		 
	   $.getJSON("/buscador/buscar.php", 
		{ 
		  ciudad: $("#ciudad").val(), 
		  oficina: g_ids_oficinas[i], 
		  nombre_oficina: g_oficinas[i], 
		  fecha1: $("#frecogida").val(),  
		  dias: $("#dias").val()
		 },
	   function(data){
		   
	   depurar("Fin buscar en oficina "+data.oficina);
	   $('#oficinas').html("Obteniendo los mejores precios de "+data.oficina+"...");

	   for (var i in data.resultados)
	    { 
		 var repetido=false;
		 var resultado_original=0;
		 for (var j in resultados_anteriores) {
		  if ((resultados_anteriores[j].nombre_coche == data.resultados[i].nombre_coche) && (resultados_anteriores[j].precio == data.resultados[i].precio)) {
				 repetido=true;
				 resultado_original=resultados_anteriores[j].id;
		  } 
		 }
		 if (repetido){
		   $('#oficinas_'+resultado_original).html(parseInt($('#oficinas_'+resultado_original).text())+1);
		   $('#otras_'+resultado_original).show();
		   $('#listaoficinas_'+resultado_original).append("<br>"+data.resultados[i].nombre_oficina);
		 } else {
			 $('#resultados').append('<li id="'+data.resultados[i].id+'">'+data.resultados[i].html+'</li>');
			resultados_anteriores.push(data.resultados[i]);
		 }

	    }
		$("ul#resultados>li").tsort("span#precio");
		
		$("#progressbar").progressbar({
			value: ((total_oficinas-busquedas_pendientes)*100) /total_oficinas
		});
		
		if (--busquedas_pendientes == 0) {
		   $('#boton_buscar').attr("value", btnText);
		   $('#boton_buscar').removeAttr('disabled');
		   $("#progressbar").progressbar({ value: 100 });
		   $("#progressbar").slideUp('slow');
		   $('#oficinas').html('');
		   depurar("Fin buscar");
		   
		   depurar("Numero resultados: "+resultados_anteriores.length);
		   if (resultados_anteriores.length==0){
			    $('#resultados').append('<li style="font-family:Georgia;font-size:24px;">Sin resultados en la fecha buscada.</li>');
		   }
		}
		
	   });

     }
	 

}
