/*
 * 	Sprokets JavaScript Library
 *  (c) 2007 Sprokets LLC
 *  
 *  Author: Michael Duff, Minch Design Inc <mike@minchdesign.com>
 *  QuickTab.js, version .8.01
 *
 *  [ copyright statement  ]
 *
/*-------------------------------------------------------------------*/

var QuickTab = new Class({

	initialize: function(el, options) {
		
		this.options = Object.extend({
            tabClass: 'tabs',
            contentClass: 'content',
            selectedClass: 'selected',
			selectedTab: 0,
			linkIdDiff: 'tab_'
        }, options || {});
		
		this.setOptions(this.options);
		
		this.el = $(el);
		if(this.el) {
			this._setUp();
		}
		
		
	},
	
	_setUp: function() {
		this._clearAll();
		var el = this.el;
		var tabContainer = $E('.'+this.options.tabClass, el);
		var allTabs = tabContainer.getElementsByTagName("li");

		$each(allTabs, function(el){
			var elLink = $(el.getElementsByTagName("A")[0]);
			elLink.href = "javascript:void(0);";
			elLink.addEvent('click', this._tabClick.bindWithEvent(this, el));			 
		
		}, this);
		
		if(allTabs[this.options.selectedTab]) {
			this._tabClick(null, allTabs[this.options.selectedTab]);	
		}
	},
	
	_tabClick: function(event, el) {
		this._clearAll();
		this._addSelected(el);
		this._showContent(el);
	},
	
	_clearAll: function() {
		var el = this.el;
		var tabContainer = $E('.'+this.options.tabClass, el);
		var allTabs = tabContainer.getElementsByTagName("li");
		
		$each(allTabs, function(el){
			this._removeSelected(el);
			this._hideContent(el);			 
		}, this);
	},
	
	_removeSelected: function(el) {
		$(el).removeClass(this.options.selectedClass);
	},
	
	_addSelected: function(el) {
		el.addClass(this.options.selectedClass);
	},
	
	_hideContent: function(el) {
		var el = this._getContent(el);
		el.setStyle('display', 'none');
	},
	
	_showContent: function(el) {
		var el = this._getContent(el);
		el.setStyle('display', 'block');
	},
	
	_getContent: function(el) {
		return $(el.id.replace(this.options.linkIdDiff,""));	
	},
	
	blank: function() {} /* just so as I add more i dont have to do commas */
	
});

QuickTab.implement(new Options);
QuickTab.implement(new Events);