
function loadLetter(Code,Suffix)
{
 eval('NavLetterWhite' + Suffix + ' = new Image();');
 eval('NavLetterWhite' + Suffix + '.src = \'images/letters/white/' + Code +'.gif\';');
 eval('NavLetterBlue' + Suffix + ' = new Image();');
 eval('NavLetterBlue' + Suffix + '.src = \'images/letters/blue/' + Code +'.gif\';');
}

function menuNode(label,url,width,image_v)
{
 this.Label = label;
 this.Url = url;
 this.Width = width;
 this.Parent = 0;
 this.Children = new Array(0);
 this.Image_v = new Image();
 if(image_v != '')
   this.Image_v.src = image_v;
 this.addChild = AddChildPrototype;
 this.lastChild = LastChildPrototype;
 this.maxChildren = MaxChildrenPrototype;
}

function AddChildPrototype(label,url,width,image_v)
{
 this.Children.length++;
 this.Children[this.Children.length - 1] = new menuNode(label,url,width,image_v);
 this.Children[this.Children.length - 1].Parent = this;
 return this.Children[this.Children.length - 1];
}

function LastChildPrototype()
{
 return this.Children[this.Children.length - 1];
}

function MaxChildrenPrototype()
{
 var maxvalue = this.Children.length;
 var mc;
 for(var i = 0; i < this.Children.length; i++)
 {
  mc = this.Children[i].maxChildren();
  if(mc > maxvalue)
   maxvalue = mc;
 }
 return maxvalue;
}

function overNav(Level,Item)
{
// slog('overNav(' + Level + ',' + Item + ')');
 clearTimeout(timer);
 isOver = true;
 doOverNav(Level,Item);
}

function outNav(Level,Item)
{
// slog('outNav(' + Level + ',' + Item + ')');
 clearTimeout(timer);
 isOver = false;
 timer = setTimeout('doOutNav(' + Level + ',' + Item + ')', 500);
}

function doOverNav(Level,Item)
{
 if(Level == 1)
 {
  defaultMenu = false;
  Layer1.style.top = '' + HeightItems[Item] + ' px';
 }
 resetMenu(Level);
 if(Item < 0)
  return;
 Layer1.style.zIndex = '20';
 if(Level != 1)
 {
//  if(CurrentItems[Level-1].Children[Item-1].Image_v.src.charAt(CurrentItems[Level-1].Children[Item-1].Image_v.src.length - 1) != '/')
  if(CurrentItems[Level-1].Children[Item-1].Image_v.src != '' && CurrentItems[Level-1].Children[Item-1].Image_v.src.indexOf('/?') == -1 && CurrentItems[Level-1].Children[Item-1].Image_v.src.indexOf('.cgi?') == -1)
   image_v.src = CurrentItems[Level-1].Children[Item-1].Image_v.src;
  else if(LastSelected != 0)
   image_v.src = LastSelected.Image_v.src;
  else
   image_v.src = IndexImage.src;
 }
 if(Level == 1)
 {
  for(var j = 1; j <= LtrItems; j++)
   if(NumLetters[j])
   {
    document.images['leftnavarrow_' + j].src = ArrowImage.src;
    for(i=1;i<=NumLetters[j];i++)
     eval('document.images[\'leftnav_' + j +'_' + i + '\'].src = NavLetterWhite_' + j + '_' + i + '.src');
   }
  document.images['leftnavarrow_' + Item].src = SpacerImage.src;
  for(i=1;i<=NumLetters[Item];i++)
   eval('document.images[\'leftnav_' + Item +'_' + i + '\'].src = NavLetterBlue_' + Item + '_' + i + '.src');
 }
 else {
  eval('lk' + Level + '_' + Item + '.className = \'activemenu\';');
  eval('lb' + Level + '_' + Item + '.style.visibility = \'visible\';');
  eval('rb' + Level + '_' + Item + '.style.visibility = \'visible\';');
  if(CurrentItems[Level-1].Children[Item-1].Children.length > 0)
  {
   eval('ln' + Level + '_' + Item + '.style.visibility = \'visible\';');
   if(CurrentItems[Level-1].maxChildren() < CurrentItems[Level-1].Children.length)
    for(var i = 1; i <= CurrentItems[Level-1].Children.length; i++)
     eval('sk' + Level + '_' + i + '.style.visibility = \'visible\';');
  }
 }
 if(CurrentItems[Level-1].Children[Item-1].Children.length > 0)
  eval('cell' + (Level + 1) + '.innerHTML = generateMenu(' + (Level+1) +',' + Item +',0)');
}

