
if(typeof(bsn)=="undefined")
bsn={};if(typeof(_b)=="undefined")
_b=bsn;if(typeof(_b.Autosuggest)=="undefined")
_b.Autosuggest={};_b.AutoSuggest=function(id,param)
{if(!document.getElementById)
return 0;if($type!=null){if($type(id)=='string')this.fld=_b.DOM.gE(id);else this.fld=id;}else{if(typeof id=='string')this.fld=_b.DOM.gE(id);else this.fld=id;}
if(!this.fld)
return 0;this.sInp="";this.nInpC=0;this.aSug=[];this.iHigh=0;this.oP=param?param:{};if(this.oP.valueFieldName==null)this.oP.valueFieldName='value';var k,def={searchOnFields:[],savedResults:[],keepResults:false,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(k in def)
{if(typeof(this.oP[k])!=typeof(def[k]))
this.oP[k]=def[k];}
var p=this;this.fld.onkeypress=function(ev){return p.onKeyPress(ev);};this.fld.onkeyup=function(ev){return p.onKeyUp(ev);};this.fld.onblur=function(ev){return p.onBlur(ev);};this.fld.onfocus=function(ev){return p.onFocus(ev);};this.fld.setAttribute("autocomplete","off");};_b.AutoSuggest.prototype.onFocus=function(ev){this.iHigh=false;}
_b.AutoSuggest.prototype.onBlur=function(ev)
{if($('filterlocation')!=null){$('filterlocation').style.display='';}
if($('fltrhotelchain')!=null){$('fltrhotelchain').style.display='';}
	this.setHighlightedValue();bubble=true;return bubble;}
_b.AutoSuggest.prototype.onKeyPress=function(ev)
{var key=(window.event)?window.event.keyCode:ev.keyCode;var RETURN=13;var TAB=9;var ESC=27;var bubble=1;switch(key)
{case RETURN:this.setHighlightedValue();bubble=0;break;case ESC:this.clearSuggestions();break;case TAB:this.setHighlightedValue();break;}
return bubble;};_b.AutoSuggest.prototype.onKeyUp=function(ev)
{var key=(window.event)?window.event.keyCode:ev.keyCode;var ARRUP=38;var ARRDN=40;var bubble=1;switch(key)
{case ARRUP:this.changeHighlight(key);bubble=0;break;case ARRDN:this.changeHighlight(key);bubble=0;break;default:this.getSuggestions(this.fld.value);}
return bubble;};_b.AutoSuggest.prototype.getSuggestions=function(val)
{if(val==this.sInp)
return 0;_b.DOM.remE(this.idAs);this.sInp=val;if(val.length<this.oP.minchars)
{this.aSug=[];this.nInpC=val.length;return 0;}
var ol=this.nInpC;this.nInpC=val.length?val.length:0;var l=this.aSug.length;if(this.nInpC>ol&&l&&l<this.oP.maxentries&&this.oP.cache)
{var arr=[];for(var i=0;i<l;i++)
{if(this.aSug[i].value.substr(0,val.length).toLowerCase()==val.toLowerCase())
arr.push(this.aSug[i]);}
this.aSug=arr;this.createList(this.aSug);return false;}
else
{var pointer=this;var input=this.sInp;clearTimeout(this.ajID);this.ajID=setTimeout(function(){pointer.doAjaxRequest(input)},this.oP.delay);}
return false;};_b.AutoSuggest.prototype.doAjaxRequest=function(input)
{if(input!=this.fld.value)
return false;var pointer=this;if(this.oP.localjson!=null){var input=this.sInp;var onSuccessFunc=function(json){pointer.setLocalSuggestions(json,input)};onSuccessFunc(this.oP.localjson);}
else{if(typeof(this.oP.script)=="function")
var url=this.oP.script(encodeURIComponent(this.sInp));else
var url=this.oP.script+this.oP.varname+"="+encodeURIComponent(this.sInp);if(!url)
return false;var meth=this.oP.meth;var input=this.sInp;var onSuccessFunc=function(req){pointer.setSuggestions(req,input)};var onErrorFunc=function(status){};var myAjax=new _b.Ajax();myAjax.makeRequest(url,meth,onSuccessFunc,onErrorFunc,this);}};_b.AutoSuggest.prototype.setLocalSuggestions=function(jsondata,input){if(input!=this.fld.value)
return false;this.aSug=[];if(jsondata.results!=null&&jsondata.results.length!=null)
for(var i=0;i<jsondata.results.length;i++)
{if(jsondata.results[i].value.substr(0,input.length).toLowerCase()==input.toLowerCase())
this.aSug.push({'id':jsondata.results[i].id,'value':jsondata.results[i].value,'info':jsondata.results[i].info,'obj':jsondata.results[i]});}
else if(jsondata!=null&&jsondata.length!=null)
for(var i=0;i<jsondata.length;i++)
{if(jsondata[i].value.substr(0,input.length).toLowerCase()==input.toLowerCase())
this.aSug.push({'id':jsondata[i].id,'value':jsondata[i].value,'info':jsondata[i].info,'obj':jsondata[i]});}
this.idAs="as_"+this.fld.id;this.createList(this.aSug);}
_b.AutoSuggest.prototype.setSuggestions=function(req,input)
{if(input!=this.fld.value)
return false;this.aSug=[];if(this.oP.json)
{var jsondata=eval('('+req.responseText+')');this.oP.savedResults=jsondata;this.collectDataForJson(this);}else{var xml=req.responseXML;var results=xml.getElementsByTagName('results')[0].childNodes;for(var i=0;i<results.length;i++)
{if(results[i].hasChildNodes())
this.aSug.push({'id':results[i].getAttribute('id'),'value':results[i].childNodes[0].nodeValue,'info':results[i].getAttribute('info')});}}
this.idAs="as_"+this.fld.id;this.createList(this.aSug);};_b.AutoSuggest.prototype.collectDataForJson=function(this_obj){var myJsondata=this_obj.oP.savedResults
if(!this_obj.oP.keepResults){if(myJsondata.results!=null)
for(var i=0;i<myJsondata.results.length;i++)
{this_obj.aSug.push({'id':myJsondata.results[i].id,'value':myJsondata.results[i][this_obj.oP.valueFieldName],'info':myJsondata.results[i].info,'obj':myJsondata.results[i]});}
else if(myJsondata.length!=null)
for(var i=0;i<myJsondata.length;i++)
{this_obj.aSug.push({'id':myJsondata[i].id,'value':myJsondata[i][this_obj.oP.valueFieldName],'info':myJsondata[i].info,'obj':myJsondata[i]});}}else{if(myJsondata.results!=null)
for(var i=0;i<myJsondata.results.length;i++)
{for(var j=0;j<this_obj.oP.searchOnFields.length;j++){if(myJsondata.results[i][this_obj.oP.searchOnFields[j]].toUpperCase().indexOf(this_obj.sInp.toUpperCase())==0){this_obj.aSug.push({'id':myJsondata.results[i].id,'value':myJsondata.results[i][this_obj.oP.valueFieldName],'info':myJsondata.results[i].info,'obj':myJsondata.results[i]});}}}
else if(myJsondata.length!=null)
for(var i=0;i<myJsondata.length;i++)
{var str='';for(var j=0;j<this_obj.oP.searchOnFields.length;j++){if(myJsondata[i][this_obj.oP.searchOnFields[j]].toUpperCase().indexOf(this_obj.sInp.toUpperCase())==0){this_obj.aSug.push({'id':myJsondata[i].id,'value':myJsondata[i][this_obj.oP.valueFieldName],'info':myJsondata[i].info,'obj':myJsondata[i]});}}}}};_b.AutoSuggest.prototype.createList=function(arr)
{if($('filterlocation')!=null){$('filterlocation').style.display='none';}
if($('fltrhotelchain')!=null){$('fltrhotelchain').style.display='none';}
	var pointer=this;_b.DOM.remE(this.idAs);this.killTimeout();if(arr.length==0&&!this.oP.shownoresults)
return false;var div=_b.DOM.cE("div",{id:this.idAs,className:this.oP.className});var hcorner=_b.DOM.cE("div",{className:"as_corner"});var hbar=_b.DOM.cE("div",{className:"as_bar"});var header=_b.DOM.cE("div",{className:"as_header"});header.appendChild(hcorner);header.appendChild(hbar);div.appendChild(header);var cdiv=_b.DOM.cE("div",{id:"as_cdiv",className:"as_scrollable"});var ul=_b.DOM.cE("ul",{id:"as_ul"});for(var i=0;i<arr.length;i++)
{var val=arr[i].value;var st=val.toLowerCase().indexOf(this.sInp.toLowerCase());var output=val.substring(0,st)+'<em class="as_smallfont">'+val.substring(st,st+this.sInp.length)+"</em>"+val.substring(st+this.sInp.length);var span=_b.DOM.cE("span",{className:"as_smallfont"},output,true);if(arr[i].info!=""&&this.oP.showinfo==true)
{var br=_b.DOM.cE("br",{});span.appendChild(br);var small=_b.DOM.cE("small",{className:"as_smallerfont"},arr[i].info);span.appendChild(small);}
var a=_b.DOM.cE("a",{href:"#"});var tl=_b.DOM.cE("span",{className:"tl"}," ");var tr=_b.DOM.cE("span",{className:"tr"}," ");a.appendChild(tl);a.appendChild(tr);a.appendChild(span);a.name=i+1;a.onclick=function(){pointer.setHighlightedValue();return false;};a.onmouseover=function(){pointer.setHighlight(this.name);};var li=_b.DOM.cE("li",{},a);ul.appendChild(li);}
if(arr.length==0&&this.oP.shownoresults)
{var li=_b.DOM.cE("li",{className:"as_warning"},this.oP.noresults);ul.appendChild(li);}
cdiv.appendChild(ul);div.appendChild(cdiv);var fcorner=_b.DOM.cE("div",{className:"as_corner"});var fbar=_b.DOM.cE("div",{className:"as_bar"});var footer=_b.DOM.cE("div",{className:"as_footer"});footer.appendChild(fcorner);footer.appendChild(fbar);div.appendChild(footer);var pos=_b.DOM.getPos(this.fld);div.style.left=pos.x+"px";div.style.top=(pos.y+this.fld.offsetHeight+this.oP.offsety)+"px";if(!$defined(this.oP.minWidth)||isNaN(this.oP.minWidth))this.oP.minWidth=0;if(this.fld.offsetWidth>this.oP.minWidth)
div.style.width=this.fld.offsetWidth+"px";else
div.style.width=this.oP.minWidth+"px";div.onmouseover=function(){pointer.killTimeout()};document.getElementsByTagName("body")[0].appendChild(div);this.iHigh=0;if(arr.length>0)
this.setHighlight(1);};_b.AutoSuggest.prototype.changeHighlight=function(key)
{var list=_b.DOM.gE("as_ul");if(!list)
return false;var n;if(key==40)
n=this.iHigh+1;else if(key==38)
n=this.iHigh-1;if(n>list.childNodes.length)
n=list.childNodes.length;if(n<1)
n=1;this.setHighlight(n);};_b.AutoSuggest.prototype.setHighlight=function(n)
{var list=_b.DOM.gE("as_ul");if(!list)
return false;if(this.iHigh>0)
this.clearHighlight();this.iHigh=Number(n);list.childNodes[this.iHigh-1].className="as_highlight";this.killTimeout();};_b.AutoSuggest.prototype.clearHighlight=function()
{var list=_b.DOM.gE("as_ul");if(!list)
return false;if(this.iHigh>0)
{list.childNodes[this.iHigh-1].className="";this.iHigh=0;}};_b.AutoSuggest.prototype.setHighlightedValue=function()
{if(this.iHigh&&this.aSug[this.iHigh-1]&&this.aSug[this.iHigh-1].value!=null&&this.aSug[this.iHigh-1].value!="")
{this.sInp=this.fld.value=this.aSug[this.iHigh-1].value;if(typeof(this.oP.callback)=="function"){if(this.aSug!=null&&this.aSug[this.iHigh-1]!=null){this.oP.callback(this.aSug[this.iHigh-1]);}else
this.oP.callback(null);}}else{if(this.fld){if(this.fld.set)this.fld.set('value','');else if(this.fld.setvalue)this.fld.setvalue('');else this.fld.value='';}
if((typeof(this.oP.callbackfailure)=="function")){if(this.iHigh&&this.aSug!=null&&this.aSug[this.iHigh-1]!=null)
this.oP.callbackfailure(this.aSug[this.iHigh-1]);else
this.oP.callbackfailure(null);}}
this.clearSuggestions();};_b.AutoSuggest.prototype.killTimeout=function()
{clearTimeout(this.toID);};_b.AutoSuggest.prototype.resetTimeout=function()
{clearTimeout(this.toID);var pointer=this;this.toID=setTimeout(function(){pointer.setHighlightedValue();},1000);};_b.AutoSuggest.prototype.clearSuggestions=function()
{this.killTimeout();var ele=_b.DOM.gE(this.idAs);var pointer=this;if(ele)
{var fade=new _b.Fader(ele,1,0,50,function(){_b.DOM.remE(pointer.idAs)});}};if(typeof(_b.Ajax)=="undefined")
_b.Ajax={};_b.Ajax=function()
{this.req={};this.isIE=false;};_b.Ajax.prototype.makeRequest=function(url,meth,onComp,onErr,this_obj)
{if(meth!="POST")
meth="GET";this.onComplete=onComp;this.onError=onErr;var pointer=this;if(!this_obj.oP.keepResults||this_obj.oP.savedResults.length==0){if(window.XMLHttpRequest){this.req=new XMLHttpRequest();this.req.onreadystatechange=function(){pointer.processReqChange()};this.req.open("GET",url,true);this.req.send(null);}else if(window.ActiveXObject){this.req=new ActiveXObject("Microsoft.XMLHTTP");if(this.req)
{this.req.onreadystatechange=function(){pointer.processReqChange()};this.req.open(meth,url,true);this.req.send();}}}else{this_obj.aSug=[];this_obj.collectDataForJson(this_obj);this_obj.idAs="as_"+this_obj.fld.id;this_obj.createList(this_obj.aSug);}};_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(type,attr,cont,html)
{var ne=document.createElement(type);if(!ne)
return 0;for(var a in attr)
ne[a]=attr[a];var t=typeof(cont);if(t=="string"&&!html)
ne.appendChild(document.createTextNode(cont));else if(t=="string"&&html)
ne.innerHTML=cont;else if(t=="object")
ne.appendChild(cont);return ne;};_b.DOM.gE=function(e)
{var t=typeof(e);if(t=="undefined")
return 0;else if(t=="string")
{var re=document.getElementById(e);if(!re)
return 0;else if(typeof(re.appendChild)!="undefined")
return re;else
return 0;}
else if(typeof(e.appendChild)!="undefined")
return e;else
return 0;};_b.DOM.remE=function(ele)
{var e=this.gE(ele);if(!e)
return 0;else if(e.parentNode.removeChild(e))
return true;else
return 0;};_b.DOM.getPos=function(e)
{var e=this.gE(e);var obj=e;var curleft=0;if(obj.offsetParent)
{while(obj.offsetParent)
{curleft+=obj.offsetLeft;obj=obj.offsetParent;}}
else if(obj.x)
curleft+=obj.x;var obj=e;var curtop=0;if(obj.offsetParent)
{while(obj.offsetParent)
{curtop+=obj.offsetTop;obj=obj.offsetParent;}}
else if(obj.y)
curtop+=obj.y;return{x:curleft,y:curtop};};if(typeof(_b.Fader)=="undefined")
_b.Fader={};_b.Fader=function(ele,from,to,fadetime,callback)
{if(!ele)
return 0;this.e=ele;this.from=from;this.to=to;this.cb=callback;this.nDur=fadetime;this.nInt=50;this.nTime=0;var p=this;this.nID=setInterval(function(){p._fade()},this.nInt);};_b.Fader.prototype._fade=function()
{this.nTime+=this.nInt;var ieop=Math.round(this._tween(this.nTime,this.from,this.to,this.nDur)*100);var op=ieop/100;if(this.e.filters)
{try
{this.e.filters.item("DXImageTransform.Microsoft.Alpha").opacity=ieop;}catch(e){this.e.style.filter='progid:DXImageTransform.Microsoft.Alpha(opacity='+ieop+')';}}
else
{this.e.style.opacity=op;}
if(this.nTime==this.nDur)
{clearInterval(this.nID);if(this.cb!=undefined)
this.cb();}};_b.Fader.prototype._tween=function(t,b,c,d)
{return b+((c-b)*(t/d));};
