var autosuggest_url="/autosuggest/suggestlist.asmx/Suggestions";function autosuggest(a,b,c,d){var e=document.getElementById(a);var f=e.autosuggest;if(f){return f}this.time_out=0;this.response_time=100;this.entry_limit=7;this.limit_start=false;this.match_first=true;this.restrict_typing=false;this.full_refresh=true;this.use_iframe=false;this.use_scroll=false;this.use_mouse=true;this.no_default=true;this.start_check=3;this.text_delimiter=[";",","];this.ajax_delimiter="|";this.item_delimiter="*";this.selectedIndex=-1;this.suggest_url=c||(b?"":autosuggest_url);this.msie=(document.all&&!window.opera);this.displayed=false;this.delim_words=[];this.current_word=0;this.delim_char=[];this.current=0;this.total=0;this.range_up=0;this.range_down=0;this.previous=0;this.timer=0;this.rebuild=false;this.evsetup=false;this.bool=[];this.rows=[];this.onSelect=d||null;this.cur_x=0;this.cur_y=0;this.cur_w=0;this.cur_h=0;this.mouse_x=0;this.mouse_y=0;this.mouse_on_list=0;this.caret_moved=false;this.field_id=a;this.field=e;this.lastterm=e.value;this.keywords=[];this.keywords_init=[];this.values=[];this.values_init=[];return this.construct(b||[])}autosuggest.prototype={construct:function(e){function callLater(a,b,c,d){return function(){a.call(b,c||null,d||null)}}this.field.autosuggest=this;this.bindArray(e);this.funcClick=this.mouseClick;this.funcCheck=this.checkKey;this.funcPress=this.keyPress;this.funcHighlight=this.highlightTable;this.funcUnHighlight=this.unhighlightTable;this.funcClear=callLater(this.clearEvents,this);this.funcUp=callLater(this.scroll,this,true,1);this.funcDown=callLater(this.scroll,this,false,1);this.funcFocus=callLater(this.focusTable,this);this.funcUnfocus=callLater(this.unfocusTable,this);this.addEvent(this.field,"focus",callLater(this.setupEvents,this));this.addEvent(window,"resize",callLater(this.reposition,this));return this},bindArray:function(a){if(!a||!a.length){return}this.suggest_url="";this.keywords=[];this.keywords_init=[];this.values=[];this.values_init=[];for(var i=0,cl=a.length;i<cl;i++){var b=a[i];if(b.constructor==Array){this.keywords[i]=this.keywords_init[i]=b[0];this.values[i]=this.values_init[i]=b[1]}else{this.keywords[i]=this.keywords_init[i]=b;this.values[i]=this.values_init[i]=""}}},bindURL:function(a){if(!a){a=autosuggest_url}this.suggest_url=a},setupEvents:function(){if(!this.evsetup){this.evsetup=true;this.addEvent(document,"keydown",this.funcCheck);this.addEvent(this.field,"blur",this.funcClear);this.addEvent(document,"keypress",this.funcPress)}},clearEvents:function(){function removeEvent(a,b,c){if(a.removeEventListener&&!window.opera){a.removeEventListener(b,c,true)}else if(a.detachEvent){a.detachEvent("on"+b,c)}else{a["on"+b]=null}}var d=window.event;if(d&&this.cur_h){var e=d.srcElement||d.target;var x=this.mouse_x+(document.documentElement.scrollLeft||document.body.scrollLeft||0);var y=this.mouse_y+(document.documentElement.scrollTop||document.body.scrollTop||0);if((e.id==this.field_id)&&(x>this.cur_x&&x<(this.cur_x+this.cur_w))&&(y>this.cur_y&&y<(this.cur_y+this.cur_h))){this.field.focus();return}}removeEvent(document,"keydown",this.funcCheck);removeEvent(this.field,"blur",this.funcClear);removeEvent(document,"keypress",this.funcPress);this.hide();this.evsetup=false},parse:function(n,a,b){if(!n||!n.length){return""}if(!a){return n}var d=[],c=0,p=n.search(b);d[c++]=n.substr(0,p);d[c++]="<span class=\"match\">";d[c++]=n.substring(p,a+p);d[c++]="</span>";d[c++]=n.substring(a+p,n.length);return d.join("")},build:function(){if(this.total===0){this.displayed=false;return}this.rows=[];this.current=this.no_default?-1:0;var e=this;this.addEvent(document,"mousemove",function(a){a=a||window.event;e.mouse_x=a.x;e.mouse_y=a.y});var f=document.getElementById("suggest_table_"+this.field_id);if(f){this.displayed=false;document.body.removeChild(f);var g=document.getElementById("suggest_helper_"+this.field_id);if(g){document.body.removeChild(g)}}var h=document.createElement("div");h.id="suggest_table_"+this.field_id;h.className="autosuggest-body";this.cur_y=this.curPos(this.field,"Top")+this.field.offsetHeight;h.style.top=this.cur_y+"px";this.cur_x=this.curPos(this.field,"Left");h.style.left=this.cur_x+"px";this.cur_w=this.field.offsetWidth-(this.msie?2:6);h.style.width=this.cur_w+"px";this.cur_h=1;h.style.height="1px";var k=null;if(this.msie&&this.use_iframe){k=document.createElement("iframe");k.id="suggest_helper_"+this.field_id;k.src="javascript:\"<html></html>\";";k.scrolling="no";k.frameBorder="no"}e=this;var l=(this.total>this.entry_limit);if(k){document.body.appendChild(k);k.style.top=this.cur_y+"px";k.style.left=this.cur_x+"px";k.style.width=h.offsetWidth+2}document.body.appendChild(h);var m=true,dispCount=l?this.entry_limit:this.total;var n=[],cn=0;n[cn++]="<table cellspacing=\"1px\" cellpadding=\"2px\" id=\"suggest_table2_";n[cn++]=this.field_id;n[cn++]="\">";h.innerHTML=n.join("");var o=h.firstChild;if(this.use_mouse){o.onmouseout=this.funcUnfocus;o.onmouseover=this.funcFocus}var p=0,real_width=0;function createArrowRow(a){var b=o.insertRow(-1);b.className=a?"up":"down";var c=b.insertCell(0);p+=c.offsetHeight+1;return c}if(!this.use_scroll&&l){createArrowRow(true).parentNode.className="up-disabled"}var q=this.keywords.length,counter=0,j=0;var t,plen;if(this.text_delimiter.length>0){var r=this.delim_words[this.current_word];t=this.trim(this.addSlashes(r));plen=this.trim(r).length}else{r=this.field.value;t=this.addSlashes(r);plen=r.length}var s=new RegExp((this.limit_start?"^":"")+t,"i");function addSuggestion(a,b){var c=e.rows[j]=o.insertRow(-1);c.className=(b||(e.previous==a))?"selected":"";var d=c.insertCell(0);d.innerHTML=e.parse(e.keywords[a],plen,s);d.setAttribute("pos",j++);d.autosuggest=e;if(e.use_mouse){e.addEvent(d,"click",e.funcClick);d.onmouseover=e.funcHighlight;d.onmouseout=e.funcUnHighlight}return[c.offsetWidth,c.offsetHeight]}for(var i=0;i<q;i++){if(this.bool[i]){var u=addSuggestion(i,(m&&!this.no_default&&!this.rebuild));m=false;if(counter<=this.entry_limit){p+=u[1]+1}if(real_width<u[0]){real_width=u[0]}if(++counter==this.entry_limit){++i;break}}}var v=i;if(l){if(!this.use_scroll){var w=createArrowRow(false);if(this.use_mouse){this.addEvent(w,"click",this.funcDown)}}else{h.style.height=p+"px";h.style.overflow="auto";h.style.overflowX="hidden"}}this.cur_h=p+1;h.style.height=this.cur_h+"px";this.cur_w=((real_width>h.offsetWidth)?real_width:h.offsetWidth)+(this.msie?-2:2);h.style.width=this.cur_w+"px";if(k){k.style.height=this.cur_h+"px";k.style.width=this.cur_w+"px"}this.range_up=0;this.range_down=j-1;this.displayed=true;if(this.use_scroll){setTimeout(function(){counter=0;for(var i=v;i<q;i++){if(!e.displayed){return}if(e.bool[i]){addSuggestion(i);if(++counter==e.entry_limit){++i;break}}}v=i;if(j<e.total){setTimeout(arguments.callee,25)}},25)}},remake:function(){this.rows=[];var a=document.getElementById("suggest_table2_"+this.field_id);var k=0,first=true;function adjustArrow(b,d,e,f){var r=a.rows[k++];r.className=d?(e?"up":"up-disabled"):(e?"down":"down-disabled");var c=r.firstChild;if(e&&f&&b.use_mouse){b.addEvent(c,"click",f)}}if(this.total>this.entry_limit){var b=(this.range_up>0);adjustArrow(this,true,b,this.funcUp)}var t,plen,word;if(this.text_delimiter.length>0){word=this.delim_words[this.current_word];t=this.trim(this.addSlashes(word));plen=this.trim(word).length}else{word=this.field.value;t=this.addSlashes(word);plen=word.length}var g=new RegExp((this.limit_start?"^":"")+t,"i");var h=this.keywords.length,j=0;for(var i=0;i<h;i++){if(this.bool[i]){if((j>=this.range_up)&&(j<=this.range_down)){var r=this.rows[j]=a.rows[k++];r.className="";var c=r.firstChild;c.innerHTML=this.parse(this.keywords[i],plen,g);c.setAttribute("pos",j)}if(++j>this.range_down){break}}}if(h>this.entry_limit){b=(j<this.total);adjustArrow(this,false,b,this.funcDown)}if(this.msie){var l=document.getElementById("suggest_helper_"+this.field_id);if(l){l.style.width=a.parentNode.offsetWidth+2}}},reposition:function(){if(this.displayed){this.cur_y=this.curPos(this.field,"Top")+this.field.offsetHeight;this.cur_x=this.curPos(this.field,"Left");var a=document.getElementById("suggest_table_"+this.field_id);a.style.top=this.cur_y+"px";a.style.left=this.cur_x+"px"}},startTimer:function(a){if(this.time_out>0){this.timer=setTimeout(function(){this.mouse_on_list=a;this.hide()},this.time_out)}},stopTimer:function(){if(this.timer){clearTimeout(this.timer);this.timer=0}},getRow:function(a){if(typeof(a)=="undefined"){a=this.current}return(this.rows[a]||null)},fixArrows:function(a){if(this.total<=this.entry_limit){return}var b=a.firstChild,at_start=(this.current===0),at_end=(this.current==(this.total-1));var c=b.rows[0];c.className=at_start?"up-disabled":"up";c=b.rows[this.entry_limit+1];c.className=at_end?"down-disabled":"down"},scroll:function(a,b){if(!this.displayed){return}this.field.focus();if(this.current==(a?0:(this.total-1))){return}if(!a&&(this.current<0)){this.current=-1}else{var t=this.getRow();if(t&&t.style){t.className=""}}this.current+=b*(a?-1:1);if(a){if(this.current<0){this.current=0}}else{if(this.current>=this.total){this.current=this.total-1}if(this.use_scroll&&(this.current>=this.rows.length)){this.current=this.rows.length-1}}t=this.getRow();base=document.getElementById("suggest_table_"+this.field_id);if(this.use_scroll){if(a){if(t.offsetTop<base.scrollTop){base.scrollTop=t.offsetTop}}else{if((t.offsetTop+t.offsetHeight)>(base.scrollTop+base.offsetHeight)){var d=this.current-this.entry_limit+1;if(d>0){base.scrollTop=this.getRow(d).offsetTop}}}}else{if(a){if(this.current<this.range_up){this.range_up-=b;if(this.range_up<0){this.range_up=0}this.range_down=this.range_up+this.entry_limit-1;this.remake()}else{this.fixArrows(base)}}else{if(this.current>this.range_down){this.range_down+=b;if(this.range_down>(this.total-1)){this.range_down=this.total-1}this.range_up=this.range_down-this.entry_limit+1;this.remake()}else{this.fixArrows(base)}}t=this.getRow()}var e=this.keywords.length;for(var i=0,c=0;i<e;i++){if(this.bool[i]&&(c++==this.current)){break}}this.field.value=this.keywords[i]?this.keywords[i]:this.field.value;if(t&&t.style){t.className="selected"}this.stopTimer();this.startTimer(1);this.field.focus()},mouseClick:function(a){a=a||window.event;var b=a.srcElement||a.target;if(!b.id){b=b.parentNode}var c=b.autosuggest;if(!c){var d=b.tagName.toLowerCase();b=(d=="tr")?b.firstChild:b.parentNode;c=b.autosuggest}if(!c||!c.displayed){return}c.mouse_on_list=0;c.current=parseInt(b.getAttribute("pos"),10);c.choose()},focusTable:function(){this.mouse_on_list=1},unfocusTable:function(){this.mouse_on_list=0;this.current=-1;this.stopTimer();this.startTimer(0)},highlightTable:function(a){a=a||window.event;var b=a.srcElement||a.target;var c=b.autosuggest;if(!c){return}c.mouse_on_list=1;var d=c.getRow();if(d&&d.style){d.className=""}c.current=parseInt(b.getAttribute("pos"),10);d=c.getRow();if(d&&d.style){d.className="selected"}c.stopTimer();c.startTimer(0)},unhighlightTable:function(a){a=a||window.event;var b=a.srcElement||a.target;var c=b.autosuggest;if(!c){return}c.mouse_on_list=0;var d=c.getRow();if(d&&d.style){d.className=""}this.current=-1;c.field.focus();c.stopTimer();c.startTimer(0)},choose:function(){if(!this.displayed){return}if(this.current<0){this.field.focus();this.insertWord(this.field.value);this.submitForm()}else{this.displayed=false;var a=this.keywords.length;for(var i=0,c=0;i<a;i++){if(this.bool[i]&&(c++==this.current)){break}}this.selectedIndex=i;this.insertWord(this.keywords[i]?this.keywords[i]:this.field.value);this.submitForm();if(this.onSelect&&!this.field.focus()){this.onSelect(i,this)}}},insertWord:function(a){function setCaretPos(a,l){a.focus();if(a.setSelectionRange){a.setSelectionRange(l,l)}else if(a.createTextRange){var m=a.createTextRange();m.moveStart("character",l);m.collapse();m.select()}}if(this.text_delimiter.length>0){var b="",word=this.delim_words[this.current_word],wl=word.length,l=0;for(var i=0;i<this.delim_words.length;i++){if(this.current_word==i){var c="",postspace="",gotbreak=false;for(var j=0;j<wl;++j){if(word.charAt(j)!=" "){gotbreak=true;break}c+=" "}for(j=wl-1;j>=0;--j){if(word.charAt(j)!=" "){break}postspace+=" "}b+=c;b+=a;l=b.length;if(gotbreak){b+=postspace}}else{b+=this.delim_words[i]}if(i!=this.delim_words.length-1){b+=this.delim_char[i]}}this.field.value=b;setCaretPos(this.field,l)}else{this.field.value=a}this.mouse_on_list=0;this.hide()},hide:function(){if(this.mouse_on_list===0){this.displayed=false;var a=document.getElementById("suggest_table_"+this.field_id);if(a){var b=document.getElementById("suggest_helper_"+this.field_id);if(b){document.body.removeChild(b)}document.body.removeChild(a)}this.stopTimer();this.cur_x=0;this.cur_y=0;this.cur_w=0;this.cur_h=0;this.rows=[]}},keyPress:function(a){a=a||window.event;var b=window.event?a.keyCode:a.charCode;var c=a.srcElement||a.target;c=c.autosuggest;if(c.restrict_typing&&!c.suggest_url.length&&(b>=32)){var d=c.getCaretEnd(c.field);var e=c.field.value.substr(0,d).toLowerCase();var f=false;if(c.text_delimiter.length>0){var g="";for(var j=0;j<c.text_delimiter.length;j++){g+=c.text_delimiter[j];if(c.text_delimiter[j]==String.fromCharCode(b)){f=true}}g=c.addSlashes(g);var h=new RegExp(".*(["+g+"])");e=e.replace(h,'')}var k=c.keywords.length;var i=0;if(f){for(i=0;i<k;i++){if(c.keywords[i].toLowerCase()==e){break}}}else{e+=String.fromCharCode(b).toLowerCase();for(i=0;i<k;i++){if(c.keywords[i].toLowerCase().indexOf(e)!=-1){break}}}if(i==k){c.stopEvent(a);return false}}if(c.caret_moved){c.stopEvent(a);return!c.caret_moved}},checkKey:function(a){a=a||window.event;var b=a.keyCode;var c=a.srcElement||a.target;c=c.autosuggest;c.caret_moved=0;var d="";c.stopTimer();switch(b){case 38:if(c.current<=0){c.stopEvent(a);c.hide()}else{c.scroll(true,1);c.caret_moved=1;c.stopEvent(a)}return false;case 40:if(!c.displayed){c.timer=setTimeout(function(){c.preSuggest(-1)},25)}else{c.scroll(false,1);c.caret_moved=1}return false;case 33:if(c.current===0){c.caret_moved=0;return false}c.scroll(true,(c.use_scroll||(c.getRow()==c.rows[c.range_up]))?c.entry_limit:(c.current-c.range_up));c.caret_moved=1;break;case 34:if(c.current==(c.total-1)){c.caret_moved=0;return false}c.scroll(false,(c.use_scroll||(c.getRow()==c.rows[c.range_down]))?c.entry_limit:(c.range_down-c.current));c.caret_moved=1;break;case 36:if(c.current===0){c.caret_moved=0;return false}break;case 35:if(c.current==(c.total-1)){c.caret_moved=0;return false}break;case 27:d=c.field.value;c.mouse_on_list=0;c.hide();break;case 13:if(c.displayed){c.caret_moved=1;c.choose();return false}break;case 9:if((c.displayed&&(c.current>=0))||c.timer){c.caret_moved=1;c.choose();setTimeout(function(){c.field.focus()},25);return false}break;case 16:break;default:c.caret_moved=0;c.timer=setTimeout(function(){c.preSuggest(b)},(c.response_time<10?10:c.response_time));break}if(d.length){setTimeout(function(){c.field.value=d},25);return true}},preSuggest:function(h){if(!this.timer){return}this.stopTimer();if(this.displayed&&(this.lastterm==this.field.value)){return}this.lastterm=this.field.value;if(h==38||h==40||h==13){return}var c=0;if(this.displayed&&(this.current>=0)){for(var i=0;i<this.keywords.length;i++){if(this.bool[i]){++c}if(c==this.current){this.previous=i;break}}}else{this.previous=-1}if(!this.field.value.length&&(h!=-1)){this.mouse_on_list=0;this.hide()}var k,t;if(this.text_delimiter.length>0){var m=this.getCaretEnd(this.field);var o="";for(var i=0;i<this.text_delimiter.length;i++){o+=this.text_delimiter[i]}o=this.addSlashes(o);var p=new RegExp("(["+o+"])");c=0;this.delim_words=[];this.delim_words[0]="";for(var i=0,j=this.field.value.length;i<this.field.value.length;i++,j--){if(this.field.value.substr(i,j).search(p)===0){var q=this.field.value.substr(i,j).match(p);this.delim_char[c++]=q[1];this.delim_words[c]=""}else{this.delim_words[c]+=this.field.value.charAt(i)}}var l=0;this.current_word=-1;for(i=0;i<this.delim_words.length;i++){if((m>=l)&&(m<=(l+this.delim_words[i].length))){this.current_word=i}l+=this.delim_words[i].length+1}k=this.trim(this.delim_words[this.current_word]);t=this.trim(this.addSlashes(this.delim_words[this.current_word]))}else{k=this.field.value;t=this.addSlashes(k)}if(k.length===0&&(h!=-1)){this.mouse_on_list=0;this.hide()}else if((k.length==1)||this.full_refresh||((k.length>1)&&!this.keywords.length)||((k.length>1)&&(this.keywords[0].charAt(0).toLowerCase()!=k.charAt(0).toLowerCase()))){var r=((k.length>1)&&!this.full_refresh)?k.charAt(0):k;if(this.suggest_url.length){var s=null;if(typeof(XMLHttpRequest)!="undefined"){try{s=new XMLHttpRequest()}catch(e){s=null}}else{try{s=new ActiveXObject("Msxml2.XMLHTTP")}catch(e){try{s=new ActiveXObject("Microsoft.XMLHTTP")}catch(e){s=null}}}if(s){if(s.overrideMimeType){s.overrideMimeType("text/xml")}s.open("GET",this.suggest_url,true);var u=this;s.onreadystatechange=function(n){if(s.readyState==4){if((s.status==200)||(s.status===0)){var a=s.responseText;var b=a.indexOf("<listdata>");var c=(b==-1)?a.length:a.indexOf("</listdata",b+10);b+=(b!=-1)?10:1;var d=a.substring(b,c);if(d){u.keywords=d.split(u.ajax_delimiter);if(u.item_delimiter&&u.item_delimiter.length){var e=u.keywords.length;for(var i=0;i<e;i++){var f=u.keywords[i],comma=f.indexOf(u.item_delimiter);if(comma!=-1){var g=f.split(u.item_delimiter);u.keywords[i]=u.keywords_init[i]=g[0];u.values[i]=u.values_init[i]=g[1]}else{u.keywords[i]=u.keywords_init[i]=f;u.values[i]=u.values_init[i]=""}}}u.suggest(r,t)}}}};s.send(null)}}else{this.suggest(k,t)}}else{this.suggest(k,t)}},suggest:function(a,t){if(a.length<this.start_check){return}var b=this.keywords.length;this.total=0;this.rebuild=false;for(var i=0;i<b;i++){this.keywords[i]=this.keywords_init[i];this.values[i]=this.values_init[i];this.bool[i]=true}if(!this.field.value.length){this.total=b}else{var c=new RegExp(((!this.limit_start&&!this.match_first)?"":"^")+t,"i");var d=new RegExp(t,"i");var e=(!this.limit_start&&this.match_first);var f=[],matchVArray=[];var g=[],afterVArray=[];var h=[],otherVArray=[];for(var i=0;i<b;i++){var j=this.keywords[i];var k=this.values[i];if(c.test(j)){++this.total;f[f.length]=j;matchVArray[matchVArray.length]=k}else if(e&&d.test(j)){++this.total;g[g.length]=j;afterVArray[afterVArray.length]=k}else{h[h.length]=j;otherVArray[otherVArray.length]=k}}this.keywords=f.concat(g).concat(h);this.values=matchVArray.concat(afterVArray).concat(otherVArray);for(i=0;i<b;i++){this.bool[i]=(i<this.total)}}if(this.previous!=-1){this.rebuild=true}if(this.total){this.startTimer(0);this.build()}else{this.hide()}},addEvent:function(a,b,c){if(a.addEventListener&&!window.opera){a.addEventListener(b,c,true)}else if(a.attachEvent){a.attachEvent("on"+b,c)}else{a["on"+b]=c}},stopEvent:function(a){a=a||window.event;if(a){if(a.stopPropagation){a.stopPropagation()}if(a.preventDefault){a.preventDefault()}if(typeof(a.cancelBubble)!="undefined"){a.cancelBubble=true;a.returnValue=false}}return false},getCaretEnd:function(a){if(typeof(a.selectionEnd)!="undefined"){return a.selectionEnd}else if(document.selection&&document.selection.createRange){var M=document.selection.createRange(),Lp;try{Lp=M.duplicate();Lp.moveToElementText(a)}catch(e){Lp=a.createTextRange()}Lp.setEndPoint("EndToEnd",M);var b=Lp.text.length;if(b>a.value.length){return-1}return b}return-1},curPos:function(a,b){var c=0;while(a){c+=a["offset"+b];a=a.offsetParent}return c},addSlashes:function(a){return a.replace(/(["\\\.\|\[\]\^\*\+\?\$\(\)])/g,"\\$1")},trim:function(a){return a.replace(/^\s*(\S*(\s+\S+)*)\s*$/,"$1")},submitForm:function(){if(this.field_id=="in_page_search_box"){document.forms["aspnetForm"].submit()}else if(this.field_id=="searchBox"){document.forms["search"].submit()}}};
