document.observe("dom:loaded", runOnDOMready);

function runOnDOMready() { 

	/*var columns = $$('.test');
	var max_height = columns.invoke('getHeight').max();
	columns.invoke('setStyle', {minHeight: (max_height) + 'px'});*/
	
	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.headings = $A(this.element.getElementsByTagName('h3'));
			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).up().removeClassName('active-tab');
			$(this.tabID(elm)).removeClassName('active-tab-body');
		},
		show : function(elm) {
			$(elm).up().addClassName('active-tab');
			$(this.tabID(elm)).addClassName('active-tab-body');
			$(this.tabID(elm)).down('h3').addClassName('hidden');
		},	
		tabID : function(elm) {
			return elm.href.match(/#(\w.+)/)[1];
		},
		getInitialTab : function() {
			this.menu.each(this.hide.bind(this));
			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);
}
