function AddAdminMenus ()
{
  var tree  = mainMenu.AddMainMenuItem ("AdminSetup_web.png", "AdminSetup_web_o.png", "admin", ADMINSETTINGS_TITLE, "a_syssettings.htm")
  var child_1 = mainMenu.AddChildMenu (tree.root, "general", "", GENSETUP, "", "", "", "")
  var child_1_1 = mainMenu.AddChildMenu (child_1, "system", "", SYSSETTINGS, "a_syssettings.htm", HELPTEXT_SYSSETTINGS, "", "")
  var child_1_2 = mainMenu.AddChildMenu (child_1, "personality", "", PERSONSETTINGS, "a_syspersonality.htm", HELPTEXT_HOMESETTINGS, "", "")
  if (IsDialingAllowed ()) var child_1_2b = mainMenu.AddChildMenu (child_1, "sites", "", JSITES, "a_sites.htm", HELPTEXT_HOMESETTINGS, "", "")
  var child_1_3 = mainMenu.AddChildMenu (child_1, "security", "", SEC, "a_security.htm", HELPTEXT_SECURITY, "", "")
  if (!IsSSeries ()) var child_1_4 = mainMenu.AddChildMenu (child_1, "location", "", LOCALIZ, "a_localization.htm", HELPTEXT_LOCATION, "", "")
  var child_1_4b = mainMenu.AddChildMenu (child_1, "time", "", DATE_TIME, "a_time.htm", HELPTEXT_DATETIME, "", "")
  var child_1_6 = mainMenu.AddChildMenu (child_1, "serial", "",
    (getNumSerialPorts () > 1) ? SERIAL_PL_TITLE : SERIAL_TITLE,
    "a_serialport.htm", HELPTEXT_SERIALPORTS, "", "HasSerialPort()")
  if (!IsSSeries ()) var child_1_5 = mainMenu.AddChildMenu (child_1, "options", "", OPTIONS_TITLE, "a_options.htm", HELPTEXT_OPTIONS, "", "")
  if (IsWebUpgradable ()) var child_1_7 = mainMenu.AddChildMenu (child_1, "softupdate", "", SOFTUPDATE, "a_softupdateupload.htm", HELPTEXT_SOFTUPDATE, "", "")
  if (!IsSSeries ())
  {
    var child_2 = mainMenu.AddChildMenu (tree.root, "network", "", NETWORK, "", "", "", "")
    var child_2_1 = mainMenu.AddChildMenu (child_2, "ip", "", IPNETWORK_TITLE, "a_ipnetwork.htm", HELPTEXT_IPNETWORK, "", "")
  }
  else
  {
    var child_2 = mainMenu.AddChildMenu (tree.root, "ip", "",
      SIP_SETTINGS, "a_ipnetwork.htm", DIR_CONFIGIP, "", "")
  }
  if (IsV35()) var child_2_2 = mainMenu.AddChildMenu (child_2, "v35", "", V35_449_530, "a_v35.htm", HELPTEXT_V35NETWORK, "", "")
  if (IsPRI()) var child_2_3 = mainMenu.AddChildMenu (child_2, "pri", "", PRINETWORK, "a_prinetwork.htm", HELPTEXT_PRINETWORK, "", "")
  if (IsBRI()) var child_2_4 = mainMenu.AddChildMenu (child_2, "bri", "", BRINET, "a_brinetwork.htm", HELPTEXT_BRINETWORK, "", "")
  if (isPOTSCapable()) var child_2_5 = mainMenu.AddChildMenu (child_2, "pots", "", TELEPHONY, "a_telephony.htm", HELPTEXT_TELEPHONY, "", "")
  if (IsDialingAllowed ()) var child_2_6 = mainMenu.AddChildMenu (child_2, "call", "", CALLINGSETUP, "a_callpreference.htm", HELPTEXT_CALLPREF, "", "")
  if (!IsSSeries ()) var child_2_7 = mainMenu.AddChildMenu (child_2, "networkd", "", NETWORK_DIALING, "a_callqualitysetup.htm", HELPTEXT_CALLPREF, "", "")
  if (!IsSSeries ()) var child_2_8 = mainMenu.AddChildMenu (child_2, "speeds", "", DIALSPEEDS_TITLE, "a_dialingspeeds.htm", HELPTEXT_CALLPREF, "", "")
  var child_3 = mainMenu.AddChildMenu (tree.root, "monitors", "", MONITORS, "a_monitors.htm", HELPTEXT_MONITORS, "", "")
  var child_4 = mainMenu.AddChildMenu (tree.root, "cameras", "", CAMERAS, "a_cameras.htm", HELPTEXT_CAMERAS, "", "")
  if (isStereoEnabled)
  {
    var child_7 = mainMenu.AddChildMenu (tree.root, "audiomain", "", AUDIO_TITLE_2, "a_audiosettings.htm", "", "", "")
    var child_7_1 = mainMenu.AddChildMenu (child_7, "audio", "", AUDIO_TITLE, "a_audiosettings.htm", HELPTEXT_AUDIOSETTINGS, "", "")
    var child_7_2 = mainMenu.AddChildMenu (child_7, "stereo", "", STEREOSETTINGS, "a_stereosettings.htm", HELPTEXT_SPEAKERTEST, "", "")
  }
  else
  {
    var child_7 = mainMenu.AddChildMenu (tree.root, "audiomain", "", AUDIO_TITLE, "a_audiosettings.htm", HELPTEXT_AUDIOSETTINGS, "", "")
  }
  var child_5 = mainMenu.AddChildMenu (tree.root, "lan", "", LANPROPERTIES, "a_lansettings.htm", HELPTEXT_LANSETTINGS, "", "")
  if (!IsSSeries ())
  {
    var child_6 = mainMenu.AddChildMenu (tree.root, "global", "", GLOBALSERVICES, "", "", "", "")
    var child_6_1 = mainMenu.AddChildMenu (child_6, "dir", "", DIRECTORYSERVICES, "a_globaladdressserver.htm", HELPTEXT_DIRSERVERS, "", "")
    //var child_6_2 = mainMenu.AddChildMenu (child_6, "dialingrules", "", DIALINGRULES, "a_dialrules.htm", HELPTEXT_DIALRULES, "", "")
    var child_6_3 = mainMenu.AddChildMenu (child_6, "snmp", "", SNMPLANGITEM, "a_snmp.htm", HELPTEXT_SNMP, "", "")
    var child_6_4 = mainMenu.AddChildMenu (child_6, "gmsserver", "", MANAGEMENT_SERVERS_TITLE, "a_gmsurl.htm", HELPTEXT_GMSURL, "", "")
    var child_6_5 = mainMenu.AddChildMenu (child_6, "account", "", ACCOUNT_VALIDATION_TITLE, "a_accountval.htm", HELPTEXT_ACCTVALID, "", "")
    var child_6_6 = mainMenu.AddChildMenu (child_6, "gmsinfo", "", MY_INFORMATION_TITLE, "a_gmsinfo.htm", HELPTEXT_GMSINFO, "", "")
  }
  if (IsSSeries ()) var child_7 = mainMenu.AddChildMenu (
    tree.root, "ldap", "", LDAP_STR, "a_ldap.htm", HELPTEXT_LDAP, "", "")
  
  AddTools (tree)
}

