var PeopleSwitcher = {
  debug: false,
  
  activeEl: null,
  
  init: function() {
    this.onDomReady(this.startup);
  },
  
  startup: function() {
    var paneHolder = document.getElementById("people-holder");
    var panes = [];
    var tmp = paneHolder.childNodes;
    var maxH = 0;
    for (var i=0; i<tmp.length; i++) {
      if (tmp[i].nodeType == 1) {
        if (tmp[i].nodeName.toLowerCase() == 'div' && (' '+tmp[i].className+' ').match(/\sperson\s/)) {
          panes.push(tmp[i]);
          if (tmp[i].offsetHeight > maxH) {
            maxH = tmp[i].offsetHeight;
          }
        }
      }
    }
    
    paneHolder.style.height = maxH + 'px';
    paneHolder.style.position = 'relative';
    paneHolder.style.overflow = 'hidden';
    
    for (var i=0; i<panes.length; i++) {
      panes[i].style.position = 'absolute';
      panes[i].style.left = '0px';
      panes[i].style.top = '0px';
      panes[i].style.width = '100%';
      panes[i].style.visibility = 'hidden';
    }
    
    var menuHolder = document.getElementById('infobar-people-main');
    var links       = menuHolder.getElementsByTagName('a');
    var linkHolders = menuHolder.getElementsByTagName('li');
    
    for (var i=0; i<links.length; i++) {
      (function(link, pane) {
        if (pane) {
          $(link).addClass('disabled');
          $(link).addEvent('click', function() {
            PeopleSwitcher.selectElement(link,pane);
          }, false);
          
          if (i==0) {
            PeopleSwitcher.selectElement(link,pane);
          }
        }
      })(links[i], document.getElementById(links[i].href.replace(/^.*#/, '')));
    }
    
    //$(links[0]).fireEvent('click');
    
    //PeopleSwitcher.selectElement(panes[0]);
    
  },
  
  selectElement: function(link,pane) {
    if (this.activeEl) {
      this.activeEl[1].style.visibility = 'hidden';
      $(this.activeEl[0]).addClass('disabled');
      $(this.activeEl[0]).removeClass('selected');
    }
    this.activeEl = [link,pane];
    if (this.activeEl) {
      this.activeEl[1].style.visibility = 'visible';
      $(this.activeEl[0]).removeClass('disabled');
      $(this.activeEl[0]).addClass('selected');
    }
  },
  
  calcElementWidth: function(el) {
    var oldWidthStyle = el.style.width;
    el.style.width = "200px";
    var offsetWidth = el.offsetWidth;
    el.style.width = oldWidthStyle;
    return el.offsetWidth - (offsetWidth - 200);
  },
  
	addEvent: function(elm, evType, fn, useCapture){
		if (elm.addEventListener)
		{
			elm.addEventListener(evType, fn, useCapture);
			return true;
		} else if (elm.attachEvent) {
			var r = elm.attachEvent('on' + evType, fn);
			return r;
		} else {
			elm['on' + evType] = fn;
		}
	},

	_domReady: function() {
    if (this._readyDone) {
      return;
    }
    this._readyDone = true;

    if (this._timer) { clearInterval(this._timer); this._timer = false; }

    for (var i=0; i<this._readyCallbacks.length; i++) {
      (function(f) { f(); })(this._readyCallbacks[i]);
    }
	},

	onDomReady: function(fn) {
    if (!this._readyCallbacks) {
      this._readyDone = false;
      this._readyCallbacks = [];
      
      var _domReadyFn = function() {
        Distributor._domReady.call(PeopleSwitcher);
      };

      if (document.addEventListener) {
        document.addEventListener("DOMContentLoaded", _domReadyFn, false);
      }

      /*@cc_on @*/
      /*@if (@_win32)
          document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
          document.getElementById("__ie_onload").onreadystatechange = function() {
              if (this.readyState == "complete") _domReadyFn();
          };
      /*@end @*/

      if (/WebKit/i.test(navigator.userAgent)) {
        this._timer = setInterval(function() {
          if (/loaded|complete/.test(document.readyState)) { _domReadyFn(); };
        }, 10);
      }

      this.addEvent(window, 'load', _domReadyFn, false);
    }
    this._readyCallbacks[this._readyCallbacks.length] = fn;
	}
};

window.addEvent('domready', function() {
  PeopleSwitcher.startup();
});
//PeopleSwitcher.init();