function tabInstaller() { 

  function install(elt) {
    if (elt.nodeName != "A") {
      return;
    }
    var href = elt.getAttribute("href");
    if (! href || href.length <= 1) {
      return;
    }
    var index = href.lastIndexOf("#");
    var id = href.substring(index + 1);
    var target = document.getElementById(id);
    if (! target) {
      return;
    }
    tabs.push(target);
    target.tab_link = elt;
    elt.tab_target = target;
  }



  function showTab(selectedTab) { 
    var i;
    for (i = 0; i < tabs.length; i++) {
      var tab = tabs[i];
      tab.style.display = ( ! selectedTab || (tab == selectedTab) ) ? "" : "none" ;
      if (tab.tab_link) {
	var clas = ! selectedTab || (tab == selectedTab) ? "selected" : "" ;
	tab.tab_link.setAttribute("class", clas);
      }
    }
  }

  function walk(elt) {
    if (! elt || elt.nodeType != 1) {
      return;
    }
    install(elt);
    var i;
    for (i = 0; i < elt.childNodes.length; i++) {
      walk(elt.childNodes[i]);
    }
  }

  var tabs = document.getElementById("tabs");
  if (! tabs) {
    return;
  }
  var tabs = new Array();

  walk(document.getElementById("tabs"));
  var i;
  for (i = 0; i < tabs.length; i++) {
    var tab = tabs[i];
    tab.tab_link.onclick = function() {
      showTab(this.tab_target);
    };
    tab.tab_link.href = "javascript:void(0);";
  }
  if (tabs.length > 0) {
    showTab(tabs[0]);
  }
}

window.onload = tabInstaller;

