if(typeof (bsn)=="undefined"){_b=bsn={}}if(typeof (_b.Autosuggest)=="undefined"){_b.Autosuggest={}}else{alert("Autosuggest is already set!")}_b.AutoSuggest=function(A,E){if(!document.getElementById){return 0}this.fld=_b.DOM.gE(A);if(!this.fld){return 0}this.sInp="";this.nInpC=0;this.aSug=[];this.iHigh=0;this.oP=E?E:{};var B,C={minchars:1,meth:"get",varname:"input",className:"autosuggest",timeout:2500,delay:500,offsety:-5,shownoresults:true,noresults:"No results!",maxheight:250,cache:true,maxentries:25};for(B in C){if(typeof (this.oP[B])!=typeof (C[B])){this.oP[B]=C[B]}}var D=this;this.fld.onkeypress=function(F){return D.onKeyPress(F)};this.fld.onkeyup=function(F){return D.onKeyUp(F)};this.fld.setAttribute("autocomplete","off")};_b.AutoSuggest.prototype.onKeyPress=function(B){var A=(window.event)?window.event.keyCode:B.keyCode;var F=13;var E=9;var D=27;var C=1;switch(A){case F:this.setHighlightedValue();C=0;break;case D:this.clearSuggestions();break}return C};_b.AutoSuggest.prototype.onKeyUp=function(B){var A=(window.event)?window.event.keyCode:B.keyCode;var E=38;var D=40;var C=1;switch(A){case E:this.changeHighlight(A);C=0;break;case D:this.changeHighlight(A);C=0;break;default:this.getSuggestions(this.fld.value)}return C};_b.AutoSuggest.prototype.getSuggestions=function(C){if(C==this.sInp){return 0}_b.DOM.remE(this.idAs);this.sInp=C;if(C.length<this.oP.minchars){this.aSug=[];this.nInpC=C.length;return 0}var A=this.nInpC;this.nInpC=C.length?C.length:0;var B=this.aSug.length;if(this.nInpC>A&&B&&B<this.oP.maxentries&&this.oP.cache){var G=[];for(var D=0;D<B;D++){if(this.aSug[D].value.substr(0,C.length).toLowerCase()==C.toLowerCase()){G.push(this.aSug[D])}}this.aSug=G;this.createList(this.aSug);return false}else{var F=this;var E=this.sInp;clearTimeout(this.ajID);this.ajID=setTimeout(function(){F.doAjaxRequest(E)},this.oP.delay)}return false};_b.AutoSuggest.prototype.doAjaxRequest=function(A){if(A!=this.fld.value){return false}var G=this;if(typeof (this.oP.script)=="function"){var F=this.oP.script(encodeURIComponent(this.sInp))}else{var F=this.oP.script+this.oP.varname+"="+encodeURIComponent(this.sInp)}if(!F){return false}var E=this.oP.meth;var A=this.sInp;var D=function(H){G.setSuggestions(H,A)};var C=function(H){alert("AJAX error: "+H)};var B=new _b.Ajax();B.makeRequest(F,E,D,C)};_b.AutoSuggest.prototype.setSuggestions=function(a,b){if(b!=this.fld.value){return false}this.aSug=[];if(this.oP.json){var c=eval("("+a.responseText+")");for(var i=0;i<c.results.length;i++){this.aSug.push({id:c.results[i].id,value:c.results[i].value,info:c.results[i].info})}}else{var d=a.responseXML;var e=d.getElementsByTagName("results")[0].childNodes;for(var i=0;i<e.length;i++){if(e[i].hasChildNodes()){this.aSug.push({id:e[i].getAttribute("id"),value:e[i].childNodes[0].nodeValue,info:e[i].getAttribute("info")})}}}this.idAs="as_"+this.fld.id;this.createList(this.aSug)};_b.AutoSuggest.prototype.createList=function(U){var T=this;_b.DOM.remE(this.idAs);this.killTimeout();if(U.length==0&&!this.oP.shownoresults){return false}var S=_b.DOM.cE("div",{id:this.idAs,className:this.oP.className});var R=_b.DOM.cE("div",{className:"as_corner"});var Q=_b.DOM.cE("div",{className:"as_bar"});var P=_b.DOM.cE("div",{className:"as_header"});P.appendChild(R);P.appendChild(Q);S.appendChild(P);var O=_b.DOM.cE("ul",{id:"as_ul"});for(var N=0;N<U.length;N++){var M=U[N].value;var L=M.toLowerCase().indexOf(this.sInp.toLowerCase());var K=M.substring(0,L)+"<em>"+M.substring(L,L+this.sInp.length)+"</em>"+M.substring(L+this.sInp.length);var J=_b.DOM.cE("span",{},K,true);if(U[N].info!=""){var I=_b.DOM.cE("br",{});J.appendChild(I);var H=_b.DOM.cE("small",{},U[N].info);J.appendChild(H)}var V=_b.DOM.cE("a",{href:"#"});var G=_b.DOM.cE("span",{className:"tl"}," ");var F=_b.DOM.cE("span",{className:"tr"}," ");V.appendChild(G);V.appendChild(F);V.appendChild(J);V.name=N+1;V.onclick=function(){T.setHighlightedValue();return false};V.onmouseover=function(){T.setHighlight(this.name)};var E=_b.DOM.cE("li",{},V);O.appendChild(E)}if(U.length==0&&this.oP.shownoresults){var E=_b.DOM.cE("li",{className:"as_warning"},this.oP.noresults);O.appendChild(E)}S.appendChild(O);var D=_b.DOM.cE("div",{className:"as_corner"});var C=_b.DOM.cE("div",{className:"as_bar"});var B=_b.DOM.cE("div",{className:"as_footer"});B.appendChild(D);B.appendChild(C);S.appendChild(B);var A=_b.DOM.getPos(this.fld);S.style.left=A.x+"px";S.style.top=(A.y+this.fld.offsetHeight+this.oP.offsety)+"px";S.style.width=this.fld.offsetWidth+"px";S.onmouseover=function(){T.killTimeout()};S.onmouseout=function(){T.resetTimeout()};document.getElementsByTagName("body")[0].appendChild(S);this.iHigh=0;var T=this;this.toID=setTimeout(function(){T.clearSuggestions()},this.oP.timeout)};_b.AutoSuggest.prototype.changeHighlight=function(B){var A=_b.DOM.gE("as_ul");if(!A){return false}var C;if(B==40){C=this.iHigh+1}else{if(B==38){C=this.iHigh-1}}if(C>A.childNodes.length){C=A.childNodes.length}if(C<1){C=1}this.setHighlight(C)};_b.AutoSuggest.prototype.setHighlight=function(B){var A=_b.DOM.gE("as_ul");if(!A){return false}if(this.iHigh>0){this.clearHighlight()}this.iHigh=Number(B);A.childNodes[this.iHigh-1].className="as_highlight";this.killTimeout()};_b.AutoSuggest.prototype.clearHighlight=function(){var A=_b.DOM.gE("as_ul");if(!A){return false}if(this.iHigh>0){A.childNodes[this.iHigh-1].className="";this.iHigh=0}};_b.AutoSuggest.prototype.setHighlightedValue=function(){if(this.iHigh){this.sInp=this.fld.value=this.aSug[this.iHigh-1].value;this.fld.focus();if(this.fld.selectionStart){this.fld.setSelectionRange(this.sInp.length,this.sInp.length)}this.clearSuggestions();if(typeof (this.oP.callback)=="function"){this.oP.callback(this.aSug[this.iHigh-1])}}};_b.AutoSuggest.prototype.killTimeout=function(){clearTimeout(this.toID)};_b.AutoSuggest.prototype.resetTimeout=function(){clearTimeout(this.toID);var A=this;this.toID=setTimeout(function(){A.clearSuggestions()},1000)};_b.AutoSuggest.prototype.clearSuggestions=function(){this.killTimeout();var B=_b.DOM.gE(this.idAs);var A=this;if(B){var C=new _b.Fader(B,1,0,250,function(){_b.DOM.remE(A.idAs)})}};if(typeof (_b.Ajax)=="undefined"){_b.Ajax={}}_b.Ajax=function(){this.req={};this.isIE=false};_b.Ajax.prototype.makeRequest=function(B,A,E,D){if(A!="POST"){A="GET"}this.onComplete=E;this.onError=D;var C=this;if(window.XMLHttpRequest){this.req=new XMLHttpRequest();this.req.onreadystatechange=function(){C.processReqChange()};this.req.open("GET",B,true);this.req.send(null)}else{if(window.ActiveXObject){this.req=new ActiveXObject("Microsoft.XMLHTTP");if(this.req){this.req.onreadystatechange=function(){C.processReqChange()};this.req.open(A,B,true);this.req.send()}}}};_b.Ajax.prototype.processReqChange=function(){if(this.req.readyState==4){if(this.req.status==200){this.onComplete(this.req)}else{this.onError(this.req.status)}}};if(typeof (_b.DOM)=="undefined"){_b.DOM={}}_b.DOM.cE=function(A,G,F,E){var D=document.createElement(A);if(!D){return 0}for(var B in G){D[B]=G[B]}var C=typeof (F);if(C=="string"&&!E){D.appendChild(document.createTextNode(F))}else{if(C=="string"&&E){D.innerHTML=F}else{if(C=="object"){D.appendChild(F)}}}return D};_b.DOM.gE=function(C){var B=typeof (C);if(B=="undefined"){return 0}else{if(B=="string"){var A=document.getElementById(C);if(!A){return 0}else{if(typeof (A.appendChild)!="undefined"){return A}else{return 0}}}else{if(typeof (C.appendChild)!="undefined"){return C}else{return 0}}}};_b.DOM.remE=function(A){var B=this.gE(A);if(!B){return 0}else{if(B.parentNode.removeChild(B)){return true}else{return 0}}};_b.DOM.getPos=function(C){var C=this.gE(C);var B=C;var A=0;if(B.offsetParent){while(B.offsetParent){A+=B.offsetLeft;B=B.offsetParent}}else{if(B.x){A+=B.x}}var B=C;var D=0;if(B.offsetParent){while(B.offsetParent){D+=B.offsetTop;B=B.offsetParent}}else{if(B.y){D+=B.y}}return{x:A,y:D}};if(typeof (_b.Fader)=="undefined"){_b.Fader={}}_b.Fader=function(B,A,F,E,D){if(!B){return 0}this.e=B;this.from=A;this.to=F;this.cb=D;this.nDur=E;this.nInt=50;this.nTime=0;var C=this;this.nID=setInterval(function(){C._fade()},this.nInt)};_b.Fader.prototype._fade=function(){this.nTime+=this.nInt;var B=Math.round(this._tween(this.nTime,this.from,this.to,this.nDur)*100);var A=B/100;if(this.e.filters){try{this.e.filters.item("DXImageTransform.Microsoft.Alpha").opacity=B}catch(C){this.e.style.filter="progid:DXImageTransform.Microsoft.Alpha(opacity="+B+")"}}else{this.e.style.opacity=A}if(this.nTime==this.nDur){clearInterval(this.nID);if(this.cb!=undefined){this.cb()}}};_b.Fader.prototype._tween=function(B,A,D,C){return A+((D-A)*(B/C))};