var Shift=new Class({Implements:[Events,Options],options:{transition:Fx.Transitions.Linear,orientation:'horizontal',duration:300},initialize:function(container,options){this.setOptions(options);this.container=container;this.index=null;switch(this.options.orientation){case'horizontal':this.mode={axe:'x',offset:'width',direction:'margin-left'};break;case'vertical':this.mode={axe:'y',offset:'height',direction:'margin-top'};break};this.scroller=this.container.getElement('div.scroller');this.step=this.scroller.getElements('div.step');var size=0;this.step.each((function(step){size+=step.getSize()[this.mode.axe]}).bind(this));this.scroller.setStyle(this.mode.offset,size);this.fx=new Fx.Tween(this.scroller,{transition:this.options.transition,duration:this.options.duration,link:'cancel'})},change:function(initialize){this.fireEvent('onChange',[this.index,initialize])},next:function(){this.to(this.index+1)},preview:function(){this.to(this.index-1)},to:function(index,initialize){if(index<0||index>this.step.length-1)return this;var margin=-this.step[index].getPosition()[this.mode.axe]+this.scroller.getPosition()[this.mode.axe];if(initialize){this.scroller.setStyle(this.mode.direction,margin);this.index=index;this.change(initialize)}else this.fx.start(this.mode.direction,margin).chain((function(){this.index=index;this.change(initialize)}).bind(this));return this}})
window.addEvent('domready',function(){var menu=$('menu');if(!menu)return;var step,index=new URI().getData('step','fragment'),button=menu.getElements('a'),navigation=$('navigation'),notion=$('notion');if(navigation)navigation=new Fx.Tween(navigation,{duration:300});if(notion)notion=new Fx.Tween(notion,{duration:300});step=new Shift($('shift'),{onChange:function(index,initialize){if(!initialize&&notion)notion.start('margin-top',-15);button.removeClass('selected');button[index].addClass('selected');var reference=this.step[index].get('ref');if(navigation&&reference){navigation.element.empty();reference.split('|').each(function(value,index){if(index==0)button[value].addClass('selected');new Element('a',{text:'Page '+(index+1)}).addEvent('click',function(){step.to(value)}).inject(navigation.element)});navigation.start('margin-top',-15)};new URI().setData({step:index},false,'fragment').go()},transition:Fx.Transitions.Expo.easeIn,orientation:'vertical',duration:500}).to(index||0,true);History.addEvent('onChange',function(){var index=new URI(window.location.href).getData('step','fragment');if(step&&index&&step.index!=index)step.to(index)});button.each(function(element,index){element.setHref().addEvent('click',function(){if(index==step.index)return;if(navigation)navigation.start('margin-top',0);if(notion){notion.start('margin-top',0).chain(function(){step.to(index)})}else step.to(index)})})})