$(document).ready(function () {
    checkFilterState();
    if (localStorage.getItem("cookiemessage") != "seen") {$("#cookie-message").show();}
    $(".set-cookie").on('click', function() {
        $("#cookie-message").hide();
        localStorage.setItem("cookiemessage", "seen");
    });
    $('.pr-count').each(function() {
        var province = $(this).data('province'),
        query = '\\|'+province+'\\|',
        result = $("[data-tags*='"+query+"']");
        $(this).text(result.length);
    });
    $('.sr-mobile-filter').on('click', function () {
        $(this).toggleClass('on');
        $(this).parent().toggleClass('sr-pl-0');
        $('.sr-legenda').toggleClass('d-none');
        $(this).find('i').first().toggleClass('fa-chevron-down fa-chevron-up');
    });
    $('.sr-toggle-filter-group').on('click', function() {
        var target = $(this).data('target');
        $('#'+target).toggleClass('d-none');
        $(this).find('i').toggleClass('fa-plus fa-minus');
    });
    var hoverState = 0;
    $('.sr-hover').on('mouseenter', function() {
        $(this).next('tr').css('display', 'table-row');
        $(this).css('display', 'none');
        hoverState++;
        checkHoverState();
    });
    $('.sr-dehover').on('mouseleave', function() {
        $(this).prev('tr').css('display', 'table-row');
        $(this).css('display', 'none');
        hoverState--;
        checkHoverState();
    });
    function checkHoverState() {
        if(hoverState < 0 || hoverState > 1) {
            $('.sr-table-record').css('display', 'table-row');
            $('.sr-visit-profile').css('display', 'none');
            hoverState = 0;
        }
    }

    $("#inlineFormCustomSelectPref").on('change', function() {
        var entry_id = $(this).val();
        $('.sr-jq-diploma').addClass('d-none');
        $('.diploma-' + entry_id).removeClass('d-none');
    });
    $('.sr-toggle-hidden-profiles').on('click', function () {
        $(this).toggleClass('d-none');
        event.preventDefault();
        $('.sr-hidden-profiles').toggleClass('d-none');
    });
    $('.sr-filter-selection').on('change', function () {
        var categorySelection = '',
            provinceSelection = '',
            diplomaSelection = '',
            recognitionSelection = '';

        $('.sr-table-record').hide();

        $('input[name="category"]:checked').each(function() {
            categorySelection += '\\|'+$(this).val()+'\\|';
            console.log(categorySelection);
        });
        $('input[name="province"]:checked').each(function() {
            provinceSelection += '\\|'+$(this).val()+'\\|';
            console.log(provinceSelection);
        });
        $('input[name="diploma"]:checked').each(function() {
            diplomaSelection += '\\|'+$(this).val()+'\\|';
            console.log(diplomaSelection);
        });
        $('input[name="recognition"]:checked').each(function() {
            recognitionSelection += '\\|'+$(this).val()+'\\|';
            console.log(recognitionSelection);
        });

        var filterOptionLabel = $(this).parent().find('label').text();
        if($(this).prop('checked')) {
            $('.sr-selected-filters').append('<div class="badge badge-secondary sr-filter-option">'+filterOptionLabel+'</div>');
            checkFilterState();
        } else {
            $('.sr-filter-option:contains('+filterOptionLabel+')').remove();
            checkFilterState();
        }

        // $("[data-tags*='"+categorySelection+"']").show();
        // $("[data-tags*='"+provinceSelection+"']").show();
        // $("[data-tags*='"+diplomaSelection+"']").show();
        // $("[data-tags*='"+recognitionSelection+"']").show();
        // var selector = '';
        // if(categorySelection !== '') {
        //     var selector = "[data-tags*='"+categorySelection+"']";
        // }
        // if(provinceSelection !== '') {
        //     selector += "[data-tags*='"+provinceSelection+"']";
        // }
        // if(diplomaSelection !== '') {
        //     selector += "[data-tags*='"+diplomaSelection+"']";
        // }
        // if(recognitionSelection !== '') {
        //     selector += "[data-tags*='"+recognitionSelection+"']";
        // }
        // console.log("selector: "+selector);
        // console.log(categorySelection+provinceSelection+diplomaSelection+recognitionSelection);
        // var recordsFound = $("[data-tags*='"+categorySelection+provinceSelection+diplomaSelection+recognitionSelection+"']");
        var selectorCombi = '';
        if (categorySelection !== '') {
          selectorCombi += '[data-tags*=\''+categorySelection+'\']';
        }
        if (provinceSelection !== '') {
          selectorCombi += '[data-tags*=\''+provinceSelection+'\']';
        }
        if (diplomaSelection !== '') {
          selectorCombi += '[data-tags*=\''+diplomaSelection+'\']';
        }
        if (recognitionSelection !== '') {
          selectorCombi += '[data-tags*=\''+recognitionSelection+'\']';
        }

        var recordsFound = $(selectorCombi);
        // var recordsFound = $("[data-tags*='"+provinceSelection+"']");
        $('.sr-numeric').text(recordsFound.length);
        // console.log(recordsFound);
        recordsFound.show();

    });
    function disableProvinces() {
        $("input[name='province']:not(:checked)").each(function() {
            $(this).prop('disabled', true);
        });
        countResults();
    }
    function enableProvinces() {
        $("input[name='province']").each(function() {
            $(this).prop('disabled', false);
        });
        countResults();
    }
    $('input[name="province"]').on('change', function () {
        if($(this).prop('checked')) {disableProvinces();} else {enableProvinces();}
    });
    $('.sr-selected-filters').on('click', '.sr-filter-option', function() {
        var filterOptionLabel = $(this).text();
        var filterCheckbox = $('label:contains("'+filterOptionLabel+'")').parent().find('input');
        filterCheckbox.prop('checked', false);
        $(this).remove();
        checkFilterState();
    });
    $('.sr-clear-filter').on('click', function() {
        event.preventDefault();
        resetFilter();
        checkFilterState();
    });
    function resetFilter() {
        $('.sr-selected-filters').html('');
        $('input[type="checkbox"]').prop('checked', false);
        enableProvinces();
    }
    function checkFilterState() {
        if($('.sr-filter-option').length === 0) {
            $('.sr-table-record').show();
            $('.sr-clear-filter').hide();
            enableProvinces();
        } else {$('.sr-clear-filter').show();}
        countResults();
    }

    $('.sr-faq-collapse').on('click', function() {
        resetFAQ();
        if ($(this).hasClass('collapsed')) {$(this).parent().addClass('sr-faq-active');} else {$(this).parent().removeClass('sr-faq-active');}
    });
    function resetFAQ() {$('.sr-faq-active').removeClass('sr-faq-active');}
    if ($("#filter").length) {
        $("#filter").on('change keyup blur focus', function() {

            var filter = $(this).val().replace(/\s+/g, '-').toLowerCase();

            // if (filter.length) {
            //     $("#filter .fa-cross").show();
            // } else {
            //     $("#filter .fa-cross").hide();
            // }
// console.log(filter);
            if (filter.length > 2) {

                $(document).find('.sr-table-record').hide();
                $(document).find('[data-tags*="' + filter + '"]').show();
            } else {
                $(document).find('.sr-table-record').show();
                resetFilter();
            }

            countResults();
        });

        // $("#searchTrigger").on('click', function() {
        //     $("#filter").toggleClass("on");
        //     $(this).toggleClass("fa-times");
        //     $(this).toggleClass("fa-search");
        //     $(".options .order").toggleClass("disable");
        //     $("#filter").focus();
        //     $("#filter").val("");
        //     $(document).find('tbody tr').show();
        // });
    }
    function countResults() {
        var count = $('tbody tr:visible').length;
        $('.sr-numeric').text(count);
    }
    $('.sr-filter-table').click(function() {
        var table = $(this).parents('table').eq(0);
        var rows = table.find('tr:gt(0)').toArray().sort(comparer($(this).index()));
        this.asc = !this.asc;
        if (!this.asc){rows = rows.reverse()}
        for (var i = 0; i < rows.length; i++){table.append(rows[i])}
    });
    function comparer(index) {
        return function(a, b) {
            var valA = getCellValue(a, index), valB = getCellValue(b, index);
            return $.isNumeric(valA) && $.isNumeric(valB) ? valA - valB : valA.toString().localeCompare(valB)
        }
    }
    function getCellValue(row, index){ return $(row).children('td').eq(index).text() }

    // $('.sr-filter-table').on('click', function() {
    //     var state = $(this).data('state');
    //     switch (state) {
    //         case "idle":
    //             $(this).find('.asc').addClass('d-none');
    //             $(this).find('.desc').removeClass('d-none');
    //             $(this).data('state', 'desc');
    //             break;
    //         case "desc":
    //             $(this).find('.asc').removeClass('d-none');
    //             $(this).find('.desc').addClass('d-none');
    //             $(this).data('state', 'asc');
    //             break;
    //         case "asc":
    //             $(this).find('.asc').removeClass('d-none');
    //             $(this).find('.desc').removeClass('d-none');
    //             $(this).data('state', 'idle');
    //             break;
    //     }
    // });
});
