var MGFX=MGFX||{};
MGFX.Rotater=new Class({
	Implements: [Options,Events],
	options: {
		slideInterval:4000,
		transitionDuration:1000,
		startIndex:0,
		autoplay:true
	},
	
	initialize:function(B,A){
		this.setOptions(A);
		this.slides=$$(B);
		this.createFx();
		this.showSlide(this.options.startIndex);
		if(this.slides.length<2){this.options.autoplay=false}
		if(this.options.autoplay){this.autoplay()}
		return this
	},
	
	toElement:function(){
		return this.container
	},
	
	createFx:function(){
		if(!this.slideFx){
			this.slideFx=new Fx.Elements(this.slides,{
				duration:this.options.transitionDuration})
			}
			this.slides.each(function(A){A.setStyle("display","none").setStyle("opacity",0)})
	},
	
	showSlide:function(B){
		var A={};
		this.slides.each(function(C,D){
			if(D==B&&D!=this.currentSlide){
				A[D.toString()]={display:'block',opacity:1}
			}else{
				A[D.toString()]={display:'none',opacity:0}
			}
		},this);
		this.fireEvent("onShowSlide",B);
		this.currentSlide=B;
		this.slideFx.start(A);
		return this
	},
		
	autoplay:function(){
		this.slideshowInt=this.rotate.periodical(this.options.slideInterval,this);
		this.fireEvent("onAutoPlay");
		return this
	},
	
	stop:function(){
		$clear(this.slideshowInt);
		this.fireEvent("onStop");
		return this
	},
	
	pause:function(){
		//alert('pause');
		$clear(this.slideshowInt);
		return this
	},
		
	resume: function() {
		//alert('resume');
		this.slideshowInt=this.rotate.periodical(this.options.slideInterval,this);
		this.fireEvent("onAutoPlay");
	},
	
	rotate:function(){
		current=this.currentSlide;
		next=(current+1>=this.slides.length)?0:current+1;
		this.showSlide(next);
		this.fireEvent("onRotate",next);
		return this
	}
});
var MGFX=MGFX||{};MGFX.Tabs=new Class({Extends:MGFX.Rotater,options:{slideInterval:6000,transitionDuration:300,autoplay:false},initialize:function(B,C,A){this.tabs=$$(B+" li");this.tabsA=$$(B+" a");this.createTabs();this.parent(C,A);return this},createTabs:function(){this.tabsA.each(function(B,A){B.addEvent("click",function(C){C.stop();this.showSlide(A);this.stop()}.bind(this))}.bind(this))},activateTab:function(A){this.tabs.removeClass("active");this.tabsA.removeClass("active");this.tabs[A].addClass("active");this.tabsA[A].addClass("active")},showSlide:function(A){if(A==this.currentSlide)return;this.activateTab(A);this.parent(A);return this}});
