
var TabsManager = function(el){
  this.initialize(el);
};

TabsManager.instances = [];

TabsManager.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; }
};

TabsManager.find = function(instanceId){
  return TabsManager.instances.find(function(tm){ return tm.id == instanceId; });
};

TabsManager.prototype = {

  initialize: function(el){
    this.id = el;
    this.tabs = [];
    TabsManager.instances.push(this);
    var _this = this;
    el = document.getElementById(el);
    var links = el.getElementsByTagName('A');
    for(var i=0; i < links.length; i++){
      var tag = links[i];
      var tabId = tag.href.split('#')[1];
      _this.tabs.push(tabId);
      tag.onclick = (function(tabId){
        return function(){
            _this.select(tabId.substring(el.length + 1));
            return false;
          };
        })(tabId);
    }
  },
    
  select: function(tabId){
    var contentId = this.id + '_' + tabId;
    var tabList = document.getElementById(this.id);
    var lis = tabList.getElementsByTagName('LI');
    var i = lis.length;
    // lis[0].className = lis[0].className.replace('firstcurrent', '');
    while(i--){
      var li = lis[i];
      li.className = li.className.replace('current', ''); 
    }
    i = this.tabs.length;
    while(i--){ 
      document.getElementById(this.tabs[i]).style.display = 'none'; 
    }
    var links = tabList.getElementsByTagName('a');
    document.getElementById(tabId).style.display = 'block';
    i = links.length;
    while(i--){
      var a = links[i];
      if(a.href.indexOf(tabId) > -1){
        // a.parentNode.className += (i === 0) ? ' firstcurrent' : ' current';
        a.parentNode.className += ' current';
        a.blur();
        break;
      }
    }

  }
  
}