/** * @author jnavarro */ $(document).ready(function(){ $("#loading").ajaxStart(function(){ $(this).show(); }); $("#loading").ajaxComplete(function(){ $(this).hide(); }); /* * BUSCADOR DE INMUEBLES */ var valor_regimen; var valor_provincia; var valor_municipio; var valor_zona; var array_ajax = [ ['#precio_min', "buscador/consultaPreciosAjax", ['regimen']], ['#precio_max', "buscador/consultaPreciosAjax", ['regimen']], ['#provincia', 'buscador/consultaProvinciasAjax', ['regimen']], ['#municipio', 'buscador/consultaMunicipiosAjax', ['regimen','provincia']], ['#zona', 'buscador/consultaZonasAjax', ['regimen','provincia','municipio']], ['#tipo_inmueble', 'buscador/consultaTiposInmueblesAjax', ['regimen','provincia','municipio','zona']] ]; /** * Método de ejecución de peticiones ajax para los combos * 8/10/11: modificada para realizar la consulta de forma sincrona */ function ejecutaAjax(indice) { for (var i = indice, n = array_ajax.length; i < n; ++i) { $.ajax({ url: getUrl(array_ajax[i][1], array_ajax[i][2]), success: function(data) { $(array_ajax[i][0]).html(data); }, async: false }); } } /** * Método encargado de obtener la Url de la petición ajax */ function getUrl(url_base, array_params) { var param_string = ''; for (var j = 0; j < array_params.length; j++) { param_string = param_string + '/' + $.trim($('#'+array_params[j]).val()); } return url_base + param_string; } var accion = $('#frmBuscar').attr('action'); // .../es/inmuebles/ function modificaActionBuscar() { //Modifica el action del form nuevaAccion = ''; if ($('#referencia').val() != '') { nuevaAccion = accion + '/' + $('#referencia').val(); } else { regimen = ($('#regimen').val() == 'V') ? 'venta' : 'alquiler'; nuevaAccion = accion + '/' + regimen; if ($('#provincia').val() != '-1') { provincia = $('#provincia :selected').text(); nuevaAccion = nuevaAccion + '/' + provincia; $('#param_selected').val('provincia'); if ($('#municipio').val() != '-1') { municipio = $('#municipio :selected').text(); nuevaAccion = nuevaAccion + '/' + municipio; } } else { if ($('#municipio').val() != '-1') { municipio = $('#municipio :selected').text(); nuevaAccion = nuevaAccion + '/' + municipio; } $('#param_selected').val('municipio'); } } nuevaAccion = nuevaAccion.toLowerCase(); nuevaAccion = nuevaAccion.replace(/ /g, '-'); if(nuevaAccion != '') $('#frmBuscar').attr('action', nuevaAccion); } $('#regimen').val('V'); $('#regimen').change(function(){ $('#provincia').val('-1'); $('#municipio').val('-1'); $('#zona').val('-1'); $('#tipo_inmueble').val('-1'); ejecutaAjax(0); }); $('#provincia').change(function(){ $('#municipio').val('-1'); $('#zona').val('-1'); $('#tipo_inmueble').val('-1'); ejecutaAjax(3); //modificaActionBuscar(); }); $('#municipio').change(function(){ $('#zona').val('-1'); $('#tipo_inmueble').val('-1'); ejecutaAjax(4); //modificaActionBuscar(); }); $('#zona').change(function(){ $('#tipo_inmueble').val('-1'); ejecutaAjax(5); }); /* $('#referencia').blur(function(){ modificaActionBuscar(); }); */ $('#enviar').click(function(){ var precio_min = $('#precio_min').val(); var precio_max = $('#precio_max').val(); var preciosCorrectos = sonPreciosCorrectos(precio_min, precio_max); if(!preciosCorrectos){ alert('El precio minimo ('+precio_min+') no puede ser mayor que el precio maximo ('+precio_max+')'); }else{ modificaActionBuscar(); } return preciosCorrectos; }); /* * FIN BUSCADOR DE INMUEBLESS */ // Funciones AJAX para la tabla de resultados $('#grid .event').click(function(){ jQuery.each($('.selected'), function(){ $(this).removeClass('selected'); }); $(this).addClass('selected'); referencia = $(this).children(".ref").html(); baseUrl = $('input[name="base_url"]').val(); $('#ficha_inmueble_ajax').load(baseUrl + '/resultados/cargaFichaInmuebleAjax/' + referencia); }); $('#paginacion_tabla a').click(function(e){ e.preventDefault(); url = $(this).attr("href"); pag = url.match(/\d+$/); $('input[name=paginacion]').val(pag); newAction = $(this).attr("href").replace('/'+pag, ''); $('#form_paginacion').attr('action', newAction); $('#form_paginacion').submit(); }); /* Funciones AJAX para el filtro de destacados de portada */ $('#des_provincia').change(function(){ location.href=$("#des_provincia option:selected").val(); }); }); // Fin de document.ready() function sonPreciosCorrectos(minimo, maximo) { var sonCorrectos = true; if(minimo != '-1'){ var iminimo = parseInt(minimo); if(maximo != '-1'){ var imaximo = parseInt(maximo); if(iminimo > imaximo){ sonCorrectos = false; } } } return sonCorrectos; } function loadImages(baseurl) { $.getJSON(baseurl + '/home/cargaFotosDestacadosAjax', function(data){ $.each(data.d_items, function(i, item){ var img = $("#destacados").find("a[href$="+item.refid+"]").find("img"); img.fadeOut(); img.attr("src", item.pathfoto); img.fadeIn(); }); }); } function loadImagesAlquiler(baseurl) { $.getJSON(baseurl + '/home/cargaFotosDestacadosAjaxAlquiler', function(data){ $.each(data.a_items, function(i, item){ var img = $("#alquiler").find("a[href$="+item.refid+"]").find("img"); img.fadeOut(); img.attr("src", item.pathfoto); img.fadeIn(); }); }); } function loadImagesVenta(baseurl) { $.getJSON(baseurl + '/home/cargaFotosDestacadosAjaxVenta', function(data){ $.each(data.v_items, function(i, item){ var img = $("#venta").find("a[href$="+item.refid+"]").find("img"); img.fadeOut(); img.attr("src", item.pathfoto); img.fadeIn(); }); }); }