typeof bsn=="undefined"&&(_b=bsn={}),typeof _b.Autosuggest=="undefined"?_b.Autosuggest={}:alert("Autosuggest is already set!"),_b.AutoSuggest=function(a,b){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.fldarray=[],this.aSugCleared=[],this.oP=b?b:{};var c,d={minchars:1,meth:"get",varname:"input",className:"autosuggest",timeout:2500,delay:500,offsety:-5,maxheight:250,cache:!0,maxentries:25};for(c in d)typeof this.oP[c]!=typeof d[c]&&(this.oP[c]=d[c]);var e=this;this.fld.onkeydown=function(a){return e.onKeyDown(a)},this.fld.onkeyup=function(a){return e.onKeyUp(a)},this.fld.setAttribute("autocomplete","off")},_b.AutoSuggest.prototype.onKeyDown=function(a){var b=window.event?window.event.keyCode:a.keyCode,c=13,d=9,e=27,f=1;switch(b){case c:this.setHighlightedValue(),f=0;break;case e:this.clearSuggestions()}return f},_b.AutoSuggest.prototype.onKeyUp=function(a){var b=window.event?window.event.keyCode:a.keyCode,c=38,d=40,e=1;switch(b){case c:this.changeHighlight(b),e=0;break;case d:this.changeHighlight(b),e=0;break;default:this.getSuggestions(this.fld.value)}return e},_b.AutoSuggest.prototype.getSuggestions=function(a){var b=a.split(" ");this.sInp=b[b.length-1],_b.DOM.remE(this.idAs);if(this.sInp.length<this.oP.minchars)return this.aSug=[],this.aSugCleared=[],this.nInpC=this.sInp.length,0;var c=this.nInpC;this.nInpC=this.sInp.length?this.sInp.length:0;var d=this.aSug.length;if(this.nInpC>c&&d&&d<this.oP.maxentries&&this.oP.cache){var e=[];for(var f=0;f<d;f++)this.aSug[f].substr(0,a.length).toLowerCase()==a.toLowerCase()&&e.push(this.aSug[f]);return this.aSug=e,this.createList(this.aSug),!1}var g=this,h=this.sInp;return clearTimeout(this.ajID),this.ajID=setTimeout(function(){g.doAjaxRequest(h)},this.oP.delay),!1},_b.AutoSuggest.prototype.doAjaxRequest=function(a){this.fld.style.background="#fff url('views/js/loader.gif') no-repeat right center";var b=this;if(typeof this.oP.script=="function")var c=this.oP.script(encodeURIComponent(this.sInp));else var c=this.oP.script+this.oP.varname+"="+encodeURIComponent(this.sInp);if(!c)return!1;var d=this.oP.meth,a=this.sInp,e=function(c){b.setSuggestions(c,a)},f=function(a){alert("AJAX error: "+a)},g=new _b.Ajax;g.makeRequest(c,d,e,f)},_b.AutoSuggest.prototype.setSuggestions=function(a,b){var c=JSON.parse(a.responseText),d=new Array;for(var e in c)d.push(e+" ("+c[e]+")");var f=new Array;for(var e in c)f.push(e);this.aSug=d,this.aSugCleared=f,this.idAs="as_"+this.fld.id,this.createList(this.aSug),this.fld.style.background="#fff"},_b.AutoSuggest.prototype.createList=function(a){var b=this;_b.DOM.remE(this.idAs),this.killTimeout();if(a.length==0)return!1;var c=_b.DOM.cE("div",{id:this.idAs,className:this.oP.className}),d=_b.DOM.cE("ul",{id:"as_ul"});for(var e=0;e<a.length;e++){var f=a[e],g=f.toLowerCase().indexOf(this.sInp.toLowerCase()),h=f.substring(0,g)+"<em>"+f.substring(g,g+this.sInp.length)+"</em>"+f.substring(g+this.sInp.length),i=_b.DOM.cE("span",{},h,!0),j=_b.DOM.cE("a",{href:"#"});j.appendChild(i),j.name=e+1,j.onclick=function(){return b.setHighlightedValue(),!1},j.onmouseover=function(){b.setHighlight(this.name)};var k=_b.DOM.cE("li",{},j);d.appendChild(k)}c.appendChild(d);var l=_b.DOM.getPos(this.fld);c.style.left=l.x+"px",c.style.top=l.y+this.fld.offsetHeight+this.oP.offsety+"px",c.style.width=this.fld.offsetWidth-2+"px",c.onmouseover=function(){b.killTimeout()},c.onmouseout=function(){b.resetTimeout()},document.getElementsByTagName("body")[0].appendChild(c),this.iHigh=0;var b=this;this.toID=setTimeout(function(){b.clearSuggestions()},this.oP.timeout)},_b.AutoSuggest.prototype.changeHighlight=function(a){var b=_b.DOM.gE("as_ul");if(!b)return!1;var c;a==40?c=this.iHigh+1:a==38&&(c=this.iHigh-1),c>b.childNodes.length&&(c=b.childNodes.length),c<1&&(c=1),this.setHighlight(c)},_b.AutoSuggest.prototype.setHighlight=function(a){var b=_b.DOM.gE("as_ul");if(!b)return!1;this.iHigh>0&&this.clearHighlight(),this.iHigh=Number(a),b.childNodes[this.iHigh-1].className="as_highlight",this.killTimeout()},_b.AutoSuggest.prototype.clearHighlight=function(){var a=_b.DOM.gE("as_ul");if(!a)return!1;this.iHigh>0&&(a.childNodes[this.iHigh-1].className="",this.iHigh=0)},_b.AutoSuggest.prototype.setHighlightedValue=function(){if(this.iHigh){this.fldarray.push(this.aSugCleared[this.iHigh-1]);if(!this.oP.single){var a=this.fld.value.lastIndexOf(" ")+1;this.fld.value=this.fld.value.substring(0,a),this.fld.value+=this.fldarray[this.fldarray.length-1]+" "}else this.fld.value=this.fldarray[this.fldarray.length-1];this.fld.focus(),this.fld.selectionStart&&this.fld.setSelectionRange(this.fld.value.length,this.fld.value.length),this.clearSuggestions()}},_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()},1e3)},_b.AutoSuggest.prototype.clearSuggestions=function(){this.killTimeout();var a=_b.DOM.gE(this.idAs),b=this;if(a)var c=new _b.Fader(a,1,0,250,function(){_b.DOM.remE(b.idAs)})},typeof _b.Ajax=="undefined"&&(_b.Ajax={}),_b.Ajax=function(){this.req={},this.isIE=!1},_b.Ajax.prototype.makeRequest=function(a,b,c,d){b!="POST"&&(b="GET"),this.onComplete=c,this.onError=d;var e=this;window.XMLHttpRequest?(this.req=new XMLHttpRequest,this.req.onreadystatechange=function(){e.processReqChange()},this.req.open("GET",a,!0),this.req.send(null)):window.ActiveXObject&&(this.req=new ActiveXObject("Microsoft.XMLHTTP"),this.req&&(this.req.onreadystatechange=function(){e.processReqChange()},this.req.open(b,a,!0),this.req.send()))},_b.Ajax.prototype.processReqChange=function(){this.req.readyState==4&&(this.req.status==200?this.onComplete(this.req):this.onError(this.req.status))},typeof _b.DOM=="undefined"&&(_b.DOM={}),_b.DOM.cE=function(a,b,c,d){var e=document.createElement(a);if(!e)return 0;for(var f in b)e[f]=b[f];var g=typeof c;return g=="string"&&!d?e.appendChild(document.createTextNode(c)):g=="string"&&d?e.innerHTML=c:g=="object"&&e.appendChild(c),e},_b.DOM.gE=function(a){var b=typeof a;if(b=="undefined")return 0;if(b=="string"){var c=document.getElementById(a);return c?typeof c.appendChild!="undefined"?c:0:0}return typeof a.appendChild!="undefined"?a:0},_b.DOM.remE=function(a){var b=this.gE(a);return b?b.parentNode.removeChild(b)?!0:0:0},_b.DOM.getPos=function(a){var a=this.gE(a),b=a,c=0;if(b.offsetParent)while(b.offsetParent)c+=b.offsetLeft,b=b.offsetParent;else b.x&&(c+=b.x);var b=a,d=0;if(b.offsetParent)while(b.offsetParent)d+=b.offsetTop,b=b.offsetParent;else b.y&&(d+=b.y);return{x:c,y:d}},typeof _b.Fader=="undefined"&&(_b.Fader={}),_b.Fader=function(a,b,c,d,e){if(!a)return 0;this.e=a,this.from=b,this.to=c,this.cb=e,this.nDur=d,this.nInt=50,this.nTime=0;var f=this;this.nID=setInterval(function(){f._fade()},this.nInt)},_b.Fader.prototype._fade=function(){this.nTime+=this.nInt;var a=Math.round(this._tween(this.nTime,this.from,this.to,this.nDur)*100),b=a/100;if(this.e.filters)try{this.e.filters.item("DXImageTransform.Microsoft.Alpha").opacity=a}catch(c){this.e.style.filter="progid:DXImageTransform.Microsoft.Alpha(opacity="+a+")"}else this.e.style.opacity=b;this.nTime==this.nDur&&(clearInterval(this.nID),this.cb!=undefined&&this.cb())},_b.Fader.prototype._tween=function(a,b,c,d){return b+(c-b)*(a/d)}
