jQuery.autocomplete=function(e,A){var t=this;var T=1.5;var E=$(e).attr("autocomplete","off");var R=1;var y=65000;if(A.inputClass){E.addClass(A.inputClass)}var u=document.createElement("div");var m=$(u).hide().addClass(A.resultsClass).css("position","absolute");if(A.width>0){m.css("width",A.width)}$("body").append(u);e.autocompleter=t;var N=null;var D="";var O=-1;var n={};var H=false;var p=false;var a=null;var o=false;var j=false;function q(){n={};n.data={};n.length=0}q();if(A.data!=null){var x="",V={},r=[];if(typeof A.url!="string"){A.cacheLength=1}for(var S=0;S<A.data.length;S++){r=((typeof A.data[S]=="string")?[A.data[S]]:A.data[S]);if(r[0].length>0){x=r[0].substring(0,1).toLowerCase();if(!V[x]){V[x]=[]}V[x].push(r)}}for(var Q in V){A.cacheLength++;f(Q,V[Q])}}E.keydown(function(i){a=i.keyCode;switch(i.keyCode){case 38:i.preventDefault();J(-1);break;case 40:i.preventDefault();J(1);break;case 9:case 13:if(L()){E.get(0).blur();i.preventDefault()}break;case 16:case 17:case 18:break;default:O=-1;if(N){clearTimeout(N)}N=setTimeout(function(){z()},A.delay);break}}).focus(function(){p=true}).blur(function(){p=false;if(!o){c()}});B();function z(){if(a==46||(a>8&&a<32)){l()}var i=E.val();if(i==D){return}D=i;if(i.length>=A.minChars){E.addClass(A.loadingClass);I(i)}else{E.removeClass(A.loadingClass);l()}}function J(k){var i=$("li",u);if(!i){return}O+=k;if(O<0){O=0}else{if(O>=i.size()){O=i.size()-1}}i.removeClass("ac_over");$(i[O]).addClass("ac_over")}function L(){var i=$("li.ac_over",u)[0];if(!i){var k=$("li",u);if(A.selectOnly){if(k.length==1){i=k[0]}}else{if(A.selectFirst){i=k[0]}}}if(i){v(i);return true}else{return false}}function v(i){if(!i){i=document.createElement("li");i.extra=[];i.selectValue=""}var k=$.trim(i.selectValue?i.selectValue:i.innerHTML);e.lastSelected=k;D=k;m.html("");E.val(k);B();if(A.onItemSelect){setTimeout(function(){A.onItemSelect(i)},1)}}function b(X,k){var W=E.get(0);if(W.createTextRange){var i=W.createTextRange();i.collapse(true);i.moveStart("character",X);i.moveEnd("character",k);i.select()}else{if(W.setSelectionRange){W.setSelectionRange(X,k)}else{if(W.selectionStart){W.selectionStart=X;W.selectionEnd=k}}}W.focus()}function C(i){if(a!=8){E.val(E.val()+i.substring(D.length));b(D.length,i.length)}}function K(){var W=F(A.popupParent||E);var k;if(A.width>0){k=A.width}else{if(A.popupParent){k=A.popupParent.innerWidth()}else{k=E.innerWidth()}}var i;if(A.popupParent){i=A.popupParent.innerHeight()}else{i=E.outerHeight()}m.css({width:parseInt(k)+"px",top:(W.y+i)+"px",left:W.x+"px"});d()}function c(){if(N){clearTimeout(N)}N=setTimeout(B,200)}function B(){if(j){return}j=true;if(N){clearTimeout(N)}var i=E.removeClass(A.loadingClass).val();if(m.is(":visible")){l()}if(A.mustMatch){if(!e.lastSelected||e.lastSelected!=i){v(null)}}j=false}function d(){if(A.resultsId){m.attr("id",A.resultsId)}m.show();if(typeof A.onResultsShow==="function"){A.onResultsShow(m[0])}}function l(){m.hide();if(typeof A.onResultsHide==="function"){A.onResultsHide(m[0])}if(A.resultsId){m.removeAttr("id")}}function h(k,i){if(i){E.removeClass(A.loadingClass);u.innerHTML="";if(!p||i.length==0){return B()}if($.browser.msie){m.append(document.createElement("iframe"))}u.appendChild(P(i));if(A.autoFill&&(E.val().toLowerCase()==k.toLowerCase())){C(i[0][0])}else{if(A.selectFirst){$("li:first",u).addClass("ac_over")}}K()}else{B()}}function g(Y){if(!Y){return null}var k=[];var X=Y.split(A.lineSeparator);for(var W=0;W<X.length;W++){var Z=$.trim(X[W]);if(Z){k[k.length]=Z.split(A.cellSeparator)}}return k}function P(ab){var aa=document.createElement("ul");var Y=ab.length;if((A.maxItemsToShow>0)&&(A.maxItemsToShow<Y)){Y=A.maxItemsToShow}for(var Z=0;Z<Y;Z++){var ac=ab[Z];if(!ac){continue}var W=document.createElement("li");if(A.formatItem){W.innerHTML=A.formatItem(ac,Z,Y);W.selectValue=ac[0]}else{W.innerHTML=ac[0];W.selectValue=ac[0]}var k=null;if(ac.length>1){k=[];for(var X=1;X<ac.length;X++){k[k.length]=ac[X]}}W.extra=k;aa.appendChild(W);$(W).hover(function(){$("li",aa).removeClass("ac_over");$(this).addClass("ac_over");O=$("li",aa).indexOf($(this).get(0))},function(){$(this).removeClass("ac_over")}).click(function(i){i.preventDefault();i.stopPropagation();v(this)})}$(aa).mousedown(function(){o=true}).mouseup(function(){o=false});return aa}function I(k){if(!A.matchCase){k=k.toLowerCase()}var i=A.cacheLength?U(k):null;if(i){h(k,i)}else{if((typeof A.url=="string")&&(A.url.length>0)){R+=1;if(R>=y){R=0}var W=R;$.get(s(k),function(X){w(k,X,W)})}else{E.removeClass(A.loadingClass)}}}function w(k,i,W){i=g(i);f(k,i);if(W==R){h(k,i)}}function s(Y){var W=A.url.indexOf("?")==-1?"?":"&";var k=A.url+W+"q="+encodeURI(Y);for(var X in A.extraParams){k+="&"+X+"="+encodeURI(A.extraParams[X])}return k}function U(ab){if(!ab){return null}if(n.data[ab]){return n.data[ab]}if(A.matchSubset){for(var Z=ab.length-1;Z>=A.minChars;Z--){var W=ab.substr(0,Z);var ac=n.data[W];if(ac){var aa=[];for(var X=0;X<ac.length;X++){var k=ac[X];var Y=k[0];if(G(Y,ab)){aa[aa.length]=k}}return aa}}}return null}function G(X,W){if(!A.matchCase){X=X.toLowerCase()}var k=X.indexOf(W);if(k==-1){return false}return k==0||A.matchContains}this.flushCache=function(){q()};this.setExtraParams=function(i){A.extraParams=i};this.findValue=function(){var k=E.val();if(!A.matchCase){k=k.toLowerCase()}var i=A.cacheLength?U(k):null;if(i){M(k,i)}else{if((typeof A.url=="string")&&(A.url.length>0)){$.get(s(k),function(W){W=g(W);f(k,W);M(k,W)})}else{M(k,null)}}};function M(ab,aa){if(aa){E.removeClass(A.loadingClass)}var Y=(aa)?aa.length:0;var W=null;for(var Z=0;Z<Y;Z++){var ac=aa[Z];if(ac[0].toLowerCase()==ab.toLowerCase()){W=document.createElement("li");if(A.formatItem){W.innerHTML=A.formatItem(ac,Z,Y);W.selectValue=ac[0]}else{W.innerHTML=ac[0];W.selectValue=ac[0]}var k=null;if(ac.length>1){k=[];for(var X=1;X<ac.length;X++){k[k.length]=ac[X]}}W.extra=k}}if(A.onFindValue){setTimeout(function(){A.onFindValue(W)},1)}}function f(k,i){if(!i||!k||!A.cacheLength){return}if(!n.length||n.length>A.cacheLength){q();n.length++}else{if(!n[k]){n.length++}}n.data[k]=i}function F(i){var k=i.offset();return{x:Math.ceil(k.left),y:Math.ceil(k.top)}}};jQuery.fn.autocomplete=function(b,a,c){a=a||{};a.url=b;a.data=((typeof c=="object")&&(c.constructor==Array))?c:null;a=$.extend({inputClass:"ac_input",resultsClass:"ac_results",resultsId:null,lineSeparator:"\n",cellSeparator:"|",minChars:1,delay:400,matchCase:0,matchSubset:1,matchContains:0,cacheLength:1,mustMatch:0,extraParams:{},loadingClass:"ac_loading",selectFirst:false,selectOnly:false,maxItemsToShow:-1,autoFill:false,width:0,popupParent:null,onResultsShow:null,onResultsHide:null},a);a.width=parseInt(a.width,10);if(a.popupParent){a.popupParent=$(a.popupParent);if(a.popupParent.length==0){a.popupParent=null}}this.each(function(){var d=this;new jQuery.autocomplete(d,a)});return this};jQuery.fn.autocompleteArray=function(b,a){return this.autocomplete(null,a,b)};jQuery.fn.indexOf=function(b){for(var a=0;a<this.length;a++){if(this[a]==b){return a}}return -1};
