var Tabs = new Class
(
	{
		initialize: function(element, options) 
		{
			this.element=$(element);
			this.elementId=element;
			
			this.accordion=options.accordion || null;
			
			this.activeTabTitle=options.active;
			
			this.titles=$$('#'+this.elementId+' div.tab');
			
			this.tabs=$$('#'+this.elementId+' div.tabBody div.tabs');
			
			this.titles.each(function(item) 
			{
				item.addEvent('click', function()
				{
					this.activate(item);
					
				}.bind(this));
				
				item.addEvent('mouseover', function()
				{
					if (item.get('title')!=this.activeTabTitle) item.addClass('over');
				}.bind(this));
				
				item.addEvent('mouseout', function()
				{
					if (item.get('title')!=this.activeTabTitle) item.removeClass('over');
				}.bind(this));
				
				if (item.get('title')==this.activeTabTitle) 
				{
					this.lastActiveTab=item;
					this.activeTab=item;
					this.activate(item);
				}
				
			}.bind(this));
			
		},
		
		activate: function(item)
		{
			if (this.lastActiveTab.hasClass('activeTab'))
			{
				this.lastActiveTab.removeClass('activeTab');
				this.lastActiveTab.addClass('tab');
			}
			
			if (this.lastActiveTab.hasClass('tab'))
			{
				item.removeClass('tab');
				item.addClass('activeTab');
			}
			
			if (this.lastActiveTab.hasClass('over')) this.lastActiveTab.removeClass('over');
					
			this.lastActiveTab=item;
			this.activeTabTitle=item.get('title');
			
			this.tabs.each(function(tabItem)
			{
				tabItem.setStyle('display','none');
			});
			
			$(item.get('title')).setStyle('display','block');
			
			if ($defined(this.accordion) && this.accordion.previous!=-1)
			{
				this.accordion.elements[this.accordion.previous].setStyle('height','auto');
			}
		}
	}
);
