window.addEvent("domready",function(){WikiManager.initialize()});var WikiManager={initialize:function(){var d=$("wikiEdit");var b=$("editWikiLink");var f=$("saveWikiBtn");var c=$("previewWikiBtn");var a="editWikiForm";var g=$(a);var h=$("previewWiki");var e=$("previewWikiText");if(d){b.addEvent("click",function(i){new Event(i).stop().preventDefault();g.toggle()});f.addEvent("click",function(i){new Event(i).stop().preventDefault();new Request.AjaxIO("updateWiki",{onSuccess:function(j){if(j.success){$("wikiText").set("html",j.renderedText);$("wikiText").show();g.hide();h.hide()}}}).send(Form.getValues(a))});c.addEvent("click",function(i){new Event(i).stop().preventDefault();new Request.AjaxIO("previewWiki",{onSuccess:function(j){if(j.success){e.set("html",j.renderedText);h.show()}}}).send(Form.getValues(a))})}}};var SearchFilter=new Class({Implements:[Options,Events],options:{multi:false,resultsPer:20,onUpdate:null,statusPanel:null},urlMap:{},initialize:function(a){this.setOptions(a);this.statusPanel=this.options.statusPanel;this.form=$("jsForm");this.query="";this.offset=0;this.filterAll=$("filterAll");this.filterOptions=$$(".filterOption");this.storedHash=window.location.hash;if(!this.filterAll){return}when($("searchBox"),function(b){this.query=b.get("value")}.bind(this));this.filterOptions.invoke("addEvent","click",function(b){new Event(b).stop().preventDefault();window.blur();window.focus()});this.setPaginationEvents();this.setHoverEvents();this.setFeedbackEvents();this.filterAll.addEvents({mouseenter:this.activateButton.pass(this.filterAll),mouseleave:this.deactivateButton.pass(this.filterAll),click:this.selectFilterAll.bind(this)});this.filterOptions.each(function(b){b.addEvents({mouseenter:this.activateButton.pass(b),mouseleave:this.deactivateButton.pass(b),click:this.toggleFilterOption.bind(this,b)});var c=b.getElement("span").get("text");b.store("filterName",c);this.urlMap[c.replace(/[^a-zA-Z0-9]+/g,"-")]=b},this);when(this.form,function(b){b.addEvent("submit",function(c){new Event(c).stop().preventDefault();var d=String(window.location.hash).replace(/^#\d+/,"#0");window.location="{base}/{query}{hash}".substitute({base:"/Guide/search",query:$("searchBox").get("value"),hash:d})})});this.checkHash.periodical(500,this);if(window.location.hash!=""){this.updateSearchResults()}else{this.offset=0;this.filterAll.addClass("selectedButton")}this.writeHash()},checkHash:function(){var a=window.location.hash;if(Browser.Engine.trident){var b=$("historyFrame").contentWindow.document;a=b.body.innerText;if(a!=this.storedHash){window.location.hash=a}}if(a!=this.storedHash){this.storedHash=a;this.updateSearchResults()}},activateButton:function(a){a.addClass("activeButton")},deactivateButton:function(a){a.removeClass("activeButton")},selectFilterAll:function(a){new Event(a).stop().preventDefault();if(!this.filterAll.hasClass("selectedButton")){this.filterAll.addClass("selectedButton");this.filterOptions.invoke("removeClass","selectedButton");this.updateHash();this.updateSearchResults()}},toggleFilterOption:function(b){b.toggleClass("selectedButton");var a=this.filterOptions.filter(function(c){if(c!=b&&!this.options.multi){c.removeClass("selectedButton")}return c.hasClass("selectedButton")}.bind(this)).length;if(a==0){this.filterAll.addClass("selectedButton")}else{if(a==this.filterOptions.length&&this.options.multi){this.filterOptions.invoke("removeClass","selectedButton");this.filterAll.addClass("selectedButton")}else{this.filterAll.removeClass("selectedButton")}}this.updateHash();this.updateSearchResults()},setPaginationEvents:function(){$$(".paginationContainer").getLast().getElements("a").invoke("addEvent","click",function(a){new Fx.Scroll(window,{duration:0}).toTop()});$$(".prevPage").each(function(b){b.addEvent("click",function(a){new Event(a).stop().preventDefault();this.updateHash(-1);this.updateSearchResults()}.bind(this))}.bind(this));$$(".nextPage").each(function(a){a.addEvent("click",function(b){new Event(b).stop().preventDefault();this.updateHash(1);this.updateSearchResults()}.bind(this))}.bind(this))},setHoverEvents:function(){when($("searchResults"),function(a){a.getElements(".imageContainer a").each(function(b){var c=b.getParent();b.addEvents({mouseenter:c.toggleClass.bind(c,["activeImage"]),mouseleave:c.toggleClass.bind(c,["activeImage"])})})})},setFeedbackEvents:function(){when($("improveSearchLink"),function(b){b.addEvent("click",function(a){new Event(a).stop().preventDefault();Modal.open(b,{type:"element",selector:"improveSearch"})});var c=$("improveSearch").getElement("form");c.addEvent("submit",function(a){new Event(a).stop().preventDefault();var e=this.query==""?"Empty search":this.query;var d=c.getElement("textarea").value;new Request.AjaxIO("improveSearch",{onSuccess:function(){Modal.close();var f=$("noResults").empty();new Element("h3",{html:"Thanks for helping!",styles:{"margin-top":0}}).inject(f);new Element("p",{html:"Your comments have been sent to our team.",styles:{"margin-bottom":0}}).inject(f)}.bind(this)}).send(e,d)}.bind(this))}.bind(this))},showUpdating:function(){$$(".searchResults").invoke("setStyle","opacity",0.5);$$(".pagination").invoke("setStyle","opacity",0.5);if(this.statusPanel){this.statusPanel.loading("Loading search results...",30,{position:"top"})}},showUpdated:function(){$$(".searchResults").invoke("setStyle","opacity",1);$$(".pagination").invoke("setStyle","opacity",1);if(this.statusPanel){this.statusPanel.deactivate()}},updateHash:function(a){var c={};if($defined(a)){this.offset=parseInt(this.offset)+parseInt(a*this.options.resultsPer);if(isNaN(this.offset)||parseInt(this.offset)<0){this.offset=0}}else{this.offset=0}var b=this.filterAll.hasClass("selectedButton");this.filterOptions.each(function(d){if(d.hasClass("selectedButton")){c[d.retrieve("filterName")]=true}});this.storedHash="#{offset}{dash}{filters}".substitute({offset:this.offset,dash:Hash.getLength(c)>0?"-":"",filters:Hash.getKeys(c).map(function(d){return d.replace(/[^a-zA-Z0-9]+/g,"+")}).join("-")});window.location.hash=this.storedHash;this.writeHash()},writeHash:function(){if(Browser.Engine.trident){var a=$("historyFrame").contentWindow.document;a.open();a.write('<html><body id="state">'+this.storedHash+"</body></html>");a.close()}},parseHash:function(){params=this.storedHash.substr(1).split("-");this.offset=params.shift();var c=params;this.filterAll.removeClass("selectedButton");this.filterOptions.each(function(d){d.removeClass("selectedButton")},this);if(c.length==0||(c.length==this.filterOptions.length&&this.options.multi)){this.filterAll.addClass("selectedButton");return{}}else{c.each(function(d){when(this.urlMap[d.replace(/\+/g,"-")],function(e){e.addClass("selectedButton")})},this)}var b={};var a=this.filterAll.hasClass("selectedButton");this.filterOptions.each(function(d){if(a||d.hasClass("selectedButton")){b[d.retrieve("filterName")]=true}});return b},updateSearchResults:function(){filters=this.parseHash();this.showUpdating();new Request.AjaxIO("updateSearchResults",{onSuccess:function(a){$$(".paginationContainer").invoke("set","html",a.pagination);$$(".searchResults").invoke("set","html",a.results);this.setPaginationEvents();this.setFeedbackEvents();this.setHoverEvents();this.showUpdated();this.fireEvent("update")}.bind(this)}).send({query:this.query,offset:this.offset,filters:filters})}});window.addEvent("domready",function(){new SearchFilter({resultsPer:10,statusPanel:StatusPanel})});