
	var majTabs = new Class({
		Implements: [Options],
		options: {
			bookmarks: false,
			contents:  false,
			onSwitch:  function(){}
		},
		activeBookmark: false,
		activeContent:  false,
		initialize: function(options)
		{
			this.setOptions(options);
			
			var object = this;
			
			if (!this.options.bookmarks || !this.options.contents){
				throw 'You need to configure bookmarks and contents.';
			}
			
			var bookmarks = this.options.bookmarks;
			var contents  = this.options.contents;
			
			var anchor = window.location.hash;
			
			bookmarks.each(function(tab, i)
			{
				if (!i)
				{
					object.activeBookmark = tab;
					object.activeContent  = contents[i]; 
				}
				
				if (!contents[i]){
					throw 'You need to provide two pair of bookmark to content collections.';
				}
				
				if (tab.hasClass('active')){
					object.activeBookmark = tab;
					object.activeContent  = contents[i];
				}
				else {
					contents[i].setStyle('display', 'none');
				}
				
				var link = contents[i].get('anchor');
				if (link == anchor)
				{
					object.activeBookmark = tab;
					object.activeContent  = contents[i];
				}
				
				tab.addEvent('click', function(){
					if (tab == object.activeBookmark) return false;
					
					object.activeBookmark.removeClass('active');
					tab.addClass('active');
					object.activeBookmark = tab;
					
					object.activeContent.setStyle('display', 'none');
					contents[i].setStyle('display', 'block');
					object.activeContent = contents[i];
					
					object.options.onSwitch(object);
				});
			});
			
			if (!object.activeBookmark.hasClass('active')) object.activeBookmark.addClass('active');
			object.activeContent.setStyle('display', 'block');
		}
	});
