var currentSource="";var cache;var suggestBound=false;var $results=$(document.createElement("ul"));function hasSourceChanged(a){return(currentSource!=a)}function clearCache(){if(cache){}while(cache&&cache.length>0){cache.pop()}$results.empty()}(function(a){a.suggest=function(n,f){var c=a(n).attr("autocomplete","off");var m=false;var d=0;cache=[];var o=0;$results.addClass(f.resultsClass).appendTo("body");i();a(window).load(i).resize(i);c.blur(function(){setTimeout(function(){$results.hide()},200)});try{$results.bgiframe()}catch(p){}if(a.browser.mozilla){c.keypress(l)}else{c.keydown(l)}function i(){var e=c.offset();$results.css({top:(e.top+n.offsetHeight)+"px",left:e.left+"px"})}function l(u){if((/27$|38$|40$/.test(u.keyCode)&&$results.is(":visible"))||(/^13$|^9$/.test(u.keyCode)&&s())){if(u.preventDefault){u.preventDefault()}if(u.stopPropagation){u.stopPropagation()}u.cancelBubble=true;u.returnValue=false;switch(u.keyCode){case 38:j();break;case 40:r();break;case 9:case 13:q();break;case 27:$results.hide();break}}else{if(c.val().length!=d){if(m){clearTimeout(m)}m=setTimeout(k,f.delay);d=c.val().length}}}function k(){var e=a.trim(c.val());if(e.length>=f.minchars){cached=t(e);if(cached){h(cached.items)}else{a.get(currentSource,{q:e},function(u){$results.hide();var v=b(u,e);h(v);g(e,v,u.length)})}}else{$results.hide()}}function t(u){for(var e=0;e<cache.length;e++){if(cache[e]["q"]==u){cache.unshift(cache.splice(e,1)[0]);return cache[0]}}return false}function g(w,e,u){while(cache.length&&(o+u>f.maxCacheSize)){var v=cache.pop();o-=v.size}cache.push({q:w,size:u,items:e});o+=u}function h(e){if(!e){return}if(!e.length){$results.hide();return}var v="";$results.html(v);for(var u=0;u<e.length;u++){v+="<li>"+e[u]+"</li>"}$results.html(v).show();i();$results.children("li").mouseover(function(){$results.children("li").removeClass(f.selectClass);a(this).addClass(f.selectClass)}).click(function(w){w.preventDefault();w.stopPropagation();q()})}function b(e,x){var u=[];var y=e.split(f.delimiter);for(var w=0;w<y.length;w++){var v=a.trim(y[w]);if(v){v=v.replace(new RegExp(x,"ig"),function(z){return'<span class="'+f.matchClass+'">'+z+"</span>"});u[u.length]=v}}return u}function s(){if(!$results.is(":visible")){return false}var e=$results.children("li."+f.selectClass);if(!e.length){e=false}return e}function q(){$currentResult=s();if($currentResult){c.val($currentResult.text());$results.hide();if(f.onSelect){f.onSelect.apply(c[0])}}}function r(){$currentResult=s();if($currentResult){$currentResult.removeClass(f.selectClass).next().addClass(f.selectClass)}else{$results.children("li:first-child").addClass(f.selectClass)}}function j(){$currentResult=s();if($currentResult){$currentResult.removeClass(f.selectClass).prev().addClass(f.selectClass)}else{$results.children("li:last-child").addClass(f.selectClass)}}};a.fn.suggest=function(c,b){clearCache();currentSource=c;if(!c){return}if(!suggestBound){b=b||{};b.source=c;b.delay=b.delay||100;b.resultsClass=b.resultsClass||"ac_results";b.selectClass=b.selectClass||"ac_over";b.matchClass=b.matchClass||"ac_match";b.minchars=b.minchars||1;b.delimiter=b.delimiter||"\n";b.onSelect=b.onSelect||false;b.maxCacheSize=b.maxCacheSize||65536;this.each(function(){new a.suggest(this,b)});suggestBound=true;return this}else{return}}})(jQuery);