var options_xml;var as_xml;var gullSearchXmlDoc;function SetupXmlFunction()
{if(document.implementation.hasFeature("XPath","3.0"))
{XMLDocument.prototype.selectNodes=function(cXPathString,xNode)
{if(!xNode){xNode=this;}
var oNSResolver=this.createNSResolver(this.documentElement)
var aItems=this.evaluate(cXPathString,xNode,oNSResolver,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null)
var aResult=[];for(var i=0;i<aItems.snapshotLength;i++)
{aResult[i]=aItems.snapshotItem(i);}
return aResult;}
XMLDocument.prototype.selectSingleNode=function(cXPathString,xNode)
{if(!xNode){xNode=this;}
var xItems=this.selectNodes(cXPathString,xNode);if(xItems.length>0)
{return xItems[0];}
else
{return null;}}
Element.prototype.selectNodes=function(cXPathString)
{if(this.ownerDocument.selectNodes)
{return this.ownerDocument.selectNodes(cXPathString,this);}
else{throw"For XML Elements Only";}}
Element.prototype.selectSingleNode=function(cXPathString)
{if(this.ownerDocument.selectSingleNode)
{return this.ownerDocument.selectSingleNode(cXPathString,this);}
else{throw"For XML Elements Only";}}}}
function LoadXmlDoc()
{if(window.ActiveXObject)
{gullSearchXmlDoc=new ActiveXObject("Microsoft.XMLDOM");gullSearchXmlDoc.async=false;gullSearchXmlDoc.setProperty('SelectionLanguage','XPath');gullSearchXmlDoc.load("results.xml");donothing();}
else if(document.implementation&&document.implementation.createDocument)
{gullSearchXmlDoc=document.implementation.createDocument("","",null);gullSearchXmlDoc.load("results.xml");gullSearchXmlDoc.onload=donothing();}
else
{alert('Your browser cannot handle this script');}}
function donothing()
{}
if(typeof(bsn)=="undefined")
_b=bsn={};if(typeof(_b.Autosuggest)=="undefined")
_b.Autosuggest={};else
alert("Autosuggest is already set!");_b.AutoSuggest=function(id,param)
{if(!document.getElementById)
return 0;this.fld=_b.DOM.gE(id);if(!this.fld)
return 0;this.sInp="";this.nInpC=0;this.aSug=[];this.iHigh=0;this.oP=param?param:{};var k,def={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.setAttribute("autocomplete","off");};_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;return!(window.event&&window.event.keyCode==13);break;case ESC:this.clearSuggestions();break;}
return bubble;};_b.AutoSuggest.prototype.onKeyUp=function(ev)
{if(Browser.Version()<7)
{gullShowIE6DropDowns();}
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;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)
{var pointer=this;if(input!=this.fld.value)
return false;if(options_xml!=null&&options_xml!='undefined')
{pointer.setSuggestions(options_xml,input)}};_b.AutoSuggest.prototype.setSuggestions=function(req,input)
{if(input!=this.fld.value)
return false;this.aSug=[];var xml=req;var xPath="//r[starts-with(.,'"+input.toLowerCase()+"')][position()<10]";var results=gullSearchXmlDoc.selectNodes(xPath);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});}
this.idAs="as_"+this.fld.id;this.createList(this.aSug);if(Browser.Version()<7)
{gullHideIE6DropDowns(this.aSug.length);}};_b.AutoSuggest.prototype.createList=function(arr)
{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 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>"+val.substring(st,st+this.sInp.length)+"</em>"+val.substring(st+this.sInp.length);var span=_b.DOM.cE("span",{},output,true);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);}
div.appendChild(ul);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";div.style.width=this.fld.offsetWidth+"px";div.onmouseover=function(){pointer.killTimeout()};div.onmouseout=function(){pointer.resetTimeout()};document.getElementsByTagName("body")[0].appendChild(div);this.iHigh=0;var pointer=this;this.toID=setTimeout(function(){pointer.clearSuggestions()},this.oP.timeout);};_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.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 pointer=this;this.toID=setTimeout(function(){pointer.clearSuggestions()},1000);};_b.AutoSuggest.prototype.clearSuggestions=function()
{this.killTimeout();var gullListArea=document.getElementById('as_gullTypedLocation');if(gullListArea)
{gullListArea.style.visibility="hidden";if(Browser.Version()<7)
{gullShowIE6DropDowns();}}
return false;};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};};function gullSetupAutoComplete()
{SetupXmlFunction();LoadXmlDoc();options_xml={script:function(input){return"results.xml";},varname:"input",callback:function(obj){document.getElementById('hdnTypedSearch').value=obj.id;}};as_xml=new bsn.AutoSuggest('gullTypedLocation',options_xml);}
function checkTypedLocation(input)
{var xPath="//r[starts-with(.,'"+input.toLowerCase()+"')][position()<10]";var results=gullSearchXmlDoc.selectNodes(xPath);if(results.length>0)
{return results[0].getAttribute('id')}
else
{return'';}};var Browser={Version:function(){var version=999;if(navigator.appVersion.indexOf("MSIE")!=-1)
version=parseFloat(navigator.appVersion.split("MSIE")[1]);return version;}}
