var mootabs = new Class({
	
	initialize: function(element, options) {
		this.options = Object.extend({
			width:				773,
			height:				175,
			changeTransition:	Fx.Transitions.bounceOut
		}, options || {});
		
		this.el = $(element);
		this.id = element;
		this.tabPanels = $$('#' + this.id + ' .mootabs_title');
		this.tabPanel = this.tabPanels[0];
		
		this.el.setStyle('width', this.options.width + 'px');
		
		$$('#' + this.id + ' div.mootabs_panel').each(function(panel) {
			panel.setStyles({
				height: this.options.height + 'px',
				width: this.options.width + 'px'
			});
		}.bind(this));
		
		this.tabs = $$('#' + this.id + ' a');
		
		
		this.tabs.each(function(tab) {
			tab.addEvent('click', function() {
				this.activate(tab);
			}.bind(this));
		}.bind(this));
		$$('#' + this.id + ' .mootabs_title').getFirst().addClass('active');
		$$('#' + this.id + ' div.mootabs_panel').getFirst().addClass('active');
	},
	
	activate: function(tab) {
		
		var linkName = tab.getProperty('href').split('#')[1];
		this.tabs.each(function(tab) {
			tab.removeClass('active');
		});
		tab.addClass('active');
		
		
		$$('#' + this.id + ' div.mootabs_panel').each(function(panel) {
			panel.removeClass('active');
		});
		
		
		$(linkName).addClass('active');
		$(linkName).effect('height', {duration:1000, transition: this.options.changeTransition}).start(0, this.options.height);
	},
	
	setActive: function(tabAnchor) {
		this.tabToActivate = tabAnchor;
		$$('#' + this.id + ' .mootabs_title').getChildren()[0].each(function(tabLi) {
			if(tabLi.getFirst().getProperty('href') == '#' + this.tabToActivate)
			{
				this.activate(tabLi.getFirst());
			}
		}.bind(this));
	}
	
});
