// JavaScript Document

var SimpleTabs = Class.create();

SimpleTabs.prototype = {
	initialize: function(element) {
		this.tabs = [];
		this.element = $(element);
	},

	Create: function() {
		var options = Object.extend({
			hoverClass: "hover",
			currentClass: "current",
			linkIdDiff: "_link",
			currentTab: 0
			}, arguments[0] || {}							
		);
		
		this.tabs.options = options;
		
		//add the hover and click listeners
		//remove links location?
		var allTabs = this.element.getElementsByTagName("li");
		
		for(i=0;i<allTabs.length;i++) {
			allTabs[i].getElementsByTagName("A")[0].onclick = this._highlight.bindAsEventListener(this);
			allTabs[i].onmouseover = this._hoverOver.bindAsEventListener(this);
			allTabs[i].onmouseout = this._hoverOut.bindAsEventListener(this);
			allTabs[i].getElementsByTagName("A")[0].href = "javascript:void(0);";
			Element.hide(this._getContentId(allTabs[i].id));
		}
		
		this._clearAll();
		this._select(this.element.getElementsByTagName("li")[options.currentTab]);
		
	},
	
	_clearAll: function() {
		var allTabs = this.element.getElementsByTagName("li");
		
		for(i=0;i<allTabs.length;i++) {
			var contentName = this._getContentId(allTabs[i].id);
			if($(contentName)) {
				Element.hide(contentName);
			}
			
			Element.removeClassName(allTabs[i], this.tabs.options.currentClass);
		}
		
	},
	
	_highlight: function(event) {
		var element = Event.element(event);
		element = element.parentNode;
		this._select(element);
	},
	
	_select: function(elem) {
		this._clearAll();
		Element.addClassName(elem, this.tabs.options.currentClass);
		Element.show(this._getContentId(elem.id));
	},
	
	_getContentId: function(id) {	
		return id.replace(this.tabs.options.linkIdDiff,"");	
	},
	
	_hoverOver: function(event) {
		var element = Event.element(event);
		Element.addClassName(element, this.tabs.options.hoverClass);
	},
	
	_hoverOut: function(event) {
		var element = Event.element(event);
		Element.removeClassName(element, this.tabs.options.hoverClass);
	}
}