var iSlider=Class.create({islider:null,container:null,items:null,active:0,itemSize:1,viewportSize:1,numOfPages:1,itemMargin:0,peTimeout:10,pe:null,duration:.8,direction:'horizontal',initialize:function(element,options){this.islider=element;this.container=element.down('.islider-container');this.items=this.container.childElements();if(options&&options.direction=='vertical')this.direction='vertical';if(options&&options.itemMargin)this.itemMargin=options.itemMargin;this._resizeElements();this._addObservers();if(options&&options.timer){this.peTimeout=options.timer;this.pe=new PeriodicalExecuter(function(){this.next()}.bind(this),this.peTimeout)}},_resizeElements:function(){if(this.direction=='vertical'){this.viewportSize=this.islider.down('.islider-viewport').getHeight();if(this.items.length>0){this.itemSize=this.items[0].getHeight();this.container.setStyle({height:(this.itemSize*this.items.length)+'px'})}}else{this.viewportSize=this.islider.down('.islider-viewport').getWidth();if(this.items.length>0){this.itemSize=this.items[0].getWidth();this.container.setStyle({width:(this.itemSize*this.items.length)+'px'})}};this.numOfPages=Math.ceil((this.itemSize*this.items.length)/(this.viewportSize+this.itemMargin))},_addObservers:function(){if(this.islider.down('a.islider-previous'))this.islider.down('a.islider-previous').observe('click',this.previous.bind(this));if(this.islider.down('a.islider-previous'))this.islider.down('a.islider-next').observe('click',this.next.bind(this));this.items.each(function(item,index){item.observe('click',function(e){e.stop();if(e.element(e))e.element(e).fire("islider:getitem",{itemIndex:index})})})},next:function(event){if(event){event.stop();if(this.pe)this.restartPeriodicalExecuter()};this.gotoIndex(this.active+1)},previous:function(event){if(event){event.stop();if(this.pe)this.restartPeriodicalExecuter()};this.gotoIndex(this.active-1)},gotoIndex:function(index){if(index<0){index=this.numOfPages-1}else if(index>=this.numOfPages)index=0;document.fire("islider:gotoindex",{itemIndex:index});if(this.direction=='vertical'){this.container.morph('margin-top: -'+(this.viewportSize*index)+'px;',{duration:this.duration,transition:Effect.Transitions.easeOutExpo,afterFinish:function(){this.active=index}.bind(this)})}else{var marginLeft=this.viewportSize*index;if(marginLeft!=0)marginLeft=marginLeft+((index%(this.viewportSize+this.itemMargin))*this.itemMargin);this.container.morph('margin-left: -'+marginLeft+'px;',{duration:this.duration,transition:Effect.Transitions.easeOutExpo,afterFinish:function(){this.active=index}.bind(this)})}},restartPeriodicalExecuter:function(){if(!this.pe)return;this.pe.stop();this.pe=new PeriodicalExecuter(function(){this.next()}.bind(this),this.peTimeout)}})