function AddDiagMenus ()
{
  var tree  = mainMenu.AddMainMenuItem ("Diagnostics_web.png", "Diagnostics_web_o.png", "diagnostics", DIAG, "a_systemstatus.htm")
  var child_1 = mainMenu.AddChildMenu (tree.root, "audio", "", AUDIO_TITLE_2, "", "", "", "")
  var child_1_1 = mainMenu.AddChildMenu (child_1, "test", "", SPEAKERTEST,
    "a_speakertest.htm", (isHDX) ? AUDIO_TEST : HELPTEXT_SPEAKERTEST, "", "")
  var child_1_2 = mainMenu.AddChildMenu (child_1, "audiodiags", "", AUDIOMETER, "a_audiodiagnostics.htm", HELPTEXT_AUDIODIAG, "", "")
  var child_2 = mainMenu.AddChildMenu (tree.root, "network", "", NETWORK, "", "", "", "")
  var child_2_1 = mainMenu.AddChildMenu (child_2, "nearloop", "", NEAENDLOO, "a_nearendloop.htm", HELPTEXT_NEARENDLOOP, "", "")
  var child_2_2 = mainMenu.AddChildMenu (child_2, "ping", "", PING, "a_ping.htm", HELPTEXT_PING, "", "")
  var child_2_3 = mainMenu.AddChildMenu (child_2, "traceroute", "", TRACE_ROUTE, "a_traceroute.htm", HELPTEXT_TRACEROUTE, "", "")
  var child_3 = mainMenu.AddChildMenu (tree.root, "status", "", SYSSTATUS, "", "", "", "")
  var child_3_1 = mainMenu.AddChildMenu (child_3, "system", "", SYSSTATUS, "a_systemstatus.htm",
    (IsSSeries ()) ?  DIR_INFOFUCTIONING : HELPTEXT_SYSSTATUS, "", "")
  var child_3_2 = mainMenu.AddChildMenu (child_3, "callsum", "", CALL_SUMMARY_TITLE, "a_callsummary.htm", HELPTEXT_CALLSUMMARY, "", "")
  if (!IsSSeries ()) var child_4 = mainMenu.AddChildMenu (tree.root, "colorbar", "", VIDEO_TITLE, "a_colorbar.htm", HELPTEXT_COLORBAR, "", "")
  var child_5 = mainMenu.AddChildMenu (tree.root, "callstatus", "", CALL_STATS_TITLE, "a_callstatus.htm", HELPTEXT_CALLSTATISTICS, "", "")
  if (!IsWebLogCapable()) var child_8 = mainMenu.AddChildMenu (tree.root, "errorlog", "", ERRORLOG, "a_errorlog.htm", HELPTEXT_ERRORLOG, "", "")
  var child_6 = mainMenu.AddChildMenu (tree.root, "reset", "", RESTART, "a_resetsys.htm", HELPTEXT_RESETSYS, "", "")
  var child_7 = mainMenu.AddChildMenu (tree.root, "message", "", SEND_A_MSG, "a_sendamessage.htm", HELPTEXT_MESSAGE, "", "")
  if (IsWebLogCapable ())
  {
    var child_8 = mainMenu.AddChildMenu (tree.root, "syslog", "", SYSLOG_TITLE, "", "", "", "")
    var child_8_1 = mainMenu.AddChildMenu (child_8, "viewsyslog", "", VIEW_SYSLOG_TITLE, "a_logview.htm", HELPTEXT_VIEWSYSLOG, "", "")
    var child_8_2 = mainMenu.AddChildMenu (child_8, "downloadsyslog", "", DOWNLOAD_SYSLOG_TITLE, "a_downloadlog.htm", HELPTEXT_DOWNLOADSYSLOG, "", "")
    var child_8_3 = mainMenu.AddChildMenu (child_8, "configuresyslog", "", CONFIG_SYSLOG_TITLE, "a_configlog.htm", HELPTEXT_CONFIGSYSLOG, "", "")
  }
  AddTools (tree)
}

