/* Copyright (c) 2003-2006 PeopleCube. All Rights Reserved */

var TabImageDirectory = "images/tabLabels";
var MAXTABS = 7 - 1;
var navTreeNode = new Array();
var nodeCount = 0;
var MAXTABS = 7 - 1;
var SELECTED = 1;
var NOTSELECTED = 2;
var NOTAVAILABLE = 3;
var me = -1;
var LEVEL = 0;
var tree = new Array(3);
var MINWIDTH = 700;
var tabWidth = MINWIDTH;


function constructTab(id, nParent, name, url, target, testFunc)
{
  if (nodeCount == 0) setTabWidth();
  navTreeNode[nodeCount] = new Object;
  navTreeNode[nodeCount].id = id;
  navTreeNode[nodeCount].nParent = nParent;
  navTreeNode[nodeCount].name = name;
  navTreeNode[nodeCount].type = NOTSELECTED;
  navTreeNode[nodeCount].url = url;
  navTreeNode[nodeCount].target = target;
  if (testFunc)
  {
    navTreeNode[nodeCount].testFunc = testFunc;
  }
  nodeCount++;
}

function newWidth(w)
{
  MINWIDTH = w;
}

function Iam(id)
{
  me = id;
  initTree();
}

function myLevel(id)
{
  var nParent = navTreeNode[id].nParent;
  while (nParent > 0)
  {
    nParent = navTreeNode[nParent].nParent;
    LEVEL++;
  }
  return LEVEL;
}


function setTabWidth()
{
  if (window.innerWidth)
    tabWidth = (window.innerWidth - 40);
  else if (document.body)
  {
    if (document.body.clientWidth)
      tabWidth = (document.body.clientWidth - 40);
    else tabWidth = MINWIDTH;
  }
  else tabWidth = MINWIDTH;
  if (tabWidth < MINWIDTH) tabWidth = MINWIDTH;
}


function initTree()
{
  setTabWidth();
  tree[0] = new Array();
  tree[1] = new Array();
  tree[2] = new Array();
  buildNavTree(navTreeNode[me].nParent, myLevel(me));
  setSelect(me);
  dumpTree();
}


function setSelect(n)
{
  navTreeNode[n].type = 'SELECTED';
  if (navTreeNode[n].nParent >= 0)
    setSelect(navTreeNode[n].nParent);
  return;
}


function buildNavTree(n, lvl)
{
  var j = 0;
  if (lvl == 0)
  {
    for (i = 0; i < navTreeNode.length; i++)
    {
      if (navTreeNode[i].nParent < 0)
      {
        tree[0].length += 1;
        tree[0][j] = i;
        j++;
      }
    }
  }
  else
  {
    for (i = 0; i < navTreeNode.length; i++)
    {
      if (navTreeNode[i].nParent == n)
      {
        tree[lvl].length += 1;
        tree[lvl][j++] = i;
      }
    }
  }
  if (lvl > 0) buildNavTree(navTreeNode[n].nParent, (lvl - 1));
  return; 
}

