
var TabsManager = Class.create();

Object.extend(TabsManager, {

  instances:[],
  
  load: function(a, container, tab, hash, alwaysRefresh){
    new Ajax.Updater(container, window.location.href, { parameters:{ActionType:'LoadTab', TabId:tab, ControlHash:hash} });
    if(!alwaysRefresh){ a.onclick = null; }
  },
  
  find: function(instanceId){
    return TabsManager.instances.find(function(tm){ return tm.id == instanceId; });
  },
  
  selectTab: function(instanceId, tabId){
    var tm = TabsManager.find(instanceId);
    if(tm){ tm.select(tabId); }
  }
  
});

TabsManager.prototype = {

  initialize: function(el){
    this.id = el;
    this.tabs = [];
    TabsManager.instances.push(this);
    var _this = this;
   // if($(el)) { 
      $(el).getElementsBySelector('a').each(function(a){ 
        var tabId = a.href.split('#')[1];
        _this.tabs.push(tabId);
        Event.observe(a, 'click', function(e){ 
          Event.stop(e); 
          _this.select(tabId.substring(el.length + 1));
        }, true);
      });
    //}
  },
  
  select: function(tabId){
    var contentId = this.id + '_' + tabId;
    var tabList = $(this.id);
    var lis = tabList.getElementsBySelector('li');
    lis.each(function(el){ el.removeClassName('current'); });
    lis.first().removeClassName('firstcurrent');
    lis.last().removeClassName('lastcurrent');
    this.tabs.each(Element.hide);
    var a = tabList.getElementsBySelector('a[href="#'+contentId+'"]')[0];
    if(a){
      $(contentId).show();
      a.parentNode.addClassName((a.parentNode == lis.first()) ? 'firstcurrent' : 'current');
      a.blur();
    }
  }
  
}