<?xml version="1.0"?>
<!-- This Source Code Form is subject to the terms of the Mozilla Public
   - License, v. 2.0. If a copy of the MPL was not distributed with this
   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->


<?xul-overlay href="chrome://communicator/content/platformCommunicatorOverlay.xul"?>

<!DOCTYPE overlay [

<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd">
%brandDTD;
<!ENTITY % platformCommunicatorDTD SYSTEM "chrome://communicator-platform/locale/platformCommunicatorOverlay.dtd">
%platformCommunicatorDTD;
<!ENTITY % utilityDTD SYSTEM "chrome://communicator/locale/utilityOverlay.dtd">
%utilityDTD;
<!ENTITY % customizeToolbarDTD SYSTEM "chrome://global/locale/customizeToolbar.dtd">
%customizeToolbarDTD;

]>

<overlay id="utilityOverlay"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

  <script type="application/javascript"
          src="chrome://global/content/globalOverlay.js"/>
  <script type="application/javascript"
          src="chrome://communicator/content/utilityOverlay.js"/>
  <script type="application/javascript"
          src="chrome://communicator/content/sync/syncUI.js"/>
  <script type="application/javascript"
          src="chrome://help/content/contextHelp.js"/>

  <stringbundleset>
    <stringbundle id="bundle_utilityOverlay"
                  src="chrome://communicator/locale/utilityOverlay.properties"/>
  </stringbundleset>

<broadcasterset id="mainBroadcasterSet">
  <broadcaster id="cmd_CustomizeToolbars"/>
