//Pone las ciudades del array ciudades en el elemento s function putCities(ciudades, s) { var NUM_FILAS = 11; //Creamos una tabla con las ciudades var t = $('
').attr('id', 'ciudadesSelect'); //Creamos un array de filas. Montamos esto porque queremos que el orden de colocación de los elementos sea de arriba a abajo y no de izquierda a derecha filas = new Array(); for (var i = 0; i'); var num_fila = 0; $.each(ciudades.cities, function(code, city) { var td = $(''); td.append(city.name + " (" + code + ")"); td.addClass('ciudadSelect'); td.attr('code', code); //Acción al seleccionar la ciudad td.click(function(){ cerrar_selector(s); if (s == SORIGEN) putOriginCity(city); else putDestinationCity(city) }); //Acción al hacer hover de ciudad td.hover( function(){$(this).addClass('selected');}, function(){$(this).removeClass('selected');} ); filas[num_fila].append(td); if (num_fila < NUM_FILAS - 1) num_fila++; else num_fila = 0; }); //Añadimos las filas a la tabla for (var i = 0; i').click(function() { cerrar_selector(s); }); //Usamos el plugin bgiframe para evitar que los selectores se muestren por debajo de los widgets select en IE. $(SORIGEN).bgiframe(); $(SDESTINO).bgiframe(); } //Pone el código de la ciudad seleccionada en el campo oculto y el nombre entero en el campo visual function ponerCiudad(ciudad, market) { var s = 'input#city' + market; if (ciudad == '') { $(s).val(''); if (market == 1) $(s + 'View').val(searchText.originText); else $(s + 'View').val(searchText.destinationText); } else { $(s).val(ciudad.code); $(s + 'View').val(ciudad.name + " (" + ciudad.code + ")"); } } //Abre el selector de ciudades function abrir_selector(s) { //Marcamos en la lista la ciudad que ya está seleccionada al abrir el selector if (s == SORIGEN) { var cs = $('input#city1').val(); $('input#city1View').select(); } else { var cs = $('input#city2').val(); $('input#city2View').select(); } if (cs != '') { $('td.ciudadSelect').each(function() { if (cs == $(this).attr('code')) $(this).addClass('selected2'); else $(this).removeClass('selected2'); }); } $(s).css('display', 'inline'); $(document).bind('mousedown', checkMouse); } //Cierra el selector de ciudades function cerrar_selector(s) { $(s).css('display', 'none'); $(document).unbind('mousedown', checkMouse); } //Función para hacer bind del click del mouse. La usamos para que se cierre el selector al picar fuera del mismo function checkMouse(e) { var el = e.target; var sel1 = $(SORIGEN)[0]; var sel2 = $(SDESTINO)[0]; while (true){ if (el == sel1 || el == sel2) { return true; } else if (el == document) { cerrar_selector(SORIGEN); cerrar_selector(SDESTINO); return false; } else { el = $(el).parent()[0]; } } }