var os_map={};var os_cache={};var os_cur_keypressed=0;var os_last_keypress=0;var os_keypressed_count=0;var os_timer=null;var os_mouse_pressed=false;var os_mouse_num=-1;var os_mouse_moved=false;var os_search_timeout=250;var os_autoload_inputs=new Array("searchInput","searchInput2","powerSearchText","searchText");var os_autoload_forms=new Array("searchform","searchform2","powersearch","search");var os_is_stopped=false;var os_max_lines_per_suggest=7;var os_animation_steps=6;var os_animation_min_step=2;var os_animation_delay=30;var os_container_max_width=2;var os_animation_timer=null;function os_Timer(c,a,b){this.id=c;this.r=a;this.query=b}function os_AnimationTimer(a,c){this.r=a;var b=document.getElementById(a.container).offsetWidth;this.inc=Math.round((c-b)/os_animation_steps);if(this.inc<os_animation_min_step&&this.inc>=0){this.inc=os_animation_min_step}if(this.inc>-os_animation_min_step&&this.inc<0){this.inc=-os_animation_min_step}this.target=c}function os_Results(a,b){this.searchform=b;this.searchbox=a;this.container=a+"Suggest";this.resultTable=a+"Result";this.resultText=a+"ResultText";this.toggle=a+"Toggle";this.query=null;this.results=null;this.resultCount=0;this.original=null;this.selected=-1;this.containerCount=0;this.containerRow=0;this.containerTotal=0;this.visible=false}function os_hideResults(a){var b=document.getElementById(a.container);if(b!=null){b.style.visibility="hidden"}a.visible=false;a.selected=-1}function os_showResults(a){if(os_is_stopped){return}os_fitContainer(a);var b=document.getElementById(a.container);a.selected=-1;if(b!=null){b.scrollTop=0;b.style.visibility="visible";a.visible=true}}function os_operaWidthFix(a){if(is_opera||is_khtml||navigator.userAgent.toLowerCase().indexOf("firefox/1")!=-1){return 30}return 0}function os_encodeQuery(a){if(encodeURIComponent){return encodeURIComponent(a)}if(escape){return escape(a)}return null}function os_decodeValue(a){if(decodeURIComponent){return decodeURIComponent(a)}if(unescape){return unescape(a)}return null}function f_clientWidth(){return f_filterResults(window.innerWidth?window.innerWidth:0,document.documentElement?document.documentElement.clientWidth:0,document.body?document.body.clientWidth:0)}function f_clientHeight(){return f_filterResults(window.innerHeight?window.innerHeight:0,document.documentElement?document.documentElement.clientHeight:0,document.body?document.body.clientHeight:0)}function f_scrollLeft(){return f_filterResults(window.pageXOffset?window.pageXOffset:0,document.documentElement?document.documentElement.scrollLeft:0,document.body?document.body.scrollLeft:0)}function f_scrollTop(){return f_filterResults(window.pageYOffset?window.pageYOffset:0,document.documentElement?document.documentElement.scrollTop:0,document.body?document.body.scrollTop:0)}function f_filterResults(d,b,a){var c=d?d:0;if(b&&(!c||(c>b))){c=b}return a&&(!c||(c>a))?a:c}function os_availableHeight(b){var c=document.getElementById(b.container).style.top;var a=c.lastIndexOf("px");if(a>0){c=c.substring(0,a)}return f_clientHeight()-(c-f_scrollTop())}function os_getElementPosition(d){var a=document.getElementById(d);var c=0;var b=0;while(a){c+=a.offsetLeft;b+=a.offsetTop;a=a.offsetParent}if(navigator.userAgent.indexOf("Mac")!=-1&&typeof document.body.leftMargin!="undefined"){c+=document.body.leftMargin;b+=document.body.topMargin}return{left:c,top:b}}function os_createContainer(b){var g=document.createElement("div");var a=document.getElementById(b.searchbox);var f=os_getElementPosition(b.searchbox);var e=f.left;var d=f.top+a.offsetHeight;g.className="os-suggest";g.setAttribute("id",b.container);document.body.appendChild(g);g=document.getElementById(b.container);g.style.top=d+"px";g.style.left=e+"px";g.style.width=a.offsetWidth+"px";g.onmouseover=function(c){os_eventMouseover(b.searchbox,c)};g.onmousemove=function(c){os_eventMousemove(b.searchbox,c)};g.onmousedown=function(c){return os_eventMousedown(b.searchbox,c)};g.onmouseup=function(c){os_eventMouseup(b.searchbox,c)};return g}function os_fitContainer(b){var e=document.getElementById(b.container);var a=os_availableHeight(b)-20;var d=b.containerRow;a=parseInt(a/d)*d;if(a<(2*d)&&b.resultCount>1){a=2*d}if((a/d)>os_max_lines_per_suggest){a=d*os_max_lines_per_suggest}if(a<b.containerTotal){e.style.height=a+"px";b.containerCount=parseInt(Math.round(a/d))}else{e.style.height=b.containerTotal+"px";b.containerCount=b.resultCount}}function os_trimResultText(a){var d=0;for(var k=0;k<a.resultCount;k++){var p=document.getElementById(a.resultText+k);if(p.offsetWidth>d){d=p.offsetWidth}}var q=document.getElementById(a.container).offsetWidth;var m=0;if(a.containerCount<a.resultCount){m=20}else{m=os_operaWidthFix(q)}if(m<4){m=4}d+=m;var o=document.getElementById(a.searchbox).offsetWidth;var c=d/o;if(c>os_container_max_width){c=os_container_max_width}else{if(c<1){c=1}}var b=Math.round(o*c);if(q!=b){q=b;if(os_animation_timer!=null){clearInterval(os_animation_timer.id)}os_animation_timer=new os_AnimationTimer(a,q);os_animation_timer.id=setInterval("os_animateChangeWidth()",os_animation_delay);q-=m}if(q<10){return}for(var k=0;k<a.resultCount;k++){var p=document.getElementById(a.resultText+k);var g=1;var f=p.offsetWidth+1;var h=0;var n=false;while(p.offsetWidth>q&&(p.offsetWidth<f||h<2)){n=true;f=p.offsetWidth;var j=p.innerHTML;p.innerHTML=j.substring(0,j.length-g)+"...";h++;g=4}if(n){document.getElementById(a.resultTable+k).setAttribute("title",a.results[k])}}}function os_animateChangeWidth(){var f=os_animation_timer.r;var j=document.getElementById(f.container);var e=j.offsetWidth;var d=document.getElementById(f.searchbox).offsetWidth;var b=os_getElementPosition(f.searchbox).left;var h=os_animation_timer.inc;var g=os_animation_timer.target;var a=e+h;if((h>0&&a>=g)||(h<=0&&a<=g)){j.style.width=g+"px";clearInterval(os_animation_timer.id);os_animation_timer=null}else{j.style.width=a+"px";if(document.documentElement.dir=="rtl"){j.style.left=(b+d+(g-a)-os_animation_timer.target-1)+"px"}}}function os_updateResults(r,query,text,cacheKey){os_cache[cacheKey]=text;r.query=query;r.original=query;if(text==""){r.results=null;r.resultCount=0;os_hideResults(r)}else{try{var p=eval("("+text+")");if(p.length<2||p[1].length==0){r.results=null;r.resultCount=0;os_hideResults(r);return}var c=document.getElementById(r.container);if(c==null){c=os_createContainer(r)}c.innerHTML=os_createResultTable(r,p[1]);var t=document.getElementById(r.resultTable);r.containerTotal=t.offsetHeight;r.containerRow=t.offsetHeight/r.resultCount;os_fitContainer(r);os_trimResultText(r);os_showResults(r)}catch(e){os_hideResults(r);os_cache[cacheKey]=null}}}function os_createResultTable(e,b){var g=document.getElementById(e.container);var d=g.offsetWidth-os_operaWidthFix(g.offsetWidth);var a='<table class="os-suggest-results" id="'+e.resultTable+'" style="width: '+d+'px;">';e.results=new Array();e.resultCount=b.length;for(i=0;i<b.length;i++){var f=os_decodeValue(b[i]);e.results[i]=f;a+='<tr><td class="os-suggest-result" id="'+e.resultTable+i+'"><span id="'+e.resultText+i+'">'+f+"</span></td></tr>"}a+="</table>";return a}function os_getNamespaces(b){var d="";var c=document.forms[b.searchform].elements;for(i=0;i<c.length;i++){var a=c[i].name;if(typeof a!="undefined"&&a.length>2&&a[0]=="n"&&a[1]=="s"&&((c[i].type=="checkbox"&&c[i].checked)||(c[i].type=="hidden"&&c[i].value=="1"))){if(d!=""){d+="|"}d+=a.substring(2)}}if(d==""){d=wgSearchNamespaces.join("|")}return d}function os_updateIfRelevant(b,c,e,d){var a=document.getElementById(b.searchbox);if(a!=null&&a.value==c){os_updateResults(b,c,e,d)}b.query=c}function os_delayedFetch(){if(os_timer==null){return}var c=os_timer.r;var d=os_timer.query;os_timer=null;var g=wgMWSuggestTemplate.replace("{namespaces}",os_getNamespaces(c)).replace("{dbname}",wgDBname).replace("{searchTerms}",os_encodeQuery(d));var b=os_cache[g];if(b!=null){os_updateIfRelevant(c,d,b,g)}else{var a=sajax_init_object();if(a){try{a.open("GET",g,true);a.onreadystatechange=function(){if(a.readyState==4&&typeof os_updateIfRelevant=="function"){os_updateIfRelevant(c,d,a.responseText,g)}};a.send(null)}catch(f){if(window.location.hostname=="localhost"){alert("Your browser blocks XMLHttpRequest to 'localhost', try using a real hostname for development/testing.")}throw f}}}}function os_fetchResults(a,c,b){if(c==""){os_hideResults(a);return}else{if(c==a.query){return}}os_is_stopped=false;if(os_timer!=null&&os_timer.id!=null){clearTimeout(os_timer.id)}if(b!=0){os_timer=new os_Timer(setTimeout("os_delayedFetch()",b),a,c)}else{os_timer=new os_Timer(null,a,c);os_delayedFetch()}}function os_changeHighlight(a,j,e,l){if(e>=a.resultCount){e=a.resultCount-1}if(e<-1){e=-1}a.selected=e;if(j==e){return}if(j>=0){var f=document.getElementById(a.resultTable+j);if(f!=null){f.className="os-suggest-result"}}var d;if(e>=0){var k=document.getElementById(a.resultTable+e);if(k!=null){k.className=os_HighlightClass()}d=a.results[e]}else{d=a.original}if(a.containerCount<a.resultCount){var h=document.getElementById(a.container);var b=h.scrollTop/a.containerRow;var g=b+a.containerCount;if(e<b){h.scrollTop=e*a.containerRow}else{if(e>=g){h.scrollTop=(e-a.containerCount+1)*a.containerRow}}}if(l){os_updateSearchQuery(a,d)}}function os_HighlightClass(){var b=navigator.userAgent.match(/AppleWebKit\/(\d+)/);if(b){var a=parseInt(b[1]);if(a<523){return"os-suggest-result-hl-webkit"}}return"os-suggest-result-hl"}function os_updateSearchQuery(a,b){document.getElementById(a.searchbox).value=b;a.query=b}function os_getTarget(a){if(!a){a=window.event}if(a.target){return a.target}else{if(a.srcElement){return a.srcElement}else{return null}}}function os_eventKeyup(d){var a=os_getTarget(d);var b=os_map[a.id];if(b==null){return}if(os_keypressed_count==0){os_processKey(b,os_cur_keypressed,a)}var c=a.value;os_fetchResults(b,c,os_search_timeout)}function os_processKey(c,a,b){if(a==40){if(c.visible){os_changeHighlight(c,c.selected,c.selected+1,true)}else{if(os_timer==null){c.query="";os_fetchResults(c,b.value,0)}}}else{if(a==38){if(c.visible){os_changeHighlight(c,c.selected,c.selected-1,true)}}else{if(a==27){document.getElementById(c.searchbox).value=c.original;c.query=c.original;os_hideResults(c)}else{if(c.query!=document.getElementById(c.searchbox).value){}}}}}function os_eventKeypress(g){var c=os_getTarget(g);var f=os_map[c.id];if(f==null){return}var b=os_cur_keypressed;if(b==38||b==40){var h=new Date();var a=h.getTime();if(a-os_last_keypress<120){os_last_keypress=a;return}}os_keypressed_count++;os_processKey(f,b,c)}function os_eventKeydown(c){if(!c){c=window.event}var a=os_getTarget(c);var b=os_map[a.id];if(b==null){return}os_mouse_moved=false;os_cur_keypressed=(c.keyCode==undefined)?c.which:c.keyCode;os_last_keypress=0;os_keypressed_count=0}function os_eventBlur(c){var a=os_getTarget(c);var b=os_map[a.id];if(b==null){return}if(!os_mouse_pressed){os_hideResults(b)}}function os_eventFocus(a){}function os_eventMouseover(f,d){var b=os_getTarget(d);var c=os_map[f];if(c==null||!os_mouse_moved){return}var a=os_getNumberSuffix(b.id);if(a>=0){os_changeHighlight(c,c.selected,a,false)}}function os_getNumberSuffix(b){var a=b.substring(b.length-2);if(!(a.charAt(0)>="0"&&a.charAt(0)<="9")){a=a.substring(1)}if(os_isNumber(a)){return parseInt(a)}else{return -1}}function os_eventMousemove(b,a){os_mouse_moved=true}function os_eventMousedown(f,d){var b=os_getTarget(d);var c=os_map[f];if(c==null){return}var a=os_getNumberSuffix(b.id);os_mouse_pressed=true;if(a>=0){os_mouse_num=a}document.getElementById(c.searchbox).focus();return false}function os_eventMouseup(f,d){var b=os_getTarget(d);var c=os_map[f];if(c==null){return}var a=os_getNumberSuffix(b.id);if(a>=0&&os_mouse_num==a){os_updateSearchQuery(c,c.results[a]);os_hideResults(c);document.getElementById(c.searchform).submit()}os_mouse_pressed=false;document.getElementById(c.searchbox).focus()}function os_isNumber(a){if(a==""||isNaN(a)){return false}for(var b=0;b<a.length;b++){var d=a.charAt(b);if(!(d>="0"&&d<="9")){return false}}return true}function os_eventOnsubmit(f){var c=os_getTarget(f);os_is_stopped=true;if(os_timer!=null&&os_timer.id!=null){clearTimeout(os_timer.id);os_timer=null}for(i=0;i<os_autoload_inputs.length;i++){var d=os_map[os_autoload_inputs[i]];if(d!=null){var a=document.getElementById(d.searchform);if(a!=null&&a==c){d.query=document.getElementById(d.searchbox).value}os_hideResults(d)}}return true}function os_hookEvent(c,b,a){if(c.addEventListener){c.addEventListener(b,a,false)}else{if(window.attachEvent){c.attachEvent("on"+b,a)}}}function os_initHandlers(a,d,b){var c=new os_Results(a,d);os_hookEvent(b,"keyup",function(e){os_eventKeyup(e)});os_hookEvent(b,"keydown",function(e){os_eventKeydown(e)});os_hookEvent(b,"keypress",function(e){os_eventKeypress(e)});os_hookEvent(b,"blur",function(e){os_eventBlur(e)});os_hookEvent(b,"focus",function(e){os_eventFocus(e)});if(d!="survey"){b.setAttribute("autocomplete","off");os_hookEvent(document.getElementById(d),"submit",function(e){return os_eventOnsubmit(e)})}os_map[a]=c;if(document.getElementById(c.toggle)==null){}}function os_createToggle(d,b){var a=document.createElement("span");a.className=b;a.setAttribute("id",d.toggle);var c=document.createElement("a");c.setAttribute("href","javascript:void(0);");c.onclick=function(){os_toggle(d.searchbox,d.searchform)};var e=document.createTextNode(wgMWSuggestMessages[0]);c.appendChild(e);a.appendChild(c);return a}function os_toggle(a,b){r=os_map[a];var d="";if(r==null){os_enableSuggestionsOn(a,b);r=os_map[a];d=wgMWSuggestMessages[0]}else{os_disableSuggestionsOn(a,b);d=wgMWSuggestMessages[1]}var c=document.getElementById(r.toggle).firstChild;c.replaceChild(document.createTextNode(d),c.firstChild)}function os_enableSuggestionsOn(a,b){os_initHandlers(a,b,document.getElementById(a))}function os_disableSuggestionsOn(a){r=os_map[a];if(r!=null){os_timer=null;os_hideResults(r);document.getElementById(a).setAttribute("autocomplete","on");os_map[a]=null}}function os_MWSuggestInit(){for(i=0;i<os_autoload_inputs.length;i++){var b=os_autoload_inputs[i];var a=os_autoload_forms[i];element=document.getElementById(b);if(element!=null){os_initHandlers(b,a,element)}}}hookEvent("load",os_MWSuggestInit);