var TabSet = Class.create({
	initialize: function(wrapper_id) {
		var self = this;
		this.wrapper = $(wrapper_id);
		this.tabs = this.wrapper.select('.tabs li');
		this.tabs.each(function(li) {
			li.observe('click', function() {
				self.on_click_tab(li);
			});
		});
		this.tabbables = this.wrapper.select('.tabbable');
		var default_tab = this.tabs.detect(function(li) {
			return li.hasClassName('default');
		});
		if (default_tab) {
			this.hide_all_except(default_tab);
		} else {
			this.hide_all_except(tabs[0]);
		}
	},
	
	hide_all_except: function(tab) {
		this.tabs.each(function(li) {
			li.removeClassName('selected');
		});
		tab.addClassName('selected');
		this.tabbables.each(function(tabbable) {
			tabbable.hide();
		});
		this.tabbables.detect(function(tabbable) {
			return 'tab_' + tabbable.id == tab.id;
		}).show();
	},
	
	on_click_tab: function(li) {
		this.hide_all_except(li);
	}
});