String.extend({deCamelize:function(){return this.replace(/([a-z])([A-Z])/g,"$1 $2")},trunc:function(B,A){if(!A){A="..."}return(this.length<B)?this:this.substring(0,B)+A}});function $getText(A){return A.innerText||A.textContent||""}Element.extend({injectWrapper:function(A){while(A.firstChild){this.appendChild(A.firstChild)}A.appendChild(this);return this},visible:function(){var A=this;while($type(A)=="element"){if(A.getStyle("visibility")=="hidden"){return false}if(A.getStyle("display")=="none"){return false}A=A.getParent()}return true},hide:function(){return this.setStyle("display","none")},show:function(){return this.setStyle("display","")},toggle:function(){return this.visible()?this.hide():this.show()},scrollTo:function(A,B){this.scrollLeft=A;this.scrollTop=B},getPosition:function(A){A=A||[];var B=this,D=0,C=0;do{D+=B.offsetLeft||0;C+=B.offsetTop||0;B=B.offsetParent}while(B);A.each(function(E){D-=E.scrollLeft||0;C-=E.scrollTop||0});return{x:D,y:C}},getDefaultValue:function(){switch(this.getTag()){case"select":var A=[];$each(this.options,function(B){if(B.defaultSelected){A.push($pick(B.value,B.text))}});return(this.multiple)?A:A[0];case"input":if(!(this.defaultChecked&&["checkbox","radio"].contains(this.type))&&!["hidden","text","password"].contains(this.type)){break}case"textarea":return this.defaultValue}return false}});var Observer=new Class({initialize:function(C,B,A){this.options=Object.extend({event:"keyup",delay:300},A||{});this.element=$(C);this.callback=B;this.timeout=null;this.listener=this.fired.bind(this);this.value=this.element.getValue();this.element.setProperty("autocomplete","off").addEvent(this.options.event,this.listener)},fired:function(){if(this.value==this.element.value){return }this.clear();this.value=this.element.value;this.timeout=this.callback.delay(this.options.delay,null,[this.element])},clear:function(){this.timeout=$clear(this.timeout)},stop:function(){this.element.removeEvent(this.options.event,this.listener);this.clear()}});Element.extend({observe:function(B,A){return new Observer(this,B,A)}});var LocalizedStrings=LocalizedStrings||[];String.extend({localize:function(){var B=LocalizedStrings["javascript."+this],A=arguments;if(!B){return("???"+this+"???")}return B.replace(/\{(\d)\}/g,function(C){return A[C.charAt(1)]||"???"+C.charAt(1)+"???"})}});Number.REparsefloat=new RegExp("([+-]?\\d+(:?\\.\\d+)?(:?e[-+]?\\d+)?)","i");function $T(B){var A=$(B);return(A&&A.tBodies[0])?$(A.tBodies[0]):A}function getAncestorByTagName(B,A){if(!B){return null}if(B.nodeType==1&&(B.tagName.toLowerCase()==A.toLowerCase())){return B}else{return getAncestorByTagName(B.parentNode,A)}}var Wiki={onPageLoad:function(){if(this.prefs){return }var B=["wikiPageName","wikiJsonUrl","wikiPageUrl","wikiEditUrl","wikiBaseUrl","wikiUserName","wikiTemplateUrl"];$$("meta").each(function(C){var D=C.getProperty("name");if(B.contains(D)){this[D.substr(4)]=C.getProperty("content")}},this);var A=location.host;this.BasePath=this.BaseUrl.slice(this.BaseUrl.indexOf(A)+A.length,-1);this.prefs=new Hash.Cookie("JSPWikiUserPrefs",{path:Wiki.BasePath,duration:20});this.PermissionEdit=!!$$("a.edit")[0];this.url=null;this.parseLocationHash.periodical(500);this.makeMenuFx("morebutton","morepopup")},setFocus:function(){["editorarea","j_username","loginname","assertedName","query2"].some(function(A){A=$(A);if(A&&A.visible()){A.focus();return true}return false})},getUrl:function(A){return this.PageUrl.replace(/%23%24%25/,A)},getPageName:function(A){var C=this.PageUrl.escapeRegExp().replace(/%23%24%25/,"(.+)"),B=A.match(new RegExp(C));return(B?B[1]:false)},savePrefs:function(){if($("prefSkin")){this.prefs.set("SkinName",$("prefSkin").getValue())}if($("prefTimeZone")){this.prefs.set("TimeZone",$("prefTimeZone").getValue())}if($("prefTimeFormat")){this.prefs.set("DateFormat",$("prefTimeFormat").getValue())}if($("prefOrientation")){this.prefs.set("Orientation",$("prefOrientation").getValue())}if($("editor")){this.prefs.set("editor",$("editor").getValue())}if($("prefLanguage")){this.prefs.set("Language",$("prefLanguage").getValue())}},changeOrientation:function(){var A=$("prefOrientation").getValue();$("wikibody").removeClass("fav-left").removeClass("fav-right").addClass(A)},makeMenuFx:function(A,C){var A=$(A),C=$(C);if(!A||!C){return }var B=C.effect("opacity",{wait:false}).set(0);A.adopt(C).set({href:"#",events:{mouseout:function(){B.start(0)},mouseover:function(){Wiki.locatemenu(A,C);B.start(0.9)}}})},locatemenu:function(C,D){var F={x:window.getWidth(),y:window.getHeight()},I={x:window.getScrollLeft(),y:window.getScrollTop()},J=C.getPosition(),E={x:C.offsetWidth-D.offsetWidth,y:C.offsetHeight},B={x:D.offsetWidth,y:D.offsetHeight},A={x:"left",y:"top"};for(var G in A){var H=J[G]+E[G];if((H+B[G]-I[G])>F[G]){H=F[G]-B[G]+I[G]}D.setStyle(A[G],H)}},parseLocationHash:function(){if(this.url&&this.url==location.href){return }this.url=location.href;var B=location.hash;if(B==""){return }B=B.replace(/^#/,"");var A=$(B);while($type(A)=="element"){if(A.hasClass("hidetab")){TabbedSection.clickTab.apply(A)}else{if(A.hasClass("tab")){}else{if(A.hasClass("collapsebody")){}else{if(!A.visible()){}}}}A=A.getParent()}location=location.href},submitOnce:function(A){window.onbeforeunload=null;(function(){$A(A.elements).each(function(B){if((/submit|button/i).test(B.type)){B.disabled=true}})}).delay(10);return true},submitUpload:function(B,A){$("progressbar").setStyle("visibility","visible");this.progressbar=Wiki.jsonrpc.periodical(1000,this,["progressTracker.getProgress",[A],function(C){if(!C.code){$("progressbar").getFirst().setStyle("width",C+"%").setHTML(C+"%")}}]);return Wiki.submitOnce(B)},JSONid:10000,jsonrpc:function(C,B,A){new Ajax(Wiki.JsonUrl,{postBody:Json.toString({id:Wiki.JSONid++,method:C,params:B}),method:"post",onComplete:function(D){var E=Json.evaluate(D,true);if(!E){return }if(E.result){A(E.result)}else{if(E.error){A(E.error)}}}}).request()}};var WikiSlidingFavs={onPageLoad:function(){return ;var K=$E("#page .tabs");if(!K){return }K=new Element("div",{styles:{position:"relative",padding:"0.5em"}}).injectWrapper(K.setStyle("padding","0"));var G=$("wikibody"),I=$("page"),E=$("favorites"),M=E.offsetWidth,L=I.offsetWidth;var B=function(){if(G.hasClass("fav-slide")){H.set({title:"favs.show".localize()});F.set(C);D.setStyles({width:M}).adopt(E)}else{H.set({title:"favs.hide".localize()});E.injectAfter(I)}};var H=new Element("div",{id:"collapseFavs",events:{click:function(){G.toggleClass("fav-slide");Wiki.prefs.set("slidingFav",G.hasClass("fav-slide")?"fav-slide":"");B()},mouseenter:function(O){O=new Event(O);this.addClass("hover");var N=H.getPosition().x+"px";A.setStyles({left:N,top:O.page.y+"px"}).show();if(G.hasClass("fav-slide")){D.inject(H).show();F.start(J)}},mousemove:function(O){O=new Event(O);var N=H.getPosition().x+"px";A.setStyles({left:N,top:O.page.y+"px"})},mouseleave:function(){this.removeClass("hover");A.hide();if(G.hasClass("fav-slide")){F.start(C).chain(function(){D.hide().inject(document.body)})}}}}).injectTop(K);var A=new Element("div",{id:"collapseFavsPointer"}).hide().inject(G);var D=new Element("div",{id:"collapseFavsWrapper",events:{click:function(N){N.stopPropagation()},mouseenter:function(N){A.hide()},mouseleave:function(N){A.show()}}}).hide().inject(document.body);var F=new Fx.Styles(E,{wait:false}),C={"margin-left":-M,width:0,opacity:0},J={"margin-left":0,width:M,opacity:0.9};if(Wiki.prefs.get("slidingFav")=="fav-slide"){G.addClass("fav-slide")}B()}};var WikiSlimbox={onPageLoad:function(){var A=0,B=new Element("a",{"class":"slimbox"}).setHTML("&raquo;");$$("*[class^=slimbox]").each(function(D){var E="lightbox"+A++,F=D.className.split("-")[1]||"img ajax",C=[];if(F.test("img")){C.extend(["img.inline","a.attachment"])}if(F.test("ajax")){C.extend(["a.wikipage","a.external"])}$ES(C.join(","),D).each(function(I){var H=I.src||I.href;var G=(I.className.test("inline|attachment"))?"img":"ajax";if((G=="img")&&!H.test("(.bmp|.gif|.png|.jpg|.jpeg)(\\?.*)?$","i")){return }B.clone().setProperties({href:H,rel:E+" "+G,title:I.alt||I.getText()}).injectBefore(I);if(I.src){I.replaceWith(new Element("a",{"class":"attachment",href:I.src}).setHTML(I.alt||I.getText()))}})});if(A){Lightbox.init()}}};var Lightbox={init:function(A){this.options=$extend({resizeDuration:400,resizeTransition:false,initialWidth:250,initialHeight:250,animateCaption:true,errorMessage:"slimbox.error".localize()},A||{});this.anchors=[];$each(document.links,function(D){if(D.rel&&D.rel.test(/^lightbox/i)){D.onclick=this.click.pass(D,this);this.anchors.push(D)}},this);this.eventKeyDown=this.keyboardListener.bindAsEventListener(this);this.eventPosition=this.position.bind(this);this.overlay=new Element("div",{id:"lbOverlay"}).inject(document.body);this.center=new Element("div",{id:"lbCenter",styles:{width:this.options.initialWidth,height:this.options.initialHeight,marginLeft:-(this.options.initialWidth/2),display:"none"}}).inject(document.body);new Element("a",{id:"lbCloseLink",href:"#",title:"slimbox.close.title".localize()}).inject(this.center).onclick=this.overlay.onclick=this.close.bind(this);this.image=new Element("div",{id:"lbImage"}).inject(this.center);this.bottomContainer=new Element("div",{id:"lbBottomContainer",styles:{display:"none"}}).inject(document.body);this.bottom=new Element("div",{id:"lbBottom"}).inject(this.bottomContainer);this.caption=new Element("div",{id:"lbCaption"}).inject(this.bottom);var B=new Element("div").inject(this.bottom);this.prevLink=new Element("a",{id:"lbPrevLink",href:"#",styles:{display:"none"}}).setHTML("slimbox.previous".localize()).inject(B);this.number=new Element("span",{id:"lbNumber"}).inject(B);this.nextLink=this.prevLink.clone().setProperties({id:"lbNextLink"}).setHTML("slimbox.next".localize()).inject(B);this.prevLink.onclick=this.previous.bind(this);this.nextLink.onclick=this.next.bind(this);this.error=new Element("div").setProperty("id","lbError").setHTML(this.options.errorMessage);new Element("div",{styles:{clear:"both"}}).inject(this.bottom);var C=this.nextEffect.bind(this);this.fx={overlay:this.overlay.effect("opacity",{duration:500}).hide(),resize:this.center.effects($extend({duration:this.options.resizeDuration,onComplete:C},this.options.resizeTransition?{transition:this.options.resizeTransition}:{})),image:this.image.effect("opacity",{duration:500,onComplete:C}),bottom:this.bottom.effect("margin-top",{duration:400,onComplete:C})};this.fxs=new Fx.Elements([this.center,this.image],$extend({duration:this.options.resizeDuration,onComplete:C},this.options.resizeTransition?{transition:this.options.resizeTransition}:{}));this.preloadPrev=new Image();this.preloadNext=new Image()},click:function(D){var B=D.rel.split(" ");if(B[0].length==8){return this.open([[url,title,B[1]]],0)}var C=0,A=[];this.anchors.each(function(F){var E=F.rel.split(" ");if(E[0]!=B[0]){return }if((F.href==D.href)&&(F.title==D.title)){C=A.length}A.push([F.href,F.title,E[1]])});return this.open(A,C)},open:function(A,B){this.images=A;this.position();this.setup(true);this.top=window.getScrollTop()+(window.getHeight()/15);this.center.setStyles({top:this.top,display:""});this.fx.overlay.start(0.7);return this.changeImage(B)},position:function(){this.overlay.setStyles({top:window.getScrollTop(),height:window.getHeight()})},setup:function(A){var C=$A(document.getElementsByTagName("object"));C.extend(document.getElementsByTagName(window.ie?"select":"embed"));C.each(function(D){if(A){D.lbBackupStyle=D.style.visibility}D.style.visibility=A?"hidden":D.lbBackupStyle});var B=A?"addEvent":"removeEvent";window[B]("scroll",this.eventPosition)[B]("resize",this.eventPosition);document[B]("keydown",this.eventKeyDown);this.step=0},keyboardListener:function(A){switch(A.keyCode){case 27:case 88:case 67:this.close();break;case 37:case 38:case 80:this.previous();break;case 13:case 32:case 39:case 40:case 78:this.next();break;default:return }new Event(A).stop()},previous:function(){return this.changeImage(this.activeImage-1)},next:function(){return this.changeImage(this.activeImage+1)},changeImage:function(A){if(this.step||(A<0)||(A>=this.images.length)){return false}this.step=1;this.activeImage=A;this.center.style.backgroundColor="";this.bottomContainer.style.display=this.prevLink.style.display=this.nextLink.style.display="none";this.fx.image.hide();this.center.className="lbLoading";this.preload=new Image();this.image.empty().setStyle("overflow","hidden");if(this.images[A][2]=="img"){this.preload.onload=this.nextEffect.bind(this);this.preload.src=this.images[A][0]}else{this.iframeId="lbFrame_"+new Date().getTime();this.so=new Element("iframe").setProperties({id:this.iframeId,frameBorder:0,scrolling:"auto",src:this.images[A][0]}).inject(this.image);this.nextEffect()}return false},ajaxFailure:function(){this.ajaxFailed=true;this.image.setHTML("").adopt(this.error.clone());this.nextEffect()},nextEffect:function(){switch(this.step++){case 1:this.center.className="";this.caption.empty().adopt(new Element("a",{href:this.images[this.activeImage][0],title:"slimbox.directLink".localize()}).setHTML(this.images[this.activeImage][1]||""));var D=(this.images[this.activeImage][2]=="img")?"slimbox.info":"slimbox.remoteRequest";this.number.setHTML((this.images.length==1)?"":D.localize(this.activeImage+1,this.images.length));this.image.style.backgroundImage="none";var B=Math.max(this.options.initialWidth,this.preload.width),C=Math.max(this.options.initialHeight,this.preload.height),E=Window.getWidth()-10,A=Window.getHeight()-120;if(this.images[this.activeImage][2]!="img"&&!this.ajaxFailed){B=6000;C=3000}if(B>E){C=Math.round(C*E/B);B=E}if(C>A){B=Math.round(B*A/C);C=A}this.image.style.width=this.bottom.style.width=B+"px";this.image.style.height=C+"px";if(this.images[this.activeImage][2]=="img"){this.image.style.backgroundImage="url("+this.images[this.activeImage][0]+")";if(this.activeImage){this.preloadPrev.src=this.images[this.activeImage-1][0]}if(this.activeImage!=(this.images.length-1)){this.preloadNext.src=this.images[this.activeImage+1][0]}this.number.setHTML(this.number.innerHTML+"&nbsp;&nbsp;["+this.preload.width+"&#215;"+this.preload.height+"]")}else{this.so.style.width=B+"px";this.so.style.height=C+"px"}if(this.options.animateCaption){this.bottomContainer.setStyles({height:"0px",display:""})}this.fxs.start({"0":{height:[this.image.offsetHeight],width:[this.image.offsetWidth],marginLeft:[-this.image.offsetWidth/2]},"1":{opacity:[1]}});break;case 2:this.image.setStyle("overflow","auto");this.bottomContainer.setStyles({top:(this.top+this.center.clientHeight)+"px",marginLeft:this.center.style.marginLeft});if(this.options.animateCaption){this.fx.bottom.set(-this.bottom.offsetHeight);this.bottomContainer.style.height="";this.fx.bottom.start(0);break}this.bottomContainer.style.height="";case 3:if(this.activeImage){this.prevLink.style.display=""}if(this.activeImage!=(this.images.length-1)){this.nextLink.style.display=""}this.step=0}},close:function(){if(this.step<0){return }this.step=-1;if(this.preload){this.preload.onload=Class.empty;this.preload=null}for(var A in this.fx){this.fx[A].stop()}this.center.style.display=this.bottomContainer.style.display="none";this.fx.overlay.chain(this.setup.pass(false,this)).start(0);return false}};var WikiReflection={onPageLoad:function(){$$("*[class^=reflection]").each(function(A){var B=A.className.split("-");$ES("img",A).each(function(C){Reflection.add(C,B[1],B[2])})})}};var Reflection={options:{height:0.33,opacity:0.5},add:function(E,I,G){I=(I)?I/100:this.options.height;G=(G)?G/100:this.options.opacity;var B=new Element("div").injectAfter(E).adopt(E),H=E.width,D=E.height,C=Math.floor(D*I);B.className=E.className.replace(/\breflection\b/,"");B.style.cssText=E.backupStyle=E.style.cssText;B.setStyles({width:E.width,height:D+C});E.style.cssText="vertical-align: bottom";if(window.ie){new Element("img",{src:E.src,styles:{width:H,marginBottom:"-"+(D-C)+"px",filter:"flipv progid:DXImageTransform.Microsoft.Alpha(opacity="+(G*100)+", style=1, finishOpacity=0, startx=0, starty=0, finishx=0, finishy="+(I*100)+")"}}).inject(B)}else{var A=new Element("canvas",{width:H,height:C,styles:{width:H,height:C}}).inject(B);if(!A.getContext){return }var J=A.getContext("2d");J.save();J.translate(0,D-1);J.scale(1,-1);J.drawImage(E,0,0,H,D);J.restore();J.globalCompositeOperation="destination-out";var F=J.createLinearGradient(0,0,0,C);F.addColorStop(0,"rgba(255, 255, 255, "+(1-G)+")");F.addColorStop(1,"rgba(255, 255, 255, 1.0)");J.fillStyle=F;J.rect(0,0,H,C);J.fill()}}};var QuickLinks={onPageLoad:function(){if($("previewcontent")||!Wiki.PermissionEdit){return }var A=Wiki.EditUrl;A=A+(A.contains("?")?"&":"?")+"section=";$$("#pagecontent *[id^=section]").each(function(C,B){new Element("span",{"class":"editsection"}).adopt(new Element("a",{href:A+B}).setHTML("quick.edit".localize())).inject(C)})}};var TabbedSection={onPageLoad:function(){$$(".tabmenu a").each(function(B){if(B.href){return }var A=$(B.id.substr(5));B.addEvent("click",this.clickTab.bind(A))},this);$$(".tabbedSection").each(function(B){B.addClass("tabs");var A=new Element("div",{"class":"tabmenu"}).injectBefore(B);B.getChildren().each(function(D,C){if(!D.className.test("^tab-")){return }if(!D.id||(D.id=="")){D.id=D.className}var F=D.className.substr(4).deCamelize();(C==0)?D.removeClass("hidetab"):D.addClass("hidetab");new Element("div",{styles:{clear:"both"}}).inject(D);var E=new Element("a",{id:"menu-"+D.id,events:{click:this.clickTab.bind(D)}}).appendText(F).inject(A);if(C==0){E.addClass("activetab")}},this)},this)},clickTab:function(){var A=$("menu-"+this.id);this.getParent().getChildren().some(function(C){if(C.id){var B=$("menu-"+C.id);if(B&&B.hasClass("activetab")){if(C.id!=this.id){B.removeClass("activetab");A.addClass("activetab");C.addClass("hidetab");this.removeClass("hidetab")}return true}}return false},this)}};var WikiAccordion={onPageLoad:function(){$$(".accordion, .tabbedAccordion").each(function(A){var C=[],B=[],D=false;if(A.hasClass("tabbedAccordion")){D=new Element("div",{"class":"togglemenu"}).injectBefore(A)}A.getChildren().each(function(E){if(!E.className.test("^tab-")){return }var F=E.className.substr(4).deCamelize();if(D){C.push(new Element("div",{"class":"toggle"}).inject(D).appendText(F))}else{C.push(new Element("div",{"class":"toggle"}).injectBefore(E).appendText(F))}B.push(E.addClass("tab"))});new Accordion(C,B,{alwaysHide:!D,onComplete:function(){var E=$(this.elements[this.previous]);if(E.offsetHeight>0){E.setStyle("height","auto")}},onActive:function(E,F){E.addClass("active");F.addClass("active").removeClass("xhidetab")},onBackground:function(E,F){F.setStyle("height",F.offsetHeight);E.removeClass("active");F.removeClass("active").addClass("xhidetab")}})})}};var SearchBox={onPageLoad:function(){this.onPageLoadQuickSearch();this.onPageLoadFullSearch()},onPageLoadQuickSearch:function(){var B=$("query");if(!B){return }this.query=B;B.observe(this.ajaxQuickSearch.bind(this));this.hover=$("searchboxMenu").setProperty("visibility","visible").effect("opacity",{wait:false}).set(0);$(B.form).addEvent("submit",this.submit.bind(this)).addEvent("mouseout",function(){this.hover.start(0)}.bind(this)).addEvent("mouseover",function(){Wiki.locatemenu(this.query,$("searchboxMenu"));this.hover.start(0.9)}.bind(this));if(window.xwebkit){B.setProperties({type:"search",autosave:B.form.action,results:"9",placeholder:B.defaultValue})}else{$("recentClear").addEvent("click",this.clear.bind(this));this.recent=Wiki.prefs.get("RecentSearch");if(!this.recent){return }var A=new Element("ul",{id:"recentItems"}).inject($("recentSearches").show());this.recent.each(function(C){new Element("a",{href:"#",events:{click:function(){B.value=C;B.form.submit()}}}).setHTML(C).inject(new Element("li").inject(A))})}},onPageLoadFullSearch:function(){var B=$("query2");if(!B){return }this.query2=B;var A=function(){var C=this.query2.value.replace(/^(?:author:|name:|contents:|attachment:)/,"");this.query2.value=$("scope").getValue()+C;this.runfullsearch()}.bind(this);B.observe(this.runfullsearch.bind(this));$("scope").addEvent("change",A);$("details").addEvent("click",this.runfullsearch.bind(this))},runfullsearch:function(){var C=this.query2.value;if(!C||(C.trim()=="")){$("searchResult2").empty();return }$("spin").show();var B=$("scope"),A=C.match(/^(?:author:|name:|contents:|attachment:)/)||"";$each(B.options,function(D){if(D.value==A){D.selected=true}});new Ajax(Wiki.TemplateUrl+"AJAXSearch.jsp",{postBody:$("searchform2").toQueryString(),update:"searchResult2",method:"post",onComplete:function(){$("spin").hide();GraphBar.onPageLoad();Wiki.prefs.set("PrevQuery",C)}}).request()},submit:function(){var A=this.query.value;if(A==this.query.defaultValue){this.query.value=""}if(!this.recent){this.recent=[]}if(!this.recent.test(A)){if(this.recent.length>9){this.recent.pop()}this.recent.unshift(A);Wiki.prefs.set("RecentSearch",this.recent)}},clear:function(){this.recent=[];Wiki.prefs.remove("RecentSearch");$("recentSearches","recentClear").hide()},ajaxQuickSearch:function(){var A=this.query.value;if((A==null)||(A.trim()=="")||(A==this.query.defaultValue)){$("searchOutput").empty();return }$("searchTarget").setHTML("("+A+") :");$("searchSpin").show();Wiki.jsonrpc("search.findPages",[A,20],function(B){$("searchSpin").hide();if(!B.list){return }var C=new Element("ul");B.list.each(function(D){new Element("li").adopt(new Element("a",{href:Wiki.getUrl(D.map.page)}).setHTML(D.map.page),new Element("span",{"class":"small"}).setHTML(" ("+D.map.score+")")).inject(C)});$("searchOutput").empty().adopt(C);Wiki.locatemenu($("query"),$("searchboxMenu"))})},navigate:function(B,A,F,C){var E=Wiki.PageName,D=this.query.value;if(D==this.query.defaultValue){D=""}if(D==""){D=prompt(A,(F)?E+"sbox.clone.suffix".localize():E);if(!D||(D=="")){return false}}if(F&&(D!=E)){D+="&clone="+E}if(D==""){return false}location.href=B.replace("__PAGEHERE__",D)}};var Color=new Class({_HTMLColors:{black:"000000",green:"008000",silver:"c0c0c0",lime:"00ff00",gray:"808080",olive:"808000",white:"ffffff",yellow:"ffff00",maroon:"800000",navy:"000080",red:"ff0000",blue:"0000ff",purple:"800080",teal:"008080",fuchsia:"ff00ff",aqua:"00ffff"},initialize:function(A,C){C=C||(A.push?"rgb":"hex");if(this._HTMLColors[A]){A=this._HTMLColors[A]}var B=(C=="rgb")?A:A.toString().hexToRgb(true);if(!B){return false}B.hex=B.rgbToHex();return $extend(B,Color.prototype)},mix:function(){var A=$A(arguments),B=this.copy(),C=(($type(A[A.length-1])=="number")?A.pop():50)/100,D=1-C;A.each(function(E){E=new Color(E);for(var F=0;F<3;F++){B[F]=Math.round((B[F]*D)+(E[F]*C))}});return new Color(B,"rgb")},invert:function(){return new Color(this.map(function(A){return 255-A}))}});var GraphBar={onPageLoad:function(){$$("*[class^=graphBars]").each(function(G){var F=20,A=320,C=20,O=null,N=null,M=false,J=false,I=true,K=G.className.substr(9).split("-"),E=K.shift();K.each(function(Q){Q=Q.toLowerCase();if(Q=="vertical"){I=false}else{if(Q=="progress"){J=true}else{if(Q=="gauge"){M=true}else{if(Q.indexOf("min")==0){F=Q.substr(3).toInt()}else{if(Q.indexOf("max")==0){A=Q.substr(3).toInt()}else{if(Q!=""){Q=new Color(Q,"hex");if(!Q.hex){return }if(!O){O=Q}else{if(!N){N=Q}}}}}}}}});if(!N&&O){N=(M||J)?O.invert():O}if(F>A){var B=A;A=F;A=B}var P=A-F;var L=$ES(".gBar"+E,G);if((L.length==0)&&E&&(E!="")){L=this.getTableValues(G,E)}if(!L){return }var H=this.parseBarData(L,F,P),D=(I?"borderLeft":"borderBottom");L.each(function(Q,U){var T=$H().set(D+"Width",H[U]),S=$H(),R=new Element("span",{"class":"graphBar"}),V=Q.getParent();if(I){R.setHTML("x");if(J){S.extend(T.obj);T.set(D+"Width",A-H[U]).set("marginLeft","-1ex")}}else{if(V.getTag()=="td"){V=new Element("div").injectWrapper(V)}V.setStyles({height:A+Q.getStyle("lineHeight").toInt(),position:"relative"});Q.setStyle("position","relative");if(!J){Q.setStyle("top",(A-H[U]))}T.extend({position:"absolute",width:C,bottom:"0"});if(J){S.extend(T.obj).set(D+"Width",A)}}if(J){if(O){T.set("borderColor",O.hex)}if(N){S.set("borderColor",N.hex)}else{T.set("borderColor","transparent")}}else{if(O){var W=M?(H[U]-F)/P:U/(L.length-1);T.set("borderColor",O.mix(N,100*W).hex)}}if(S.length>0){R.clone().setStyles(S.obj).injectBefore(Q)}if(T.length>0){R.setStyles(T.obj).injectBefore(Q)}},this)},this)},parseBarData:function(B,G,D){var A=[],F=Number.MIN_VALUE,E=Number.MAX_VALUE,C=date=true;B.each(function(J,H){var I=J.getText();A.push(I);if(C){C=!isNaN(parseFloat(I.match(Number.REparsefloat)))}if(date){date=!isNaN(Date.parse(I))}});A=A.map(function(H){if(date){H=new Date(Date.parse(H)).valueOf()}else{if(C){H=parseFloat(H.match(Number.REparsefloat))}}F=Math.max(F,H);E=Math.min(E,H);return H});if(F==E){F=E+1}D=D/(F-E);return A.map(function(H){return((D*(H-E))+G).toInt()})},getTableValues:function(G,H){var F=$E("table",G);if(!F){return false}var C=F.rows.length;if(C>1){var E=F.rows[0];for(var D=0;D<E.cells.length;D++){if($getText(E.cells[D]).trim()==H){var A=[];for(var B=1;B<C;B++){A.push(new Element("span").injectWrapper(F.rows[B].cells[D]))}return A}}}for(var D=0;D<C;D++){var E=F.rows[D];if($getText(E.cells[0]).trim()==H){var A=[];for(var B=1;B<E.cells.length;B++){A.push(new Element("span").injectWrapper(E.cells[B]))}return A}}return false}};var Collapsible={pims:[],onPageLoad:function(){this.bullet=new Element("div",{"class":"collapseBullet"}).setHTML("&bull;");this.initialise("favorites","JSPWikiCollapseFavorites");this.initialise("page","JSPWikiCollapse"+Wiki.PageName);this.initialise("info")},initialise:function(B,A){B=$(B);if(!B){return }this.pims.push({name:A,value:"",initial:(A?Cookie.get(A):"")});$ES(".collapse",B).each(function(C){if($E(".collapseBullet",C)){return }this.collapseNode(C)},this);$ES(".collapsebox,.collapsebox-closed",B).each(function(C){this.collapseBox(C)},this)},collapseBox:function(D){var E=D.getFirst();if(!E){return }var A=new Element("div",{"class":"collapsebody"}),B=this.bullet.clone(),C=D.hasClass("collapsebox-closed");while(E.nextSibling){A.appendChild(E.nextSibling)}D.appendChild(A);if(C){D.removeClass("collapsebox-closed").addClass("collapsebox")}B.injectTop(E.addClass("collapsetitle"));this.newBullet(B,A,!C,E)},collapseNode:function(A){$ES("li",A).each(function(B){var D=$E("ul",B)||$E("ol",B);var E=true;for(var F=B.firstChild;F;F=F.nextSibling){if((F.nodeType==3)&&(F.nodeValue.trim()=="")){continue}if((F.nodeName=="UL")||(F.nodeName=="OL")){break}E=false;break}if(E){return }new Element("div",{"class":"collapsebody"}).injectWrapper(B);var C=this.bullet.clone().injectTop(B);if(D){this.newBullet(C,D,(D.getTag()=="ul"))}},this)},newBullet:function(C,A,F,E){var D=this.pims.getLast();F=this.parseCookie(F);if(!E){E=C}var B=A.setStyle("overflow","hidden").effect("height",{wait:false,onStart:this.renderBullet.bind(C),onComplete:function(){if(C.hasClass("collapseOpen")){A.setStyle("height","auto")}}});C.className=(F?"collapseClose":"collapseOpen");E.addEvent("click",this.clickBullet.bind(C,[D,D.value.length-1,B])).addEvent("mouseenter",function(){E.addClass("collapseHover")}).addEvent("mouseleave",function(){E.removeClass("collapseHover")});B.fireEvent("onStart");if(!F){B.set(0)}},renderBullet:function(){if(this.hasClass("collapseClose")){this.setProperties({title:"collapse".localize(),"class":"collapseOpen"}).setHTML("-")}else{this.setProperties({title:"expand".localize(),"class":"collapseClose"}).setHTML("+")}},clickBullet:function(B,C,A){var E=this.hasClass("collapseOpen"),D=A.element.scrollHeight;if(E){A.start(D,0)}else{A.start(D)}B.value=B.value.substring(0,C)+(E?"c":"o")+B.value.substring(C+1);if(B.name){Cookie.set(B.name,B.value,{path:Wiki.BasePath,duration:20})}},parseCookie:function(D){var A=this.pims.getLast(),E=A.value.length,B=(D?"o":"c");if(A.initial&&(A.initial.length>E)){var C=A.initial.charAt(E);if((D&&(C=="c"))||(!D&&(C=="o"))){B=C}if(B!=C){A.initial=null}}A.value+=B;return(B=="o")}};var RoundedCorners={NormalTop:[{margin:"5px",height:"1px",borderSide:"0",borderTop:"1px"},{margin:"3px",height:"1px",borderSide:"2px"},{margin:"2px",height:"1px",borderSide:"1px"},{margin:"1px",height:"2px",borderSide:"1px"}],SmallTop:[{margin:"2px",height:"1px",borderSide:"0",borderTop:"1px"},{margin:"1px",height:"1px",borderSide:"1px"}],registry:{},register:function(A,B){this.registry[A]=B;return this},onPageLoad:function(){this.NormalBottom=this.NormalTop.slice(0).reverse();this.SmallBottom=this.SmallTop.slice(0).reverse();for(selector in this.registry){var B=$$(selector);var A=this.registry[selector];this.exec(B,A[0],A[1],A[2],A[3])}$$("#pagecontent *[class^=roundedCorners]").each(function(D){var C=D.className.split("-");if(C.length<2){return }this.exec([D],C[1],C[2],C[3],C[4])},this)},exec:function(B,H,F,C,A){H=(H?H+"nnnn":"yyyy");F=new Color(F,"hex")||"transparent";if(C){C=new Color(C)}if(A){A=new Color(A)}var I=H.split("");var E=null;var D=null;if(I[0]+I[1]!="nn"){E=document.createElement("b");E.className="roundedCorners";if((I[0]=="y")||(I[1]=="y")){this.addCorner(E,this.NormalTop,I[0],I[1],F,C)}else{if((I[0]=="s")||(I[1]=="s")){this.addCorner(E,this.SmallTop,I[0],I[1],F,C)}}}if(I[2]+I[3]!="nn"){D=document.createElement("b");D.className="roundedCorners";if((I[2]=="y")||(I[3]=="y")){this.addCorner(D,this.NormalBottom,I[2],I[3],F,C)}else{if((I[2]=="s")||(I[3]=="s")){this.addCorner(D,this.SmallBottom,I[2],I[3],F,C)}}}if((!E)&&(!C)&&(!D)){return }for(var G=0;G<B.length;G++){if(!B[G]){continue}this.addBody(B[G],F,C);if(E){B[G].insertBefore(E.cloneNode(true),B[G].firstChild)}if(D){B[G].appendChild(D.cloneNode(true))}}},addCorner:function(E,A,F,D,B,H){for(var C=0;C<A.length;C++){var G=document.createElement("div");G.style.height=A[C].height;G.style.overflow="hidden";G.style.borderWidth="0";G.style.backgroundColor=B.hex;if(H){G.style.borderColor=H.hex;G.style.borderStyle="solid";if(A[C].borderTop){G.style.borderTopWidth=A[C].borderTop;G.style.height="0"}}if(F!="n"){G.style.marginLeft=A[C].margin}if(D!="n"){G.style.marginRight=A[C].margin}if(H){G.style.borderLeftWidth=(F=="n")?"1px":A[C].borderSide;G.style.borderRightWidth=(D=="n")?"1px":A[C].borderSide}E.appendChild(G)}},addBody:function(C,B,D){if(C.passed){return }var A=new Element("div").injectWrapper(C);A.style.padding="0 4px";A.style.backgroundColor=B.hex;if(D){A.style.borderLeft="1px solid "+D.hex;A.style.borderRight="1px solid "+D.hex}C.passed=true}};var Sortable={onPageLoad:function(){this.DefaultTitle="sort.click".localize();this.AscendingTitle="sort.ascending".localize();this.DescendingTitle="sort.descending".localize();$$(".sortable table").each(function(A){if(A.rows.length<2){return }$A(A.rows[0].cells).each(function(B){B=$(B);if(B.getTag()!="th"){return }B.addEvent("click",function(){Sortable.sort(B)}).addClass("sort").title=Sortable.DefaultTitle})},this)},sort:function(A){var H=getAncestorByTagName(A,"table"),B=(H.filterStack),I=(H.sortCache||[]),C=0,E=$T(H);A=$(A);$A(E.rows[0].cells).each(function(J,K){if(J.getTag()!="th"){return }if(A==J){C=K;return }J.removeClass("sortAscending").removeClass("sortDescending").addClass("sort").title=Sortable.DefaultTitle});if(I.length==0){$A(E.rows).each(function(K,J){if((J==0)||((J==1)&&(B))){return }I.push(K)})}var D=Sortable.guessDataType(I,C);if(A.hasClass("sort")){I.sort(Sortable.createCompare(C,D))}else{I.reverse()}var F=A.hasClass("sortDescending");A.removeClass("sort").removeClass("sortAscending").removeClass("sortDescending");A.addClass(F?"sortAscending":"sortDescending").title=F?Sortable.DescendingTitle:Sortable.AscendingTitle;var G=document.createDocumentFragment();I.each(function(K,J){G.appendChild(K)});E.appendChild(G);H.sortCache=I;if(H.zebra){H.zebra()}},guessDataType:function(C,B){var A=date=ip4=euro=true;C.each(function(F,E){var D=$getText(F.cells[B]).clean().toLowerCase();if(A){A=!isNaN(parseFloat(D))}if(date){date=!isNaN(Date.parse(D))}if(ip4){ip4=D.test("(?:\\d{1,3}\\.){3}\\d{1,3}")}if(euro){euro=D.test("^[£$€][0-9.,]+")}});return(euro)?"euro":(ip4)?"ip4":(date)?"date":(A)?"num":"string"},convert:function(C,B){switch(B){case"num":return parseFloat(C.match(Number.REparsefloat));case"euro":return parseFloat(C.replace(/[^0-9.,]/g,""));case"date":return new Date(Date.parse(C));case"ip4":var A=C.split(".");return parseInt(A[0])*1000000000+parseInt(A[1])*1000000+parseInt(A[2])*1000+parseInt(A[3]);default:return C.toString().toLowerCase()}},createCompare:function(A,B){return function(F,D){var E=Sortable.convert($getText(F.cells[A]),B);var C=Sortable.convert($getText(D.cells[A]),B);if(E<C){return -1}else{if(E>C){return 1}else{return 0}}}}};var TableFilter={onPageLoad:function(){this.All="filter.all".localize();this.FilterRow=1;$$(".table-filter table").each(function(D){if(D.rows.length<2){return }var C=$(D.insertRow(TableFilter.FilterRow)).addClass("filterrow");for(var A=0;A<D.rows[0].cells.length;A++){var B=new Element("select",{events:{change:TableFilter.filter}});B.fcol=A;new Element("th").adopt(B).inject(C)}D.filterStack=[];TableFilter.buildEmptyFilters(D)})},buildEmptyFilters:function(C){for(var B=0;B<C.rows[0].cells.length;B++){var A=C.filterStack.some(function(D){return D.fcol==B});if(!A){TableFilter.buildFilter(C,B)}}if(C.zebra){C.zebra()}},buildFilter:function(D,B,C){var A=D.rows[TableFilter.FilterRow].cells[B].firstChild;if(!A){return }A.options.length=0;var F=[];$A(D.rows).each(function(H,G){if((G==0)||(G==TableFilter.FilterRow)){return }if(H.style.display=="none"){return }F.push(H)});F.sort(Sortable.createCompare(B,Sortable.guessDataType(F,B)));A.options[0]=new Option(this.All,this.All);var E;F.each(function(I,H){var G=$getText(I.cells[B]).clean().toLowerCase();if(G==E){return }E=G;A.options[A.options.length]=new Option(G.trunc(32),E)});(A.options.length<=2)?A.hide():A.show();if(C!=undefined){A.value=C}else{A.options[0].selected=true}},filter:function(){var A=this.fcol,C=this.value,B=getAncestorByTagName(this,"table");if(!B||B.style.display=="none"){return }if(B.filterStack.every(function(E,D){if(E.fcol!=A){return true}if(C==TableFilter.All){B.filterStack.splice(D,1)}else{E.fValue=C}return false})){B.filterStack.push({fValue:C,fcol:A})}$A(B.rows).each(function(E,D){E.style.display=""});B.filterStack.each(function(F){var D=F.fValue,G=F.fcol;TableFilter.buildFilter(B,G,D);var E=0;$A(B.rows).each(function(I,H){if((H==0)||(H==TableFilter.FilterRow)){return }if(D!=$getText(I.cells[G]).clean().toLowerCase()){I.style.display="none"}})});TableFilter.buildEmptyFilters(B)}};var Categories={onPageLoad:function(){this.jsp=Wiki.TemplateUrl+"/AJAXCategories.jsp";$$(".category a.wikipage").each(function(C){var E=Wiki.getPageName(C.href);if(!E){return }var B=new Element("span").injectBefore(C).adopt(C),A=new Element("div",{"class":"categoryPopup"}).inject(B),D=A.effect("opacity",{wait:false}).set(0);C.addClass("categoryLink").setProperties({href:"#",title:"category.title".localize(E)}).addEvent("click",function(F){new Event(F).stop();new Ajax(Categories.jsp,{postBody:"&page="+E,update:A,onComplete:function(){C.setProperty("title","").removeEvent("click");B.addEvent("mouseover",function(G){D.start(0.9)}).addEvent("mouseout",function(G){D.start(0)});A.setStyle("left",C.getPosition().x);D.start(0.9)}}).request()})})}};var WikiTips={onPageLoad:function(){var A=[];$$("*[class^=tip]").each(function(D){var E=D.className.split("-");if(E.length<=0||E[0]!="tip"){return }D.className="tip";var B=new Element("span").injectWrapper(D).hide(),C=(E[1])?E[1].deCamelize():"tip.default.title".localize();A.push(new Element("span",{"class":"tip-anchor",title:C+"::"+B.innerHTML}).setHTML(C).inject(D))});if(A.length>0){new Tips(A,{className:"tip"})}}};var WikiColumns={onPageLoad:function(){var A=[];$$("*[class^=columns]").each(function(B){var C=B.className.split("-");B.className="columns";WikiColumns.buildColumns(B,C[1]||"auto")})},buildColumns:function(C,B){var F=$ES("hr",C);if(!F||F.length==0){return }var E=F.length+1;B=(B=="auto")?98/E+"%":B/E+"px";var D=new Element("div",{"class":"col",styles:{width:B}}),A=D.clone().injectBefore(C.getFirst()),G;while(G=A.nextSibling){if(G.tagName&&G.tagName.toLowerCase()=="hr"){A=D.clone();$(G).replaceWith(A);continue}A.appendChild(G)}new Element("div",{styles:{clear:"both"}}).inject(C)}};var ZebraTable={onPageLoad:function(){$$("*[class^=zebra]").each(function(E){var C=E.className.split("-"),D=C[1].test("table"),B="",A="";if(C[1]){B=new Color(C[1],"hex")}if(C[2]){A=new Color(C[2],"hex")}$ES("table",E).each(function(F){F.zebra=this.zebrafy.pass([D,B,A],F);F.zebra()},this)},this)},zebrafy:function(D,C,B){var A=0;$A($T(this).rows).each(function(F,E){if(E==0||(F.style.display=="none")){return }if(D){(A++%2==0)?$(F).addClass("odd"):$(F).removeClass("odd")}else{$(F).setStyle("background-color",(A++%2==0)?C:B)}})}};var HighlightWord={ReQuery:new RegExp("(?:\\?|&)(?:q|query)=([^&]*)","g"),onPageLoad:function(){var A=Wiki.prefs.get("PrevQuery");Wiki.prefs.set("PrevQuery","");if(!A&&this.ReQuery.test(document.referrer)){A=RegExp.$1}if(!A){return }var B=decodeURIComponent(A);B=B.replace(/\+/g," ");B=B.replace(/\s+-\S+/g,"");B=B.replace(/([\(\[\{\\\^\$\|\)\?\*\.\+])/g,"\\$1");B=B.trim().split(/\s+/).join("|");this.reMatch=new RegExp("("+B+")","gi");this.walkDomTree($("pagecontent"))},walkDomTree:function(C){if(!C){return }var F=null;for(var E=C.firstChild;E;E=F){F=E.nextSibling;this.walkDomTree(E)}if(C.nodeType!=3){return }if(C.parentNode.className=="searchword"){return }var B=C.innerText||C.textContent||"";if(!this.reMatch.test(B)){return }var A=new Element("span").setHTML(B.replace(this.reMatch,"<span class='searchword'>$1</span>"));var D=document.createDocumentFragment();while(A.firstChild){D.appendChild(A.firstChild)}C.parentNode.replaceChild(D,C)}};var WikiPrettify={onPageLoad:function(){var A=$$(".prettify pre, .prettify code");if(!A){return }A.addClass("prettyprint");prettyPrint()}};window.addEvent("load",function(){Wiki.onPageLoad();WikiReflection.onPageLoad();WikiAccordion.onPageLoad();TabbedSection.onPageLoad();QuickLinks.onPageLoad();Collapsible.onPageLoad();WikiSlidingFavs.onPageLoad();SearchBox.onPageLoad();Sortable.onPageLoad();TableFilter.onPageLoad();RoundedCorners.onPageLoad();ZebraTable.onPageLoad();HighlightWord.onPageLoad();GraphBar.onPageLoad();Categories.onPageLoad();WikiSlimbox.onPageLoad();WikiTips.onPageLoad();WikiColumns.onPageLoad();WikiPrettify.onPageLoad();Wiki.setFocus()});