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));
  },
  activateById: function(id) {
    elm = this.menu[id]
    this.show(elm);
    this.menu.without(elm).each(this.hide.bind(this));
  },

  hide : function(elm) {
    $(elm).removeClassName('current');
    $(this.tabID(elm)).removeClassName('current');
  },

  show : function(elm) {
   $(elm).addClassName('current');
   $(this.tabID(elm)).addClassName('current');
  },
        
  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();
         }
 }
}


