var GTSteps=new Class({Implements:[Options,Events],options:{prevButton:"#stagePrev",nextButton:"#stageNext",boxSelector:"li img",startStep:2},initialize:function(a,b){this.setOptions(b);this.boxHolder=$$(a)[0];if(this.boxHolder){this.prevButton=$$(this.options.prevButton);this.nextButton=$$(this.options.nextButton);this.prevButton.addEvent("click",function(c){this.showPrev()}.bindWithEvent(this));this.nextButton.addEvent("click",function(c){this.showNext()}.bindWithEvent(this));this.boxes=this.boxHolder.getElements(this.options.boxSelector);this.currentStep=this.options.startStep.limit(1,this.boxes.length);this.activeBox=this.boxes[(this.currentStep-1)];this.animationDone=true;this.prepareContainers()}},showNext:function(){this.show(this.currentStep+1)},showPrev:function(){this.show(this.currentStep-1)},prepareContainers:function(){this.boxes.each(function(b,a,c){this.addBoxEvents(b)},this)},show:function(d){var b=(d.toInt()).limit(1,this.boxes.length);if(!$type(b)){b=1}var a=this.boxes[(b-1)];var c=(this.currentStep>b)?"prev":"next";if(this.activeBox==a){return}if(this.animationDone){this.animationDone=false;this.currentStep=b;this.prevButton.removeClass("inactive");this.nextButton.removeClass("inactive");if(1===b){this.prevButton.addClass("inactive")}if(this.boxes.length===b){this.nextButton.addClass("inactive")}if(this.activeBox){if("prev"===c){this.activeBox.fireEvent("hidePrev",[this.activeBox,a])}else{this.activeBox.fireEvent("hideNext",[this.activeBox,a])}}if("prev"===c){a.fireEvent("showPrev",[a,this.activeBox])}else{a.fireEvent("showNext",[a,this.activeBox])}this.activeBox=a}},addBoxEvents:function(a){a.addEvents({showNext:function(){var b=arguments[0];b.set("morph",{duration:"normal",onComplete:function(){this.animationDone=true;b.set("class","mainPos")}.bind(this)});b.morph(".mainPos")}.bind(this),showPrev:function(){var b=arguments[0];b.set("morph",{duration:"normal",onComplete:function(){this.animationDone=true;b.set("class","mainPos")}.bind(this)});b.morph(".mainPos")}.bind(this),hideNext:function(){var b=arguments[0];b.set("morph",{duration:"normal",onComplete:function(){this.animationDone=true;b.set("class","prevPos")}.bind(this)});b.morph(".prevPos")}.bind(this),hidePrev:function(){var b=arguments[0];b.set("morph",{duration:"normal",onComplete:function(){this.animationDone=true;b.set("class","nextPos")}.bind(this)});b.morph(".nextPos")}.bind(this)})},toElement:function(){return this.activeStep}});