// Set the colors
var fcolor     = "#99cc99";
var backcolor  = "#669966";
var textcolor  = "#006600";
var width      = "180";
var border     = "2";

var TimerID = 0;

var layerList = new Array();
var layernames = new Array(7);

layernames[1] = "treeLayer";
layernames[2] = "biosLayer";
layernames[3] = "researchLayer";
layernames[4] = "guestbookLayer";
layernames[5] = "aboutLayer";
layernames[6] = "messageLayer";

function createMenuItem(strTitle,strURL) {
  var strItem;
  
  strItem  = '<tr><td bgcolor="'+fcolor+'" id="menutext" ';
  if (strURL != '') {
    strItem += 'onmouseover="mOvr(this);" onmouseout="mOut(this);" onclick="mClk(this);"><a href="'+strURL+'">'+strTitle+'</a>';
  } else {
    strItem += 'style="bgcolor='+fcolor+';">'+strTitle;
  }
  strItem += '</td></tr>\n';
  
  return strItem;
}

function createLayer(name, left, content) {
  //var oriTop = top;

  // adjust the top position for Macintosh browsers
  //if ((ns4)&&(navigator.appVersion.indexOf("Macintosh")!=-1)) top -= 10; // Netscape
  //if ((ie4)&&(navigator.appVersion.indexOf("Macintosh")!=-1)) top += 16 // IE

  //alert(oriTop + ' ' + top);
  
  var contentTop='';
  var contentBot='';
  
  contentTop  = '<table border="0" cellspacing="0" cellpadding="0" bgcolor="#000000" class="submenu">\n';
  contentTop += '    <tr>\n';
  contentTop += '      <td>\n';
  contentTop += '        <table cellpadding="0" cellspacing="0" border="0" bgcolor="'+backcolor+'" width="100%">\n';
  contentTop += '          <tr>\n';
  contentTop += '            <td>\n';
  contentTop += '              <table cellpadding="0" cellspacing="0" border="0" width="100%">\n';
  contentTop += '                <tr>\n';
  contentTop += '                  <td>\n';
  contentTop += '                    <table cellpadding="1" cellspacing="1" border="0" width="100%">\n';
  
  contentBot  = '                    </table>\n';
  contentBot += '                  </td>\n';
  contentBot += '                </tr>\n';
  contentBot += '              </table>\n';
  contentBot += '            </td>\n';
  contentBot += '          </tr>\n';
  contentBot += '        </table>\n';
  contentBot += '      </td>\n';
  contentBot += '    </tr>\n';
  contentBot += '  </table>\n';

  content = contentTop + content + contentBot;
  
  //if (name == 'treeLayer') alert(content);
  
  var z = layerList.length;
  var layer;

  layerList[z] = name;
  
  if (docom || ie4) {
    document.writeln('<div id="' + name + '" style="overflow:none; top:61px; left:' + left + 'px; visibility:hidden; z-index:' + z + '" onmouseover="subroll(1);" onMouseOut="subroll(0);">');
    document.writeln(content);
    document.writeln('</div>');
  } else if (ns4) {
    document.writeln('<layer name="' + name + '" top="64" left="' + left + '" visibility="hide" z-index="' + z + '" onmouseover="subroll(1);" onMouseOut="subroll(0);">');
    document.writeln(content);
    document.writeln('</layer>');
  }

  layer = getLayer(name);

  //clipLayer(name, 0, 0, 167, 250);
}

function hideLayer(name) {
  var layer = getLayer(name);
  mTrans(name,100);
  if (docom) {
    layer.style.visibility = strHidden;
  } else {
    layer.visibility = strHidden;
  }
}

function showLayer(name) {
  hideparents(0);
  var layer = getLayer(name);
  if (docom) {
    layer.style.visibility = strVisible;
  } else {
    layer.visibility = strVisible;
  }
  mTrans(name,90);
}

function clipLayer(name, clipleft, cliptop, clipright, clipbottom) {
  var layer = getLayer(name);

  if (ns4) {
    layer.clip.left   = clipleft;
    layer.clip.top    = cliptop;
    layer.clip.right  = clipright;
    layer.clip.bottom = clipbottom;
  } else if (ie4) {
    layer.clip = 'rect(' + cliptop + ' ' +  clipright + ' ' + clipbottom + ' ' + clipleft +')';
  }
}

function getLayer(name) {
  // Returns a handle to the named layer.
  if (docom) {
    return(document.getElementById(name)) ;
  } else if (ie4) {
    //return(eval('document.all.' + name + '.style'));
    return(eval('document.all.' + name));
  } else if (ns4) {
    return(document.layers[name]);
  } else {
    return(null);
  }
}

function layerHandler(roll_on, whichLayer)
{
 if (roll_on) {
    clearTimeout(TimerID);
    hideparents(whichLayer);
    showLayer(layernames[whichLayer]);
  } else {
    clearTimeout(TimerID);
    TimerID = setTimeout('hideparents(0)', 500);
  }
}

function subroll(mouse_on)
{
  if (mouse_on) {
    clearTimeout(TimerID);
  } else {
    clearTimeout(TimerID);
    TimerID = setTimeout('hideparents(0)', 500);
  }
}

function hideparents(intCurrentMenu) { 
  //if (intCurrentMenu > 0) alert(intCurrentMenu);
  
  for(var i=1; i<layernames.length; ++i)
    if (intCurrentMenu != i) hideLayer(layernames[i]);
}

function mOvr(src) {
  if (!src.contains(event.fromElement)) {
    if (ie4) {
      src.style.cursor = 'hand';
    } else {
      src.style.cursor = 'pointer';
    }
    src.style.backgroundColor             = textcolor;
    src.children.tags('A')[0].style.color = fcolor;
  }
}

function mOut(src) {
  if (!src.contains(event.toElement)) {
    src.style.cursor                      = 'default';
    src.style.backgroundColor             = fcolor;
    src.children.tags('A')[0].style.color = textcolor;
  }
}

function mClk(src) {
  if(event.srcElement.tagName=='TD') {
    src.children.tags('A')[0].click();
  }
}

// Adds transparency to compatible browsers...
function mTrans(mId, grade) {
  if (ie4) {
    eval('document.all.' + mId + '.style.filter="alpha(opacity=' + grade + ')"');
  }
}


var strVisible, strHidden;

if (ns4) {
  strVisible = "show";
  strHidden = "hide";
} else {
  strVisible = "visible";
  strHidden = "hidden";
}