if(typeof(bsn)=="undefined"){_b=bsn={}}if(typeof(_b.Autosuggest)=="undefined"){_b.Autosuggest={}}else{alert("Autosuggest is already set!")}_b.AutoSuggest=function(e,f){if(!document.getElementById){return 0}this.fld=_b.DOM.gE(e);if(!this.fld){return 0}this.sInp="";this.nInpC=0;this.aSug=[];this.iHigh=0;this.oP=f?f:{};var a,d={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(a in d){if(typeof(this.oP[a])!=typeof(d[a])){this.oP[a]=d[a]}}var g=this;this.fld.onkeypress=function(b){return g.onKeyPress(b)};this.fld.onkeyup=function(b){return g.onKeyUp(b)};this.fld.setAttribute("autocomplete","off")};_b.AutoSuggest.prototype.onKeyPress=function(g){var h=(window.event)?window.event.keyCode:g.keyCode;var i=13;var j=9;var k=27;var l=1;switch(h){case i:window.location=this.aSug[this.iHigh-1].link;return false;case k:this.clearSuggestions();break}return l};_b.AutoSuggest.prototype.onKeyUp=function(f){var g=(window.event)?window.event.keyCode:f.keyCode;var h=38;var i=40;var j=1;switch(g){case h:this.changeHighlight(g);j=0;break;case i:this.changeHighlight(g);j=0;break;default:this.getSuggestions(this.fld.value)}return j};_b.AutoSuggest.prototype.getSuggestions=function(h){if(h==this.sInp){return 0}_b.DOM.remE(this.idAs);this.sInp=h;if(h.length<this.oP.minchars){this.aSug=[];this.nInpC=h.length;return 0}var j=this.nInpC;this.nInpC=h.length?h.length:0;var g=this.aSug.length;if(this.nInpC>j&&g&&g<this.oP.maxentries&&this.oP.cache){var k=[];for(var f=0;f<g;f++){if(this.aSug[f].value.substr(0,h.length).toLowerCase()==h.toLowerCase()){k.push(this.aSug[f])}}this.aSug=k;this.createList(this.aSug);return false}else{var m=this;var n=this.sInp;clearTimeout(this.ajID);this.ajID=setTimeout(function(){m.doAjaxRequest(n)},this.oP.delay)}return false};_b.AutoSuggest.prototype.doAjaxRequest=function(i){if(i!=this.fld.value){return false}var j=this;if(typeof(this.oP.script)=="function"){var k=this.oP.script(encodeURIComponent(this.sInp))}else{var k=this.oP.script+this.oP.varname+"="+encodeURIComponent(this.sInp)}if(!k){return false}var l=this.oP.meth;var i=this.sInp;var m=function(b){j.setSuggestions(b,i)};var n=function(b){};var a=new _b.Ajax();a.makeRequest(k,l,m,n)};_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,link:c.results[i].link})}}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"),link:e[i].getAttribute("link")})}}}this.idAs="as_"+this.fld.id;this.createList(this.aSug)};_b.AutoSuggest.prototype.createList=function(M){var N=this;_b.DOM.remE(this.idAs);this.killTimeout();if(M.length==0&&!this.oP.shownoresults){return false}var O=_b.DOM.cE("div",{id:this.idAs,className:this.oP.className});var P=_b.DOM.cE("div",{className:"as_corner"});var Q=_b.DOM.cE("div",{className:"as_bar"});var R=_b.DOM.cE("div",{className:"as_header"});R.appendChild(P);R.appendChild(Q);O.appendChild(R);var D=_b.DOM.cE("ul",{id:"as_ul"});for(var E=0;E<M.length;E++){var F=M[E].value;var G=F.toLowerCase().indexOf(this.sInp.toLowerCase());var H=F.substring(0,G)+"<em>"+F.substring(G,G+this.sInp.length)+"</em>"+F.substring(G+this.sInp.length);var I=_b.DOM.cE("span",{},H,true);if(M[E].info!=""){var J=_b.DOM.cE("br",{});I.appendChild(J);var K=_b.DOM.cE("small",{},M[E].info);I.appendChild(K)}var L=_b.DOM.cE("a",{href:M[E].link});var w=_b.DOM.cE("span",{className:"tl"}," ");var x=_b.DOM.cE("span",{className:"tr"}," ");L.appendChild(w);L.appendChild(x);L.appendChild(I);L.name=E+1;L.onmouseover=function(){N.setHighlight(this.name)};var y=_b.DOM.cE("li",{},L);D.appendChild(y)}if(M.length==0&&this.oP.shownoresults){var y=_b.DOM.cE("li",{className:"as_warning"},this.oP.noresults);D.appendChild(y)}O.appendChild(D);var z=_b.DOM.cE("div",{className:"as_corner"});var A=_b.DOM.cE("div",{className:"as_bar"});var B=_b.DOM.cE("div",{className:"as_footer"});B.appendChild(z);B.appendChild(A);O.appendChild(B);var C=_b.DOM.getPos(this.fld);O.style.width=this.fld.offsetWidth+"px";O.onmouseover=function(){N.killTimeout()};O.onmouseout=function(){N.resetTimeout()};document.getElementById("searchContainer").appendChild(O);this.iHigh=0;var N=this;this.toID=setTimeout(function(){N.clearSuggestions()},this.oP.timeout)};_b.AutoSuggest.prototype.changeHighlight=function(c){var d=_b.DOM.gE("as_ul");if(!d){return false}var e;if(c==40){e=this.iHigh+1}else{if(c==38){e=this.iHigh-1}}if(e>d.childNodes.length){e=d.childNodes.length}if(e<1){e=1}this.setHighlight(e)};_b.AutoSuggest.prototype.setHighlight=function(b){var c=_b.DOM.gE("as_ul");if(!c){return false}if(this.iHigh>0){this.clearHighlight()}this.iHigh=Number(b);c.childNodes[this.iHigh-1].className="as_highlight";this.killTimeout()};_b.AutoSuggest.prototype.clearHighlight=function(){var b=_b.DOM.gE("as_ul");if(!b){return false}if(this.iHigh>0){b.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 b=this;this.toID=setTimeout(function(){b.clearSuggestions()},1000)};_b.AutoSuggest.prototype.clearSuggestions=function(){this.killTimeout();var d=_b.DOM.gE(this.idAs);var e=this;if(d){var f=new _b.Fader(d,1,0,250,function(){_b.DOM.remE(e.idAs)})}};if(typeof(_b.Ajax)=="undefined"){_b.Ajax={}}_b.Ajax=function(){this.req={};this.isIE=false};_b.Ajax.prototype.makeRequest=function(f,g,h,i){if(g!="POST"){g="GET"}this.onComplete=h;this.onError=i;var j=this;if(window.XMLHttpRequest){this.req=new XMLHttpRequest();this.req.onreadystatechange=function(){j.processReqChange()};this.req.open("GET",f,true);this.req.send(null)}else{if(window.ActiveXObject){this.req=new ActiveXObject("Microsoft.XMLHTTP");if(this.req){this.req.onreadystatechange=function(){j.processReqChange()};this.req.open(g,f,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(h,i,j,k){var l=document.createElement(h);if(!l){return 0}for(var g in i){l[g]=i[g]}var m=typeof(j);if(m=="string"&&!k){l.appendChild(document.createTextNode(j))}else{if(m=="string"&&k){l.innerHTML=j}else{if(m=="object"){l.appendChild(j)}}}return l};_b.DOM.gE=function(d){var c=typeof(d);if(c=="undefined"){return 0}else{if(c=="string"){var b=document.getElementById(d);if(!b){return 0}else{if(typeof(b.appendChild)!="undefined"){return b}else{return 0}}}else{if(typeof(d.appendChild)!="undefined"){return d}else{return 0}}}};_b.DOM.remE=function(b){var c=this.gE(b);if(!c){return 0}else{if(c.parentNode.removeChild(c)){return true}else{return 0}}};_b.DOM.getPos=function(h){var h=this.gE(h);var d=h;var f=0;if(d.offsetParent){while(d.offsetParent){f+=d.offsetLeft;d=d.offsetParent}}else{if(d.x){f+=d.x}}var d=h;var g=0;if(d.offsetParent){while(d.offsetParent){g+=d.offsetTop;d=d.offsetParent}}else{if(d.y){g+=d.y}}return{x:f,y:g}};if(typeof(_b.Fader)=="undefined"){_b.Fader={}}_b.Fader=function(f,g,h,i,j){if(!f){return 0}this.e=f;this.from=g;this.to=h;this.cb=j;this.nDur=i;this.nInt=50;this.nTime=0;var k=this;this.nID=setInterval(function(){k._fade()},this.nInt)};_b.Fader.prototype._fade=function(){this.nTime+=this.nInt;var c=Math.round(this._tween(this.nTime,this.from,this.to,this.nDur)*100);var d=c/100;if(this.e.filters){try{this.e.filters.item("DXImageTransform.Microsoft.Alpha").opacity=c}catch(f){this.e.style.filter="progid:DXImageTransform.Microsoft.Alpha(opacity="+c+")"}}else{this.e.style.opacity=d}if(this.nTime==this.nDur){clearInterval(this.nID);if(this.cb!=undefined){this.cb()}}};_b.Fader.prototype._tween=function(e,a,f,g){return a+((f-a)*(e/g))};
