/*
 * 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.menu = this.element.select('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));
    set_cookie('saved_tab', elm.href);
  },
  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() {
    var active_tab = get_cookie('saved_tab');
    if (active_tab == '') active_tab = document.location.href;

    if (active_tab.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);
