var KeyboardNavigation=new Class({Implements:[Options,Events],options:{keys:{},eventSource:document,eventFilter:null},keys:{},initialize:function(a){this.setOptions(a);this.addKeys(this.options.keys);if(!this.options.eventFilter){this.options.eventFilter=this.filterInputs}this.options.eventSource.addEvent("keydown",this.handleKeyup.bindWithEvent(this))},handleKeyup:function(b){if(this.options.eventFilter(b)){var a=this.getKeyFromEvent(b);this.checkAndDispatch(a,b)}},addKeys:function(a){Hash.each(a,this.addKey,this)},addKey:function(f,b){var e=b.split("-");var c=e.pop();var a=e.sort().join("").toUpperCase();var d=a+c;this.keys[d]=f},getKeyFromEvent:function(c){var a=["alt","control","meta","shift"];var b=[];a.each(function(d){if(c[d]){b.push(d.charAt(0).toUpperCase())}});return b.join("")+c.key},checkAndDispatch:function(a,b){if(a in this.keys){this.keys[a](b);b.stop()}},filterInputs:function(a){return !["INPUT","TEXTAREA"].contains(a.target.tagName)}});var UpDownNavigation=new Class({Implements:[Events,Options],options:{prevKey:"k",topKey:"S-k",nextKey:"j",bottomKey:"S-j",eventSource:document,scrollContainer:window,eventFilter:null,items:[],scrollContext:8,scrollDuration:0,scrollEase:300},items:[],currentPosition:0,initialize:function(a){this.setOptions(a);var b={};b[this.options.prevKey]=this.handlePrev.bind(this);b[this.options.topKey]=this.handleTop.bind(this);b[this.options.nextKey]=this.handleNext.bind(this);b[this.options.bottomKey]=this.handleBottom.bind(this);this.keymapper=new KeyboardNavigation({keys:b,eventSource:this.options.eventSource,eventFilter:this.options.eventFilter});this.handleScroll=this.handleScroll.bind(this);this.setUpdateOnScroll(true);this.addItems(this.options.items);this.currentPosition=this.calculatePosition()},handlePrev:function(){var a=Math.max(0,this.currentPosition-1);if(a!=this.currentPosition){this.currentPosition=a;this.jumpToPosition(a)}},handleTop:function(){if(this.currentPosition!=0){this.currentPosition=0;this.jumpToPosition(0)}},handleNext:function(){var a=Math.min(this.items.length-1,this.currentPosition+1);if(a!=this.currentPosition){this.currentPosition=a;this.jumpToPosition(a)}},handleBottom:function(){var a=this.items.length-1;if(a!=this.currentPosition){this.currentPosition=a;this.jumpToPosition(a)}},handleScroll:function(){this.setUpdateOnScroll(false);var b=this.options.scrollContainer.getScroll().y;var a=function(){var d=this.options.scrollContainer.getScroll().y;var c;if(d==b){this.setUpdateOnScroll(true);c=this.calculatePosition();if(c!=this.currentPosition){this.currentPosition=c;this.fireEvent("setposition",[this.items[this.currentPosition].el,this.currentPosition])}}else{b=d;window.setTimeout(a,this.options.scrollEase)}}.bind(this);window.setTimeout(a,this.options.scrollEase)},jumpToPosition:function(b){var a=this.items[b].el;this.setUpdateOnScroll(false);this.fireEvent("beforejump",a);a.jumpTo(this.options.scrollContext,this.options.scrollDuration,function(){this.setUpdateOnScroll(this.items.length>0)}.bind(this))},addItems:function(a){this.items=this.items.concat(a.map(function(b){return{el:b,top:b.getCoordinates(this.options.scrollContainer).top}},this))},calculatePosition:function(){var a=this.options.scrollContainer.getScroll().y;var b,c;for(b=0;b<this.items.length;b++){c=this.items[b];if(c.top>a){return b}}return b-1},setUpdateOnScroll:function(b){var a=b?"addEvent":"removeEvent";this.options.scrollContainer[a]("scroll",this.handleScroll)}});window.addEvent("domready",function(){when($("guideIntroText"),function(e){e.truncateByChildren({y:200})});$$("#stepNavigation .disabledButton").each(function(e){e.addEvent("click",function(f){f.stop()}.bindWithEvent())});var d=new UpDownNavigation({items:$$("#guideIntro").concat($$(".step")),onBeforejump:function(){var f=8;var e;if(e=$("notifications")){f+=e.getSize().y}d.options.scrollContext=f}});$$(".editAuthor").each(function(e){new SingleFieldEditor(e,"/Guide/JSON/user-finder",{width:300,minLength:3,field:"guide_author",getValue:function(f){return f.title+" ("+f.id+")"}})});var b=function(e,h){var f=h.getElement("img");f.dispose().hide();e.show().inject(h);var g=ImageMenu.getMenu(f);if(g){g.disable();g=ImageMenu.getMenu(e);if(!g){g=ImageMenu.installMenu(e);e.addClass("hasMenu")}g.enable()}};var c=function(j,l){if($(j.target).get("tag")!="img"){return}if(l.hasClass("noImage")){return}var f=l.getElement("img");var i=f.getProperty("class");var k=i.match(/has(Huge|Large|Standard)/);if(k){k=k[1].toLowerCase();var h=f.get("src");var e=h.replace(/[a-zA-Z]+$/,k);e=e.replace(/(static\d)/,"static4");var g=["toolbar=no","width=816","height=616"];window.open(e,"_blank",g.join(","))}};$$(".step[id!=endOfGuideDiv]").each(function(g){var h=g.getElement(".stepImage");var f=g.getElements(".stepThumb");h.addEvent("click",c.bindWithEvent(null,h));if(f.length>0){var e=f[0].getElement('img[alt^="standard"]');f.each(function(j){var i=j.getElement('img[alt^="standard"]');j.addEvents({mouseenter:b.pass([i,h]),click:c.bindWithEvent(null,j)})})}});if($chk($("wasHelpfulForm"))){var a=new FormManager($("wasHelpfulForm"));a.addSubmitHandler(function(){Auth.required({from:$$(".wasHelpfulButton"),message:"You must be logged in to record that you completed a repair.",onAuthorize:function(){new Request.AjaxIO("handleUserSuccess",{onSuccess:function(e){if(e.itWorked){$("userDidNotHaveSuccess").setStyle("display","none");$("userDidHaveSuccess").setStyle("display","")}else{$("userDidNotHaveSuccess").setStyle("display","");$("userDidHaveSuccess").setStyle("display","none")}if(e.fail){Modal.alert(e.fail)}}}).send()}.bind(this)})})}});