function AddUtilityMenus ()
{
  var tree  = mainMenu.AddMainMenuItem ("Utilities_web.png", "Utilities_web_o.png",  "utilities", UTILITIES, "a_sendamessage.htm")
  if (!IsSSeries ()) var child_2 = mainMenu.AddChildMenu (tree.root, "cc", "", CLOSEDCAP,
    "a_closedcap.htm", HELPTEXT_CLOSEDCAP, "", "")
  if (!IsSSeries ()) var child_3 = mainMenu.AddChildMenu (tree.root, "profile", "", PROFILE_CENTER,
    "a_datfilesimportexport.htm", HELPTEXT_PROFILECENTER, "", "")
  var child_4 = mainMenu.AddChildMenu (tree.root, "message", "", SEND_A_MSG,
    "a_sendamessage.htm", HELPTEXT_MESSAGE, "", "")
  if (!IsSSeries ()) var child_5 = mainMenu.AddChildMenu (tree.root, "dirie", "", DIRECTORY_IMPORT,
    "a_directoryimportexport.htm", HELPTEXT_DIRIMPORT, "", "")
  var child_6 = mainMenu.AddChildMenu (tree.root, "calllog", "", CALL_DETAIL_REPORT,
    "a_calllogframe.htm", HELPTEXT_CALLDETAIL, "", "")
  var child_7 = mainMenu.AddChildMenu (tree.root, "ss", "", SCREEN_SAVER,
    "a_screensaver.htm", HELPTEXT_SCRNSVR, "", "")
  if (IsDialingAllowed ()) var child_8 = mainMenu.AddChildMenu (tree.root, "wd", "", WEB_DIRECTOR, 
    "MM_openBrWindow('a_webdirector.htm','"+kWebDirWinName+"','resizable=yes,width=800,height=700')", "", "", "")
  if (IsStreamingCapable ()) var child_9 = mainMenu.AddChildMenu (tree.root, "streaming", "", VIEW_MEETING,
    "MM_openBrWindow('m_stream.htm','"+kStreamWinName+"','width=400,height=410')", "", "", "IsStreamingCapable ()")
  AddTools (tree)
}

