jQuery.autosearch=function(d,v){var q=this;var j=false;var z=$(d).attr("autocomplete","off");if(v.inputClass){z.addClass(v.inputClass)}var r=document.createElement("div");var h=$(r);h.hide().addClass(v.resultsClass).css("position","absolute");if(v.width>0){h.css("width",v.width)}$("body").append(r);d.autocompleter=q;var I=null;var y="";var J=-1;var l={};var C=false;var m=false;var a=null;function n(){l={};l.data={};l.length=0}n();if(v.data!=null){var t="",O={},o=[];if(typeof v.url!="string"){v.cacheLength=1}for(var M=0;M0){t=o[0].substring(0,1).toLowerCase();if(!O[t]){O[t]=[]}O[t].push(o)}}for(var L in O){v.cacheLength++;e(L,O[L])}}z.keydown(function(i){a=i.keyCode;switch(i.keyCode){case 38:i.preventDefault();E(-1);break;case 40:i.preventDefault();E(1);break;case 9:case 13:if(G()){z.get(0).blur();i.preventDefault()}break;default:J=-1;if(I){clearTimeout(I)}I=setTimeout(function(){u()},v.delay);break}}).focus(function(){m=true;var i=z.val();if(i){console.log(i);h.show()}}).blur(function(){m=false;c()});w();function u(){if(a==46||(a>8&&a<32)){return h.hide()}var i=z.val();if(i==y){return}y=i;if(i.length>=v.minChars){z.addClass(v.loadingClass);D(i)}else{z.removeClass(v.loadingClass);h.hide()}}function E(k){var i=$("li",r);if(!i){return}J+=k;if(J<0){J=0}else{if(J>=i.size()){J=i.size()-1}}i.removeClass("ac_over");$(i[J]).addClass("ac_over")}function G(){var i=$("li.ac_over",r)[0];if(!i){var k=$("li",r);if(v.selectOnly){if(k.length==1){i=k[0]}}else{if(v.selectFirst){i=k[0]}}}if(i){return true}else{return false}}function s(i){if(j){if(!i){i=document.createElement("li");i.extra=[];i.selectValue=""}var k=$.trim(i.selectValue?i.selectValue:i.innerHTML);d.lastSelected=k;y=k;h.html("");z.val(k);w();if(v.onItemSelect){setTimeout(function(){v.onItemSelect(i)},1)}}}function b(Q,k){var P=z.get(0);if(P.createTextRange){var i=P.createTextRange();i.collapse(true);i.moveStart("character",Q);i.moveEnd("character",k);i.select()}else{if(P.setSelectionRange){P.setSelectionRange(Q,k)}else{if(P.selectionStart){P.selectionStart=Q;P.selectionEnd=k}}}P.focus()}function x(i){if(a!=8){z.val(z.val()+i.substring(y.length));b(y.length,i.length)}}function F(){var k=A(d);var i=(v.width>0)?v.width:z.width();h.css({width:parseInt(i)+"px",top:(k.y+d.offsetHeight)+"px",left:k.x+"px"}).show()}function c(){if(I){clearTimeout(I)}I=setTimeout(w,200)}function w(){if(I){clearTimeout(I)}z.removeClass(v.loadingClass);if(h.is(":visible")){h.hide()}if(v.mustMatch){var i=z.val();if(i!=d.lastSelected){s(null)}}}function g(k,i){if(i){z.removeClass(v.loadingClass);r.innerHTML="";if(!m||i.length==0){return w()}if($.browser.msie){}r.appendChild(K(i));if(v.autoFill&&(z.val().toLowerCase()==k.toLowerCase())){x(i[0][0])}F()}else{w()}}function f(R){if(!R){return null}var k=[];var Q=R.split(v.lineSeparator);for(var P=0;P0)&&(v.maxItemsToShow1){P=[];for(var Q=1;Q0)){$.get(p(k),function(P){P=f(P);e(k,P);g(k,P)})}else{z.removeClass(v.loadingClass)}}}function p(Q){var k=v.url+"?q="+encodeURI(Q);for(var P in v.extraParams){k+="&"+P+"="+encodeURI(v.extraParams[P])}return k}function N(U){if(!U){return null}if(l.data[U]){return l.data[U]}if(v.matchSubset){for(var S=U.length-1;S>=v.minChars;S--){var P=U.substr(0,S);var V=l.data[P];if(V){var T=[];for(var Q=0;Q0)){$.get(p(k),function(P){P=f(P);e(k,P);H(k,P)})}else{H(k,null)}}};function H(U,T){if(T){z.removeClass(v.loadingClass)}var R=(T)?T.length:0;var P=null;for(var S=0;S1){k=[];for(var Q=1;Qv.cacheLength){n();l.length++}else{if(!l[k]){l.length++}}l.data[k]=i}function A(k){var P=k.offsetLeft||0;var i=k.offsetTop||0;while(k=k.offsetParent){P+=k.offsetLeft;i+=k.offsetTop}return{x:P,y:i}}};jQuery.fn.autosearch=function(b,a,c){a=a||{};a.url=b;a.data=((typeof c=="object")&&(c.constructor==Array))?c:null;a.inputClass=a.inputClass||"ac_input";a.resultsClass=a.resultsClass||"ac_results";a.lineSeparator=a.lineSeparator||"\n";a.cellSeparator=a.cellSeparator||"|";a.minChars=a.minChars||1;a.delay=a.delay||400;a.matchCase=a.matchCase||0;a.matchSubset=a.matchSubset||1;a.matchContains=a.matchContains||0;a.cacheLength=a.cacheLength||1;a.mustMatch=a.mustMatch||0;a.extraParams=a.extraParams||{};a.loadingClass=a.loadingClass||"ac_loading";a.selectFirst=a.selectFirst||false;a.selectOnly=a.selectOnly||false;a.maxItemsToShow=a.maxItemsToShow||-1;a.autoFill=a.autoFill||false;a.width=parseInt(a.width,10)||0;this.each(function(){var d=this;new jQuery.autosearch(d,a)});return this};jQuery.fn.autocompleteArray=function(b,a){return this.autosearch(null,a,b)};jQuery.fn.indexOf=function(b){for(var a=0;a