var indent = '';
function dumpTree()
{
  var tabName = 'constructTab';
  var tabTableClass = 'tabTable';
  var tabCount = 0;
  var offset = 16;

  for (lvl = 0; lvl <= LEVEL; lvl++)
  {
    indent += '  ';
    if (lvl == 1) tabTableClass = 'altTabTable';
    if (lvl == 2) tabTableClass = 'altTab2Table';

    document.write(indent+"<table cellspacing='0' cellpadding='0' border='0' align='center' width='"+(tabWidth+offset)+"'>\n");
    document.write(indent+"  <tr>\n");
    document.write(indent+"    <td colspan='3'>\n"+
                   indent+"      <table width='100%' cellspacing='0' cellpadding='0' border='0'>\n"+
                   indent+"        <tr>\n");
    for (i = 0; i < tree[lvl].length; i++)
    {
      if (i == 0) document.write(indent+"          <td colspan='2'>\n");
      else document.write(indent+"          <td>\n");
      document.write(indent+"            <img src='images/shim.gif' height='1' width='100' alt=''></td>\n");
    }
    document.write(""+
    indent+"          <td width='99%'><img src='images/shim.gif' width='1' height='1' alt=''></td>"+
    "");
    document.write(indent+"        </tr>\n");
    document.write(indent+"        <tr>\n");
    tabCount = tree[lvl].length;

/* here's where the tabs get painted */
    for (i = 0; i < tree[lvl].length; i++)
    {
      idx = tree[lvl][i];
      if (i ==0)
        document.write(indent+"          <td colspan='2' valign='middle' width='100'");
      else
        document.write(indent+"          <td width='100' valign='middle'");
      if (navTreeNode[idx].type == NOTSELECTED)
      {
        document.write("background='images/tabLabels/tabLabel"+lvl+"NS.gif' class='tabNS' alt=''");
        if (navTreeNode[idx].testFunc)
        {
          document.write(" onMousedown='if ("+navTreeNode[idx].testFunc+") location.href=\""+navTreeNode[idx].url+"\"'>\n");
        }
        else
        {
          document.write(" onMousedown='location.href=\""+navTreeNode[idx].url+"\"'>\n");
        }

        if (i == 0)
          document.write(""+
          "<a href='"+trueRelativePath+"#skippedTabToolBar'>\n"+
          "  <img src='images/shim.gif' width='5' height='5' border='0' alt='Skip Tab Tool Bar'></a>\n"+
          "");

        document.write(indent+"            <a href='"+navTreeNode[idx].url+"' class='tab'");
        if (navTreeNode[idx].testFunc)
          document.write("href='javascript: if (eval(navTreeNode[idx].testFunc)) location.href=\""+navTreeNode[idx].url+"\"'>\n");
        else
          document.write("href='javascript: location.href=\""+navTreeNode[idx].url+"\"'>\n");
      }
      else
      {
        document.write("background='images/tabLabels/tabLabel"+lvl+".gif' class='tab'>\n");
      }
      document.write(indent+"            <nobr>"+navTreeNode[idx].name+"</nobr>");
      if (navTreeNode[idx].type == NOTSELECTED)
        document.write("</a>");
      document.write("</td>\n");
    }
    var curWidth = tabCount * 100;
    var spacerWidth = (tabWidth - curWidth) + offset;
    if (spacerWidth < offset) spacerWidth = offset;

    if (is.ns4)
    {
      document.write(""+
        indent+"          <td width='99%'>\n"+
        indent+"            <a name='skippedTabToolBar' href=''>"+
        indent+"              <img src='images/tabLabels/tabLabelEmpty1px.gif' width='"+spacerWidth+"' height='25' alt='s' border='0'></a></td>\n"+
      "");
    }
    else
    {
      document.write(""+
        indent+"          <td width='99%' style='border-bottom: 1px solid black'>\n"+
        indent+"            <a name='skippedTabToolBar' href=''>"+
        indent+"              <img src='images/shim.gif' width='1' height='24' alt='s' border='0'></a></td>\n"+
      "");
    }

    document.write(""+
    indent+"        </tr>\n"+
    indent+"      </table>\n"+
    indent+"    </td>\n"+
    "");

    document.write(indent+"  </tr>\n");
    document.write(""+
    indent+"  <tr>\n"+
    indent+"    <td rowspan='2' bgcolor='#000000'><img src='images/shim.gif' width='1' height='1' alt=''></td>\n"+
    indent+"    <td class='"+tabTableClass+"'><img src='images/shim.gif' width='98' height='1' alt=''></td>\n"+
    indent+"    <td rowspan='2' bgcolor='#000000'><img src='images/shim.gif' width='1' height='1' alt=''></td>\n"+
    indent+"  </tr>\n"+
    "");
    document.write(""+
    indent+"  <tr>\n"+
    indent+"    <td class='"+tabTableClass+"' width='100%'>\n");
    offset -= 8;
  }
}


function closeTabs()
{
  for (i = LEVEL; i >= 0; i--)
  {
    document.write(indent+"    </td>\n"+
    indent+"  </tr>\n"+
    indent+"  <tr>\n"+
    indent+"    <td colspan='3' bgcolor='#000000'><img src='images/shim.gif' width='"+MINWIDTH+"' height='1' alt=''></td>\n"+
    indent+"  </tr>\n"+
    indent+"</table>\n");
  }
}