</broadcasterset>

  <!-- online/offline status indicators -->
  <broadcaster id="Communicator:WorkMode"
               label="&offlineGoOfflineCmd.label;"
               type="checkbox"
               oncommand="toggleOfflineStatus();"/>

  <menupopup id="networkProperties" onpopupshown="InitProxyMenu();">
    <menuitem id="network-proxy-no"
              type="radio"
              name="status"
              label="&direct.label;"
              accesskey="&direct.accesskey;"
              oncommand="setNetworkStatus('0')"/>
    <menuitem id="network-proxy-wpad"
              type="radio"
              name="status"
              label="&wpad.label;"
              accesskey="&wpad.accesskey;"
              oncommand="setNetworkStatus('4')"/>
    <menuitem id="network-proxy-system"
              type="radio"
              name="status"
              label="&system.label;"
              accesskey="&system.accesskey;"
              hidden="true"
              oncommand="setNetworkStatus('5')"/>
    <menuitem id="network-proxy-pac"
              type="radio"
              name="status"
              label="&pac.label;"
              accesskey="&pac.accesskey;"
              oncommand="setNetworkStatus('2')"/>
    <menuitem id="network-proxy-manual"
              type="radio"
              name="status"
              label="&manual.label;"
              accesskey="&manual.accesskey;"
              oncommand="setNetworkStatus('1')"/>
    <menuseparator/>
    <menuitem label="&proxy.label;"
              accesskey="&proxy.accesskey;"
              oncommand="goPreferences('proxies_pane');"/>
  </menupopup>

  <menupopup id="toolbar-context-menu"
         onpopupshowing="onViewToolbarsPopupShowing(event);"
         oncommand="onViewToolbarCommand(event);">
    <menuseparator id="toolbarmode-sep"/>
    <menu id="toolbarmode-context-menu"
          label="&customizeToolbar.toolbarmode.label;"
          accesskey="&customizeToolbar.toolbarmode.accesskey;">
      <menupopup id="toolbarModePopup"
                 onpopupshowing="onToolbarModePopupShowing(event);"
                 oncommand="goSetToolbarState(event);">
        <menuitem type="radio" name="mode" value="icons"
                  label="&customizeToolbar.icons.label;"
                  accesskey="&customizeToolbar.icons.accesskey;"/>
        <menuitem type="radio" name="mode" value="full"
                  label="&customizeToolbar.iconsAndText.label;"
                  accesskey="&customizeToolbar.iconsAndText.accesskey;"/>
        <menuitem type="radio" name="mode" value="text"
                  label="&customizeToolbar.text.label;"
                  accesskey="&customizeToolbar.text.accesskey;"/>
        <menuseparator/>
        <menuitem id="toolbarmode-smallicons"
                  type="checkbox" value="smallicons"
                  label="&customizeToolbar.useSmallIcons.label;"
                  accesskey="&customizeToolbar.useSmallIcons.accesskey;"/>
        <menuitem id="toolbarmode-labelalign"
                  type="checkbox" value="end"
                  label="&customizeToolbar.labelAlignEnd.label;"
                  accesskey="&customizeToolbar.labelAlignEnd.accesskey;"/>
        <menuseparator/>
        <menuitem id="toolbarmode-default"
                  type="checkbox" value="default"
                  label="&customizeToolbar.useDefault.label;"
                  accesskey="&customizeToolbar.useDefault.accesskey;"/>
      </menupopup>
    </menu>

    <menuseparator id="toolbar-customize-sep"/>
    <menuitem id = "customize_toolbars"
              observes="cmd_CustomizeToolbars"
              label="&customizeToolbarContext.label;"
              accesskey="&customizeToolbarContext.accesskey;"
              oncommand="return SuiteCustomizeToolbar(this);"/>

  </menupopup>

  <panel id="customizeToolbarSheetPopup" noautohide="true">
    <iframe id="customizeToolbarSheetIFrame"
            style="&dialog.dimensions;"
            hidden="true"/>
  </panel>

  <statusbarpanel id="offline-status" context="networkProperties"
                  observes="Communicator:WorkMode"/>

  <menuitem id="offlineGoOfflineCmd"
            label="&offlineGoOfflineCmd.label;"
            accesskey="&offlineGoOfflineCmd.accesskey;"
            observes="Communicator:WorkMode"/>

  <keyset id="tasksKeys">
    <key id="key_quit"/>
  </keyset>

  <!-- File Menu -->
  <menu id="menu_File"
        label="&fileMenu.label;"
        accesskey="&fileMenu.accesskey;"/>

  <!-- New SubMenu (Under File Menu) -->
  <command id="cmd_newNavigator"
           oncommand="OpenBrowserWindow()"/>
  <command id="cmd_newPrivateWindow"
           oncommand="openNewPrivateWith('about:privatebrowsing');"/>

  <menu id="menu_New"
        label="&newMenu.label;"
        accesskey="&newMenu.accesskey;"/>

  <menuitem id="menu_newNavigator"
            label="&newNavigatorCmd.label;"
            accesskey="&newNavigatorCmd.accesskey;"
            key="key_newNavigator"
            command="cmd_newNavigator"/>
  <menuitem id="menu_newPrivateWindow"
            label="&newPrivateWindowCmd.label;"
            accesskey="&newPrivateWindowCmd.accesskey;"
            key="key_newPrivateWindow"
            command="cmd_newPrivateWindow"/>
  <menuitem id="menu_printSetup"
            label="&printSetupCmd.label;"
            accesskey="&printSetupCmd.accesskey;"
            command="cmd_printSetup"/>
  <menuitem id="menu_printPreview"
            label="&printPreviewCmd.label;"
            accesskey="&printPreviewCmd.accesskey;"
            command="cmd_printpreview"/>
  <menuitem id="menu_print"
            label="&printCmd.label;"
            accesskey="&printCmd.accesskey;"
            key="key_print"
            command="cmd_print"/>

  <key id="key_newNavigator"
       key="&newNavigatorCmd.key;"
       command="cmd_newNavigator"
       modifiers="accel"/>
  <key id="key_newPrivateWindow"
       key="&newPrivateWindowCmd.key;"
       command="cmd_newPrivateWindow"
       modifiers="accel, shift"/>
  <key id="key_print"
       key="&printCmd.key;"
       command="cmd_print"
       modifiers="accel"/>
  <key id="printKb"
       key="&printCmd.key;"/>

  <keyset id="findKeys">
    <key id="key_find"
         key="&findBarCmd.key;"
         command="cmd_find"
         modifiers="accel"/>
    <key id="key_findNext"
         key="&findAgainCmd.key;"
         command="cmd_findNext"
         modifiers="accel"/>
    <key id="key_findPrev"
         key="&findPrevCmd.key;"
         command="cmd_findPrev"
         modifiers="accel, shift"/>
    <key keycode="&findAgainCmd.key2;"
         command="cmd_findNext"/>
    <key keycode="&findPrevCmd.key2;"
         command="cmd_findPrev"
         modifiers="shift"/>
  </keyset>

  <!-- Edit Menu -->
  <menu id="menu_Edit"
        label="&editMenu.label;"
        accesskey="&editMenu.accesskey;"/>
  <menuitem id="menu_undo"
            key="key_undo"
            accesskey="&undoCmd.accesskey;"
            command="cmd_undo"/>
  <menuitem id="menu_redo"
            key="key_redo"
            accesskey="&redoCmd.accesskey;"
            command="cmd_redo"/>
  <menuitem id="menu_cut"
            key="key_cut"
            accesskey="&cutCmd.accesskey;"
            command="cmd_cut"/>
  <menuitem id="menu_copy"
            key="key_copy"
            accesskey="&copyCmd.accesskey;"
            command="cmd_copy"/>
  <menuitem id="menu_paste"
            key="key_paste"
            accesskey="&pasteCmd.accesskey;"
            command="cmd_paste"/>
  <menuitem id="menu_delete"
            key="key_delete"
            accesskey="&deleteCmd.accesskey;"
            command="cmd_delete"/>
  <menuitem id="menu_selectAll"
            label="&selectAllCmd.label;"
            key="key_selectAll"
            accesskey="&selectAllCmd.accesskey;"
            command="cmd_selectAll"/>
  <menuitem id="menu_find"
            accesskey="&findBarCmd.accesskey;"
            key="key_find"
            command="cmd_find"/>
  <menuitem id="menu_findReplace"
            accesskey="&findReplaceCmd.accesskey;"
            key="key_findReplace"
            command="cmd_findReplace"/>
  <menuitem id="menu_findNext"
            label="&findAgainCmd.label;"
            accesskey="&findAgainCmd.accesskey;"
            key="key_findNext"
            command="cmd_findNext"/>
  <menuitem id="menu_findPrev"
            label="&findPrevCmd.label;"
            accesskey="&findPrevCmd.accesskey;"
            key="key_findPrev"
            command="cmd_findPrev"/>
  <menuitem id="menu_findTypeText"
            label="&findTypeTextCmd.label;"
            key="key_findTypeText"
            accesskey="&findTypeTextCmd.accesskey;"
            command="cmd_findTypeText"/>
  <menuitem id="menu_findTypeLinks"
            label="&findTypeLinksCmd.label;"
            key="key_findTypeLinks"
            accesskey="&findTypeLinksCmd.accesskey;"
            command="cmd_findTypeLinks"/>
  <menuitem id="textfieldDirection-swap"
            label="&bidiSwitchTextDirectionItem.label;"
            key="key_switchTextDirection"
            accesskey="&bidiSwitchTextDirectionItem.accesskey;"
            command="cmd_switchTextDirection"/>

  <!-- Context Menu Overlay -->
  <menuitem id="context-undo"
            accesskey="&undoCmd.accesskey;"
            command="cmd_undo"/>
  <menuitem id="context-redo"
            accesskey="&redoCmd.accesskey;"
            command="cmd_redo"/>
  <menuitem id="context-cut"
            accesskey="&cutCmd.accesskey;"
            command="cmd_cut"/>
  <menuitem id="context-copy"
            accesskey="&copyCmd.accesskey;"
            command="cmd_copy"/>
  <menuitem id="context-paste"
            accesskey="&pasteCmd.accesskey;"
            command="cmd_paste"/>
  <menuitem id="context-delete"
            accesskey="&deleteCmd.accesskey;"
            command="cmd_delete"/>
  <menuitem id="context-selectall"
            label="&selectAllCmd.label;"
            accesskey="&selectAllCmd.accesskey;"
            command="cmd_selectAll"/>

  <!-- These key nodes are here only for show. The real bindings come from
       XBL, in platformHTMLBindings.xml. See bugs 57078 and 71779. -->

  <key id="key_undo"
       key="&undoCmd.key;"
       modifiers="accel"/>
  <key id="key_cut"
       key="&cutCmd.key;"
       modifiers="accel"/>
  <key id="key_copy"
       key="&copyCmd.key;"
       modifiers="accel"/>
  <key id="key_paste"
       key="&pasteCmd.key;"
       modifiers="accel"/>
  <key id="key_switchTextDirection"
       command="cmd_switchTextDirection"
       key="&bidiSwitchTextDirectionItem.commandkey;"
       modifiers="accel,shift"/>

  <commandset id="globalEditMenuItems"
              commandupdater="true"
              events="focus"
              oncommandupdate="goUpdateGlobalEditMenuItems()"/>
  <commandset id="selectEditMenuItems"
              commandupdater="true"
              events="select"
              oncommandupdate="goUpdateSelectEditMenuItems()"/>
  <commandset id="undoEditMenuItems"
              commandupdater="true"
              events="undo"
              oncommandupdate="goUpdateUndoEditMenuItems()"/>
  <commandset id="clipboardEditMenuItems"
              commandupdater="true"
              events="clipboard"
              oncommandupdate="goUpdatePasteMenuItems()"/>
  <commandset id="findTypeMenuItems"
              commandupdater="true"
              events="focus"
              oncommandupdate="goUpdateFindTypeMenuItems()"/>

  <commandset id="tasksCommands">
    <command id="cmd_quit" oncommand="goQuitApplication();"/>
    <command id="cmd_openHelp"
             oncommand="openHelp('welcome', 'chrome://communicator/locale/help/suitehelp.rdf');"/>
  </commandset>

  <command id="cmd_copyLink"
           oncommand="goDoCommand('cmd_copyLink')"
           disabled="false"/>
  <command id="cmd_copyImage"
           oncommand="CopyImage();"
           disabled="false"/>
  <command id="cmd_undo"
           label="&undoCmd.label;"
           oncommand="goDoCommand('cmd_undo')"
           disabled="true"/>
  <command id="cmd_redo"
           label="&redoCmd.label;"
           oncommand="goDoCommand('cmd_redo')"
           disabled="true"/>
  <command id="cmd_cut"
           label="&cutCmd.label;"
           oncommand="goDoCommand('cmd_cut')"
           disabled="true"/>
  <command id="cmd_copy"
           label="&copyCmd.label;"
           oncommand="goDoCommand('cmd_copy')"
           disabled="true"/>
  <command id="cmd_paste"
           label="&pasteCmd.label;"
           oncommand="goDoCommand('cmd_paste')"
           disabled="true"/>
  <command id="cmd_delete"
           label="&deleteCmd.label;"
           oncommand="goDoCommand('cmd_delete')"
           valueDefault="&deleteCmd.label;"
           valueDefaultAccessKey="&deleteCmd.accesskey;"
           disabled="true"/>
  <command id="cmd_selectAll"
           oncommand="goDoCommand('cmd_selectAll')"
           disabled="true"/>
  <command id="cmd_switchTextDirection"
           oncommand="goDoCommand('cmd_switchTextDirection');"/>
  <command id="cmd_findTypeText"
           oncommand="findTextAsYouType();"/>
  <command id="cmd_findTypeLinks"
           oncommand="findLinksAsYouType();"/>

  <!-- Not needed yet, window will need this: -->
  <!-- broadcaster id="cmd_preferences"/ -->

  <menuitem id="menu_preferences"
            label="&preferencesCmd.label;"
            key="key_preferences"
            accesskey="&preferencesCmd.accesskey;"/>

  <!-- View Menu -->
  <menu id="menu_View"
        label="&viewMenu.label;"
        accesskey="&viewMenu.accesskey;"/>
  <menu id="menu_Toolbars"
        label="&viewToolbarsMenu.label;"
        accesskey="&viewToolbarsMenu.accesskey;"/>

  <menuitem id="menu_showTaskbar"
            label="&showTaskbarCmd.label;"
            accesskey="&showTaskbarCmd.accesskey;"
            oncommand="goToggleToolbar('status-bar', 'menu_showTaskbar')"
            type="checkbox"
            checked="true"/>

  <!-- Help Menu -->
  <menu id="menu_Help"
        label="&helpMenu.label;"
        accesskey="&helpMenu.accesskey;">
    
    <menupopup id="helpPopup" onpopupshowing="updateCheckUpdatesItem();">
      <!-- XXXTobin: Get rid of this...
      <menuitem label="&openHelpCmd.label;"
                accesskey="&openHelpCmd.accesskey;"
                id="help"
                key="key_openHelp"
                command="cmd_openHelp"/>
      -->
      <menuitem id="troubleShooting"
                accesskey="&helpTroubleshootingInfo.accesskey;"
                label="&helpTroubleshootingInfo.label;"
                oncommand="goTroubleshootingPage();"/>
      <menuitem id="helpSafeMode"
                accesskey="&helpSafeMode.accesskey;"
                label="&helpSafeMode.label;"
                oncommand="safeModeRestart();"/>

      <menuseparator id="updateSeparator"/>

      <menuitem accesskey="&updateCmd.accesskey;" label="&updateCmd.label;"
                id="checkForUpdates" oncommand="checkForUpdates();"/>

      <menuseparator id="menu_HelpAboutSeparator"/>

      <menuitem id="releaseUrl"
                accesskey="&releaseCmd.accesskey;"
                label="&releaseCmd.label;"
                oncommand="goReleaseNotes();"/>
      <menuitem accesskey="&aboutCmd.accesskey;"
                label="&aboutCmd.label;"
                id="aboutName"
                oncommand="goAbout();"/>
    </menupopup>
  </menu>

  <menupopup id="popupNotificationMenu"
         oncommand="popupBlockerMenuCommand(event.target);"
         onpopupshowing="return popupNotificationMenuShowing(event);"
         onpopuphiding="RemovePopupsItems(this);">
    <menuitem id="allowPopupsForSite" hidden="true" accesskey="&allowPopups.accesskey;"
              oncommand="this.notificationbox.allowPopupsForSite(event);"/>
    <menuitem id="showPopupManager" label="&showPopupManager.label;"
              accesskey="&showPopupManager.accesskey;"
              oncommand="toDataManager(hostUrl() + '|permissions|add|popup')"/>
    <menuitem id="dontShowMessage" label="&dontShowMessage.label;"
              accesskey="&dontShowMessage.accesskey;"
              oncommand="disablePopupBlockerNotifications();"/>
    <menuseparator id="popupNotificationMenuSeparator" hidden="true"/>
    <!-- Additional items are generated, see popupNotificationMenuShowing() -->
  </menupopup>

  <toolbarbutton id="print-button"
                 type="menu-button"
                 class="toolbarbutton-1 chromeclass-toolbar-additional"
                 command="cmd_print">
    <menupopup id="printMenu">
      <menuitem id="printMenuItemToolbar"
                label="&printCmd.label;"
                accesskey="&printCmd.accesskey;"
                default="true"
                command="cmd_print"/>
      <menuitem id="printPreviewMenuItemToolbar"
                label="&printPreviewCmd.label;"
                accesskey="&printPreviewCmd.accesskey;"
                command="cmd_printpreview"/>
    </menupopup>
  </toolbarbutton>

  <!-- Sync toolbar button -->
  <toolbarbutton id="sync-button"
                 class="toolbarbutton-1 chromeclass-toolbar-additional"
                 label="&syncToolbarButton.label;"
                 oncommand="gSyncUI.handleToolbarButton();"/>
</overlay>
