 // Throughout human history, we have been dependent on machines to survive. Fate, it seems, is not without a sense of irony.

 var intTimeout = null;
 var strParent_Selected = "";

 function Menu_Render(arystrMenu_Structure, elmRender_Parent)
  {
   var strMenu_Parent_Caption  = "";
   var strMenu_Parent_Menu     = "";
   var strMenu_Caption         = "";

   for (var intOffset = 0; intOffset < arystrMenu_Structure.length; intOffset++)
    {
     strMenu_Caption = arystrMenu_Structure[intOffset].substring(0, arystrMenu_Structure[intOffset].indexOf("/"));

     if (strMenu_Caption == "")
      {
       strMenu_Caption = arystrMenu_Structure[intOffset];
      }

     strMenu_Caption = strMenu_Caption.replace(/[[][S][l][a][s][h]\]/ig, "/");

     if (strMenu_Parent_Caption.indexOf(">" + strMenu_Caption + "<") < 0)
      {
       strMenu_Parent_Caption += '<td id="mnu_Parent_' + intOffset + '" align=\"left\" class="tlmenu_parent_font" onmouseout="Menu_State(false, true);"  onmouseover="Menu_State(true); Menu_Hide(0, null, null); Menu_Render_Sub(arystrMenu_Structure, \'' + strMenu_Caption.replace(/'/ig, "\\\'") + '\', document.getElementById(\'mnu_Parent_' + intOffset + '_menu\'))">' + strMenu_Caption + '</td>';
       strMenu_Parent_Menu    += '<td id="mnu_Parent_' + intOffset + '_menu" align="left"></td>';
      }
    }

   elmRender_Parent.innerHTML += '<table border="0" class="tlmenu"><tr>' + strMenu_Parent_Caption + '</tr><tr>' + strMenu_Parent_Menu + '</tr></table>';
  }

 function Menu_Render_Sub(arystrMenu_Structure, strMenu_Parent, elmRender_Parent, intLevel)
  {
   var strMenu_Table   = "";
   var strMenu_Caption = "";
   var strMenu_Prefix  = "";
   var strMenu_Arrow   = "";
   var strMenu_OnClick = "";

   var intCaption_Offset  = 0;
   var blnMenu_Child_None = true;

   if (intLevel == null)
    {
     intLevel = 0;
    }

   if (document.getElementById("mnu_" + strMenu_Parent + "_" + intLevel) != null)
    {
     return false;
    }

   for (var intOffset = 0; intOffset < arystrMenu_Structure.length; intOffset++)
    {
     intCaption_Offset = arystrMenu_Structure[intOffset].indexOf(strMenu_Prefix  + strMenu_Parent + "/");

     if (intCaption_Offset > -1)
      {
       blnMenu_Child_None = false;

       strMenu_Caption = arystrMenu_Structure[intOffset].substring(intCaption_Offset + (strMenu_Prefix + strMenu_Parent + "/").length);

       if (strMenu_Caption.indexOf("/") > -1)
        {
         strMenu_Caption = strMenu_Caption.substring(0, strMenu_Caption.indexOf("/"));
         strMenu_Arrow   = "_arrow";
         strMenu_OnClick = "return false;";
        }
       else
        {
         strMenu_Arrow   = "";
         strMenu_OnClick = "document.location.href = '" + encodeURI(arystrMenu_Structure[intOffset].replace(/-/ig, "").replace(/[/]/ig, "-").replace(/[[][S][l][a][s][h]\]/ig, "")).replace(/'/ig, "\\\'") + ".html';";
        }

       strMenu_Caption = strMenu_Caption.replace(/[[][S][l][a][s][h]\]/ig, "/");

       if (strMenu_Table.indexOf(">" + strMenu_Caption + "<") < 0)
        {
         strMenu_Table  += '<tr><td onclick="' + strMenu_OnClick + '" class="tlmenu_child_font' + strMenu_Arrow +  '" colspan="3" onmouseover="this.className = \'tlmenu_child_font_over' + strMenu_Arrow +  '\'; Menu_Hide(0, null, \'' + intLevel + '\'); Menu_Render_Sub(arystrMenu_Structure, \'' + strMenu_Caption.replace(/'/ig, "\\\'") + '\', this.parentNode.childNodes[1], (' + intLevel + ' + 1));" onmouseout=\"this.className = \'tlmenu_child_font' + strMenu_Arrow +  '\';\"><nobr>' + strMenu_Caption + '</nobr></td><td td align="left" valign="top"></td></tr>';
        }
      }
    }

   if (!blnMenu_Child_None)
    {
     var strMenu_Class_Extra = "";
     var strMenu_Row_Extra   = "";

     if (intLevel > 0)
      {
       strMenu_Class_Extra = "_child"
       strMenu_Row_Extra   = "<tr><td class=\"tblmenu_child_top_left\">&nbsp;</td><td class=\"tblmenu_child_top_middle\">&nbsp;</td><td class=\"tblmenu_child_top_right\">&nbsp;</td></tr>";
      }
     else
      {
       strMenu_Row_Extra   = "<tr><td colspan=\"3\" class=\"tlmenu_parent_space\">&nbsp;</td></tr>";
       document.getElementById(elmRender_Parent.id.replace("_menu", "")).className = 'tlmenu_parent_font_over';
      }

     elmRender_Parent.innerHTML += "<div class=\"tlmenu\" onmouseover=\"Menu_State(true)\" onmouseout=\"Menu_State(false);\" id=\"mnu_" + strMenu_Parent + "_" + intLevel + "\" style=\"position: absolute;\"><table border=\"0\" class=\"tlmenu_child" + strMenu_Class_Extra + "\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">" + strMenu_Row_Extra + strMenu_Table + "<tr><td class=\"tblmenu_child_bottom_left\">&nbsp;</td><td colspan=\"1\" class=\"tblmenu_child_bottom_middle\">&nbsp;</td><td class=\"tblmenu_child_bottom_right\">&nbsp;</td></tr></table></div>";
    }
   else
    {
     if (intLevel <= 0)
      {
       elmFont_Parent = document.getElementById(elmRender_Parent.id.replace("_menu", ""));

       elmFont_Parent.onclick = function() { document.location.href = strMenu_Parent + '.html'; }
      }
    }
  }

 function Menu_Hide(intMenu_Timeout, strParent, intLevel)
  {
   if (strParent != null)
    {
     if (strParent_Selected != strParent)
      {
       strParent_Selected = strParent;
      }
     else
      {
       return false;
      }
    }

   aryelmMenu = document.getElementsByTagName("DIV");

   for (var intOffset = 0; intOffset < aryelmMenu.length; intOffset++)
    {
     if (aryelmMenu[intOffset].id.indexOf("mnu_") > -1)
      {
       if (intLevel != null)
        {
         if (intLevel < aryelmMenu[intOffset].id.substring(aryelmMenu[intOffset].id.lastIndexOf("_") + 1))
          {
           var elmParent = aryelmMenu[intOffset].parentNode;

           elmParent.removeChild(aryelmMenu[intOffset]);
          }
        }
       else
        {
         var elmParent = aryelmMenu[intOffset].parentNode;

         elmParent.removeChild(aryelmMenu[intOffset]);
        }
      }
    }

   if (intLevel == null)
    {
     aryelmMenu_Font = document.getElementsByTagName("TD");

     for (intOffset = 0; intOffset < aryelmMenu_Font.length; intOffset++)
      {
       if (aryelmMenu_Font[intOffset].className == "tlmenu_parent_font_over")
        {
         aryelmMenu_Font[intOffset].className = 'tlmenu_parent_font';
        }
      }
    }
  }

 function Menu_State(blnMenu_MouseOver, blnMenu_State_Clear)
  {
   if (!blnMenu_MouseOver)
    {
     if(blnMenu_State_Clear != null)
      {
       Menu_State(true);
      }

     if (intTimeout == null)
      {
       intTimeout = setTimeout("Menu_Hide(" + intTimeout + ")", 600);
      }
    }
   else
    {
     clearTimeout(intTimeout);

     intTimeout = null;
    }
  }
