function filterExamples()

in resources/js/index.js [45:117]


function filterExamples($button) {
    // resetting filter by text input
    $('#searchbox').val('');

    // selecting the clicked button
    if ($button.selected) {
        $button.value = $button.value.substring(0, $button.value.length - close.length);
        for (var i = 0; i < selectedClasses.length; i++) {
            if (selectedClasses[i] == $($button).attr('api')) {
                selectedClasses.splice(i, 1);
                correspondingExamples.splice(i, 1);
                break;
            }
        }
    } else {
        $button.value = $button.value.concat(close);
        selectedClasses.push($($button).attr('api'));
        correspondingExamples.push($($button).attr('class'));
    }
    $button.selected = !$button.selected;

    // refreshing
    var filteringForExamples = ''; // for examples
    if (selectedClasses.length > 0) {
        filteringForExamples = '.'.concat(selectedClasses.join('.'));
    }

    var filteringForButtons = ''; // for buttons
    if (correspondingExamples.length > 0) {
        for (var i = 0; i < correspondingExamples.length; i++) {
            filteringForButtons = filteringForButtons.concat(' ').concat(correspondingExamples[i]);
        }
        var examplesForButtons = $.unique(filteringForButtons.split(' '));
        filteringForButtons = '.'.concat(examplesForButtons.join('.'));
    }

    // filtering examples
    $('div#examples').find('li' + filteringForExamples).show('fast');
    if (selectedClasses.length > 0) {
        $('div#examples').find('li:not(' + filteringForExamples + ').example').hide();
    }

    // filtering buttons (apis)
    if (correspondingExamples.length > 0) {
        var examples = new Array();
        $('div#examples').find('li' + filteringForExamples).each(function(i, val) {
            examples.push($(val).attr('example'));
        });
        examples = filterArray(examples);

        $('div#checkboxes-check > ul > li > input[type=button].button').hide();
        for (var i = 0; i < examples.length; i++) {
            $('li[example="' + examples[i].substring(examples[i].lastIndexOf('_') + 1, examples[i].length) + '"]').each(function(i, val) {
                $buttons = $(val).attr('class');
                $buttons = $buttons.substring('example '.length, $buttons.length);
                $buttonsArray = $buttons.split(' ');
                for (var b = 0; b < $buttonsArray.length; b++) {
                    if (shouldIHideIt(examples, $buttonsArray[b]) && selectedClasses.indexOf($buttonsArray[b]) == -1) {
                        $('input[api="' + $buttonsArray[b] + '"]').hide();
                    } else {
                        $('input[api="' + $buttonsArray[b] + '"]').show('fast');
                    }
                }
            });
        }

        $('#api-info').show();
        $('#api-info').text(examples.length + ' examples are matching');
    } else {
        $('div#checkboxes-check > ul > li > input[type=button].button').show('fast');
        $('#api-info').hide();
    }
}