1(function (b) { var a = new function () { this.currentInputText = null; this.functionalKeyArray = [9, 20, 13, 16, 17, 18, 91, 92, 93, 45, 36, 33, 34, 35, 37, 39, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 144, 19, 145, 40, 38, 27]; this.holdText = null; this.init = function () { b("body").append("<div id='bigAutocompleteContent' class='bigautocomplete-layout'></div>"); b(document).bind("mousedown", function (d) { var c = b(d.target); if ((!(c.parents().andSelf().is("#bigAutocompleteContent"))) && (!c.is(a.currentInputText))) { a.hideAutocomplete() } }); b("#bigAutocompleteContent").delegate("tr", "mouseover", function () { b("#bigAutocompleteContent tr").removeClass("ct"); b(this).addClass("ct") }).delegate("tr", "mouseout", function () { b("#bigAutocompleteContent tr").removeClass("ct") }); b("#bigAutocompleteContent").delegate("tr", "click", function () { a.currentInputText.val(b(this).find("div:last").html()); var c = a.currentInputText.data("config").callback; if (b("#bigAutocompleteContent").css("display") != "none" && c && b.isFunction(c)) { c(b(this).data("jsonData")) } a.hideAutocomplete() }) }; this.autocomplete = function (f) { if (b("body").length > 0 && b("#bigAutocompleteContent").length <= 0) { a.init() } var e = b(this); var d = b("#bigAutocompleteContent"); e.unbind("keyup"); e.unbind("keydown"); this.config = { width: e.outerWidth() - 2, url: null, data: null, callback: null }; b.extend(this.config, f); e.data("config", this.config); e.keydown(function (g) { switch (g.keyCode) { case 40: if (d.css("display") == "none") { return } var i = d.find(".ct"); if (i.length <= 0) { i = d.find("tr:first") } else { i = i.next() } d.find("tr").removeClass("ct"); if (i.length > 0) { i.addClass("ct"); e.val(i.find("div:last").html()); d.scrollTop(i[0].offsetTop - d.height() + i.height()) } else { e.val(a.holdText) } break; case 38: if (d.css("display") == "none") { return } var h = d.find(".ct"); if (h.length <= 0) { h = d.find("tr:last") } else { h = h.prev() } d.find("tr").removeClass("ct"); if (h.length > 0) { h.addClass("ct"); e.val(h.find("div:last").html()); d.scrollTop(h[0].offsetTop - d.height() + h.height()) } else { e.val(a.holdText) } break; case 27: a.hideAutocomplete(); break } }); e.keyup(function (l) { var q = l.keyCode; var g = l.ctrlKey; var p = false; for (var t = 0; t < a.functionalKeyArray.length; t++) { if (q == a.functionalKeyArray[t]) { p = true; break } } if (!p && (!g || (g && q == 67) || (g && q == 88))) { var m = e.data("config"); var r = e.offset(); d.width(m.width); var v = e.outerHeight() - 1; d.css({ "top": r.top + 9 + v, "left": r.left - 2 }); var s = m.data; var j = m.url; var o = b.trim(e.val()); if (o == null || o == "") { a.hideAutocomplete(); return } if (s != null && b.isArray(s)) { var n = new Array(); for (var t = 0; t < s.length; t++) { if (s[t].title.indexOf(o) > -1) { n.push(s[t]) } } c(n) } else { if (j != null && j != "") { b.get(j, { action: o, keyword: escape(o) }, function (h) { c(h) }, "json") } } a.holdText = e.val() } if (q == 13) { var u = e.data("config").callback; if (d.css("display") != "none") { if (u && b.isFunction(u)) { u(d.find(".ct").data("jsonData")) } d.hide() } } }); function c(j) { if (j == null || j.length <= 0) { return } var g = "<table><tbody>"; for (var h = 0; h < j.length; h++) { g += "<tr><td><div>" + j[h].label + "</div></td></tr>" } g += "</tbody></table>"; d.html(g); d.show(); d.find("tr").each(function (i) { b(this).data("jsonData", j[i]) }) } e.focus(function () { a.currentInputText = e }) }; this.hideAutocomplete = function () { var c = b("#bigAutocompleteContent"); if (c.css("display") != "none") { c.find("tr").removeClass("ct"); c.hide() } } }; b.fn.bigAutocomplete = a.autocomplete })(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.