
jQuery(document).ready(function(){

    jQuery('#reset-button').click( function() {
        resetFilter();
        filterPersons();
    });

    jQuery('.ws-person-filter-item').change(function(e) {
        filterPersons();
    });
});

function filterPersons() {

    var filters = {};
    var count = 0;
    jQuery('.ws-person-search input:checked').each(function() {
        var categoryID = jQuery(this).val();
        if(filters[jQuery(this).attr('name')]) {
            filters[jQuery(this).attr('name')].push(categoryID);
        } else {
            filters[jQuery(this).attr('name')] = new Array;
            filters[jQuery(this).attr('name')].push(categoryID);
        }
    });

    if(jQuery('.ws-person-search input:checked').length > 0) {
        jQuery('#reset-button').show();
    } else {
        jQuery('#reset-button').hide();
    }

    jQuery('.person-item').each(function() {
        var categories = jQuery(this).data('category').split(',');
        var person = jQuery(this);
        var show = {};

        jQuery.each( filters, function( inputName, array ) {

            show[inputName] = false;

            jQuery.each( array, function( key, cat ) {
                if(jQuery.inArray(cat, categories) > -1){
                    show[inputName] = true;
                }
            });

        });

        jQuery(person).show();
        count ++;
        jQuery.each( show, function( key, bool ) {

            if(!bool) {
                jQuery(person).hide();
                count --;
            }

        });

    });

    if(count == 0) {
        jQuery('#no-result').show();
    } else {
        jQuery('#no-result').hide();
    }

}

function resetFilter() {
    jQuery('.ws-person-search').find('input').removeAttr('checked');
    jQuery('.person-item').show();
    filters = null;
}
