(function(A){A.fn.extend({autocomplete:function(B,C){var D=typeof B=="string";C=A.extend({},A.Autocompleter.defaults,{url:D?B:null,data:D?null:B,delay:D?A.Autocompleter.defaults.delay:10,max:C&&!C.scroll?10:150},C);C.highlight=C.highlight||function(E){return E};C.formatMatch=C.formatMatch||C.formatItem;return this.each(function(){new A.Autocompleter(this,C)})},result:function(B){return this.bind("result",B)},search:function(B){return this.trigger("search",[B])},flushCache:function(){return this.trigger("flushCache")},setOptions:function(B){return this.trigger("setOptions",[B])},unautocomplete:function(){return this.trigger("unautocomplete")}});A.Autocompleter=function(M,G){var C={UP:38,DOWN:40,DEL:46,TAB:9,RETURN:13,ESC:27,COMMA:188,PAGEUP:33,PAGEDOWN:34,BACKSPACE:8};var I=null;if(G.failure!=null&&typeof G.failure=="function"){I=G.failure}var B=A(M).attr("autocomplete","off").addClass(G.inputClass);var K;var R="";var N=A.Autocompleter.Cache(G);var E=0;var V;var Y={mouseDownOnSelect:false};var S=A.Autocompleter.Select(G,M,D,Y);var X;A.browser.opera&&A(M.form).bind("submit.autocomplete",function(){if(X){X=false;return false}});B.bind((A.browser.opera?"keypress":"keydown")+".autocomplete",function(Z){E=1;V=Z.keyCode;switch(Z.keyCode){case C.UP:if(S.visible()){Z.preventDefault();S.prev()}else{U(0,true)}break;case C.DOWN:if(S.visible()){Z.preventDefault();S.next()}else{U(0,true)}break;case C.PAGEUP:if(S.visible()){Z.preventDefault();S.pageUp()}else{U(0,true)}break;case C.PAGEDOWN:if(S.visible()){Z.preventDefault();S.pageDown()}else{U(0,true)}break;case G.multiple&&A.trim(G.multipleSeparator)==","&&C.COMMA:case C.TAB:case C.RETURN:if(D()){Z.preventDefault();X=true;return false}break;case C.ESC:S.hide();break;default:clearTimeout(K);K=setTimeout(U,G.delay);break}}).focus(function(){E++}).blur(function(){E=0;if(!Y.mouseDownOnSelect){T()}}).click(function(){if(G.clickFire){if(!S.visible()){U(0,true)}}else{if(E++>1&&!S.visible()){U(0,true)}}}).bind("search",function(){var Z=(arguments.length>1)?arguments[1]:null;function a(e,d){var b;if(d&&d.length){for(var c=0;c<d.length;c++){if(d[c].result.toLowerCase()==e.toLowerCase()){b=d[c];break}}}if(typeof Z=="function"){Z(b)}else{B.trigger("result",b&&[b.data,b.value])}}A.each(H(B.val()),function(b,c){F(c,a,a)})}).bind("flushCache",function(){N.flush()}).bind("setOptions",function(){A.extend(true,G,arguments[1]);if("data" in arguments[1]){N.populate()}}).bind("unautocomplete",function(){S.unbind();B.unbind();A(M.form).unbind(".autocomplete")});function D(){var c=S.selected();if(!c){return false}var Z=c.result;R=Z;if(G.multiple){var f=H(B.val());if(f.length>1){var b=G.multipleSeparator.length;var e=A(M).selection().start;var d,a=0;A.each(f,function(g,h){a+=h.length;if(e<=a){d=g;return false}a+=b});f[d]=Z;Z=f.join(G.multipleSeparator)}Z+=G.multipleSeparator}B.val(Z);W();B.trigger("result",[c.data,c.value]);return true}function U(b,a){if(V==C.DEL){S.hide();return }var Z=B.val();if(!a&&Z==R){return }R=Z;Z=J(Z);if(Z.length>=G.minChars){B.addClass(G.loadingClass);if(!G.matchCase){Z=Z.toLowerCase()}F(Z,L,W)}else{O();S.hide()}}function H(Z){if(!Z){return[""]}if(!G.multiple){return[A.trim(Z)]}return A.map(Z.split(G.multipleSeparator),function(a){return A.trim(Z).length?A.trim(a):null})}function J(Z){if(!G.multiple){return Z}var b=H(Z);if(b.length==1){return b[0]}var a=A(M).selection().start;if(a==Z.length){b=H(Z)}else{b=H(Z.replace(Z.substring(a),""))}return b[b.length-1]}function Q(Z,a){if(G.autoFill&&(J(B.val()).toLowerCase()==Z.toLowerCase())&&V!=C.BACKSPACE){B.val(B.val()+a.substring(J(R).length));A(M).selection(R.length,R.length+a.length)}}function T(){clearTimeout(K);K=setTimeout(W,200)}function W(){var Z=S.visible();S.hide();clearTimeout(K);O();if(G.mustMatch){B.search(function(a){if(!a){if(G.multiple){var b=H(B.val()).slice(0,-1);B.val(b.join(G.multipleSeparator)+(b.length?G.multipleSeparator:""))}else{B.val("");B.trigger("result",null)}}})}}function L(a,Z){if(Z&&Z.length&&E){O();S.display(Z,a);Q(a,Z[0].value);S.show()}else{W()}}function F(a,c,Z){if(!G.matchCase){a=a.toLowerCase()}var b=N.load(a);if(b&&b.length){c(a,b)}else{if((typeof G.url=="string")&&(G.url.length>0)){var d={timestamp:+new Date()};A.each(G.extraParams,function(e,f){d[e]=typeof f=="function"?f():f});A.ajax({mode:"abort",port:"autocomplete"+M.name,dataType:G.dataType,url:G.url,data:A.extend({q:J(a),limit:G.max},d),success:function(f){var e=G.parse&&G.parse(f)||P(f);N.add(a,e);c(a,e)}})}else{S.emptyList();if(I!=null){I()}else{Z(a)}}}}function P(c){var Z=[];var b=c.split("\n");for(var a=0;a<b.length;a++){var d=A.trim(b[a]);if(d){d=d.split("|");Z[Z.length]={data:d,value:d[0],result:G.formatResult&&G.formatResult(d,d[0])||d[0]}}}return Z}function O(){B.removeClass(G.loadingClass)}};A.Autocompleter.defaults={inputClass:"ac_input",resultsClass:"ac_results",loadingClass:"ac_loading",minChars:1,delay:400,matchCase:false,matchSubset:true,matchContains:false,cacheLength:100,max:1000,mustMatch:false,extraParams:{},selectFirst:true,formatItem:function(B){return B[0]},formatMatch:null,autoFill:false,width:0,multiple:false,multipleSeparator:" ",inputFocus:true,clickFire:false,highlight:function(C,B){return C.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)("+B.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")+")(?![^<>]*>)(?![^&;]+;)","gi"),"<strong>$1</strong>")},scroll:true,scrollHeight:180,scrollJumpPosition:true};A.Autocompleter.Cache=function(C){var F={};var D=0;function H(K,J){if(!C.matchCase){K=K.toLowerCase()}var I=K.indexOf(J);if(C.matchContains=="word"){I=K.toLowerCase().search("\\b"+J.toLowerCase())}if(I==-1){return false}return I==0||C.matchContains}function G(J,I){if(D>C.cacheLength){B()}if(!F[J]){D++}F[J]=I}function E(){if(!C.data){return false}var J={},I=0;if(!C.url){C.cacheLength=1}J[""]=[];for(var L=0,K=C.data.length;L<K;L++){var O=C.data[L];O=(typeof O=="string")?[O]:O;var N=C.formatMatch(O,L+1,C.data.length);if(N===false){continue}var M=N.charAt(0).toLowerCase();if(!J[M]){J[M]=[]}var P={value:N,data:O,result:C.formatResult&&C.formatResult(O)||N};J[M].push(P);if(I++<C.max){J[""].push(P)}}A.each(J,function(Q,R){C.cacheLength++;G(Q,R)})}setTimeout(E,25);function B(){F={};D=0}return{flush:B,add:G,populate:E,load:function(L){if(!C.cacheLength||!D){return null}if(!C.url&&C.matchContains){var K=[];for(var I in F){if(I.length>0){var M=F[I];A.each(M,function(O,N){if(H(N.value,L)){K.push(N)}})}}return K}else{if(F[L]){return F[L]}else{if(C.matchSubset){for(var J=L.length-1;J>=C.minChars;J--){var M=F[L.substr(0,J)];if(M){var K=[];A.each(M,function(O,N){if(H(N.value,L)){K[K.length]=N}});return K}}}}}return null}}};A.Autocompleter.Select=function(E,J,L,P){var I={ACTIVE:"ac_over"};var K,F=-1,R,M="",S=true,C,O;function N(){if(!S){return }C=A("<div/>").hide().addClass(E.resultsClass).css("position","absolute").appendTo(document.body).hover(function(T){if(A(this).is(":visible")){J.focus()}P.mouseDownOnSelect=false});O=A("<ul/>").appendTo(C).mouseover(function(T){if(Q(T).nodeName&&Q(T).nodeName.toUpperCase()=="LI"){F=A("li",O).removeClass(I.ACTIVE).index(Q(T));A(Q(T)).addClass(I.ACTIVE)}}).click(function(T){A(Q(T)).addClass(I.ACTIVE);L();if(E.inputFocus){J.focus()}return false}).mousedown(function(){P.mouseDownOnSelect=true}).mouseup(function(){P.mouseDownOnSelect=false});if(E.width>0){C.css("width",E.width)}S=false}function Q(U){var T=U.target;while(T&&T.tagName!="LI"){T=T.parentNode}if(!T){return[]}return T}function H(T){K.slice(F,F+1).removeClass(I.ACTIVE);G(T);var V=K.slice(F,F+1).addClass(I.ACTIVE);if(E.scroll){var U=0;K.slice(0,F).each(function(){U+=this.offsetHeight});if((U+V[0].offsetHeight-O.scrollTop())>O[0].clientHeight){O.scrollTop(U+V[0].offsetHeight-O.innerHeight())}else{if(U<O.scrollTop()){O.scrollTop(U)}}}}function G(T){if(E.scrollJumpPosition||(!E.scrollJumpPosition&&!((T<0&&F==0)||(T>0&&F==K.size()-1)))){F+=T;if(F<0){F=K.size()-1}else{if(F>=K.size()){F=0}}}}function B(T){return E.max&&E.max<T?E.max:T}function D(){O.empty();var U=B(R.length);for(var V=0;V<U;V++){if(!R[V]){continue}var W=E.formatItem(R[V].data,V+1,U,R[V].value,M);if(W===false){continue}var T=A("<li/>").html(E.highlight(W,M)).addClass(V%2==0?"ac_even":"ac_odd").appendTo(O)[0];A.data(T,"ac_data",R[V])}K=O.find("li");if(E.selectFirst){K.slice(0,1).addClass(I.ACTIVE);F=0}if(A.fn.bgiframe){O.bgiframe()}}return{display:function(U,T){N();R=U;M=T;D()},next:function(){H(1)},prev:function(){H(-1)},pageUp:function(){if(F!=0&&F-8<0){H(-F)}else{H(-8)}},pageDown:function(){if(F!=K.size()-1&&F+8>K.size()){H(K.size()-1-F)}else{H(8)}},hide:function(){C&&C.hide();K&&K.removeClass(I.ACTIVE);F=-1},visible:function(){return C&&C.is(":visible")},current:function(){return this.visible()&&(K.filter("."+I.ACTIVE)[0]||E.selectFirst&&K[0])},show:function(){var V=A(J).offset();C.css({top:V.top+J.offsetHeight,left:V.left}).show();if(E.scroll){O.scrollTop(0);O.css({maxHeight:E.scrollHeight,overflow:"auto"});if(A.browser.msie&&typeof document.body.style.maxHeight==="undefined"){var T=0;K.each(function(){T+=this.offsetHeight});var U=T>E.scrollHeight;O.css("height",U?E.scrollHeight:T);if(!U){K.width(O.width()-parseInt(K.css("padding-left"))-parseInt(K.css("padding-right")))}}}},selected:function(){var T=K&&K.filter("."+I.ACTIVE).removeClass(I.ACTIVE);return T&&T.length&&A.data(T[0],"ac_data")},emptyList:function(){O&&O.empty()},unbind:function(){C&&C.remove()}}};A.fn.selection=function(I,B){if(I!==undefined){return this.each(function(){if(this.createTextRange){var J=this.createTextRange();if(B===undefined||I==B){J.move("character",I);J.select()}else{J.collapse(true);J.moveStart("character",I);J.moveEnd("character",B);J.select()}}else{if(this.setSelectionRange){this.setSelectionRange(I,B)}else{if(this.selectionStart){this.selectionStart=I;this.selectionEnd=B}}}})}var G=this[0];if(G.createTextRange){var C=document.selection.createRange(),H=G.value,F="<->",D=C.text.length;C.text=F;var E=G.value.indexOf(F);G.value=H;this.selection(E,E+D);return{start:E,end:E+D}}else{if(G.selectionStart!==undefined){return{start:G.selectionStart,end:G.selectionEnd}}}}})(jQuery);
