function deselectTab() {
  if (window.lastTabObj) {
    var tabObj = document.getElementById(window.lastTabObj.elementID);

    if (!tabObj) return;

    tabObj.className = window.lastTabObj.className;

    var tabText = tabObj.getElementsByTagName('span');

    if (tabText) {
      for (var i=0; i<tabText.length; i++) {
        tabText[i].className = window.lastTabObj.tabText[i];
      }
    }

    window.lastTabObj = null;
  }
}

function setTab() {
  unsetTab();

  if (window.lastTabObj) {
    defaultTabObj = new Object();

    defaultTabObj.elementID = window.lastTabObj.elementID;
    defaultTabObj.className = window.lastTabObj.className;

    window.lastTabObj.className = tabSetClass;
  }
  else if (arguments.length && document.getElementById) {
    var elementID = arguments[0];

    var tabObj = document.getElementById(elementID);

    if (!tabObj) return;

    defaultTabObj = new Object();

    defaultTabObj.elementID = elementID;
    defaultTabObj.className = tabObj.className;

    tabObj.className = tabSetClass;
  }
}

function selectTab(elementID) {
  if (document.getElementById && document.getElementsByTagName) {
    var tabObj = document.getElementById(elementID);

    if (!tabObj) return;

    window.lastTabObj = new Object();

    window.lastTabObj.elementID = elementID;
    window.lastTabObj.className = tabObj.className;

    if (arguments.length > 1) tabObj.className = arguments[1];
    else tabObj.className = tabSelectedClass;

    var tabText = tabObj.getElementsByTagName('span');

    if (!tabText) return;

    window.lastTabObj.tabText = new Object();

    for (var i=0; i<tabText.length; i++) {
      window.lastTabObj.tabText[i] = tabText[i].className;

      if (arguments.length > 2) tabText[i].className = arguments[2];
      else tabText[i].className = 'tabtextselected';
    }
  }
}

function unsetTab() {
  if (defaultTabObj) {
    var tabObj = document.getElementById(defaultTabObj.elementID);

    if (!tabObj) return;

    if (window.lastTabObj) {
      if (defaultTabObj.elementID == window.lastTabObj.elementID) {
        window.lastTabObj.className = defaultTabObj.className;

        return;
      }
    }

    tabObj.className = defaultTabObj.className;

    defaultTabObj = null;
  }
}

window.lastTabObj = null;

var defaultTabObj = null;

var tabSelectedClass = 'tabselected';
var tabSetClass = 'tabset';