function AddDialingMenus ()
{
  var tree  = mainMenu.AddMainMenuItem ("MakeACall_web.png", "MakeACall_web_o.png", "dialing", MAKEACALL, "a_makeacall.htm")
  var child_1 = mainMenu.AddChildMenu (tree.root, "manual", "", MAKEACALL, "a_makeacall.htm", HELPTEXT_PLACECALL, "", "")
  var child_2 = mainMenu.AddChildMenu (tree.root, "directory", "", DIRECTORY, "a_directory.htm", HELPTEXT_DIRECTORY, "", "")
  var child_3 = mainMenu.AddChildMenu (tree.root, "history", "", CALLHISTORY_TITLE, "a_recentcalls.htm", HELPTEXT_RECENTCALLS, "", "")
  AddTools (tree)
}

function AddUserMenus ()
{
  var tree       = mainMenu.AddMainMenuItem ("UserSetup_web.png", "UserSetup_web_o.png", "home", HOME, "u_welcome.htm")
  var child_1    = mainMenu.AddChildMenu (tree.root, "welcome", "", WELCOME, "u_welcome.htm", " ", "", "")
  if (IsStreamingCapable ()) var child_2    = mainMenu.AddChildMenu (tree.root, "streaming", "", VIEW_MEETING,
    "MM_openBrWindow('m_stream.htm','','width=400,height=410')", "", "", "IsStreamingCapable ()")
  if (!IsSSeries ())
  {
    var child_3    = mainMenu.AddChildMenu (tree.root, "weblan", "", WEBLANGUAGE, "", SEL_LANGUAGE, "", "")
    var child_3_1  = mainMenu.AddChildMenu (child_3, "en", "", "American English", "MM_OnLanguageChange('EN')", "", "", "")
    var child_3_2  = mainMenu.AddChildMenu (child_3, "ek", "", "British English", "MM_OnLanguageChange('EK')", "", "", "")
    var child_3_3  = mainMenu.AddChildMenu (child_3, "de", "", "Deutsch", "MM_OnLanguageChange('DE')", "", "", "")
    var child_3_4  = mainMenu.AddChildMenu (child_3, "sp", "", "Espa\u00f1ol", "MM_OnLanguageChange('SP')", "", "", "")
    var child_3_5  = mainMenu.AddChildMenu (child_3, "fr", "", "Fran\u00e7ais", "MM_OnLanguageChange('FR')", "", "", "")
    var child_3_6  = mainMenu.AddChildMenu (child_3, "it", "", "Italiano", "MM_OnLanguageChange('IT')", "", "", "")
    var child_3_7  = mainMenu.AddChildMenu (child_3, "ja", "Japanese.gif", "", "MM_OnLanguageChange('JA')", "", "", "")
    var child_3_8  = mainMenu.AddChildMenu (child_3, "ko", "Korean.gif", "", "MM_OnLanguageChange('KO')", "", "", "")
    var child_3_8b = mainMenu.AddChildMenu (child_3, "hu", "", "Magyar", "MM_OnLanguageChange('HU')", "", "", "")
    var child_3_9  = mainMenu.AddChildMenu (child_3, "no", "", "Norsk", "MM_OnLanguageChange('NO')", "", "", "")
    var child_3_9b = mainMenu.AddChildMenu (child_3, "pl", "", "Polski", "MM_OnLanguageChange('PL')", "", "", "")
    var child_3_10 = mainMenu.AddChildMenu (child_3, "pt", "", "Portugu\u00eas", "MM_OnLanguageChange('PT')", "", "", "")
    var child_3_11 = mainMenu.AddChildMenu (child_3, "ru", "Russian.gif", "", "MM_OnLanguageChange('RU')", "", "", "")
    var child_3_12 = mainMenu.AddChildMenu (child_3, "zh", "Chinese.gif", "", "MM_OnLanguageChange('ZH')", "", "", "")
    var child_3_13a = mainMenu.AddChildMenu (child_3, "fi", "", "Suomi", "MM_OnLanguageChange('FI')", "", "", "")
    var child_3_13 = mainMenu.AddChildMenu (child_3, "zht", "ChineseTraditional.gif", "", "MM_OnLanguageChange('ZHT')", "", "", "")
  }
  AddTools (tree)
}