function doOutNav(Level,Item)
{
 if(Level == 1)
  defaultMenu = true;
 document.images['leftnavarrow_' + Item].src = ArrowImage.src;
 for(i=1;i<=NumLetters[Item];i++)
  eval('document.images[\'leftnav_' + Item +'_' + i + '\'].src = NavLetterWhite_' + Item + '_' + i + '.src');
 for(var i = 2; i <= 5; i++)
  eval('cell' + i + '.innerHTML = \'\'');
 dMenu();
}

function resetMenu(Level)
{
 if(Level == 1)
 {
  for(var i = Level + 1; i <= 5; i++)
   eval('cell' + i + '.innerHTML = \'\'');
  return;
 }
 for(var i = 1; i <= NumCurrentItems[Level-1]; i++)
 {
  if(!(LastSelected && CurrentItems[Level-1].Children[i-1].Url == LastSelected.Url && CurrentItems[Level-1].Children[i-1].Label == LastSelected.Label))
  {
   eval('lk' + Level + '_' + i + '.className = \'inactivemenu\';');
   eval('lb' + Level + '_' + i + '.style.visibility = \'hidden\';');
   eval('rb' + Level + '_' + i + '.style.visibility = \'hidden\';');
  }
  eval('ln' + Level + '_' + i + '.style.visibility = \'hidden\';');
 }
 if(CurrentItems[Level-1].maxChildren() < CurrentItems[Level-1].Children.length)
  for(var i = 1; i <= CurrentItems[Level-1].Children.length; i++)
   eval('sk' + Level + '_' + i + '.style.visibility = \'hidden\';');
 for(var i = Level + 1; i <= 5; i++)
  eval('cell' + i + '.innerHTML = \'\'');
}

