(function(a) { a.fn.suggestor = function(m) { var f; var d; var s = ""; var j = false; var i = 0; var h = 0; var l = false; var c = false; var r = 5; var n = 1; var o; var k; var b; var p; var q; var g; var t = false; var e = { init: function(u, w) { t = false; f = a("
"); f.addClass("suggestorBox"); f.css("display", "none"); f.css("position", "absolute"); f.css("text-align", "left"); f.css("font-size", u.css("font-size")); if (typeof w.boxCssInfo === "undefined") { f.css("border", "1px solid #cccccc"); f.css("-webkit-box-shadow", "0 3px 2px 0px rgba(0, 0, 0, 0.1), 0 3px 2px 0px rgba(236, 236, 236, 0.6)"); f.css("-moz-box-shadow", "0 3px 2px 0px rgba(0, 0, 0, 0.1), 0 3px 2px 0px rgba(236, 236, 236, 0.6)"); f.css("box-shadow", "0 3px 2px 0px rgba(0, 0, 0, 0.1), 0 3px 2px 0px rgba(236, 236, 236, 0.6)"); f.css("background-color", "#fff") } else { f.css(w.boxCssInfo) } d = u; d.attr("autocomplete", "off"); j = false; s = d.val(); o = w.ajaxinfo; n = w.minterm; b = w.searchForm; p = w.listSelectedCssInfo; q = w.listDeselectedCssInfo; k = w.adjustWidthVal; g = w.boxCssInfo; f.hover(function() { l = true }, function() { l = false }); this.resize(); var v = this; a(window).resize(function() { v.resize() }); a("body").append(f) }, suggest: function() { t = true; this.resize(); var u = this; s = d.val(); i = 0; h = 0; if (s.length < n) { f.css("display", "none"); t = false; return } a.ajax({ url: o.url, type: "get", dataType: "jsonp", cache: false, data: { query: d.val(), fields: o.fn, num: o.num * 2, lang: o.lang }, traditional: true }).done(function(v) { u.createAutoCompleteList(v) }).fail(function(w, x, v) { t = false; return }) }, createAutoCompleteList: function(A) { if (A.response.status !== 0) { f.css("display", "none"); return } var y = A.response.result.hits; var u = this; i = 0; if (typeof y !== "undefined") { var B = []; for (var C = 0; C < y.length; C++) { B.push(y[C].text) } var v = a("
    "); v.css("list-style", "none"); v.css("padding", "0"); v.css("margin", "2px"); for (var z = 0; z < B.length && i < o.num; z++) { var F = B[z]; var D = true; var E = a(v.children("li")); for (var x = 0; x < E.length; x++) { if (F === a(E.get(x)).html()) { D = false } } if (D) { var w = a("
  1. "); w.html(F); w.click(function() { var G = a(this).html(); u.fixList(); d.val(G); if (typeof b !== "undefined") { b.submit() } }); w.hover(function() { h = a(this).closest("ol").children("li").index(this) + 1; a(this).closest("ol").children("li").each(function(G) { if (G === h - 1) { if (typeof p === "undefined") { a(this).css("background-color", "#e5e5e5") } else { a(this).css(p) } } else { if (typeof q !== "undefined") { a(this).css(q) } else { if (typeof g === "undefined" || typeof g["background-color"] === "undefined") { a(this).css("background-color", "#ffffff") } else { a(this).css("background-color", g["background-color"]) } } } }) }, function() { if (h === a(this).closest("ol").children("li").index(this) + 1) { if (typeof q !== "undefined") { a(this).css(q) } else { if (typeof g === "undefined" || typeof g["background-color"] === "undefined") { a(this).css("background-color", "#ffffff") } else { a(this).css("background-color", g["background-color"]) } } h = 0 } }); w.css("padding", "2px"); v.append(w); i++ } } if (i > 0 && d.val().length >= n) { f.html(""); f.append(v); f.css("display", "block") } else { f.css("display", "none") } } else { f.css("display", "none") } this.resize(); t = false }, selectlist: function(u) { if (f.css("display") === "none") { return } if (u === "down") { h++ } else { if (u === "up") { h-- } else { return } } j = true; if (h < 0) { h = i } else { if (h > i) { h = 0 } } f.children("ol").children("li").each(function(v) { if (v === h - 1) { if (typeof p === "undefined") { a(this).css("background-color", "#e5e5e5") } else { a(this).css(p) } d.val(a(this).html()) } else { if (typeof q !== "undefined") { a(this).css(q) } else { if (typeof g === "undefined" || typeof g["background-color"] === "undefined") { a(this).css("background-color", "#ffffff") } else { a(this).css("background-color", g["background-color"]) } } } }); if (h === 0) { d.val(s) } }, fixList: function() { if (h > 0) { d.val(a(f.children("ol").children("li").get(h - 1)).html()) } s = d.val(); j = false; f.css("display", "none"); i = 0 }, resize: function() { f.css("top", d.offset().top + d.height() + 6); f.css("left", d.offset().left); f.css("height", "auto"); f.css("width", "auto"); if (f.width() < d.width() + k) { f.width(d.width() + k) } } }; e.init(a(this), m); a(this).keydown(function(u) { if ((u.keyCode >= 48 && u.keyCode <= 90) || (u.keyCode >= 96 && u.keyCode <= 105) || (u.keyCode >= 186 && u.keyCode <= 226) || u.keyCode === 8 || u.keyCode === 32 || u.keyCode === 46) { c = true; j = false } else { if (u.keyCode === 38) { if (f.css("display") !== "none") { u.preventDefault() } e.selectlist("up") } else { if (u.keyCode === 40) { if (f.css("display") === "none") { e.suggest() } else { e.selectlist("down") } } else { if (u.keyCode === 13) { if (j) { e.fixList() } } } } } }); a(this).keyup(function(u) { if ((u.keyCode >= 48 && u.keyCode <= 90) || (u.keyCode >= 96 && u.keyCode <= 105) || (u.keyCode >= 186 && u.keyCode <= 226) || u.keyCode === 8 || u.keyCode === 32 || u.keyCode === 46) { c = true; j = false } else { if (u.keyCode === 38) {} } }); a(this).blur(function() { if (!l) { e.fixList() } }); setInterval(function() { if (r < 5) { r = r + 1 } else { if (d.val() !== s) { if (!j && c && !t) { e.suggest(); r = 0 } } } }, 100) } })(jQuery);