/*

 * Fabtabulous! Simple tabs using Prototype

 * http://tetlaw.id.au/view/blog/fabtabulous-simple-tabs-using-prototype/

 * Andrew Tetlaw

 * version 1.1 2006-05-06

 * http://creativecommons.org/licenses/by-sa/2.5/

 */

var Fabtabs = Class.create();



Fabtabs.prototype = {

	initialize : function(element) {

		this.element = $(element);

		var options = Object.extend({}, arguments[1] || {});

		this.menu = $A(this.element.getElementsByTagName('a'));

		this.show(this.getInitialTab());

		this.menu.each(this.setupTab.bind(this));

	},

	setupTab : function(elm) {

		Event.observe(elm,'click',this.activate.bindAsEventListener(this),false)

	},

	activate :  function(ev) {

		var elm = Event.findElement(ev, "a");

		//Event.stop(ev);

		this.show(elm);

		this.menu.without(elm).each(this.hide.bind(this));

	},

	hide : function(elm) {

		$(elm).removeClassName('active-tab');

		$(this.tabID(elm)).removeClassName('active-tab-body');

	},

	show : function(elm) {

		$(elm).addClassName('active-tab');

		$(this.tabID(elm)).addClassName('active-tab-body');



	},

	tabID : function(elm) {

		return elm.href.match(/#(\w.+)/)[1];

	},

	getInitialTab : function() {

		if(document.location.href.match(/#(\w.+)/)) {

			var loc = RegExp.$1;

			var elm = this.menu.find(function(value) { return value.href.match(/#(\w.+)/)[1] == loc; });

			return elm || this.menu.first();

		} else {

			return this.menu.first();

		}

	}

}



Event.observe(window,'load',function(){ new Fabtabs('tabs'); },false);

