if(typeof(bsn)=="undefined"){_b=bsn={}}if(typeof(_b.Autosuggest)=="undefined"){_b.Autosuggest={}}else{alert("Autosuggest is already set!")}_b.AutoSuggest=function(b,c){if(!document.getElementById){return 0}this.fld=_b.DOM.gE(b);if(!this.fld){return 0}this.sInp="";this.nInpC=0;this.aSug=[];this.iHigh=0;this.oP=c?c:{};var j,i={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(j in i){if(typeof(this.oP[j])!=typeof(i[j])){this.oP[j]=i[j]}}var h=this;this.fld.onkeypress=function(a){return h.onKeyPress(a)};this.fld.onkeyup=function(a){return h.onKeyUp(a)};this.fld.setAttribute("autocomplete","off")};_b.AutoSuggest.prototype.onKeyPress=function(e){var f=(window.event)?window.event.keyCode:e.keyCode;var a=13;var b=9;var c=27;var d=1;switch(f){case a:this.setHighlightedValue();d=0;break;case c:this.clearSuggestions();break}return d};_b.AutoSuggest.prototype.onKeyUp=function(d){var e=(window.event)?window.event.keyCode:d.keyCode;var a=38;var b=40;var c=1;switch(e){case a:this.changeHighlight(e);c=0;break;case b:this.changeHighlight(e);c=0;break;default:this.getSuggestions(this.fld.value)}return c};_b.AutoSuggest.prototype.getSuggestions=function(d){if(d==this.sInp){return 0}_b.DOM.remE(this.idAs);this.sInp=d;if(d.length<this.oP.minchars){this.aSug=[];this.nInpC=d.length;return 0}var i=this.nInpC;this.nInpC=d.length?d.length:0;var e=this.aSug.length;if(this.nInpC>i&&e&&e<this.oP.maxentries&&this.oP.cache){var l=[];for(var c=0;c<e;c++){if(this.aSug[c].value.substr(0,d.length).toLowerCase()==d.toLowerCase()){l.push(this.aSug[c])}}this.aSug=l;this.createList(this.aSug);return false}else{var a=this;var b=this.sInp;clearTimeout(this.ajID);this.ajID=setTimeout(function(){a.doAjaxRequest(b)},this.oP.delay)}return false};_b.AutoSuggest.prototype.doAjaxRequest=function(d){if(d!=this.fld.value){return false}var h=this;if(typeof(this.oP.script)=="function"){var b=this.oP.script(encodeURIComponent(this.sInp))}else{var b=this.oP.script+this.oP.varname+"="+encodeURIComponent(this.sInp)}if(!b){return false}var c=this.oP.meth;var d=this.sInp;var e=function(a){h.setSuggestions(a,d)};var f=function(a){alert("AJAX error: "+a)};var g=new _b.Ajax();g.makeRequest(b,c,e,f)};_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(b){var c=this;_b.DOM.remE(this.idAs);this.killTimeout();if(b.length==0&&!this.oP.shownoresults){return false}var d=_b.DOM.cE("div",{id:this.idAs,className:this.oP.className});var e=_b.DOM.cE("div",{className:"as_corner"});var f=_b.DOM.cE("div",{className:"as_bar"});var g=_b.DOM.cE("div",{className:"as_header"});g.appendChild(e);g.appendChild(f);d.appendChild(g);var i=_b.DOM.cE("ul",{id:"as_ul"});for(var k=0;k<b.length;k++){var m=b[k].value;var o=m.toLowerCase().indexOf(this.sInp.toLowerCase());var p=m.substring(0,o)+"<em>"+m.substring(o,o+this.sInp.length)+"</em>"+m.substring(o+this.sInp.length);var q=_b.DOM.cE("span",{},p,true);if(b[k].info!=""){var r=_b.DOM.cE("br",{});q.appendChild(r);var s=_b.DOM.cE("small",{},b[k].info);q.appendChild(s)}var a=_b.DOM.cE("a",{href:"#"});var t=_b.DOM.cE("span",{className:"tl"}," ");var u=_b.DOM.cE("span",{className:"tr"}," ");a.appendChild(t);a.appendChild(u);a.appendChild(q);a.name=k+1;a.onclick=function(){c.setHighlightedValue();return false};a.onmouseover=function(){c.setHighlight(this.name)};var v=_b.DOM.cE("li",{},a);i.appendChild(v)}if(b.length==0&&this.oP.shownoresults){var v=_b.DOM.cE("li",{className:"as_warning"},this.oP.noresults);i.appendChild(v)}d.appendChild(i);var h=_b.DOM.cE("div",{className:"as_corner"});var j=_b.DOM.cE("div",{className:"as_bar"});var l=_b.DOM.cE("div",{className:"as_footer"});l.appendChild(h);l.appendChild(j);d.appendChild(l);var n=_b.DOM.getPos(this.fld);d.style.left=n.x+"px";d.style.top=(n.y+this.fld.offsetHeight+this.oP.offsety)+"px";d.style.width=this.fld.offsetWidth+"px";d.onmouseover=function(){c.killTimeout()};d.onmouseout=function(){c.resetTimeout()};document.getElementsByTagName("body")[0].appendChild(d);this.iHigh=0;var c=this;this.toID=setTimeout(function(){c.clearSuggestions()},this.oP.timeout)};_b.AutoSuggest.prototype.changeHighlight=function(b){var f=_b.DOM.gE("as_ul");if(!f){return false}var a;if(b==40){a=this.iHigh+1}else{if(b==38){a=this.iHigh-1}}if(a>f.childNodes.length){a=f.childNodes.length}if(a<1){a=1}this.setHighlight(a)};_b.AutoSuggest.prototype.setHighlight=function(d){var a=_b.DOM.gE("as_ul");if(!a){return false}if(this.iHigh>0){this.clearHighlight()}this.iHigh=Number(d);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 c=this;if(b){var a=new _b.Fader(b,1,0,250,function(){_b.DOM.remE(c.idAs)})}};if(typeof(_b.Ajax)=="undefined"){_b.Ajax={}}_b.Ajax=function(){this.req={};this.isIE=false};_b.Ajax.prototype.makeRequest=function(d,e,a,b){if(e!="POST"){e="GET"}this.onComplete=a;this.onError=b;var c=this;if(window.XMLHttpRequest){this.req=new XMLHttpRequest();this.req.onreadystatechange=function(){c.processReqChange()};this.req.open("GET",d,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(e,d,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(n,a,b,c){var d=document.createElement(n);if(!d){return 0}for(var f in a){d[f]=a[f]}var e=typeof(b);if(e=="string"&&!c){d.appendChild(document.createTextNode(b))}else{if(e=="string"&&c){d.innerHTML=b}else{if(e=="object"){d.appendChild(b)}}}return d};_b.DOM.gE=function(e){var f=typeof(e);if(f=="undefined"){return 0}else{if(f=="string"){var a=document.getElementById(e);if(!a){return 0}else{if(typeof(a.appendChild)!="undefined"){return a}else{return 0}}}else{if(typeof(e.appendChild)!="undefined"){return e}else{return 0}}}};_b.DOM.remE=function(a){var d=this.gE(a);if(!d){return 0}else{if(d.parentNode.removeChild(d)){return true}else{return 0}}};_b.DOM.getPos=function(b){var b=this.gE(b);var c=b;var e=0;if(c.offsetParent){while(c.offsetParent){e+=c.offsetLeft;c=c.offsetParent}}else{if(c.x){e+=c.x}}var c=b;var a=0;if(c.offsetParent){while(c.offsetParent){a+=c.offsetTop;c=c.offsetParent}}else{if(c.y){a+=c.y}}return{x:e,y:a}};if(typeof(_b.Fader)=="undefined"){_b.Fader={}}_b.Fader=function(e,l,a,b,c){if(!e){return 0}this.e=e;this.from=l;this.to=a;this.cb=c;this.nDur=b;this.nInt=50;this.nTime=0;var d=this;this.nID=setInterval(function(){d._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 e=b/100;if(this.e.filters){try{this.e.filters.item("DXImageTransform.Microsoft.Alpha").opacity=b}catch(a){this.e.style.filter="progid:DXImageTransform.Microsoft.Alpha(opacity="+b+")"}}else{this.e.style.opacity=e}if(this.nTime==this.nDur){clearInterval(this.nID);if(this.cb!=undefined){this.cb()}}};_b.Fader.prototype._tween=function(h,b,c,d){return b+((c-b)*(h/d))};
