window.addEvent("domready",function(){$$(".countCharacters").each(function(c){var a=c.getParent("form").getElement(".maxCharacters");var b=parseInt(a.get("text"),10);c.addEvent("keyup",function(g){var f=b-c.get("value").length;a.set("text",f);if(f==b){a.hide()}else{var d=f<0?"addClass":"removeClass";a[d]("maxCharLength");a.show()}});if(c.get("value").length!=0){c.fireEvent("keyup")}})});window.addEvent("domready",function(){GuideIntro.initialize();if(window.TagEditor){TagEditor.initialize()}});var GuideIntro={initialize:function(){when($("mainGuideImage"),function(e){new SingleImageManager({container:e.setStyle("cursor","pointer"),onSetImage:function(f){$("introImageid").set("value",f.data.imageid)}})});this.formid="guideIntroForm";this.saved=false;this.introForm=$(this.formid);this.introManager=new SidebarFormManager(this.introForm);this.introType=$("introType");this.introDevice=$("introDevice");this.introThing=$("introThing");this.search_summary=$("introsummary");this.summary=$("introIntroduction");this.flagInput=$("flagInput");FlagEditor.initialize(this.flagInput);$("noJSFlag").set("value","false");this.inputWatchId="formInputs";this.formWatchInputs=$(this.inputWatchId);this.introManager.addEvent("formModified",function(e){this.isModified(e)}.bind(this));if(!this.introDevice.hasClass("constrained")){new BlurbFinder(this.introDevice,"/Guide/JSON/blurb-finder",{maxChoices:3,postData:{multiple:false,filters:["device"]},getValue:function(e){return e.title}});this.introManager.setDefaultText(this.introDevice,"Example: iPod Nano")}this.introManager.setDefaultText(this.flagInput,"Click to list available flags...");when($("introDevice2"),function(e){if(!e.hasClass("constrained")){new BlurbFinder(e,"/Guide/JSON/blurb-finder",{maxChoices:3,postData:{multiple:false,filters:["device"]},getValue:function(f){return f.title}});this.introManager.setDefaultText(e,"Example: iPod")}}.bind(this));if(this.introThing){this.introManager.setDefaultText(this.introThing,"Example: Logic Board")}this.introManager.setDefaultText(this.summary,"Outline what you are going to teach someone how to do.");this.introManager.setDefaultText(this.search_summary,"Give a short summary.");this.typeTitles={};$$(".typeTitle").each(function(e){this.typeTitles[e.id.replace("Title","")]=e.get("text")}.bind(this));this.introTypeSelect=$("introType");if(this.introTypeSelect){this.introTypeSelect.addEvent("change",function(){var e=this.introTypeSelect.get("value").toLowerCase();var f=this.introTypeSelect.getSelected()[0].get("rel");[$("thingDiv")].invoke(this.typeTitles[e].match("%thing")?"show":"hide");$$(".introTypePrompt").invoke("set","text",f)}.bind(this))}this.introTitle=$("introTitle");this.introTitleToggler=$("introTitleToggler");if(this.introTitleToggler){var d=function(){var f=!this.introDevice.hasClass("defaultText");var e=!this.introThing.hasClass("defaultText");if(f||e){var h=this.introTypeSelect.get("value");var i=f?this.introDevice.get("value"):"";var g=e?this.introThing.get("value"):"";var j=this.typeTitles[h].substitute({type:h,device:i,thing:g},/%([a-z]+)/g)}else{var j=""}if(!this.introTitleToggler.checked){this.introTitle.set("value",j)}}.bind(this);var a=[];if(this.introTypeSelect){a.push(this.introTypeSelect)}if(this.introDevice){a.push(this.introDevice)}if(this.introThing){a.push(this.introThing)}a.invoke("addEvent","change",d);a.invoke("addEvent","keyup",d);var c=function(){d();if(this.introTitleToggler.checked){this.introTitle.erase("disabled");this.introTitle.removeClass("disabled");this.introTitle.focus()}else{this.introTitle.set("disabled",true);this.introTitle.addClass("disabled")}}.bind(this);this.introTitleToggler.addEvent("click",c)}this.introManager.setValidator(this.introDevice,function(){var e=this.introDevice.get("value").trim();if(this.introDevice.hasClass("defaultText")||(this.introDevice.hasClass("constrained")&&e=="")){return this.introManager.requiredError()}else{if(/[#<>\[\]\|\{\},\+\?&\/\\\%:;]/.test(e)){return"Device contains invalid characters. The characters # < > [ ] | { } , + ? & /  % : ; are not allowed."}}}.bind(this));if(this.introThing){this.introManager.setValidator(this.introThing,function(){if(this.introThing.hasClass("defaultText")&&this.introThing.getParent().getStyle("display")!="none"){return this.introManager.requiredError()}}.bind(this))}var b=["heading","bold","italic","ul","ol","link"];new WikiTextEditor("introIntroduction",null,{toolbarItems:b,className:"wikiTextEditorToolbar",helpLink:"/Info/WikiSyntax",helpText:"Formatting help"});$("save").addEvent("click",function(e){e.stop();this.introManager.validate(this.introManager.submit)}.bind(this));this.introManager.addSubmitHandler(function(){FlagEditor.injectFlags();Auth.required({from:$("saveBtn"),message:"You must be logged in to save a guide",onAuthorize:function(){this.saved=true;this.introForm.submit()}.bind(this)})}.bind(this));$("previewIntro").addEvent("click",function(e){new Event(e).stop().preventDefault();FlagEditor.injectFlags();this.introManager.validate(function(){new Request.AjaxIO("previewIntro",{onSuccess:function(f){$("previewDiv").show();$("previewContent").set("html",f.html);Icons.addEvents($("guideIntro"));$("previewContent").getElements("a").each(function(g){g.addEvent("click",function(h){new Event(h).stop().preventDefault();if(!g.hasClass("noPreviewLink")){window.open(g.get("href"))}})})}}).send(Form.getValues(this.formid))}.bind(this))}.bind(this));when($("undo"),function(e){e.addEvent("click",function(f){new Event(f).stop().preventDefault();this.saved=true;window.location.reload()}.bind(this))}.bind(this));window.onbeforeunload=function(){if(!this.saved&&this.formWatchInputs.hasClass("unsaved")){return"You have unsaved changes. If you continue, your changes will be lost"}}.bind(this)},isModified:function(b){b=b||FlagEditor.isModified();var a=b?"addClass":"removeClass";this.formWatchInputs[a]("unsaved")}};var FlagEditor={saved:false,initialize:function(a){this.flagDiv=$("flagDiv");this.flagInput=a;this.flags=$$(".guideFlag");this.flags.each(function(c){var b=c.getElement("a.flagRemove");b.addEvent("click",function(d){new Event(d).stop().preventDefault();c.removeClass("hasFlag").hide();this.updateTokens();GuideIntro.isModified()}.bind(this))}.bind(this));this.autocompleter=new Autocompleter.Local(this.flagInput,[],{postVar:"search",autoTrim:true,overflow:true,filterSubset:true,maxChoices:100,onSelection:function(b,d,e){if(!d){return}if(b){this.addFlag(b.get("text"))}}.bind(this)});this.updateTokens();this.flagInput.addEvents({focus:this.autocompleter.prefetch.bind(this.autocompleter),keypress:function(b){if(b.key=="enter"){new Event(b).stop().preventDefault();this.autocompleter.hideChoices();this.addFlag()}}.bind(this)})},addFlag:function(a){a=a?a:this.flagInput.value;a=a.toLowerCase();this.flags.each(function(c){var b=c.getElement("h4");if(b.get("text").toLowerCase()==a){this.flagInput.value="";c.addClass("hasFlag").show()}}.bind(this));this.flagInput.blur();this.updateTokens();GuideIntro.isModified()},updateTokens:function(){var b=[];var a=!this.saved;if(a){this.saved=[]}this.flags.each(function(c){if(!c.hasClass("hasFlag")){b.push(c.getElement("h4").get("text"))}else{if(a){this.saved.push(c.get("rel"))}}}.bind(this));this.autocompleter.tokens=b;this.autocompleter.cached=b},injectFlags:function(){$$(".injectedFlag").invoke("destroy");$$(".hasFlag").each(function(b){var a=b.get("rel");new Element("input",{type:"hidden",name:"intro[flags][]",value:a}).addClass("injectedFlag").inject(this.flagDiv)}.bind(this))},isModified:function(){var a=[];this.flags.each(function(b){if(b.hasClass("hasFlag")){a.push(b.get("rel"))}}.bind(this));if(a.length!=this.saved.length){return true}return this.saved.every(function(b){return a.contains(b)})}};
