/* * 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);