function AddTools (tree)
{
  var child_1 = mainMenu.AddChildMenu (tree.root, "spacer", "", "", "", "", "", "")
  var child_1 = mainMenu.AddChildMenu (tree.root, "tools", "", TOOLS, "", "", "", "")
  var child_2 = mainMenu.AddChildMenu (child_1, "info", "", SYSINFMN, "a_main.htm", HELPTEXT_SYSINFO, "", "")
  var child_3 = mainMenu.AddChildMenu (child_1, "docs", "", PRODUCT_DOCS,
    "MM_openBrWindow('http://www.polycom.com/videodocumentation','"+kDocsWinName+"','')", "", "", "")
  var child_4 = mainMenu.AddChildMenu (child_1, "map", "", SITE_MAP, "a_toc.htm", " ", "", "")
  if (!IsSSeries ()) var child_5 = mainMenu.AddChildMenu (child_1, "remote", "", REMOTE_CONTROL,
    "MM_openBrWindow('a_remotecontrol.htm','"+kRemoteWinName+"','width=161,height=620')", "", "", "")
  if (!IsSSeries ()) var child_6 = mainMenu.AddChildMenu (child_1, "monitoring", "", REMOTE_MONITORING,
     "MM_openBrWindow('a_tvmon.htm','"+kTVMonWinName+"','width=720,height=300')", "", "", "")
}

function AddMenus ()
{
  if (!IsSSeries ()) AddDialingMenus ()
  AddAdminMenus ()
  AddDiagMenus ()
  AddUtilityMenus ()
  AddUserMenus ()
  document.getElementById ("content").colSpan = mainMenu.mainMenuCount
}

function ClearSearchString ()
{
  if (top.location.search != "" && top.location.search != "?") top.location.search = ""
}

function SetHelpText (url)
{
  document.getElementById ("helpText").innerHTML=mainMenu.GetHelpText(url)
}

function SetContent (url)
{
  mainMenu.SetCurrentPage (url)
  //Change the help text
  CheckSecurity ("/"+url, g_WebPort)
  SetHelpText()
  // Clear the page title and buttons
  document.getElementById ("pageTitle").innerHTML = ""
  document.getElementById ("buttons").innerHTML = ""
  // The following lines of code where changed because it was allowing
  // the content pages to be cached.
  // document.getElementById ("contentFrame").src = url
  document.getElementById ("contentFrame").contentWindow.location.replace (url)
}

function ChangeMainPage (newID)
{
  // Change the style of the currently selected icon
  var elementID = "main_"+newID
  var oldID = mainMenu.GetMainMenuID()
  if (oldID != null)
  {
    var oldElementId = "main_"+oldID
    var lastSelected = document.getElementById (oldElementId)
    if (lastSelected) lastSelected.className = "topNavigationNotSelected"
    document.getElementById ("Image_"+oldElementId).src =
      mainMenu.images[oldID].src
  }
  else
  {
    alert ("ERROR: No main page selected - \"" + oldID + "\"")
  }
  // Change the style of the newly selected icon
  document.getElementById (elementID).className = "topNavigationSelected"
  document.getElementById ("Image_"+elementID).src = mainMenu.selectedImages[newID].src
  mainMenu.SetMainMenuID (newID)
    // Set this so when we draw the menus it expands
  var selectedObject = mainMenu.GetCurrentTree().selectedObject
  if (selectedObject && selectedObject.parent && 
    selectedObject.parent != selectedObject.root)
  {
    selectedObject.parent.expanded = true
  }

  DrawSideMenu ()
  if (selectedObject) mainMenu.GetCurrentTree().selectNode(selectedObject.id)
}

function FillInPage ()
{
  var currentPagesCookie = mainMenu.GetCurrentPagesCookie ()
  var currentMenuCookie = mainMenu.GetCurrentMenuCookie ()

  mainMenu.currentPages = mainMenu.CookieStringToArray (currentPagesCookie)
  AddMenus ()
  // If the user suplied a start menu or a start page start there. Otherwise,
  // if we have saved the current menu in a cookie then reset the current
  // menu to that. If no cookie is found then setting it to -1 will force
  // it to be set to the default value.
  mainMenu.SetMainMenuID ((mainMenu.startMenu != null) ? mainMenu.startMenu : (
    (currentMenuCookie && currentMenuCookie != "") ? currentMenuCookie : -1))
  ChangeMainPage (mainMenu.GetMainMenuID())
}

function DrawSideMenu ()
{
  // Clear the old menu
  RemoveChildren ("sideMenu")
  mainMenu.trees[mainMenu.GetMainMenuID()].buildDOM ("sideMenu",
    "mainMenu.GetCurrentTree()")
}
