diff options
Diffstat (limited to 'js/jquery.quicksearch.js')
-rw-r--r-- | js/jquery.quicksearch.js | 150 |
1 files changed, 0 insertions, 150 deletions
diff --git a/js/jquery.quicksearch.js b/js/jquery.quicksearch.js deleted file mode 100644 index edb6a22..0000000 --- a/js/jquery.quicksearch.js +++ /dev/null @@ -1,150 +0,0 @@ -(function($, window, document, undefined) { - $.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"; - }, - prepareQuery: function (val) { - return val.toLowerCase().split(' '); - }, - testQuery: function (query, txt, _row) { - for (var i = 0; i < query.length; i += 1) { - if (txt.indexOf(query[i]) === -1) { - return false; - } - } - return true; - } - }, opt); - - this.go = function () { - - var i = 0, - noresults = true, - query = options.prepareQuery(val), - val_empty = (val.replace(' ', '').length === 0); - - for (var i = 0, len = rowcache.length; i < len; i++) { - if (val_empty || options.testQuery(query, cache[i], rowcache[i])) { - 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.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 () { - return e.strip_html(this.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(); - }); - }); - - }; - -}(jQuery, this, document));
\ No newline at end of file |