
var Fabtabs = Class.create();
Fabtabs.prototype = {
    initialize : function(element) {
        this.element = $(element);
        if (this.element != null) {
            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);

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