try {
    jQuery(function($) {
        $.fn.quicksearch = function(target, opt) {

            var timeout, cache, rowcache, jq_results, val = '', e = this, options = $.extend({
                delay: 100,
                selector: null,
                stripeRows: null,
                loader: null,
                noResults: '',
                bind: 'keyup',
                onBefore: function() {
                    return;
                },
                onAfter: function() {
                    return;
                },
                show: function() {
                    this.style.display = "";
                },
                hide: function() {
                    this.style.display = "none";
                }
            }, opt);

            this.go = function() {

                var i = 0, noresults = true, vals = val.toLowerCase().split(' ');

                var rowcache_length = rowcache.length;
                for (var i = 0; i < rowcache_length; i++) {
                    if (this.test(vals, cache[i]) || val == "") {
                        options.show.apply(rowcache[i]);
                        noresults = false;
                    } else {
                        options.hide.apply(rowcache[i]);
                    }
                }

                if (noresults) {
                    this.results(false);
                } else {
                    this.results(true);
                    this.stripe();
                }

                this.loader(false);
                options.onAfter();

                return this;
            };

            this.stripe = function() {

                if (typeof options.stripeRows === "object" && options.stripeRows !== null) {
                    var joined = options.stripeRows.join(' ');
                    var stripeRows_length = options.stripeRows.length;

                    jq_results.not(':hidden').each(function(i) {
                        $(this).removeClass(joined).addClass(options.stripeRows[i % stripeRows_length]);
                    });
                }

                return this;
            };

            this.strip_html = function(input) {
                var output = input.replace(new RegExp('/<[^<]+\>/g'), "");
                output = $.trim(output.toLowerCase());
                return output;
            };

            this.results = function(bool) {
                if (typeof options.noResults === "string" && options.noResults !== "") {
                    if (bool) {
                        $(options.noResults).hide();
                    } else {
                        $(options.noResults).show();
                    }
                }
                return this;
            };

            this.loader = function(bool) {
                if (typeof options.loader === "string" && options.loader !== "") {
                    (bool) ? $(options.loader).show() : $(options.loader).hide();
                }
                return this;
            };

            this.test = function(vals, t) {
                for (var i = 0; i < vals.length; i += 1) {
                    if (t.indexOf(vals[i]) === -1) {
                        return false;
                    }
                }
                return true;
            };

            this.cache = function() {

                jq_results = $(target);

                if (typeof options.noResults === "string" && options.noResults !== "") {
                    jq_results = jq_results.not(options.noResults);
                }

                var t = (typeof options.selector === "string") ? jq_results.find(options.selector) : $(target).not(options.noResults);
                cache = t.map(function() {

                    //for loop inserted because of a with title tag witghin li tag
                    for (var i = 0; i < this.childNodes.length; i++) {
                        if (this.childNodes[i].nodeType == 1) {

                            return e.strip_html(this.childNodes[i].innerHTML);

                        }
                    }

                });

                rowcache = jq_results.map(function() {
                    return this;
                });

                return this.go();
            };

            this.trigger = function() {
                this.loader(true);
                options.onBefore();

                window.clearTimeout(timeout);
                timeout = window.setTimeout(function() {
                    e.go();
                }, options.delay);

                return this;
            };

            this.cache();
            this.results(true);
            this.stripe();
            this.loader(false);

            return this.each(function() {
                $(this).bind(options.bind, function() {
                    val = $(this).val();
                    e.trigger();
                });
            });

        };
    });
} catch (err) {
    // do nothing
}
// Initialize begrippenlijstFilter
$(document).ready(function() {
    try {
        $('input#begrippenlijstSearchInput').val('');
        $('input#begrippenlijstSearchInput').quicksearch('ul#ulBegrippenLijst li');
    } catch (err) {
        // do nothing
    }
});