var filtrosAutomaticos = 0;
var restringir = 1;
function toggleFiltrosNodos(btn) {
    $('.contenedor-filtros').slideToggle(function() {
        if ($(btn).hasClass('btn-cerrar-filtros') && $('.contenedor-filtros').is(':visible') === false) {
            $("html, body").animate({
                scrollTop: $('header').outerHeight() + $("#resultados-modos").position().top + $("#resultados-modos").outerHeight()
            });
        }
    });
}
function aplicarFiltrosNodos() {
    var urlInicial = $('#url-inicial').val();
    var urlFiltros = $('#url-filtros').val();
    var urlDefinitiva = new String();
    var filtros = new String();
    var contadorFiltrosNodos = 0;
    $('.contenedor-filtros .filtro').each(function(index, element) {
        var caracteristica = $(this).prop('id');
        var nodeName = $(this).prop('nodeName');
        switch (nodeName) {
            case 'SELECT':
                var valor = $(this).val();
                if (valor != '') {
                    filtros = filtros + caracteristica + ':' + valor + ';';
                    contadorFiltrosNodos++;
                }
                break;
            case 'INPUT':
                var type = $(this).prop('type');
                if (type === 'checkbox') {
                    if ($(this).is(':checked')) {
                        filtros = filtros + caracteristica + ';';
                        contadorFiltrosNodos++;
                    }
                }
                break;
        }
    });
    if (contadorFiltrosNodos > 0) {
        filtros = filtros.slice(0, -1);
        urlDefinitiva = urlFiltros + '_' + filtros + '_nn';
        //window.location.href = encodeURIComponent(urlDefinitiva);
		window.location.href = urlDefinitiva;
    } else {
        //window.location.href = encodeURIComponent(urlInicial + '_nn');
		window.location.href = urlInicial + '_nn';
        
    }
}
    
    function generarFiltros () {
        $('.contenedor-filtros .filtro').attr('disabled', true);
    
        var configuracionFiltros = new ConfiguracionFiltros();
        consultarFiltros(configuracionFiltros);
        pintarNuevosFiltros();
        activarFiltros();
    }
    
    function ConfiguracionFiltros () {
        this.id = $('#id-nodo').val();
    
        var filtros = new String();
        $('.contenedor-filtros .filtro').each(function(index, element) {
            var caracteristica = $(this).prop('id');
    
            var nodeName = $(this).prop('nodeName');
            switch (nodeName) {
                case 'SELECT':
    
                    var valor = $(this).val();
                    if (valor != '') {
                        filtros = filtros + caracteristica + ':' + valor + ';';
                    }
    
                    break;
    
                case 'INPUT':
    
                    var type = $(this).prop('type');
    
                    if (type === 'checkbox') {
    
                        if ($(this).is(':checked')) {
                            filtros = filtros + caracteristica + ';';
                        }
    
                    }
    
                    break;
            }
        });
    
        this.filtros = filtros;
    }
    
    var nuevosFiltros = new Array();
    function consultarFiltros (config) {
        $.ajax({
            type: 'POST',
            dataType: 'JSON',
            url: 'ControlNodos',
            async: false,
            data: {
                tabla: 1,
                estado: 3,
                id_nodo: config.id,
                nod_filtros: config.filtros
            },
            success: function(response) {
                nuevosFiltros = response.filtros;
            },
            error: function(response) {
                console.log('error AJAX');
                console.log(response);
            }
        });
    }
    
    function pintarNuevosFiltros () {
        for (var i = 0; i < nuevosFiltros.length; i++) {
            var filtro = nuevosFiltros[i];
    
            if (filtro.tipo === 0) {
                // Checkbox
                var seleccionado = filtro.valores[0].seleccionado;
    
                if (seleccionado === 0) {
                    $('#' + filtro.id_caracteristica + '.filtro').attr('checked', false);
                } else if (seleccionado === 1) {
                    $('#' + filtro.id_caracteristica + '.filtro').attr('checked', true);
                }
    
                $('#' + filtro.id_caracteristica + '.filtro').attr('disabled', false);
    
            } else {
                // Desplegable
    
                var htmlSelect = '';
    
                if (filtro.valores.length > 0) {
    
                    for (var j = 0; j < filtro.valores.length; j++) {
                        var option = filtro.valores[j];
    
                        if (option.seleccionado === 0) {
                            htmlSelect = htmlSelect + '';                        
                        } else {
                            htmlSelect = htmlSelect + '';
                        }
    
                    }
    
                    $('#' + filtro.id_caracteristica + '.filtro').html(htmlSelect).attr('disabled', false);
                } else {
                    $('#' + filtro.id_caracteristica + '.filtro').html(htmlSelect);
                }
    
            }
        }
    }
    
	
var btnDescargarPDF = document.getElementById('btn-descargar-pdf');
function comprobarDescargaPDF() {
    var boton = this;
    var id = $(this).data('id-nodo');
    $(boton).attr('disabled', true).text('Generando fichero...');
    var interval = setInterval(function(){
        $.ajax({
            type: 'POST',
            dataType: 'JSON',
            url: 'ControlNodos',
            async: false,
            data: {
                tabla: 1,
                estado: 4,
                id_nodo: id
            },
            success: function(response) {
                if (response === 0) {
                    clearInterval(interval);
                    $(boton).attr('disabled', false).text('Descargar');
                }
            },
            error: function(error) {
                console.log(error);
            }
        });
    }, 2000);
}
// Cargando
var filtrosActivados = false;
function activarFiltros() {
    $('.contenedor-filtros.cargando').removeClass('cargando');
    filtrosActivados = true;
}
function desactivarFiltros() {
    $('.contenedor-filtros.cargando').addClass('cargando');
    filtrosActivados = false
}
var filtroActivo = false;
function actualizarEstadoFiltros () {
    $('.contenedor-filtros .filtro').each(function () {
        if (this.value !== '') {
            filtroActivo = true;
            return false;
        }
    });
}
// Eventos
if (btnDescargarPDF) {
    btnDescargarPDF.addEventListener('click', comprobarDescargaPDF);
}
if (restringir === 1 && filtrosAutomaticos === 0) {
    $('.contenedor-filtros .filtro').change(function() {
        generarFiltros();
    });
}
    
window.addEventListener('load', function () {
    actualizarEstadoFiltros();
    if (filtroActivo) {
        activarFiltros();
    }
});
$(document).ready(function() {
    if (restringir === 1 && $('#nod-filtros').val() != undefined && $('#nod-filtros').val().length > 0) {
        generarFiltros();
    } else {
        activarFiltros();
    }
});