function generateMenu(Level,Item,NoLeftBracket)
{
 var rv = '';
 var re = new RegExp("^http://","i");
 var skoba,rskoba,lskoba;
 var cMenuParent = Menu; 
 CurrentItems[Level-1] = CurrentItems[Level-2].Children[Item-1];
 NumCurrentItems[Level-1] = CurrentItems[Level-1].Children.length;
 cMenuParent = CurrentItems[Level-1];

 var L1Item = 1;
 for(var i = 0; i < Menu.Children.length; i++)
  if(Menu.Children[i].Label == CurrentItems[1].Label && Menu.Children[i].Url == CurrentItems[1].Url)
   L1Item = i + 1;
   
 var maxwidth = 0;
 for(var i = 1; i <= NumCurrentItems[Level-1]; i++)
  if(cMenuParent.Children[i-1].Width > maxwidth)
   maxwidth = cMenuParent.Children[i-1].Width;
 maxwidth += 5;
 
// var children_right = CurrentItems[Level-1].maxChildren();
// var children_here_l = CurrentItems[Level-2].maxChildren();
 var children_right = CurrentItems[1].maxChildren();
 var children_here_l = CurrentItems[1].maxChildren();
 var children_here_r = CurrentItems[Level-1].Children.length;
 var children_left;
 if(Level == 2)
  children_left = 0;
 else
  children_left = CurrentItems[Level-2].Children.length;
 
 var trailing;
 trailing = Math.floor((children_here_l - NumCurrentItems[Level-1])/2);

 for(var i = 1; i <= children_here_l; i++)
 {
  var skoba_right = '', skoba_left = '';
  if(i == 1)
   skoba = Skoba_u;
  else if(i == children_here_l)
   skoba = Skoba_l;
  else
   skoba = Skoba_c;
  if(children_right < children_here_r)
   skoba_right = '<td width="7" height="13" class="secondmenu" id="sk' + Level + '_' + i + '" style="visibility:hidden">' + skoba;
  if(children_left <= children_here_l && Level > 2 && !NoLeftBracket)
   skoba_left = '<td width="7" height="13" class="secondmenu" style="visibility:visible">' + skoba;
  if(i <= NumCurrentItems[Level-1] + trailing && i > trailing)
   if(LastSelected && cMenuParent.Children[(i - trailing)-1].Url == LastSelected.Url && cMenuParent.Children[(i - trailing)-1].Label == LastSelected.Label)
    rv += '<tr>' + skoba_left + '<td class="secondmenu" height="11" onMouseOver="overNav(' + Level + ',' + (i - trailing) +')" onMouseOut="outNav(1,' + L1Item +')"><table width="' + maxwidth +'" height="11" cellpadding="0" cellspacing="0" border="0"><tr><td class="secondmenu"><span id="lb' + Level + '_' + (i - trailing) + '" style="visibility:visible" class="activemenu">[</span>&nbsp;<span id="lk' + Level + '_' + (i - trailing) + '" class="activemenu">' + cMenuParent.Children[(i - trailing)-1].Label +'</span>&nbsp;<span id="rb' + Level + '_' + (i - trailing) + '" style="visibility:visible" class="activemenu">]</span></td><td align="right" valign="center"><table width="' + (maxwidth - cMenuParent.Children[(i - trailing)-1].Width) +'" height="1" cellpadding="0" cellspacing="0" border="0" id="ln' + Level + '_' + (i - trailing) + '" style="visibility: hidden"><tr><td width="' + (maxwidth - cMenuParent.Children[(i - trailing)-1].Width) +'" class="activemenubg"><img src="spacer.gif" border="0"></td></tr></table></td></tr></table></td>' + skoba_right + '</tr>';
   else if(cMenuParent.Children[(i - trailing)-1].Children.length == 0 || cMenuParent.Children[(i - trailing)-1].Url != 'null.cgi')
   {
    if(re.test(cMenuParent.Children[(i - trailing)-1].Url))
     rv += '<tr>' + skoba_left + '<td class="secondmenu" height="11" onMouseOver="overNav(' + Level + ',' + (i - trailing) +')" onMouseOut="outNav(1,' + L1Item +')"><table width="' + maxwidth +'" height="11" cellpadding="0" cellspacing="0" border="0"><tr><td class="secondmenu"><span id="lb' + Level + '_' + (i - trailing) + '" style="visibility:hidden" class="activemenu">[</span>&nbsp;<a href="' + cMenuParent.Children[(i - trailing)-1].Url + '" id="lk' + Level + '_' + (i - trailing) + '" class="inactivemenu" target="_blank">' + cMenuParent.Children[(i - trailing)-1].Label +'</a>&nbsp;<span id="rb' + Level + '_' + (i - trailing) + '" style="visibility:hidden" class="activemenu">]</span></td><td align="right" valign="center"><table width="' + (maxwidth - cMenuParent.Children[(i - trailing)-1].Width) +'" height="1" cellpadding="0" cellspacing="0" border="0" id="ln' + Level + '_' + (i - trailing) + '" style="visibility: hidden"><tr><td width="' + (maxwidth - cMenuParent.Children[(i - trailing)-1].Width) +'" class="activemenubg"><img src="spacer.gif" border="0"></td></tr></table></td></tr></table></td>' + skoba_right + '</tr>';
    else
     rv += '<tr>' + skoba_left + '<td class="secondmenu" height="11" onMouseOver="overNav(' + Level + ',' + (i - trailing) +')" onMouseOut="outNav(1,' + L1Item +')"><table width="' + maxwidth +'" height="11" cellpadding="0" cellspacing="0" border="0"><tr><td class="secondmenu"><span id="lb' + Level + '_' + (i - trailing) + '" style="visibility:hidden" class="activemenu">[</span>&nbsp;<a href="' + cMenuParent.Children[(i - trailing)-1].Url + '?id=' + userId + '" id="lk' + Level + '_' + (i - trailing) + '" class="inactivemenu">' + cMenuParent.Children[(i - trailing)-1].Label +'</a>&nbsp;<span id="rb' + Level + '_' + (i - trailing) + '" style="visibility:hidden" class="activemenu">]</span></td><td align="right" valign="center"><table width="' + (maxwidth - cMenuParent.Children[(i - trailing)-1].Width) +'" height="1" cellpadding="0" cellspacing="0" border="0" id="ln' + Level + '_' + (i - trailing) + '" style="visibility: hidden"><tr><td width="' + (maxwidth - cMenuParent.Children[(i - trailing)-1].Width) +'" class="activemenubg"><img src="spacer.gif" border="0"></td></tr></table></td></tr></table></td>' + skoba_right + '</tr>';
   }
   else
    rv += '<tr>' + skoba_left + '<td class="secondmenu" height="11" onMouseOver="overNav(' + Level + ',' + (i - trailing) +')" onMouseOut="outNav(1,' + L1Item +')"><table width="' + maxwidth +'" height="11" cellpadding="0" cellspacing="0" border="0"><tr><td class="secondmenu"><span id="lb' + Level + '_' + (i - trailing) + '" style="visibility:hidden" class="activemenu">[</span>&nbsp;<span id="lk' + Level + '_' + (i - trailing) + '" class="inactivemenu">' + cMenuParent.Children[(i - trailing)-1].Label +'</span>&nbsp;<span id="rb' + Level + '_' + (i - trailing) + '" style="visibility:hidden" class="activemenu">]</span></td><td align="right" valign="center"><table width="' + (maxwidth - cMenuParent.Children[(i - trailing)-1].Width) +'" height="1" cellpadding="0" cellspacing="0" border="0" id="ln' + Level + '_' + (i - trailing) + '" style="visibility: hidden"><tr><td width="' + (maxwidth - cMenuParent.Children[(i - trailing)-1].Width) +'" class="activemenubg"><img src="spacer.gif" border="0"></td></tr></table></td></tr></table></td>' + skoba_right + '</tr>';
  else
   rv += '<tr>' + skoba_left + '<td class="secondmenu" height="11" onMouseOver="overNav(' + Level + ',-1)" onMouseOut="outNav(1,' + L1Item +')"><table width="' + maxwidth +'" height="11" cellpadding="0" cellspacing="0" border="0"><tr><td class="secondmenu"><span id="lb' + Level + '_' + (i - trailing) + '" style="visibility:hidden" class="activemenu">[</span>&nbsp;<span id="lk' + Level + '_' + (i - trailing) + '" class="inactivemenu"></span>&nbsp;<span id="rb' + Level + '_' + (i - trailing) + '" style="visibility:hidden" class="activemenu">]</span></td><td align="right" valign="center"></td></tr></table></td>' + skoba_right + '</tr>';
 }
 return '<table cellpadding="0" cellspacing="0" border="0" class="menulayer">' + rv + '</table>';
}

