var Slideshow=new Class({Implements:[Options],animating:false,elementWidth:null,direction:null,options:{direction:"horizontal or vertical",slideUnit:"element",slideAmount:1,slideType:"regular",slideDelay:2000,transition:Fx.Transition.linear,direction:1,autoStart:false,controls:null,controlType:"click"},initialize:function(b,a){this.setOptions(a);this.options.container=b;this.direction="left";window.addEvent("load",this._setupSlider.bind(this))},_setupSlider:function(){elements=$$("div#slideshow ul li.slide");innerWidth=0;for(var a=0;a<elements.length;a++){if(!this.elementWidth){this.elementWidth=elements[a].getSize().x}innerWidth+=elements[a].getSize().x}this._inner=$("slideshow-inner");if(this.options.slideType=="carousel"){var c=this._inner.getFirst();var b=c.clone();b.inject(this._inner);innerWidth+=b.getSize().x}this._inner.setStyle("width",innerWidth);if(this.options.controls){$(this.options.controls.left).addEvent(this.options.controlType,this._handleRight.bind(this));$(this.options.controls.right).addEvent(this.options.controlType,this._handleLeft.bind(this));if(this.options.controlType=="mouseover"){$(this.options.controls.left).addEvent("mouseout",this._cancelFx.bind(this));$(this.options.controls.right).addEvent("mouseout",this._cancelFx.bind(this))}}else{this._autoStart()}},_cancelFx:function(){this.myFx.cancel()},_handleLeft:function(){this._moveLeft()},_handleRight:function(){this._moveRight()},_moveLeft:function(a){var c=0;var b={transition:Fx.Transitions.linear,fps:25};switch(this.options.slideUnit){case"element":c=this.elementWidth*this.options.slideAmount;break;case"pixel":break}if(this.options.complete=="autoStart"){b.onComplete=function(){this._autoStart()}.bind(this).delay(4000)}else{if(this.options.complete=="doMove"){b.onComplete=function(){this._moveLeft()}.bind(this)}}this.myFx=new Fx.Morph(this._inner.id,b);left=this._inner.getStyle("left").toInt();width=this._inner.getStyle("width").toInt();right=left+width;if(this.options.slideType=="regular"&&right-this.elementWidth<=$(this.options.container).getCoordinates().width){this.myFx.start({left:[left,$(this.options.container).getCoordinates().width-width]})}else{this.myFx.start({left:[(this._inner.getPosition().x-$(this.options.container).getPosition().x),((this._inner.getPosition().x)-(c+$(this.options.container).getPosition().x))]})}},_moveRight:function(a){var c=0;switch(this.options.slideUnit){case"element":c=this.elementWidth*this.options.slideAmount;break;case"pixel":alert("pixel");break}var b={transition:Fx.Transitions.linear,fps:25};if(this.options.complete=="autoStart"){b.onComplete=function(){this._autoStart()}.bind(this).delay(4000)}else{if(this.options.complete=="doMove"){b.onComplete=function(){this._moveRight()}.bind(this)}}this.myFx=new Fx.Morph(this._inner.id,b);left=this._inner.getStyle("left").toInt();width=this._inner.getStyle("width").toInt();right=left+width;if(this.options.slideType=="regular"&&(-1)*left<this.elementWidth){this.myFx.start({left:[(this._inner.getPosition().x-$(this.options.container).getPosition().x),($(this.options.container).getPosition().x-$(this.options.container).getPosition().x)]})}else{this.myFx.start({left:[(this._inner.getPosition().x-$(this.options.container).getPosition().x),((this._inner.getPosition().x)+(c-$(this.options.container).getPosition().x))]})}},_autoStart:function(){var b=this._inner.getCoordinates();var a=$(this.options.container).getCoordinates();switch(this.options.slideType){case"regular":if((b.left)==(a.left)){this.direction="left"}else{if((b.left+b.width)==(a.left+a.width)){this.direction="right"}else{}}if(this.direction=="left"){this._moveLeft({complete:"_autoStart"})}else{this._moveRight({complete:"_autoStart"})}break;case"carousel":if((b.left+b.width)==(a.left+this.elementWidth)&&this.direction=="left"){this._inner.setStyle("left",a.left-a.left)}else{if((b.left+b.width)==(a.left)&&this.direction=="right"){this._inner.setStyle("left",a.left-(b.width-this.elementWidth))}else{}}if(this.direction=="left"){this._moveLeft({complete:"_autoStart"})}else{this._moveRight({complete:"_autoStart"})}break}}});