/* tpg_basic2.js
   This is part of a series of demos illustrating the basic concepts used by xTabPanelGroup:
   http://cross-browser.com/x/lib/view.php?sym=xTabPanelGroup
*/

if (typeof window.onload == 'function') {fnOldLoad = window.onload;}
window.onload = function()
{
  if (window.fnOldLoad) {fnOldLoad();}
  xGetElementsByClassName('tabPanelGroup', document, 'div',
    function(d) {
      tpgLoad(d);
    }
  );
}
if (typeof window.onunload == 'function') {fnOldUnload = window.onunload;}
window.onunload = function()
{
  if (window.fnOldUnload) {fnOldUnload();}
  xGetElementsByClassName('tabPanelGroup', document, 'div',
    function(d) {
      tpgUnload(d);
    }
  );
}
function tpgLoad(tpg)
{
/*  tpg.style.height = '250px'; */ // don't want to do this in 'default' css
  xGetElementsByClassName('linkDelim', tpg, 'span',
    function(s) {
      s.style.display = 'none';
    }
  );
  tpg.tabs = [];
  var tabs = xGetElementsByClassName('tabDefault', tpg, 'a',
    function(a) {
      a.onclick = tpgClick;
      a.onfocus = tpgClick; // this one line adds support for keyboard navigation
      a._TPG_ = tpg;
      tpg.tabs[tpg.tabs.length] = a;
    }
  );
  tabs[0].onclick();
}
function tpgClick()
{
  for (var i = 0; i < this._TPG_.tabs.length; ++i) {
    this._TPG_.tabs[i].className = 'tabDefault';
  }
  this.className = 'tabSelected';
  xGetElementsByClassName('tabPanel', this._TPG_, 'div',
    function(ele) {
      ele.style.display = 'none';
    }
  );
  document.getElementById(this.hash.substr(1)).style.display = 'block';
  return false;
}
function tpgUnload(tpg)
{
  for (var i = 0; i < tpg.tabs.length; ++i) {
    tpg.tabs[i].onclick = null;
    tpg.tabs[i] = null;
  }
  tpg.tabs = null;
}
function tpgSelect(tpgId, tabNum)
{
  var tpg, n = tabNum - 1;
  tpg = document.getElementById(tpgId);
  if (tpg && tpg.tabs) {
    if (n >= 0 && n < tpg.tabs.length) {
      tpg.tabs[n].onclick();
    }
  }
}
function xGetElementsByClassName(c,p,t,f)
{
  var r = new Array();
  var re = new RegExp("(^|\\s)"+c+"(\\s|$)");
  var e = p.getElementsByTagName(t);
//  var e = xGetElementsByTagName(t,p); // See comments: http://cross-browser.com/x/lib/view.php?sym=xGetElementsByClassName
  for (var i = 0; i < e.length; ++i) {
    if (re.test(e[i].className)) {
      r[r.length] = e[i];
      if (f) f(e[i]);
    }
  }
  return r;
}