function dMenu()
{
 Layer1.style.zIndex = '1';
 if(LastSelected == 0)
  image_v.src = IndexImage.src;
 if(LastSelected == 0 || !LastSelected.Parent.Parent.Children)
  return;
 var defaultItem = 1;
 defaultChild = 1;
 defaultLevel = 0;
 var cNode = LastSelected;
 while(cNode.Parent != 0)
 {
  cNode = cNode.Parent;
  defaultLevel++;
 }
 cNode = LastSelected;
 for(var i = defaultLevel; i >= 0; i--)
 {
  CurrentItems[i] = cNode;
  cNode = cNode.Parent;
 }
 for(var i = 0; i < LastSelected.Parent.Parent.Children.length; i++)
  if(LastSelected.Parent.Parent.Children[i].Label == LastSelected.Parent.Label && LastSelected.Parent.Parent.Children[i].Url == LastSelected.Parent.Url)
   defaultItem = i + 1;
 for(var i = 0; i < LastSelected.Parent.Children.length; i++)
  if(LastSelected.Parent.Children[i].Label == LastSelected.Label && LastSelected.Parent.Children[i].Url == LastSelected.Url)
   defaultChild = i + 1;
 for(var i = 0; i < Menu.Children.length; i++)
  if(Menu.Children[i].Label == CurrentItems[1].Label && Menu.Children[i].Url == CurrentItems[1].Url)
   l1Item = i + 1;
 Layer1.style.top = '' + HeightItems[l1Item] + ' px';

 image_v.src = LastSelected.Image_v.src;
 var strmenu = generateMenu(defaultLevel,defaultItem,1);
 eval('cell' + defaultLevel + '.innerHTML = strmenu');
}

function hideL2()
{
 L2timer = Layer2.style.visibility='hidden';
 servReset();
}

function overL2()
{
 clearTimeout(L2timer);
 Layer2.style.visibility='visible';
}

function outL2()
{
 L2timer = setTimeout('hideL2()', 500);
}

function servOver(Item)
{
 servReset();
 eval('servlb' + Item + '.style.visibility = \'visible\';');
 eval('servrb' + Item + '.style.visibility = \'visible\';');
 eval('servlk' + Item + '.className = \'activemenu\';');
}

function servOut(Item)
{
 servReset();
}

function servReset()
{
 clearTimeout(L2timer);
 for(var i = 1; i <= servButtons; i++)
 {
  eval('servlb' + i + '.style.visibility = \'hidden\';');
  eval('servrb' + i + '.style.visibility = \'hidden\';');
  eval('servlk' + i + '.className = \'inactivemenu\';');
 }
}

function slog(arg)
{
 slogspot.innerHTML = slogspot.innerHTML + '<br>' + arg;
// alert(slog.innerHTML);
}
