jQuery.autocomplete=function(e,w){var r=this;var A=$(e).attr("autocomplete","off");if(w.inputClass){A.addClass(w.inputClass)}var s=document.createElement("div");if(w.divId){s.id=w.divId}var j=$(s);j.hide().addClass(w.resultsClass).css("position","absolute");if(w.width>0){j.css("width",w.width)}$("body").append(s);e.autocompleter=r;var L=null;var z="";var M=-1;var l={};var E=false;var n=false;var b=null;function o(){l={};l.data={};l.length=0}o();if(w.data!=null){var u="",R={},p=[];if(typeof w.url!="string"){w.cacheLength=1}for(var P=0;P<w.data.length;P++){p=((typeof w.data[P]=="string")?[w.data[P]]:w.data[P]);if(p[0].length>0){u=p[0].substring(0,1).toLowerCase();if(!R[u]){R[u]=[]}R[u].push(p)}}for(var O in R){w.cacheLength++;f(O,R[O])}}A.keydown(function(i){b=i.keyCode;switch(i.keyCode){case 38:i.preventDefault();G(-1);break;case 40:i.preventDefault();G(1);break;case 9:case 13:if(I()){A.get(0).blur();i.preventDefault()}break;default:M=-1;if(L){clearTimeout(L)}L=setTimeout(function(){v()},w.delay);break}}).focus(function(){n=true}).blur(function(){n=false;d()});x();function v(){if(b==46||(b>8&&b<32)){return j.hide()}if((b==8)&&(w.divId=="suggestion_city")){document.getElementById("zip").value=""}var i=A.val();if(i==z){return}z=i;if(i.length>=w.minChars){A.addClass(w.loadingClass);F(i)}else{A.removeClass(w.loadingClass);j.hide()}}function G(k){var i=$("li",s);if(!i){return}M+=k;if(M<0){M=0}else{if(M>=i.size()){M=i.size()-1}}i.removeClass("ac_over");$(i[M]).addClass("ac_over")}function I(){var i=$("li.ac_over",s)[0];if(!i){var k=$("li",s);if(w.selectOnly){if(k.length==1){i=k[0]}}else{if(w.selectFirst){i=k[0]}}}if(i){t(i);return true}else{return false}}function t(i){if(!i){i=document.createElement("li");i.extra=[];i.selectValue=""}var k=$.trim(i.extra[1]?i.extra[1]:i.innerHTML);e.lastSelected=k;z=k;j.html("");A.val(k);x();if(w.onItemSelect){setTimeout(function(){w.onItemSelect(i)},1)}}function c(T,k){var S=A.get(0);if(S.createTextRange){var i=S.createTextRange();i.collapse(true);i.moveStart("character",T);i.moveEnd("character",k);i.select()}else{if(S.setSelectionRange){S.setSelectionRange(T,k)}else{if(S.selectionStart){S.selectionStart=T;S.selectionEnd=k}}}S.focus()}function y(i){if(i.substring(0,A.val().length).toLowerCase()!=A.val().toLowerCase()){return}if(b!=8){A.val(A.val()+i.substring(z.length));c(z.length,i.length)}}function H(){var k=C(e);var i=(w.width>0)?w.width:A.width();j.css({top:(k.y+e.offsetHeight)+"px",left:k.x+"px"}).show()}function d(){if(L){clearTimeout(L)}L=setTimeout(x,200)}function x(){if(L){clearTimeout(L)}A.removeClass(w.loadingClass);if(j.is(":visible")){j.hide()}if(w.mustMatch){var i=A.val();if(i!=e.lastSelected){t(null)}}}function h(T,S){if(S){A.removeClass(w.loadingClass);s.innerHTML="";if(S.length==0){return x()}if($.browser.msie){j.append(document.createElement("iframe"))}s.appendChild(N(S));if(w.autoFill&&(A.val().toLowerCase()==T.toLowerCase())&&S[1]){var k=S[1][2];var i=S[1][1];if(w.extraParams.suggestion_field=="city"){if(b!=8){document.getElementById("zip").value=i}}y(k)}H()}else{x()}}function g(U){if(!U){return null}var k=[];var T=U.split(w.lineSeparator);for(var S=0;S<T.length;S++){var V=$.trim(T[S]);if(V){k[k.length]=V.split(w.cellSeparator)}}return k}function K(V){if(!V){return null}var k=[];var U=V.split(w.lineSeparator);var T="";for(var S=0;S<U.length;S++){var W=$.trim(U[S]);if(W){k[k.length]=W.split(w.cellSeparator)}}return k}function N(U){var Y=document.createElement("ul");var X=U.length;if((w.maxItemsToShow>0)&&(w.maxItemsToShow<X)){X=w.maxItemsToShow}var S="1";if(U[1]&&U[(w.maxItemsToShow-1)]){var Z=a(U[1][2])+"";for(var V=1;V<w.maxItemsToShow;V++){var aa=a(U[V][2])+"";if(Z==aa){}else{S="0"}}}else{S="0"}var W=0;for(var V=1;V<X;V++){var ac=U[V];if(!ac){continue}var ab=document.createElement("li");if(w.formatItem){ab.innerHTML=w.formatItem(ac,V,X);ab.selectValue=ac[0]}else{ab.innerHTML=ac[0];ab.selectValue=ac[0]}var k=null;if(ac.length>1){k=[];for(var T=1;T<ac.length;T++){k[k.length]=ac[T]}}if(ab.innerHTML.length>W){W=ab.innerHTML.length}ab.extra=k;Y.appendChild(ab);$(ab).hover(function(){$("li",Y).removeClass("ac_over");$(this).addClass("ac_over");M=$("li",Y).indexOf($(this).get(0))},function(){$(this).removeClass("ac_over")}).click(function(i){i.preventDefault();i.stopPropagation();t(this)})}if(S=="1"&&w.divId=="suggestion_city"){var Z=a(U[1][2])+"";var ac=new Array("0","",w.textForOther+" "+Z+"...");var ab=document.createElement("li");if(w.formatItem){ab.innerHTML=w.formatItem(ac,V,X);ab.selectValue=ac[0]}else{ab.innerHTML=ac[0];ab.selectValue=ac[0]}var k=null;if(ac.length>1){k=[];for(var T=1;T<ac.length;T++){k[k.length]=ac[T]}}if(ab.innerHTML.length>W){W=ab.innerHTML.length}ab.extra=k;Y.appendChild(ab);$(ab).hover(function(){$("li",Y).removeClass("ac_over");$(this).addClass("ac_over");M=$("li",Y).indexOf($(this).get(0))},function(){$(this).removeClass("ac_over")}).click(function(i){i.preventDefault();i.stopPropagation();t(this)})}if($.browser.msie){document.getElementById(w.divId).style.width=7*W+"px"}return Y}function F(k){if(w.divId=="suggestion_city"){$("#street")[0].autocompleter.flushCache()}if(!w.matchCase){k=k.toLowerCase()}var i=w.cacheLength?Q(k):null;if(i){h(k,i)}else{if((typeof w.url=="string")&&(w.url.length>0)){$.get(q(k),function(S){S=g(S);f(k,S);h(k,S)})}else{A.removeClass(w.loadingClass)}}}function q(T){var k=w.url;var U="?";for(var S in w.extraParams){var V=w.extraParams[S];if(w.extraParams[S]=="getElementById"){V=document.getElementById(S).value}k+=U+S+"="+encodeURI(V);U="&"}k=addUrlTimestamp(k);return k}function B(X){if(!X){return null}if(l.data[X]){return l.data[X]}if(w.matchSubset){for(var V=X.length-1;V>=w.minChars;V--){var S=X.substr(0,V);var Y=l.data[S];if(Y){var W=[];for(var T=0;T<Y.length;T++){var k=Y[T];var U=k[0];if(D(U,X)){W[W.length]=k}}return W}}}return null}function Q(S){if(!S){return null}if(l.data[S]){return l.data[S]}if(w.matchSubset){for(var X=S.length-1;X>=w.minChars;X--){var Z=S.substr(0,X);var Y=l.data[Z];if(Y){var V=[];V[0]=Y[0];if(w.divId=="suggestion_city"){if(Y.length>=w.newRequestLessThen){return null}if(S.search(/^[0-9]/)!=-1){return null}}else{var ac=Y[(Y.length-1)][2];if(!ac){return null}var aa=S;if(!w.matchCase){ac=ac.toLowerCase();aa=aa.toLowerCase()}ac=m(ac);aa=m(aa);if(ac<aa){return null}}for(var W=0;W<Y.length;W++){var ab=Y[W];var U=ab[0];var T=ab[1];var k=ab[2];if(D(k,S)){V[V.length]=ab}}return V}}}return null}function D(T,S){var U=T.search(/\?/);if(U!=-1){T=T.substring(0,U);if(S.length>U){S=S.substring(0,U)}}if(!w.matchCase){T=T.toLowerCase()}var k=T.indexOf(S);if(k==-1){return false}return k==0||w.matchContains}this.flushCache=function(){o()};this.setExtraParams=function(i){w.extraParams=i};this.findValue=function(){var k=A.val();if(!w.matchCase){k=k.toLowerCase()}var i=w.cacheLength?Q(k):null;if(i){J(k,i)}else{if((typeof w.url=="string")&&(w.url.length>0)){$.get(q(k),function(S){S=g(S);f(k,S);J(k,S)})}else{J(k,null)}}};function J(X,W){if(W){A.removeClass(w.loadingClass)}var U=(W)?W.length:0;var S=null;for(var V=0;V<U;V++){var Y=W[V];if(Y[0].toLowerCase()==X.toLowerCase()){S=document.createElement("li");if(w.formatItem){S.innerHTML=w.formatItem(Y,V,U);S.selectValue=Y[0]}else{S.innerHTML=Y[0];S.selectValue=Y[0]}var k=null;if(Y.length>1){k=[];for(var T=1;T<Y.length;T++){k[k.length]=Y[T]}}S.extra=k}}if(w.onFindValue){setTimeout(function(){w.onFindValue(S)},1)}}function f(k,i){if(!i||!k||!w.cacheLength){return}if(!l.length||l.length>w.cacheLength){o();l.length++}else{if(!l[k]){l.length++}}l.data[k]=i}function m(i){i=i.replace(/ö/g,"o");i=i.replace(/ä/g,"a");i=i.replace(/ü/g,"u");i=i.replace(/-/g,"");i=i.replace(/ß/g,"s");return i}function a(i){if(i){i=i.replace(/^[0-9\? ]+/,"");i=i.match(/^[a-zA-ZÄÖÜöäüß]*/);return i}else{return""}}function C(k){var S=k.offsetLeft||0;var i=k.offsetTop||0;while(k=k.offsetParent){S+=k.offsetLeft;i+=k.offsetTop}return{x:S,y:i}}};jQuery.fn.autocomplete=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.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};
