window.addEvent('domready', function() {

var MGFX = MGFX || {};

MGFX.Rotater = new Class({
	Implements: [Options,Events],
	options: {
		slideInterval:4000,
		transitionDuration:500,
		startIndex:0
	},
	initialize: function(BenB,BenA){
		this.setOptions(BenA);
		this.slides=$$(BenB);
		this.createFx();
	},
	toElement: function(){ return this.container; },
	createFx: function() {
		if(!this.slideFx){
			this.slideFx = [];
                	this.slides.each(function(BenC,BenD){
				this.slideFx[BenD] = new Fx.Morph(BenC);
                	},this);
		}
	},
	ShowSlide: function(BenB){
		var BenA={};
                /** C is the entry, D is the index **/
		this.slides.each(function(BenC,BenD){
			if(BenD==BenB){
				BenA[BenD] = '.morph2';
			} else { 
				BenA[BenD] = '.morph1'; 
			};
		},this);
		this.fireEvent('onShowSlide', BenB);
		this.currentSlide=BenB;
                this.slides.each(function(BenC,BenD){
			this.slideFx[BenD].start(BenA[BenD]);
                },this);
		return this;
	}
});

MGFX.Tabs = new Class({
	Extends: MGFX.Rotater,
	initialize: function(BenB,BenC,BenA){
		this.tabs=$$(BenB);
		this.createTabs();
		this.parent(BenC,BenA);
		return this;
	},
	createTabs: function(){
		this.tabs.each(function(BenB,BenA){
			BenB.addEvent("click", function(BenC){
				BenC.stop();
				this.ShowSlide(BenA);
			}.bind(this))
		}.bind(this))
	},
	activateTab: function(BenA){
                this.tabs.each(function(item,index){
			this.tabs[index].erase('class');
		}.bind(this));
                this.tabs[BenA].set('class', 'tabon');
	},
	ShowSlide: function(BenA){
		this.activateTab(BenA);
		this.parent(BenA);
		return this;
	}
});

  var tabs = new MGFX.Tabs('ul#topnav li a', 'div.benslides', {});
});

