﻿if (typeof(FOH) == "undefined") FOH = {};





FOH.Tabs = Class.create({
	lastActive: false,
	tabs: {},

	initialize: function(triggers, contents) {
		triggers.each(function(trigger, i) {
			var id = contents[i].identify();
			var tab = {
				id: id,
				triggers: [trigger],
				content: contents[i]
			};

			this.setTrigger(trigger, id);
			
			if (i==0) this.first = id;
			if (i==triggers.length-1) this.last = id;

			this.tabs[id] = tab;
		}.bind(this));
	},
	
	setTrigger: function(trigger, id) {
		trigger.observe('click', this.activate.bind(this, id));
	},
	
	deactivate: function(id) {
		var tab = this.tabs[id];
		tab.content.removeClassName('active');
		tab.triggers.each(function(trigger) {
			trigger.removeClassName('active');
		});
	},
	
	activate: function(id) {
		if (id != this.lastActive.id) {
			if (this.lastActive) this.deactivate(this.lastActive.id);

			var tab = this.tabs[id];
			tab.content.addClassName('active');
			tab.triggers.each(function(trigger) {
				trigger.addClassName('active');
			});

			this.lastActive = tab;
		}
	},

	showContent: function(content) {
		this.activate(content.identify());
	},
	
	showFirst: function() {
		this.activate(this.first);
	},
	
	showLast: function() {
		this.activate(this.last);
	}

});
