﻿Type.registerNamespace("GUI");

GUI.ctrlFiltradoParrilla = function (element) {
    GUI.ctrlFiltradoParrilla.initializeBase(this, [element]);
}

GUI.ctrlFiltradoParrilla.prototype = {
    initialize: function () {
        GUI.ctrlFiltradoParrilla.callBaseMethod(this, 'initialize');
    },

    dispose: function () {
        GUI.ctrlFiltradoParrilla.callBaseMethod(this, 'dispose');
    },

    _TIMEOUT_ACTUALIZACION_FILTRO: '',
    _DEFAULT_TIMEOUT: 1000,
    _TIMEOUT_ACTIVO: false,

    _ID_COMBO_PROVINCIAS: 'ddlProvincias',
    _ID_COMBO_ZONAS: 'ddlZonas',
    _ID_COMBO_MUNICIPIOS: 'ddlMunicipios',
    _ID_COMBO_SUPERFICIE: 'ddlSuperficie',
    _ID_COMBO_PRECIO: 'ddlPrecioMax',
    _ID_COMBO_PRECIO_MIN: 'ddlPrecioMin',
    _ID_COMBO_HABITACIONES: 'ddlHabitaciones',
    _ID_COMBO_POBLACIONES: 'ddlPoblaciones',
    _ID_TREECHECKS_DISTRITOBARRIO: 'treeDistritoBarrio',
    _ID_TREECHECKS_FAMILIATIPOINMUEBLE: 'treeFamiliaTipoInmueble',
    _ID_COMBO_NEWSLETTERS: 'ddlNewsletters',

    _ID_FILTRO_GENERICO_PROPIO: 'genericCaracteristicasPropias',
    _ID_FILTRO_GENERICO_ESPECIFICO: 'genericCaracteristicasEspecificas',
    _ID_FILTRO_GENERICO_GENERAL: 'genericCaracteristicasGenerales',
    _CADENA_IDS_FILTROS_GENERICOS: 'genericCaracteristicasPropias/genericCaracteristicasEspecificas/genericCaracteristicasGenerales',

    _Tracker_FamiliaTipoInmueble: '',
    _Tracker_DistritoBarrio: '',
    _Tracker_NivelDistritoBarrio: '',
    _Tracker_Caracteristicas: '',
    _Tracker_MostrarSolo: '',

    _TrackFilter: true,

    _ERROR: false,

    _URL_ACTUAL: document.location,

    _CONST_NUM_MAX_CARACTERES_COMBO_CORTO: 14,

    _CONST_NUM_MAX_CARACTERES_COMBO_LARGO: 20,


    _ROOT: function () {
        if (typeof ($get('_ROOT_ctrlFiltradoParrilla')) != 'undefined')
            return $get('_ROOT_ctrlFiltradoParrilla').value;

        return '';
    },

    //******* FILTROS DE ZONAS (Provincias, Comarcas / SubComarcas, Municipios, Poblaciones / Distritos)

    _tipoZona: function (codigoZona) {
        switch (codigoZona.substring(0, 1)) {
            case 'P':
                return GUI.TipoFiltros.prototype.Provincias;
            case 'C':
                return GUI.TipoFiltros.prototype.Comarcas;
            case 'M':
                return GUI.TipoFiltros.prototype.Municipios;
            case 'L':
                return GUI.TipoFiltros.prototype.Localidades;
            case 'D':
                return GUI.TipoFiltros.prototype.Distritos;
            case 'G':
                return GUI.TipoFiltros.prototype.Distritos;
            case 'B':
                return GUI.TipoFiltros.prototype.Barrios;
        }
        return -1;
    },

    //Carga y tratamiento de datos de provincias
    //------------------------------------------
    _CargaInicialProvincias: function (defaultvalue) {
        GUI.SoporteComboTreeView.prototype.set_disablecombo(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_PROVINCIAS);
        if (_ES_MICROSITE) {
            CBL.wsGEO.getComboProvinciasFiltros(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_PROVINCIAS, defaultvalue, _FILTRADO_IDUSUARIO, _FILTRADO_IDINMOBILIARIAEXTERNA, _FILTRADO_LICENCIA, GUI.SoporteComboTreeView.prototype.IniciliazarCombo);
        } else {
            CBL.wsGEO.getComboProvinciasFiltros(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_PROVINCIAS, defaultvalue, 0, '', 0, GUI.SoporteComboTreeView.prototype.IniciliazarCombo);
        }
    },

    _comboInicializado_Provincias: function () {
        GUI.SoporteComboTreeView.prototype.set_enablecombo(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_PROVINCIAS);
        GUI.SoporteComboTreeView.prototype.set_mostrar_lista(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_PROVINCIAS);
    },

    _InicializarDatosProvincias: function () {
        _FILTRADO_PROVINCIA = '0';
        GUI.SoporteComboTreeView.prototype.set_literal(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_PROVINCIAS, 'Todas');
        GUI.ctrlFiltradoParrilla.prototype._InicializarDatosComarcas();
    },

    _ActualizarProvincias: function (codigoprov) {
        if (codigoprov == '') {
            codigoprov = GUI.SoporteComboTreeView.prototype.get_valor(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_PROVINCIAS);
            if (codigoprov == '') {
                codigoprov = GUI.SoporteComboTreeView.prototype.get_codigo_seleccionado(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_PROVINCIAS);
            }
        }

        _FILTRADO_PROVINCIA = codigoprov;
        _FILTRADO_NIVEL = GUI.NivelZona.prototype.Provincia;
        _FILTRADO_COMARCA = '0';
        _FILTRADO_MUNICIPIO = '0';
        _FILTRADO_POBLACION = '0';
        _FILTRADO_DISTRITO = '0';


        GUI.SoporteComboTreeView.prototype._ABRIR_COMBO = false;

        GUI.ctrlFiltradoParrilla.prototype._EjecutarPageTracker('Provincias', GUI.SoporteComboTreeView.prototype.get_literal(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_PROVINCIAS));

        SetLoadingPart('CajaContenidoParrillas');
        GUI.ctrlFiltradoParrilla.prototype._InicializarDatosComarcas();
        GUI.ctrlFiltradoParrilla.prototype._GenerarUrl();
    },

    //Carga y tratamiento de datos de comarcas y subcomarcas
    //------------------------------------------------------
    _CargaInicialComarcas: function (defaultvalue) {
        GUI.SoporteComboTreeView.prototype.set_disablecombo(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_ZONAS);
        if (GUI.ctrlFiltradoParrilla.prototype._tipoZona(defaultvalue) != GUI.TipoFiltros.prototype.Comarcas) GUI.ctrlFiltradoParrilla.prototype._InicializarDatosComarcas();
        if (_ES_MICROSITE) {
            CBL.wsGEO.getComboListaZonas(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_ZONAS, defaultvalue, _FILTRADO_PROVINCIA, _FILTRADO_CODIGOTIPOINMUEBLE, _FILTRADO_TIPOOPERACION, _FILTRADO_IDUSUARIO, _FILTRADO_IDINMOBILIARIAEXTERNA, _FILTRADO_LICENCIA, GUI.SoporteComboTreeView.prototype.IniciliazarCombo);
        } else {
            CBL.wsGEO.getComboListaZonas(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_ZONAS, defaultvalue, _FILTRADO_PROVINCIA, _FILTRADO_CODIGOTIPOINMUEBLE, _FILTRADO_TIPOOPERACION, 0, '', 0, GUI.SoporteComboTreeView.prototype.IniciliazarCombo);
        }
    },

    _comboInicializado_Comarcas: function () {
        if (GUI.SoporteComboTreeView.prototype.get_contador(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_ZONAS) == 1) {
            GUI.SoporteComboTreeView.prototype.set_literal(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_ZONAS, GUI.SoporteComboTreeView.prototype.get_literal_primer_elem(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_ZONAS))
            GUI.SoporteComboTreeView.prototype.set_disablecombo(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_ZONAS);
            GUI.SoporteComboTreeView.prototype.resetObj(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_ZONAS);
            GUI.SoporteComboTreeView.prototype.set_ocultar_lista(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_ZONAS);
            _FILTRADO_COMARCA = GUI.SoporteComboTreeView.prototype.get_codigo_primer_elem(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_ZONAS);
            GUI.ctrlFiltradoParrilla.prototype._CargaInicialMunicipios(_FILTRADO_COMARCA);
        } else {
            GUI.SoporteComboTreeView.prototype.set_enablecombo(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_ZONAS);
            if (GUI.SoporteComboTreeView.prototype._ABRIR_COMBO) GUI.SoporteComboTreeView.prototype.set_mostrar_lista(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_ZONAS);
        }
    },

    _InicializarDatosComarcas: function () {
        _FILTRADO_COMARCA = '0';
        GUI.SoporteComboTreeView.prototype.resetObj(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_ZONAS);
        GUI.SoporteComboTreeView.prototype.set_literal(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_ZONAS, 'Todas');
        GUI.ctrlFiltradoParrilla.prototype._InicializarDatosMunicipios();
    },

    _ActualizarComarcas: function (codigozona) {
        if (codigozona == '') {
            codigozona = GUI.SoporteComboTreeView.prototype.get_valor(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_ZONAS);
            if (codigozona == '') {
                codigozona = GUI.SoporteComboTreeView.prototype.get_codigo_seleccionado(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_ZONAS);
            }
        }

        _FILTRADO_COMARCA = codigozona;
        _FILTRADO_NIVEL = GUI.NivelZona.prototype.Zona;
        _FILTRADO_MUNICIPIO = '0';
        _FILTRADO_POBLACION = '0';
        _FILTRADO_DISTRITO = '0';

        GUI.SoporteComboTreeView.prototype._ABRIR_COMBO = false;

        GUI.ctrlFiltradoParrilla.prototype._EjecutarPageTracker('Comarcas', GUI.SoporteComboTreeView.prototype.get_literal(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_ZONAS));

        SetLoadingPart('CajaContenidoParrillas');
        GUI.ctrlFiltradoParrilla.prototype._InicializarDatosMunicipios();
        GUI.ctrlFiltradoParrilla.prototype._GenerarUrl();
    },

    //Carga y tratamiento de datos de Municipios (Vendrá un código de comarca o subcomarca que será detectado en la BEL)
    //------------------------------------------------------------------------------------------------------------------
    _CargaInicialMunicipios: function (defaultvalue) {
        var multiSelect = GUI.SoporteComboTreeView.prototype._multiSelect(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS);
        if (defaultvalue != "0") {
            GUI.SoporteComboTreeView.prototype.set_disablecombo(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS);
            if (GUI.ctrlFiltradoParrilla.prototype._tipoZona(defaultvalue) != GUI.TipoFiltros.prototype.Municipios) GUI.ctrlFiltradoParrilla.prototype._InicializarDatosMunicipios();
            if (GUI.ctrlFiltradoParrilla.prototype._EsFiltroActivo(GUI.TipoFiltros.prototype.Municipios)) {
                if (_ES_MICROSITE) {
                    CBL.wsGEO.getComboMunicipiosFiltros(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS, defaultvalue, _FILTRADO_COMARCA, _FILTRADO_CODIGOTIPOINMUEBLE, _FILTRADO_TIPOOPERACION, _FILTRADO_IDUSUARIO, _FILTRADO_IDINMOBILIARIAEXTERNA, _FILTRADO_LICENCIA, multiSelect, GUI.SoporteComboTreeView.prototype.IniciliazarCombo);
                } else {
                    CBL.wsGEO.getComboMunicipiosFiltros(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS, defaultvalue, _FILTRADO_COMARCA, _FILTRADO_CODIGOTIPOINMUEBLE, _FILTRADO_TIPOOPERACION, 0, '', 0, multiSelect, GUI.SoporteComboTreeView.prototype.IniciliazarCombo);
                }
            }
        } else {
            GUI.ctrlFiltradoParrilla.prototype._InicializarDatosMunicipios();
            GUI.SoporteComboTreeView.prototype.set_disablecombo(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS);
        }
    },

    _comboInicializado_Municipios: function () {
        if (GUI.SoporteComboTreeView.prototype.get_contador(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS) == 1) {
            //if (GUI.SoporteComboTreeView.prototype._multiSelect(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS) == true) {
            //    GUI.SoporteComboTreeView.prototype.set_literal(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS, GUI.SoporteComboTreeView.prototype.get_literal_primer_elem(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS))
            //} else {
            //    GUI.SoporteComboTreeView.prototype.set_literal(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS, GUI.SoporteComboTreeView.prototype.get_literal_primer_elem(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS))
            //}
            //GUI.SoporteComboTreeView.prototype.set_disablecombo(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS);
            //GUI.SoporteComboTreeView.prototype.resetObj(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS);
            //GUI.SoporteComboTreeView.prototype.set_ocultar_lista(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS);
            //_FILTRADO_MUNICIPIO = GUI.SoporteComboTreeView.prototype.get_codigo_primer_elem(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS);
            //GUI.ctrlFiltradoParrilla.prototype._CargaInicialPoblacionDistrito(_FILTRADO_MUNICIPIO);
            _FILTRADO_MUNICIPIO = GUI.SoporteComboTreeView.prototype.get_codigo_primer_elem(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS);
            GUI.ctrlFiltradoParrilla.prototype._GenerarUrl();
        } else {
            GUI.SoporteComboTreeView.prototype.set_enablecombo(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS);
            if (GUI.SoporteComboTreeView.prototype._ABRIR_COMBO) GUI.SoporteComboTreeView.prototype.set_mostrar_lista(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS);
        }
    },

    _InicializarDatosMunicipios: function () {
        _FILTRADO_MUNICIPIO = '0';
        GUI.SoporteComboTreeView.prototype.resetObj(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS);
        GUI.SoporteComboTreeView.prototype.set_literal(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS, 'Todos');
        if (_FILTRADO_NIVEL == GUI.NivelZona.prototype.Provincia) GUI.SoporteComboTreeView.prototype.set_disablecombo(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS); //else GUI.SoporteComboTreeView.prototype.set_enablecombo(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS);
    },

    _ActualizarMunicipio: function (codigozona) {
        if (codigozona == '') {
            codigozona = GUI.SoporteComboTreeView.prototype.get_valor(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS);
            if (codigozona == '') {
                codigozona = GUI.SoporteComboTreeView.prototype.get_codigo_seleccionado(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS);
            }
        }

        _FILTRADO_MUNICIPIO = codigozona;
        _FILTRADO_NIVEL = GUI.NivelZona.prototype.Municipio;
        _FILTRADO_POBLACION = '0';
        _FILTRADO_DISTRITO = '0';
        GUI.SoporteComboTreeView.prototype._ABRIR_COMBO = false;

        GUI.ctrlFiltradoParrilla.prototype._EjecutarPageTracker('Municipio', GUI.SoporteComboTreeView.prototype.get_literal(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_MUNICIPIOS));

        SetLoadingPart('CajaContenidoParrillas');
        //GUI.ctrlFiltradoParrilla.prototype._CargaInicialPoblacionDistrito();
        GUI.ctrlFiltradoParrilla.prototype._GenerarUrl();

    },

    //Carga y tratamiento de datos de poblaciones y distritos
    _CargaInicialPoblacionDistrito: function (defaultvalue) {
        if (typeof (MAS_DE_UN_MUNICIPIO) != 'undefined' && MAS_DE_UN_MUNICIPIO == 'false') {
            if ((typeof (defaultvalue) != 'undefined' && defaultvalue != "0" && defaultvalue != "") || POBLACION_O_DISTRITO != '') {
                GUI.SoporteComboTreeView.prototype.set_disablecombo(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_POBLACIONES);

                if ((POBLACION_O_DISTRITO != 'localidad' && POBLACION_O_DISTRITO != '') || (typeof (defaultvalue) != 'undefined' && (defaultvalue.indexOf('D') > -1 || defaultvalue.indexOf('B') > -1 || defaultvalue.indexOf('G') > -1))) {
                    GUI.ctrlFiltradoParrilla.prototype._CargaInicialDistrito(defaultvalue);
                } else {
                    if (GUI.ctrlFiltradoParrilla.prototype._EsFiltroActivo(GUI.TipoFiltros.prototype.Localidades)) {
                        GUI.ctrlFiltradoParrilla.prototype._CargaInicialPoblaciones(defaultvalue);
                    }
                }
            } else {
                GUI.ctrlFiltradoParrilla.prototype._InicializarDatosDistrito();
                //GUI.SoporteComboTreeView.prototype.set_disablecombo(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_POBLACIONES);
            }
        } else {
            GUI.ctrlFiltradoParrilla.prototype._InicializarDatosDistrito();
        }
    },

    //Carga y tratamiento de datos de distritos
    //-------------------------------------------------------
    _CargaInicialDistrito: function (defaultvalue) {
        GUI.ctrlFiltradoParrilla.prototype._InicializarDatosDistrito();

        GUI.SoporteCheckBoxTree.prototype.set_inicializacheckboxtree(GUI.ctrlFiltradoParrilla.prototype._ID_TREECHECKS_DISTRITOBARRIO);
        if (_FILTRADO_MUNICIPIO.indexOf(",") == -1) {
            if (_ES_MICROSITE) {
                CBL.wsGEO.getComboPoblacionesDistritosBarriosFiltros(GUI.ctrlFiltradoParrilla.prototype._ID_TREECHECKS_DISTRITOBARRIO, defaultvalue, _FILTRADO_MUNICIPIO, GUI.CodigosNivelZona.prototype.Poblacion_Distrito, _FILTRADO_CODIGOTIPOINMUEBLE, _FILTRADO_TIPOOPERACION, _FILTRADO_IDUSUARIO, _FILTRADO_IDINMOBILIARIAEXTERNA, _FILTRADO_LICENCIA, true, GUI.SoporteCheckBoxTree.prototype.IniciliazarCheckBoxTree);
            } else {
                CBL.wsGEO.getComboPoblacionesDistritosBarriosFiltros(GUI.ctrlFiltradoParrilla.prototype._ID_TREECHECKS_DISTRITOBARRIO, defaultvalue, _FILTRADO_MUNICIPIO, GUI.CodigosNivelZona.prototype.Poblacion_Distrito, '0', '0', 0, '', 0, false, GUI.SoporteCheckBoxTree.prototype.IniciliazarCheckBoxTree);
            }
        }
    },

    _comboInicializado_Distrito: function (TipoZona) {
        if (GUI.SoporteCheckBoxTree.prototype.get_contador(GUI.ctrlFiltradoParrilla.prototype._ID_TREECHECKS_DISTRITOBARRIO) == 1) {
            $get(GUI.ctrlFiltradoParrilla.prototype._ROOT() + '_lbTituloPoblacionDistrito').innerHTML = '';
            GUI.SoporteCheckBoxTree.prototype.set_visiblecheckboxtree(GUI.ctrlFiltradoParrilla.prototype._ID_TREECHECKS_DISTRITOBARRIO, false);
        } else {
            GUI.SoporteCheckBoxTree.prototype.set_visiblecheckboxtree(GUI.ctrlFiltradoParrilla.prototype._ID_TREECHECKS_DISTRITOBARRIO, true);
        }
    },

    _InicializarDatosDistrito: function () {
        _FILTRADO_DISTRITO = '0';
        _FILTRADO_POBLACION = '0';
    },

    _ActualizarDistrito: function (param, TipoZona) {

        //        var aux = $("#tree_treeDistritoBarrio").find("input[type=checkbox]:checked").map(function () { return this.id; }).get().join(',');
        //        if ($("#tree_treeDistritoBarrio :last-child").find("input[type=checkbox]:checked").map(function () { return this.id; }).get().join(',') != '') {
        //            _FILTRADO_DISTRITO = aux.replace(',' + $("#tree_treeDistritoBarrio :last-child").find("input[type=checkbox]:checked").map(function () { return this.id; }).get().join(','), '');
        //        } else {
        //            _FILTRADO_DISTRITO = aux;
        //        }

        //_FILTRADO_DISTRITO = $("#tree_treeDistritoBarrio").find("input[type=checkbox]:checked").map(function () { return this.id; }).get().join(',');
        _FILTRADO_DISTRITO = param;

        //if (_FILTRADO_DISTRITO == '' || _FILTRADO_DISTRITO == '0') { _FILTRADO_DISTRITO = param; }

        //        if (param.indexOf('B') > -1 && param.indexOf('G') > -1) {
        //            _FILTRADO_NIVEL = GUI.NivelZona.prototype.Distrito + GUI.NivelZona.prototype.Barrio;
        //        } else 

        if (param.indexOf('B') > -1) {
            _FILTRADO_NIVEL = GUI.NivelZona.prototype.Barrio;
        } else {
            _FILTRADO_NIVEL = GUI.NivelZona.prototype.Distrito;
        }

        GUI.ctrlFiltradoParrilla.prototype._Tracker_NivelDistritoBarrio = _FILTRADO_NIVEL;
        GUI.ctrlFiltradoParrilla.prototype._Tracker_DistritoBarrio = GUI.SoporteComboTreeView.prototype.get_literal(GUI.ctrlFiltradoParrilla.prototype._ID_TREECHECKS_DISTRITOBARRIO);

        //Traqueamos al final
        //GUI.ctrlFiltradoParrilla.prototype._EjecutarPageTracker(_FILTRADO_NIVEL, GUI.SoporteComboTreeView.prototype.get_literal(GUI.ctrlFiltradoParrilla.prototype._ID_TREECHECKS_DISTRITOBARRIO));

        //if (param != '') {
        SetLoadingPart('CajaContenidoParrillas');
        //GUI.ctrlFiltradoParrilla.prototype._GenerarUrl();
        GUI.ctrlFiltradoParrilla.prototype._IniciarActualizacionFiltroDiferido();
        //}
    },

    // Carga y tratamiento de datos de poblaciones
    // --------------------------------------------
    _CargaInicialPoblaciones: function (defaultvalue) {
        if (_ES_MICROSITE) {
            CBL.wsGEO.getComboPoblacionesFiltros(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_POBLACIONES, defaultvalue, _FILTRADO_MUNICIPIO, _FILTRADO_CODIGOTIPOINMUEBLE, _FILTRADO_TIPOOPERACION, _FILTRADO_IDUSUARIO, _FILTRADO_LICENCIA, _FILTRADO_IDINMOBILIARIAEXTERNA, false, _FILTRADO_CODIGOTIPOINMUEBLE, _FILTRADO_TIPOOPERACION, GUI.ctrlFiltradoParrilla.prototype._CargaInicialPoblaciones_Callback);
        } else {
            CBL.wsGEO.getComboPoblacionesFiltros(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_POBLACIONES, defaultvalue, _FILTRADO_MUNICIPIO, '0', '0', '0', '', '0', false, _FILTRADO_CODIGOTIPOINMUEBLE, _FILTRADO_TIPOOPERACION, GUI.ctrlFiltradoParrilla.prototype._CargaInicialPoblaciones_Callback);
        }
    },

    _CargaInicialPoblaciones_Callback: function (result) {
        GUI.SoporteComboTreeView.prototype.IniciliazarCombo(result[0]);

        if (result.length > 1) {
            if (result[1].length > 0) {
                $get('dvInfoExtraPoblaciones').style.display = 'block';
            }
        }
    },

    _comboInicializado_Poblaciones: function () {
        if (GUI.SoporteComboTreeView.prototype.get_contador(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_POBLACIONES) == 1) {
            if (GUI.SoporteComboTreeView.prototype._multiSelect(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_POBLACIONES) == true) {
                GUI.SoporteComboTreeView.prototype.set_literal(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_POBLACIONES, GUI.SoporteComboTreeView.prototype.get_literal_primer_elem(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_POBLACIONES))
            } else {
                GUI.SoporteComboTreeView.prototype.set_literal(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_POBLACIONES, GUI.SoporteComboTreeView.prototype.get_literal_primer_elem(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_POBLACIONES))
            }
            GUI.SoporteComboTreeView.prototype.set_disablecombo(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_POBLACIONES);
            GUI.SoporteComboTreeView.prototype.resetObj(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_POBLACIONES);
            GUI.SoporteComboTreeView.prototype.set_ocultar_lista(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_POBLACIONES);
        } else {
            if ($('#browser_' + GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_POBLACIONES).find("li").length > 0) {
                GUI.SoporteComboTreeView.prototype.set_literal(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_POBLACIONES, GUI.SoporteComboTreeView.prototype.get_literal_primer_elem(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_POBLACIONES));
                GUI.SoporteComboTreeView.prototype.set_enablecombo(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_POBLACIONES);
                if (GUI.SoporteComboTreeView.prototype._ABRIR_COMBO) GUI.SoporteComboTreeView.prototype.set_mostrar_lista(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_POBLACIONES);
            }
        }
    },

    _InicializarDatosPoblaciones: function () {
        _FILTRADO_POBLACION = '0';
        _FILTRADO_DISTRITO = '0';
    },

    _ActualizarPoblaciones: function (param) {
        if (param == '') {
            param = GUI.SoporteComboTreeView.prototype.get_valor(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_POBLACIONES);
            if (param == '') {
                param = GUI.SoporteComboTreeView.prototype.get_codigo_seleccionado(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_POBLACIONES);
            }
        }

        _FILTRADO_DISTRITO = '0';
        _FILTRADO_POBLACION = param;

        GUI.ctrlFiltradoParrilla.prototype._EjecutarPageTracker('Poblaciones', GUI.SoporteComboTreeView.prototype.get_literal(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_POBLACIONES));

        SetLoadingPart('CajaContenidoParrillas');
        GUI.ctrlFiltradoParrilla.prototype._GenerarUrl();
    },

    //******* OTROS FILTROS (Familias / tipo inmueble, superficies, habitaciones, precios)

    // Carga y tratamiento de datos de Familia tipo de inmueble
    // --------------------------------------------------------
    _CargaInicialFamiliaTipoInmueble: function (defaultvalue) {

        if (GUI.ctrlFiltradoParrilla.prototype._EsFiltroActivo(GUI.TipoFiltros.prototype.FamiliasInmueble)) {
            $get(GUI.ctrlFiltradoParrilla.prototype._ROOT() + '_BloqueFamiliaTipoInmueble').style.visibility = 'visible';

            var ItemsVisibles = $get('tree_' + GUI.ctrlFiltradoParrilla.prototype._ID_TREECHECKS_FAMILIATIPOINMUEBLE).inititems;

            if (_ES_MICROSITE || ItemsVisibles == null) { ItemsVisibles = 0; }

            GUI.SoporteCheckBoxTree.prototype.set_inicializacheckboxtree(GUI.ctrlFiltradoParrilla.prototype._ID_TREECHECKS_FAMILIATIPOINMUEBLE);
            CBL.wsFiltros.getMultiCheck_FamiliaTipoInmueble(GUI.ctrlFiltradoParrilla.prototype._ID_TREECHECKS_FAMILIATIPOINMUEBLE, defaultvalue, _FILTRADO_CODIGOTIPOINMUEBLE, _FILTRADO_TIPOOPERACION, ItemsVisibles, _ES_MICROSITE, false, GUI.SoporteCheckBoxTree.prototype.IniciliazarCheckBoxTree);

        } else {
            $get(GUI.ctrlFiltradoParrilla.prototype._ROOT() + '_BloqueFamiliaTipoInmueble').style.display = 'none';
        }
    },

    _comboInicializado_FamiliaTipoInmueble: function (Tipologia) {

        GUI.SoporteCheckBoxTree.prototype.set_visiblecheckboxtree(GUI.ctrlFiltradoParrilla.prototype._ID_TREECHECKS_FAMILIATIPOINMUEBLE, true);

    },

    _InicializarDatosFamiliaTipoInmueble: function () {
        _FILTRADO_CODIGOTIPOINMUEBLE = '0';
    },

    _ActualizarFamiliaTipoInmueble: function (param) {

        if (param.indexOf('F005') > -1) { param = 'F005'; }

        _FILTRADO_CODIGOTIPOINMUEBLE = param;

        GUI.ctrlFiltradoParrilla.prototype._Tracker_FamiliaTipoInmueble = GUI.SoporteCheckBoxTree.prototype._get_literal(GUI.ctrlFiltradoParrilla.prototype._ID_TREECHECKS_FAMILIATIPOINMUEBLE);
        //GUI.ctrlFiltradoParrilla.prototype._EjecutarPageTracker('FamiliaTipoInmueble', GUI.SoporteCheckBoxTree.prototype._get_literal(GUI.ctrlFiltradoParrilla.prototype._ID_TREECHECKS_FAMILIATIPOINMUEBLE));

        if (param == '') {
            _FILTRADO_SUPERFICIE = 0;
            _FILTRADO_PRECIOMIN = 0;
            _FILTRADO_PRECIOMAX = 0;
            _FILTRADO_HABITACIONES = 0;

            GUI.SoporteComboTreeView.prototype.set_disablecombo(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_PRECIO);
            GUI.SoporteComboTreeView.prototype.set_disablecombo(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_PRECIO_MIN);
            GUI.SoporteComboTreeView.prototype.set_disablecombo(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_SUPERFICIE);
            GUI.SoporteComboTreeView.prototype.set_disablecombo(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_HABITACIONES);
        }

        SetLoadingPart('CajaContenidoParrillas');
        GUI.ctrlFiltradoParrilla.prototype._IniciarActualizacionFiltroDiferido();

    },

    _IniciarActualizacionFiltroDiferido: function () {

        var now = new Date();
        GUI.ctrlFiltradoParrilla.prototype._TIMEOUT_ACTUALIZACION_FILTRO = now.getYear().toString() + now.getMonth().toString() + now.getDate().toString() + now.getHours().toString() + now.getMinutes().toString() + (now.getSeconds() + 1).toString() + now.getMilliseconds().toString();

        //$get('ctl00_ctl00_CPH_Body_scFiltradoParrilla_spFTipologias').innerHTML = GUI.ctrlFiltradoParrilla.prototype._TIMEOUT_ACTUALIZACION_FILTRO

        if (!GUI.ctrlFiltradoParrilla.prototype._TIMEOUT_ACTIVO) {
            GUI.ctrlFiltradoParrilla.prototype._TIMEOUT_ACTIVO = true;
            window.setTimeout('GUI.ctrlFiltradoParrilla.prototype._ActualizacionFiltroDiferido()', GUI.ctrlFiltradoParrilla.prototype._DEFAULT_TIMEOUT);
        }

    },

    _ActualizacionFiltroDiferido: function () {

        var now = new Date();
        var StrNow = now.getYear().toString() + now.getMonth().toString() + now.getDate().toString() + now.getHours().toString() + now.getMinutes().toString() + now.getSeconds().toString() + now.getMilliseconds().toString();

        if (GUI.ctrlFiltradoParrilla.prototype._TIMEOUT_ACTUALIZACION_FILTRO < StrNow) {

            if ($('#' + GUI.ctrlFiltradoParrilla.prototype._ROOT() + '_BloqueDistrito').length > 0) {
                GUI.SoporteCheckBoxTree.prototype.set_disabletree($('#tree_' + GUI.ctrlFiltradoParrilla.prototype._ID_TREECHECKS_DISTRITOBARRIO));
            }

            if ($('#' + GUI.ctrlFiltradoParrilla.prototype._ROOT() + '_BloqueFamiliaTipoInmueble').length > 0) {
                GUI.SoporteCheckBoxTree.prototype.set_disabletree($('#tree_' + GUI.ctrlFiltradoParrilla.prototype._ID_TREECHECKS_FAMILIATIPOINMUEBLE));
            }

            if ($('#' + GUI.ctrlFiltradoParrilla.prototype._ROOT() + '_dvQueTengaSuperior').length > 0 || $('#' + GUI.ctrlFiltradoParrilla.prototype._ROOT() + '_BloqueFechaPublicacion').length > 0) {
                GUI.SoporteFiltroGenerico.prototype.disable_all_check_controls();
            }
            
            $('#' + GUI.ctrlFiltradoParrilla.prototype._ROOT() + '_BloqueTipoOperacion').find("input").attr('disabled', 'disabled');            

            GUI.ctrlFiltradoParrilla.prototype._GenerarUrl();
        } else {
            window.setTimeout('GUI.ctrlFiltradoParrilla.prototype._ActualizacionFiltroDiferido()', GUI.ctrlFiltradoParrilla.prototype._DEFAULT_TIMEOUT);
        }

    },

    _ActualizarTituloFechaAltaCallBack: function (result) {
        SetLoadingPart('CajaContenidoParrillas');
        GUI.ctrlFiltradoParrilla.prototype._GenerarUrl();
    },

    //Actualización del Tipo de Operacion
    _UpdateTipoOperacion: function (Rdb, Value) {

        _FILTRADO_TIPOOPERACION = Value;
        $get($get("_ROOT_ctrlTipoOperacionRdb").value + '_hdnIdTipoOperacion').value = Value;

        SetLoadingPart('CajaContenidoParrillas');

        var Valor = "Todos";
        if (Value == 4) { Valor = "Compra" } else if (Value == 3) { Valor = "Alquiler" }

        GUI.ctrlFiltradoParrilla.prototype._EjecutarPageTracker('TipoOperacion', Valor);

        GUI.ctrlFiltradoParrilla.prototype._GenerarUrl();

    },

    // Carga y tratamiento de datos de superficies
    // -------------------------------------------
    _CargaInicialSuperficie: function (defaultvalue) {
        if (GUI.ctrlFiltradoParrilla.prototype._EsFiltroActivo(GUI.TipoFiltros.prototype.Superficies)) {
            $get(GUI.ctrlFiltradoParrilla.prototype._ROOT() + '_BloqueSuperficie').style.visibility = 'visible';
            CBL.wsFiltros.getComboSuperficies(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_SUPERFICIE, defaultvalue, _FILTRADO_CODIGOTIPOINMUEBLE, GUI.ctrlFiltradoParrilla.prototype._URL_ACTUAL.toString(), GUI.SoporteComboTreeView.prototype.IniciliazarCombo);
        } else {
            $get(GUI.ctrlFiltradoParrilla.prototype._ROOT() + '_BloqueSuperficie').style.display = 'none';
            //$get(GUI.ctrlFiltradoParrilla.prototype._ROOT() + '_BloqueSuperficie').style.visibility = 'hidden';
        }
    },

    _comboInicializado_Superficie: function () {
        GUI.SoporteComboTreeView.prototype.set_enablecombo(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_SUPERFICIE);
        GUI.SoporteComboTreeView.prototype.set_mostrar_lista(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_SUPERFICIE);
    },

    _InicializarDatosSuperficies: function () {
        _FILTRADO_SUPERFICIE = '0';
    },

    _ActualizarSuperficie: function (param) {
        _FILTRADO_SUPERFICIE = param;

        GUI.ctrlFiltradoParrilla.prototype._EjecutarPageTracker('Superficie', GUI.SoporteComboTreeView.prototype.get_literal(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_SUPERFICIE));

        SetLoadingPart('CajaContenidoParrillas');
        GUI.ctrlFiltradoParrilla.prototype._GenerarUrl();
    },

    // Carga y tratamiento de datos de precio
    // --------------------------------------
    _CargaInicialPrecio: function (defaultvalue) {
        if (GUI.ctrlFiltradoParrilla.prototype._EsFiltroActivo(GUI.TipoFiltros.prototype.Precios)) {
            $get(GUI.ctrlFiltradoParrilla.prototype._ROOT() + '_BloquePrecioMax').style.visibility = 'visible';
            CBL.wsFiltros.getComboRangosDePrecio(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_PRECIO, defaultvalue, _FILTRADO_CODIGOTIPOINMUEBLE, _FILTRADO_TIPOOPERACION, GUI.ctrlFiltradoParrilla.prototype._URL_ACTUAL.toString(), _FILTRADO_PRECIOMIN, GUI.SoporteComboTreeView.prototype.IniciliazarCombo);
        } else {
            //$get(GUI.ctrlFiltradoParrilla.prototype._ROOT() + '_BloquePrecioMax').style.visibility = 'hidden';
            $get(GUI.ctrlFiltradoParrilla.prototype._ROOT() + '_BloquePrecioMax').style.display = 'none';
        }
    },

    _CargaInicialPrecioMin: function (defaultvalue) {
        if (GUI.ctrlFiltradoParrilla.prototype._EsFiltroActivo(GUI.TipoFiltros.prototype.Precios)) {
            $get(GUI.ctrlFiltradoParrilla.prototype._ROOT() + '_BloquePrecioMax').style.visibility = 'visible';
            CBL.wsFiltros.getComboRangosDePrecio(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_PRECIO_MIN, defaultvalue, _FILTRADO_CODIGOTIPOINMUEBLE, _FILTRADO_TIPOOPERACION, GUI.ctrlFiltradoParrilla.prototype._URL_ACTUAL.toString(), _FILTRADO_PRECIOMAX, GUI.SoporteComboTreeView.prototype.IniciliazarCombo);
        } else {
            //$get(GUI.ctrlFiltradoParrilla.prototype._ROOT() + '_BloquePrecioMax').style.visibility = 'hidden';
            $get(GUI.ctrlFiltradoParrilla.prototype._ROOT() + '_BloquePrecioMax').style.display = 'none';
        }
    },

    _comboInicializado_Precio: function () {
        GUI.SoporteComboTreeView.prototype.set_enablecombo(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_PRECIO);
        GUI.SoporteComboTreeView.prototype.set_mostrar_lista(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_PRECIO);
    },

    _comboInicializado_PrecioMin: function () {
        GUI.SoporteComboTreeView.prototype.set_enablecombo(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_PRECIO_MIN);
        GUI.SoporteComboTreeView.prototype.set_mostrar_lista(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_PRECIO_MIN);
    },

    _InicializarDatosPrecioMax: function () {
        _FILTRADO_PRECIOMAX = 0;
    },

    _InicializarDatosPrecioMin: function () {
        _FILTRADO_PRECIOMIN = 0;
    },

    _ActualizarPrecio: function (param) {

        _FILTRADO_PRECIOMAX = param;

        GUI.ctrlFiltradoParrilla.prototype._EjecutarPageTracker('PrecioMax', GUI.SoporteComboTreeView.prototype.get_literal(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_PRECIO));

        SetLoadingPart('CajaContenidoParrillas');
        GUI.ctrlFiltradoParrilla.prototype._GenerarUrl();

    },

    _ActualizarPrecioMin: function (param) {

        _FILTRADO_PRECIOMIN = param;
        GUI.ctrlFiltradoParrilla.prototype._EjecutarPageTracker('PrecioMin', GUI.SoporteComboTreeView.prototype.get_literal(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_PRECIO_MIN));

        SetLoadingPart('CajaContenidoParrillas');
        GUI.ctrlFiltradoParrilla.prototype._GenerarUrl();

    },

    // Carga y tratamiento de datos de habitaciones
    // --------------------------------------------
    _CargaInicialHabitaciones: function (defaultvalue) {
        if (GUI.ctrlFiltradoParrilla.prototype._EsFiltroActivo(GUI.TipoFiltros.prototype.Habitaciones)) {
            $get(GUI.ctrlFiltradoParrilla.prototype._ROOT() + '_BloqueHabitaciones').style.visibility = 'visible';
            CBL.wsFiltros.getComboHabitaciones(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_HABITACIONES, defaultvalue, GUI.ctrlFiltradoParrilla.prototype._URL_ACTUAL.toString(), GUI.SoporteComboTreeView.prototype.IniciliazarCombo);
        } else {
            //$get(GUI.ctrlFiltradoParrilla.prototype._ROOT() + '_BloqueHabitaciones').style.visibility = 'hidden';
            $get(GUI.ctrlFiltradoParrilla.prototype._ROOT() + '_BloqueHabitaciones').style.display = 'none';
        }
    },

    _comboInicializado_Habitaciones: function () {
        GUI.SoporteComboTreeView.prototype.set_enablecombo(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_HABITACIONES);
        GUI.SoporteComboTreeView.prototype.set_mostrar_lista(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_HABITACIONES);
    },

    _InicializarDatosHabitaciones: function () {
        _FILTRADO_HABITACIONES = 0;
    },

    _ActualizarHabitaciones: function (param) {
        _FILTRADO_HABITACIONES = param;
        GUI.ctrlFiltradoParrilla.prototype._EjecutarPageTracker('Habitaciones', GUI.SoporteComboTreeView.prototype.get_literal(GUI.ctrlFiltradoParrilla.prototype._ID_COMBO_HABITACIONES));

        SetLoadingPart('CajaContenidoParrillas');
        GUI.ctrlFiltradoParrilla.prototype._GenerarUrl();
    },

    // Miramos si el filtro es activo antes de hacer la llamada al server (Ahorramos llamadas al servidor) provincia: 51 ceuta, 52 melilla
    _EsFiltroActivo: function (TipoFiltro) {

        switch (TipoFiltro) {
            case GUI.TipoFiltros.prototype.FamiliasInmueble:
                return ((_FILTRADO_CODIGOTIPOINMUEBLE.toUpperCase().indexOf('F005') == -1 && _FILTRADO_CODIGOTIPOINMUEBLE.toUpperCase().indexOf('F011') == -1) || _ES_MICROSITE)
                break;

            case GUI.TipoFiltros.prototype.Habitaciones:
                if (_FILTRADO_CODIGOTIPOINMUEBLE.toUpperCase().indexOf('F002') > -1 || _FILTRADO_CODIGOTIPOINMUEBLE.toUpperCase().indexOf('F003') > -1 || _FILTRADO_CODIGOTIPOINMUEBLE.toUpperCase().indexOf('F004') > -1 || _FILTRADO_CODIGOTIPOINMUEBLE.toUpperCase().indexOf('F011') > -1) return true;
                break;

            case GUI.TipoFiltros.prototype.Superficies:
                if (_FILTRADO_CODIGOTIPOINMUEBLE.toUpperCase().indexOf('F002') > -1 || _FILTRADO_CODIGOTIPOINMUEBLE.toUpperCase().indexOf('F003') > -1 || _FILTRADO_CODIGOTIPOINMUEBLE.toUpperCase().indexOf('F004') > -1 || _FILTRADO_CODIGOTIPOINMUEBLE.toUpperCase().indexOf('F005') > -1 || _FILTRADO_CODIGOTIPOINMUEBLE.toUpperCase().indexOf('F006') > -1 || _FILTRADO_CODIGOTIPOINMUEBLE.toUpperCase().indexOf('F007') > -1 || _FILTRADO_CODIGOTIPOINMUEBLE.toUpperCase().indexOf('F011') > -1) return true;
                break;

            case GUI.TipoFiltros.prototype.Precios:
                if (_FILTRADO_CODIGOTIPOINMUEBLE.toUpperCase().indexOf('F002') > -1 || _FILTRADO_CODIGOTIPOINMUEBLE.toUpperCase().indexOf('F003') > -1 || _FILTRADO_CODIGOTIPOINMUEBLE.toUpperCase().indexOf('F004') > -1 || _FILTRADO_CODIGOTIPOINMUEBLE.toUpperCase().indexOf('F005') > -1 || _FILTRADO_CODIGOTIPOINMUEBLE.toUpperCase().indexOf('F006') > -1 || _FILTRADO_CODIGOTIPOINMUEBLE.toUpperCase().indexOf('F007') > -1 || _FILTRADO_CODIGOTIPOINMUEBLE.toUpperCase().indexOf('F008') > -1 || _FILTRADO_CODIGOTIPOINMUEBLE.toUpperCase().indexOf('F011') > -1) return true;
                break;

            case GUI.TipoFiltros.prototype.Comarcas:
                if (_FILTRADO_PROVINCIA != 'P00000000000051' && _FILTRADO_PROVINCIA != 'P00000000000052') return true;
                break;

            case GUI.TipoFiltros.prototype.Municipios:
                if (_FILTRADO_COMARCA.length > 0 && (_FILTRADO_PROVINCIA != 'P00000000000051' && _FILTRADO_PROVINCIA != 'P00000000000052')) return true;

            case GUI.TipoFiltros.prototype.Localidades:
                if ((_FILTRADO_COMARCA.length > 0 && _FILTRADO_MUNICIPIO.length > 0) || GUI.ctrlFiltradoParrilla.prototype._ExcepcionesMostrarDistrito(_FILTRADO_COMARCA) && (_FILTRADO_PROVINCIA != 'P00000000000051' && _FILTRADO_PROVINCIA != 'P00000000000052')) return true;
                break;
        }

        return false;
    },

    _ActualizarDias: function (publica) {

        GUI.ctrlFiltradoParrilla.prototype._EjecutarPageTracker('FechaPublicacion', publica);

        if (GUI.ctrlFiltradoParrilla.prototype._RECARGA_SERVIDOR) {
            SetLoadingPart('CajaContenidoParrillas');
            GUI.ctrlFiltradoParrilla.prototype._GenerarUrl();
        }
    },

    _LimpiarFiltros: function () {
        GUI.ctrlFiltradoParrilla.prototype._GenerarUrl(true);
    },

    _GenerarUrl: function (LimpiarFiltros) {

        SetLoadingPart('CajaContenidoParrillas');

        var LimpiarFiltrosURL = false;

        if (typeof (LimpiarFiltros) != 'undefined') { LimpiarFiltrosURL = LimpiarFiltros; }

        var _OrdenParrilla = GUI.SoporteComboTreeView.prototype.get_codigo_seleccionado(GUI.Cuerpo.prototype._ID_COMBO_ORDEN);
        var cadenaCaracteristicas = GUI.ctrlFiltradoParrilla.prototype.getCaracteristicasTodosFiltros();

        if (_FILTRADO_OBRANUEVA) {
            if (_FILTRADO_CODIGOTIPOINMUEBLE == "" || _FILTRADO_CODIGOTIPOINMUEBLE == "0") {
                _FILTRADO_CODIGOTIPOINMUEBLE = "F010";
                if (!_ES_MICROSITE) { _FILTRADO_CODIGOTIPOINMUEBLE = _FILTRADO_CODIGOTIPOINMUEBLE + ((_FAMILIA_INICIAL != '') ? ',' + _FAMILIA_INICIAL : ''); }
            } else {
                _FILTRADO_CODIGOTIPOINMUEBLE = "F010," + _FILTRADO_CODIGOTIPOINMUEBLE;
            }
        } else if (_FILTRADO_CODIGOTIPOINMUEBLE == "" || _FILTRADO_CODIGOTIPOINMUEBLE == "0") {
            if (!_ES_MICROSITE) { _FILTRADO_CODIGOTIPOINMUEBLE = _FAMILIA_INICIAL; }
        }

        if (GUI.ctrlFiltradoParrilla.prototype._TrackFilter) {
            if (GUI.ctrlFiltradoParrilla.prototype._Tracker_FamiliaTipoInmueble != "") { GUI.ctrlFiltradoParrilla.prototype._EjecutarPageTracker('FamiliaTipoInmueble', GUI.ctrlFiltradoParrilla.prototype._Tracker_FamiliaTipoInmueble); }
            if (GUI.ctrlFiltradoParrilla.prototype._Tracker_DistritoBarrio != "" && GUI.ctrlFiltradoParrilla.prototype._Tracker_NivelDistritoBarrio != "") { GUI.ctrlFiltradoParrilla.prototype._EjecutarPageTracker(GUI.ctrlFiltradoParrilla.prototype._Tracker_NivelDistritoBarrio, GUI.ctrlFiltradoParrilla.prototype._Tracker_DistritoBarrio); }
            if (GUI.ctrlFiltradoParrilla.prototype._Tracker_Caracteristicas != "") { GUI.ctrlFiltradoParrilla.prototype._EjecutarPageTracker('Caracteristicas', GUI.ctrlFiltradoParrilla.prototype._Tracker_Caracteristicas); }
            if (GUI.ctrlFiltradoParrilla.prototype._Tracker_MostrarSolo != "") { GUI.ctrlFiltradoParrilla.prototype._EjecutarPageTracker('MostrarSolo', GUI.ctrlFiltradoParrilla.prototype._Tracker_MostrarSolo); }
            GUI.ctrlFiltradoParrilla.prototype._TrackFilter = false;
        }

        if (_ES_MICROSITE) {
            CBL.wsFiltros.getUrlMicrosite(_FILTRADO_PROVINCIA, _FILTRADO_COMARCA, _FILTRADO_MUNICIPIO, _FILTRADO_POBLACION, _FILTRADO_DISTRITO, _FILTRADO_CODIGOTIPOINMUEBLE, _FILTRADO_TIPOOPERACION, _FILTRADO_PRECIOMIN, _FILTRADO_PRECIOMAX, _FILTRADO_SUPERFICIE, _FILTRADO_HABITACIONES, _FILTRADO_IDUSUARIO, _FILTRADO_IDINMOBILIARIAEXTERNA, _FILTRADO_LICENCIA, cadenaCaracteristicas, LimpiarFiltrosURL, GUI.ctrlFiltradoParrilla.prototype._RedirigirCallBack);
        } else {
            CBL.wsFiltros.getUrlParrilla(_FILTRADO_PROVINCIA, _FILTRADO_COMARCA, _FILTRADO_MUNICIPIO, _FILTRADO_POBLACION, _FILTRADO_DISTRITO, _FILTRADO_CODIGOTIPOINMUEBLE, _FILTRADO_TIPOOPERACION, _FILTRADO_PRECIOMIN, _FILTRADO_PRECIOMAX, _FILTRADO_SUPERFICIE, _FILTRADO_HABITACIONES, _OrdenParrilla, _FILTRADO_FECHA_PUBLICACION, cadenaCaracteristicas, _TIPO_PARRILLA, LimpiarFiltrosURL, GUI.ctrlFiltradoParrilla.prototype._RedirigirCallBack);
        }
    },

    _RedirigirCallBack: function (result) {
        navigateWithReferrer(result);
    },

    _EjecutarPageTracker: function (tipoFiltro, valorFiltro) {

        if (!(typeof (valorFiltro) == 'undefined' || valorFiltro == null || valorFiltro == '')) {

            var Valores = valorFiltro.split(',');
            var i = 0;
            var pos = 0;

            for (i = 0; i < Valores.length; i++) {

                pos = Valores[i].indexOf('<b>');

                if (pos == -1) { pos = Valores[i].indexOf('<B>'); }
                if (pos == -1) { pos = Valores[i].indexOf('('); }

                if (pos > -1) {
                    Valores[i] = Valores[i].substring(0, pos);
                    Valores[i] = Valores[i].trim();
                }

                pageTracker._trackEvent("filtros", tipoFiltro, Valores[i]);
            }

        }

    },

    _ExcepcionesMostrarDistrito: function (Comarca) {
        if (Comarca == 'C00000000000322') return true; //Vitoria
        if (Comarca == 'C00000000000118') return true; //Formentera-Islas Baleares
        if (Comarca == 'C00000000000361') return true; //A Coruña
        if (Comarca == 'C00000000000362') return true; //Lugo
        if (Comarca == 'C00000000000192') return true; //Madrid
        if (Comarca == 'C00000000000336') return true; //Malaga
        if (Comarca == 'C00000000000339') return true; //Sevilla
        if (Comarca == 'C00000000000359') return true; //Toledo
        if (Comarca == 'C00000000000360') return true; //Talavera de la reina
        if (Comarca == 'C00000000000330') return true; //Valencia

        return false;
    },

    actualizarCaracteristicas: function () {
        SetLoadingPart('CajaContenidoParrillas');

        GUI.ctrlFiltradoParrilla.prototype._IniciarActualizacionFiltroDiferido();
    },

    getCaracteristicasTodosFiltros: function (IdFiltro) {
        var cadenaCaracteristicas = '';
        var subcadenaCaracteristicas = '';
        var idsControlesGenericos = GUI.ctrlFiltradoParrilla.prototype._CADENA_IDS_FILTROS_GENERICOS.split('/');
        var i = 0;

        if (!(typeof (IdFiltro) == 'undefined' || IdFiltro == null || IdFiltro == '')) {
            idsControlesGenericos = IdFiltro.split('/');
        }

        for (i = 0; i < idsControlesGenericos.length; i++) {
            subcadenaCaracteristicas = GUI.SoporteFiltroGenerico.prototype.getCadenaCaracteristicasControl('control_' + idsControlesGenericos[i]);
            if (subcadenaCaracteristicas != '') {
                if (cadenaCaracteristicas != '') cadenaCaracteristicas = cadenaCaracteristicas + ',';
                cadenaCaracteristicas = cadenaCaracteristicas + subcadenaCaracteristicas;
            }
        }
        return cadenaCaracteristicas;
    }
}
GUI.ctrlFiltradoParrilla.registerClass('GUI.ctrlFiltradoParrilla', Sys.Component);
if (typeof (Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();

if (typeof (GUI) != 'undefined') {
    Sys.Application.add_load(function () {
        if ($get('_ROOT_ctrlFiltradoParrilla') != null) {
            $create(GUI.ctrlFiltradoParrilla, { 'id': 'ctrlFiltradoParrilla' });
        }
    });
}

// Enumeración de filtros
GUI.TipoFiltros = function () { };
GUI.TipoFiltros.prototype =
{
    Provincias: 0,
    Comarcas: 1,
    Municipios: 2,
    Localidades: 3,
    Distritos: 4,
    Barrios: 5,
    FamiliasInmueble: 6,
    Precios: 7,
    Superficies: 8,
    Habitaciones: 9
}

GUI.NivelZona = function () { };
GUI.NivelZona.prototype =
{
    Indeterminado: 'Indeterminado',
    Provincia: 'Provincia',
    Zona: ['Comarca', 'SubComarca', 'SectorMunicipal'],
    Comarca: 'Comarca',
    SubComarca: 'SubComarca',
    SectorMunicipal: 'SectorMunicipal',
    Municipio: 'Municipio',
    Poblacion_Distrito: 'Poblacion_Distrito',
    Localidad: 'Localidad',
    Distrito: 'Distrito',
    Barrio: 'Barrio'
}

$(document).ready(function () {
    $(".PagerHyperlinkStyle").each(function () {
        $(this).click(function () {
            SetLoadingPart('CajaContenidoParrillas');
        });

    });
});

