/**
 * Tabs.js - Tab that content!
 * 
 * @author  Webstores <info at webstores dot nl>
 *           Copyright (c) Webstores internet totaalbureau <http://www.webstores.nl/>
 */

var Tabs = function(id, options) {
	var tabs,
		activeTab,
		selectedCls = options.selectedCls ? options.selectedCls : 'selected',
		listener = options.listener ? options.listener : 'click';
	
	return {
		initialize: function() {
			tabs = get(id).getElementsByTagName('li');
			this.initEvents();
		},
		initEvents: function() {
			for(var i = 0; i < tabs.length; i++) {
				var self = this;
				var tab = tabs[i];
				var tabLink = tab.getElementsByTagName('a')[0];
				tab.container = get(tabLink.href.split('#')[1]);
				
				if(WS.hasClass(tab, selectedCls))
					activeTab = tab;
				else
					WS.hide(tab.container);
				
				WS.Event.addEvent(tab, listener, function(e) {
					WS.Event.stopEvent(e);
					self.showTabContent(this);
				});
			}
		},
		showTabContent: function(el) {
			if(el == activeTab)
				return;
			
			WS.hide(activeTab.container);
			WS.removeClass(activeTab, selectedCls);
			WS.show(el.container);
			WS.addClass(el, selectedCls);
			activeTab = el;
		}
	}
}

