<?xml version="1.0"?> 
<!-- ***** BEGIN LICENSE BLOCK *****
   - Version: MPL 1.1/GPL 2.0/LGPL 2.1
   -
   - The contents of this file are subject to the Mozilla Public License Version
   - 1.1 (the "License"); you may not use this file except in compliance with
   - the License. You may obtain a copy of the License at
   - http://www.mozilla.org/MPL/
   -
   - Software distributed under the License is distributed on an "AS IS" basis,
   - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
   - for the specific language governing rights and limitations under the
   - License.
   -
   - The Original Code is Mozilla Communicator client code, released
   - March 31, 1998.
   -
   - The Initial Developer of the Original Code is
   - Netscape Communications Corporation.
   - Portions created by the Initial Developer are Copyright (C) 1999
   - the Initial Developer. All Rights Reserved.
   -
   - Contributor(s):
   -   Ryan Cassin (rcassin@supernova.org)
   -   Daniel Glazman (glazman@netscape.com)
   -   Aaron Kaluszka (ask@swva.net)
   -   Stephen Donner (technutz@netscape.net)
   -
   - Alternatively, the contents of this file may be used under the terms of
   - either of the GNU General Public License Version 2 or later (the "GPL"),
   - or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
   - in which case the provisions of the GPL or the LGPL are applicable instead
   - of those above. If you wish to allow use of your version of this file only
   - under the terms of either the GPL or the LGPL, and not to allow others to
   - use your version of this file under the terms of the MPL, indicate your
   - decision by deleting the provisions above and replace them with the notice
   - and other provisions required by the GPL or the LGPL. If you do not delete
   - the provisions above, a recipient may use your version of this file under
   - the terms of any one of the MPL, the GPL or the LGPL.
   -
   - ***** END LICENSE BLOCK ***** -->

<!DOCTYPE overlay [
<!ENTITY % editorOverlayDTD SYSTEM "chrome://editor/locale/editorOverlay.dtd">
%editorOverlayDTD;
<!ENTITY % platformCommunicatorDTD SYSTEM
  "chrome://communicator-platform/locale/platformCommunicatorOverlay.dtd">
%platformCommunicatorDTD;
]>

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

<script type="application/javascript" src="chrome://editor/content/editorUtilities.js"/>
<script type="application/javascript" src="chrome://editor/content/ComposerCommands.js"/>

  <keyset id="editorKeys">
    <!-- defined in globalOverlay -->
    <key id="key_newNavigator"/>
    <key id="key_newBlankPage"/>
    <key id="key_save"
         key="&saveCmd.key;"
         command="cmd_save"
         modifiers="accel"/>
    <key id="key_print"/>
    <key id="key_close"/>
    <key id="key_quit"/>
    <key id="key_undo"/>
    <key id="key_redo"/>
    <key id="key_cut"/>
    <key id="key_copy"/>
    <key id="key_paste"/>
    <key id="key_delete"/>
    <key id="key_delete2"/>
    <key id="key_selectAll"/>
    <key id="pastequotationkb"
         key="&pasteAsQuotationCmd.key;"
         command="cmd_pasteQuote"
         modifiers="accel, shift"/>
    <key id="pastenoformattingkb"
         key="&pasteNoFormatting.key;"
         command="cmd_pasteNoFormatting"
         modifiers="accel, shift"/>
    <keyset id="findKeys"/>
    <key id="key_checkspelling"
         key="&checkSpellingCmd2.key;"
         command="cmd_spelling"
         modifiers="accel,shift"/>

    <key id="boldkb"
         key="&styleBoldCmd.key;"
         command="cmd_bold"
         modifiers="accel"/>
    <key id="italickb"
         key="&styleItalicCmd.key;"
         command="cmd_italic"
         modifiers="accel"/>
    <key id="underlinekb"
         key="&styleUnderlineCmd.key;"
         command="cmd_underline"
         modifiers="accel"/>
    <key id="fixedwidthkb"
         key="&fontFixedWidth.key;"
         command="cmd_tt"
         modifiers="accel"/>

    <key id="increaseindentkb"
         key="&increaseIndent.key;"
         command="cmd_indent"
         modifiers="accel"/>
    <key id="decreaseindentkb"
         key="&decreaseIndent.key;"
         command="cmd_outdent"
         modifiers="accel"/>

    <key id="removestyleskb"
         key="&formatRemoveStyles.key;"
         command="cmd_removeStyles"
         modifiers="accel, shift"/>
    <key id="removestyleskb2"
         key=" "
         command="cmd_removeStyles"
         modifiers="accel"/>
    <key id="removelinkskb"
         key="&formatRemoveLinks.key;"
         command="cmd_removeLinks"
         modifiers="accel, shift"/>
    <key id="removenamedanchorskb"
         key="&formatRemoveNamedAnchors2.key;"
         command="cmd_removeNamedAnchors"
         modifiers="accel, shift"/>
    <key id="decreasefontsizekb"
         key="&decreaseFontSize.key;"
         command="cmd_decreaseFont"
         modifiers="accel"/>
    <key id="increasefontsizekb"
         key="&increaseFontSize.key;"
         command="cmd_increaseFont"
         modifiers="accel"/>
    <key key="&increaseFontSize.key;"
         command="cmd_increaseFont"
         modifiers="accel,shift"/>
    <key key="&increaseFontSize.key2;"
         command="cmd_increaseFont"
         modifiers="accel"/>

    <key id="insertlinkkb"
         key="&insertLinkCmd.key;"
         command="cmd_link"
         modifiers="accel"/>
  </keyset>

  <!-- commands updated when the editor gets created -->
  <commandset id="commonEditorMenuItems"
          commandupdater="true"
          events="create"
          oncommandupdate="goUpdateComposerMenuItems(this)">
    <command id="cmd_printSetup"   oncommand="goDoCommand('cmd_printSetup')"/>
    <command id="cmd_print"        oncommand="goDoCommand('cmd_print')"/>
    <command id="cmd_close"        oncommand="goDoCommand('cmd_close');"/>
    <command id="cmd_quit"         oncommand="goDoCommand('cmd_quit')"/>
  </commandset>

  <commandset id="composerMenuItems"
          commandupdater="true"
          events="create, mode_switch"
          oncommandupdate="goUpdateComposerMenuItems(this)">
    <!-- format menu -->
    <command id="cmd_listProperties"  oncommand="goDoCommand('cmd_listProperties')"/>
    <command id="cmd_colorProperties" oncommand="goDoCommand('cmd_colorProperties')"/>

    <command id="cmd_link"             oncommand="goDoCommand('cmd_link')"/>
    <command id="cmd_anchor"           oncommand="goDoCommand('cmd_anchor')"/>
    <command id="cmd_image"            oncommand="goDoCommand('cmd_image')"/>
    <command id="cmd_hline"            oncommand="goDoCommand('cmd_hline')"/>
    <command id="cmd_table"            oncommand="goDoCommand('cmd_table')"/>
    <command id="cmd_form"             oncommand="goDoCommand('cmd_form')"/>
    <command id="cmd_inputtag"         oncommand="goDoCommand('cmd_inputtag')"/>
    <command id="cmd_inputimage"       oncommand="goDoCommand('cmd_inputimage')"/>
    <command id="cmd_textarea"         oncommand="goDoCommand('cmd_textarea')"/>
    <command id="cmd_select"           oncommand="goDoCommand('cmd_select')"/>
    <command id="cmd_button"           oncommand="goDoCommand('cmd_button')"/>
    <command id="cmd_label"            oncommand="goDoCommand('cmd_label')"/>
    <command id="cmd_fieldset"         oncommand="goDoCommand('cmd_fieldset')"/>
    <command id="cmd_isindex"          oncommand="goDoCommand('cmd_isindex')"/>
    <command id="cmd_objectProperties" oncommand="goDoCommand('cmd_objectProperties')"/>
    <command id="cmd_insertChars"      oncommand="goDoCommand('cmd_insertChars')"    label="&insertCharsCmd.label;"/>
    <command id="cmd_insertHTMLWithDialog" oncommand="goDoCommand('cmd_insertHTMLWithDialog')"  label="&insertHTMLCmd.label;"/>
    <command id="cmd_insertBreak"      oncommand="goDoCommand('cmd_insertBreak')"/>
    <command id="cmd_insertBreakAll"   oncommand="goDoCommand('cmd_insertBreakAll')"/>

    <!-- only used in context popup menu -->
    <command id="cmd_editLink"         oncommand="goDoCommand('cmd_editLink')"/>

    <!-- dummy command used just to disable things in non-HTML modes -->
    <command id="cmd_renderedHTMLEnabler"/>
  </commandset>
  
  <!-- edit menu commands. These get updated by code in globalOverlay.js -->
  <commandset id="composerEditMenuItems"
          commandupdater="true"
          events="create, mode_switch"
          oncommandupdate="goUpdateComposerMenuItems(this)">
    <command id="cmd_undo"/>
    <command id="cmd_redo"/>
    <command id="cmd_cut"/>
    <command id="cmd_copy"/>
    <command id="cmd_paste"/>  
    <command id="cmd_pasteNoFormatting" oncommand="goDoCommand('cmd_pasteNoFormatting')"
             label="&pasteNoFormatting.label;" accesskey="&pasteNoFormatting.accesskey;"/>
    <command id="cmd_delete"/>
    <command id="cmd_selectAll"/>
    <command id="cmd_preferences"   oncommand="goDoCommand('cmd_preferences')"/>
    <command id="cmd_find"          oncommand="goDoCommand('cmd_find')"/>
    <command id="cmd_findNext"      oncommand="goDoCommand('cmd_findNext');"/>
    <command id="cmd_findPrev"      oncommand="goDoCommand('cmd_findPrev');"/>
    <command id="cmd_spelling"      oncommand="goDoCommand('cmd_spelling')"/>
    <command id="cmd_checkLinks"    oncommand="goDoCommand('cmd_checkLinks')"/>
    <command id="cmd_pasteQuote"
             label="&pasteAsQuotationCmd.label;"
             accesskey="&pasteAsQuotationCmd.accesskey;"
             oncommand="goDoCommand('cmd_pasteQuote');"/>
  </commandset>

  <!-- style related commands that update on creation, and on selection change -->
  <commandset id="composerStyleMenuItems"
          commandupdater="true"
          events="create, style, mode_switch"
          oncommandupdate="goUpdateComposerMenuItems(this)">
    <command id="cmd_bold"          state="false"     oncommand="doStyleUICommand('cmd_bold')"/>
    <command id="cmd_italic"        state="false"     oncommand="doStyleUICommand('cmd_italic')"/>
    <command id="cmd_underline"     state="false"     oncommand="doStyleUICommand('cmd_underline')"/>
    <command id="cmd_tt"            state="false"     oncommand="doStyleUICommand('cmd_tt')"/>
    <command id="cmd_smiley"/>
    <command id="cmd_strikethrough" state="false"     oncommand="doStyleUICommand('cmd_strikethrough');"/>
    <command id="cmd_superscript"   state="false"     oncommand="doStyleUICommand('cmd_superscript');"/>
    <command id="cmd_subscript"     state="false"     oncommand="doStyleUICommand('cmd_subscript');"/>
    <command id="cmd_nobreak"       state="false"     oncommand="doStyleUICommand('cmd_nobreak');"/>
    <command id="cmd_em"            state="false"     oncommand="doStyleUICommand('cmd_em')"/>
    <command id="cmd_strong"        state="false"     oncommand="doStyleUICommand('cmd_strong')"/>
    <command id="cmd_cite"          state="false"     oncommand="doStyleUICommand('cmd_cite')"/>
    <command id="cmd_abbr"          state="false"     oncommand="doStyleUICommand('cmd_abbr')"/>
    <command id="cmd_acronym"       state="false"     oncommand="doStyleUICommand('cmd_acronym')"/>
    <command id="cmd_code"          state="false"     oncommand="doStyleUICommand('cmd_code')"/>
    <command id="cmd_samp"          state="false"     oncommand="doStyleUICommand('cmd_samp')"/>
    <command id="cmd_var"           state="false"     oncommand="doStyleUICommand('cmd_var')"/>
    <command id="cmd_ul"            state="false"     oncommand="doStyleUICommand('cmd_ul')"/>
    <command id="cmd_ol"            state="false"     oncommand="doStyleUICommand('cmd_ol')"/>
    <command id="cmd_indent"                          oncommand="goDoCommand('cmd_indent')"/>
    <command id="cmd_outdent"                         oncommand="goDoCommand('cmd_outdent')"/>

    <!-- the state attribute gets filled with the paragraph format before the command is exectued -->
    <command id="cmd_paragraphState"  state=""         oncommand="doStatefulCommand('cmd_paragraphState', event.target.value)"/>
    <command id="cmd_fontFace"        state=""         oncommand="doStatefulCommand('cmd_fontFace', event.target.value)"/>

    <!-- No "oncommand", use EditorSelectColor() to bring up color dialog -->
    <command id="cmd_fontColor"       state=""/>
    <command id="cmd_backgroundColor" state=""/>
    <command id="cmd_highlight"       state="transparent"  oncommand="EditorSelectColor('Highlight', event);"/>
    <command id="cmd_fontSize"                         oncommand="goDoCommand('cmd_fontSize')"/>
    <command id="cmd_align"           state=""/>
    <command id="cmd_absPos"          state=""        oncommand="goDoCommand('cmd_absPos')"/>
    <command id="cmd_increaseZIndex"  state=""        oncommand="goDoCommand('cmd_increaseZIndex')"/>
    <command id="cmd_decreaseZIndex"  state=""        oncommand="goDoCommand('cmd_decreaseZIndex')"/>
    <command id="cmd_advancedProperties"              oncommand="goDoCommand('cmd_advancedProperties')"/>
    <command id="cmd_increaseFont"                    oncommand="goDoCommand('cmd_increaseFont')"/>
    <command id="cmd_decreaseFont"                    oncommand="goDoCommand('cmd_decreaseFont')"/>
    <command id="cmd_removeStyles"                    oncommand="goDoCommand('cmd_removeStyles')"/>
    <command id="cmd_removeLinks"                     oncommand="goDoCommand('cmd_removeLinks')"/>
    <command id="cmd_removeNamedAnchors"              oncommand="goDoCommand('cmd_removeNamedAnchors')"/>
  </commandset>

  <!-- commands updated only when the menu gets created -->
  <commandset id="composerListMenuItems"
          commandupdater="true"
          events="create, mode_switch"
          oncommandupdate="goUpdateComposerMenuItems(this)">
    <!-- List menu  -->
    <command id="cmd_dt"                  oncommand="doStyleUICommand('cmd_dt')"/>
    <command id="cmd_dd"                  oncommand="doStyleUICommand('cmd_dd')"/>
    <command id="cmd_removeList"          oncommand="goDoCommand('cmd_removeList')"/>
    <!-- cmd_ul and cmd_ol are shared with toolbar and are in composerStyleMenuItems commandset -->
  </commandset>

  <commandset id="composerTableMenuItems"
          commandupdater="true"
          events="create, mode_switch"
          oncommandupdate="goUpdateTableMenuItems(this)">
    <!-- Table menu -->
    <command id="cmd_SelectTable"         oncommand="goDoCommand('cmd_SelectTable')"/>
    <command id="cmd_SelectRow"           oncommand="goDoCommand('cmd_SelectRow')"/>
    <command id="cmd_SelectColumn"        oncommand="goDoCommand('cmd_SelectColumn')"/>
    <command id="cmd_SelectCell"          oncommand="goDoCommand('cmd_SelectCell')"/>
    <command id="cmd_SelectAllCells"      oncommand="goDoCommand('cmd_SelectAllCells')"/>
    <command id="cmd_InsertTable"         oncommand="goDoCommand('cmd_InsertTable')"/>
    <command id="cmd_InsertRowAbove"      oncommand="goDoCommand('cmd_InsertRowAbove')"/>
    <command id="cmd_InsertRowBelow"      oncommand="goDoCommand('cmd_InsertRowBelow')"/>
    <command id="cmd_InsertColumnBefore"  oncommand="goDoCommand('cmd_InsertColumnBefore')"/>
    <command id="cmd_InsertColumnAfter"   oncommand="goDoCommand('cmd_InsertColumnAfter')"/>
    <command id="cmd_InsertCellBefore"    oncommand="goDoCommand('cmd_InsertCellBefore')"/>
    <command id="cmd_InsertCellAfter"     oncommand="goDoCommand('cmd_InsertCellAfter')"/>
    <command id="cmd_DeleteTable"         oncommand="goDoCommand('cmd_DeleteTable')"/>
    <command id="cmd_DeleteRow"           oncommand="goDoCommand('cmd_DeleteRow')"/>
    <command id="cmd_DeleteColumn"        oncommand="goDoCommand('cmd_DeleteColumn')"/>
    <command id="cmd_DeleteCell"          oncommand="goDoCommand('cmd_DeleteCell')"/>
    <command id="cmd_DeleteCellContents"  oncommand="goDoCommand('cmd_DeleteCellContents')"/>
    <command id="cmd_NormalizeTable"      oncommand="goDoCommand('cmd_NormalizeTable')"/>
    <command id="cmd_JoinTableCells"      oncommand="goDoCommand('cmd_JoinTableCells')"/>
    <command id="cmd_SplitTableCell"      oncommand="goDoCommand('cmd_SplitTableCell')"/>
    <command id="cmd_ConvertToTable"      oncommand="goDoCommand('cmd_ConvertToTable')"/>
    <command id="cmd_TableOrCellColor"    oncommand="goDoCommand('cmd_TableOrCellColor')"/>
    <command id="cmd_editTable"           oncommand="goDoCommand('cmd_editTable')"/>
  </commandset>

  <commandset id="editorCommands">
    <commandset id="globalEditMenuItems"/>
    <commandset id="selectEditMenuItems"/>
    <commandset id="undoEditMenuItems"/>
    <commandset id="clipboardEditMenuItems"/>
    <command id="toggleSidebar"/>
    <!-- file menu -->
    <command id="cmd_newNavigator"/>
    <command id="cmd_newEditor"/>
    <command id="cmd_newEditorTemplate"/>
    <command id="cmd_newEditorDraft"/>
    <!-- view menu -->
    <command id="cmd_viewCompToolbar"     oncommand="goToggleToolbar('EditToolbar','cmd_viewCompToolbar');"         checked="true"/>
    <command id="cmd_viewFormatToolbar"   oncommand="goToggleToolbar('FormatToolbar','cmd_viewFormatToolbar');"     checked="true"/>
  </commandset>

  <menu id="menu_Edit">
    <menupopup id="menu_EditPopup">
      <!-- from utilityOverlay.xul -->
      <menuitem id="menu_undo"/>
      <menuitem id="menu_redo"/>
      <menuseparator id="sep_cut"/>
      <menuitem id="menu_cut"/>
      <menuitem id="menu_copy"/>
      <menuitem id="menu_paste"/>
      <menuitem id="menu_pasteNoFormatting"
                key="pastenoformattingkb"
                command="cmd_pasteNoFormatting"/>
      <menuitem id="menu_delete"/>
      <menuseparator id="sep_selectAll"/>
      <menuitem id="menu_selectAll"/>
      <menuseparator id="sep_find"/>
      <menuitem id="menu_find" label="&findCmd.label;"/>
      <menuitem id="menu_findNext"/>
      <menuitem id="menu_findPrev"/>
      <menuseparator id="sep_checkspelling"/>
      <menuitem id="menu_checkspelling"
                label="&checkSpellingCmd2.label;"
                accesskey="&checkSpellingCmd2.accesskey;"
                key="key_checkspelling"
                command="cmd_spelling"/>
      <menuitem id="menu_inlineSpellCheck"
                type="checkbox"
                label="&enableInlineSpellChecker.label;"
                accesskey="&enableInlineSpellChecker.accesskey;"/>
      <menuseparator id="sep_preferences"/>
      <menuitem id="menu_preferences"
                command="cmd_preferences"/>
    </menupopup>
  </menu>

  <!-- Insert menu -->
  <menu id="insertMenu"
        label="&insertMenu.label;"
        accesskey="&insertMenu.accesskey;">
    <menupopup id="insertMenuPopup">
      <menuitem id="insertImage"
                label="&insertImageCmd.label;"
                accesskey="&insertImageCmd.accesskey;"
                command="cmd_image"/>
      <menuitem id="insertTable"
                label="&insertTableCmd.label;"
                accesskey="&insertTableCmd.accesskey;"
                command="cmd_InsertTable"/>
      <menuitem id="insertLink"
                label="&insertLinkCmd.label;"
                accesskey="&insertLinkCmd.accesskey;"
                command="cmd_link"
                key="insertlinkkb"/>
      <menuitem id="insertAnchor"
                label="&insertAnchorCmd.label;"
                accesskey="&insertAnchorCmd.accesskey;"
                command="cmd_anchor"/>
      <menuitem id="insertHline"
                label="&insertHLineCmd.label;"
                accesskey="&insertHLineCmd.accesskey;"
                command="cmd_hline"/>
      <menuitem id="insertHTMLSource"
                accesskey="&insertHTMLCmd.accesskey;"
                command="cmd_insertHTMLWithDialog"
                key="inserthtmlkb"/>
      <menuitem id="insertChars"
                accesskey="&insertCharsCmd.accesskey;"
                command="cmd_insertChars"/>
      <menu id="insertTOC" label="&tocMenu.label;" accesskey="&tocMenu.accesskey;">
        <menupopup id="insertTOCPopup" onpopupshowing="InitTOCMenu()">
          <menuitem id="insertTOCMenuitem"
                    label="&insertTOC.label;"
                    accesskey="&insertTOC.accesskey;"
                    oncommand="UpdateTOC()"/>
          <menuitem id="updateTOCMenuitem"
                    label="&updateTOC.label;"
                    accesskey="&updateTOC.accesskey;"
                    oncommand="UpdateTOC()"/>
          <menuitem id="removeTOCMenuitem"
                    label="&removeTOC.label;"
                    accesskey="&removeTOC.accesskey;"
                    oncommand="RemoveTOC()"/>
        </menupopup>
      </menu>
      <menuseparator id="insertMenuSeparator"/>
      <menuitem id="insertBreakAll"
                accesskey="&insertBreakAllCmd.accesskey;"
                command="cmd_insertBreakAll"
                label="&insertBreakAllCmd.label;"/>
    </menupopup>
  </menu>

  <!-- Format Menu -->
  <menupopup id="formatMenuPopup" onpopupshowing="EditorInitFormatMenu()">
    <!-- Font face submenu -->
    <menu id="fontFaceMenu"
          label="&fontfaceMenu.label;"
          accesskey="&fontfaceMenu.accesskey;"
          position="1">
      <menupopup id="fontFaceMenuPopup"
                 oncommand="if (event.target.localName == 'menuitem')
                              doStatefulCommand('cmd_fontFace', event.target.getAttribute('value'));"
                 onpopupshowing="initFontFaceMenu(this);">
        <menuitem id="menu_fontFaceVarWidth"
                  label="&fontVarWidth.label;"
                  accesskey="&fontVarWidth.accesskey;"
                  value=""
                  type="radio"
                  name="1"
                  observes="cmd_renderedHTMLEnabler"/>
        <menuitem id="menu_fontFaceFixedWidth"
                  label="&fontFixedWidth.label;"
                  accesskey="&fontFixedWidth.accesskey;"
                  value="tt"
                  type="radio"
                  name="1"
                  observes="cmd_renderedHTMLEnabler"/>
        <menuseparator id="fontFaceMenuAfterFixedWidthSeparator"/>
        <menuitem id="menu_fontFaceHelvetica"
                  label="&fontHelvetica.label;"
                  accesskey="&fontHelvetica.accesskey;"
                  value="Helvetica, Arial, sans-serif"
                  type="radio"
                  name="2"
                  observes="cmd_renderedHTMLEnabler"/>
        <menuitem id="menu_fontFaceTimes"
                  label="&fontTimes.label;"
                  accesskey="&fontTimes.accesskey;"
                  value="Times New Roman, Times, serif"
                  type="radio"
                  name="2"
                  observes="cmd_renderedHTMLEnabler"/>
        <menuitem id="menu_fontFaceCourier"
                  label="&fontCourier.label;"
                  accesskey="&fontCourier.accesskey;"
                  value="Courier New, Courier, monospace"
                  type="radio"
                  name="2"
                  observes="cmd_renderedHTMLEnabler"/>
        <menuseparator id="fontFaceMenuAfterCourierSeparator"/>
          <!-- Local font face items added here by initLocalFontFaceMenu() -->
      </menupopup>
    </menu>

    <!-- Font size submenu -->
    <menu id="fontSizeMenu" label="&fontSizeMenu.label;"
          accesskey="&fontSizeMenu.accesskey;"
          position="2">
      <menupopup id="fontSizeMenuPopup" onpopupshowing="initFontSizeMenu(this)">
      <menuitem id="menu_decreaseFontSize"
                label="&decreaseFontSize.label;"
                accesskey="&decreaseFontSize.accesskey;"
                command="cmd_decreaseFont"
                type="radio"
                name="1"
                key="decreasefontsizekb"/>
      <menuitem id="menu_increaseFontSize"
                label="&increaseFontSize.label;"
                accesskey="&increaseFontSize.accesskey;"
                command="cmd_increaseFont"
                type="radio"
                name="1" key="increasefontsizekb"/>
        <menuseparator id="fontSizeMenuAfterIncreaseFontSizeSeparator"/>
        <menuitem id="menu_x-small"
                  label="&size-x-smallCmd.label;"
                  accesskey="&size-x-smallCmd.accesskey;"
                  oncommand="EditorSetFontSize('x-small')"
                  type="radio"
                  name="2"
                  observes="cmd_renderedHTMLEnabler"/>
        <menuitem id="menu_size-small"
                  label="&size-smallCmd.label;"
                  accesskey="&size-smallCmd.accesskey;"
                  oncommand="EditorSetFontSize('small')"
                  type="radio"
                  name="2"
                  observes="cmd_renderedHTMLEnabler"/>
        <menuitem id="menu_size-medium"
                  label="&size-mediumCmd.label;"
                  accesskey="&size-mediumCmd.accesskey;"
                  oncommand="EditorSetFontSize('medium')"
                  type="radio"
                  name="2"
                  observes="cmd_renderedHTMLEnabler"/>
        <menuitem id="menu_size-large"
                  label="&size-largeCmd.label;"
                  accesskey="&size-largeCmd.accesskey;"
                  oncommand="EditorSetFontSize('large')"
                  type="radio"
                  name="2"
                  observes="cmd_renderedHTMLEnabler"/>
        <menuitem id="menu_size-x-large"
                  label="&size-x-largeCmd.label;"
                  accesskey="&size-x-largeCmd.accesskey;"
                  oncommand="EditorSetFontSize('x-large')"
                  type="radio"
                  name="2"
                  observes="cmd_renderedHTMLEnabler"/>
        <menuitem id="menu_size-xx-large"
                  label="&size-xx-largeCmd.label;"
                  accesskey="&size-xx-largeCmd.accesskey;"
                  oncommand="EditorSetFontSize('xx-large')"
                  type="radio"
                  name="2"
                  observes="cmd_renderedHTMLEnabler"/>
      </menupopup>
    </menu>

    <!-- Font style submenu -->
    <menu id="fontStyleMenu" label="&fontStyleMenu.label;" 
          accesskey="&fontStyleMenu.accesskey;"
          position="3">
    <menupopup id="fontStyleMenuPopup" onpopupshowing="initFontStyleMenu(this)">
      <menuitem id="menu_styleBold"
                label="&styleBoldCmd.label;"
                accesskey="&styleBoldCmd.accesskey;"
                observes="cmd_bold"
                type="checkbox"
                key="boldkb"/>
      <menuitem id="menu_styleItalic"
                label="&styleItalicCmd.label;"
                accesskey="&styleItalicCmd.accesskey;"
                observes="cmd_italic"
                type="checkbox"
                key="italickb"/>
      <menuitem id="menu_styleUnderline"
                label="&styleUnderlineCmd.label;"
                accesskey="&styleUnderlineCmd.accesskey;"
                observes="cmd_underline"
                type="checkbox"
                key="underlinekb"/>
      <menuitem id="menu_styleStrikeThru"
                label="&styleStrikeThruCmd.label;"
                accesskey="&styleStrikeThruCmd.accesskey;"
                observes="cmd_strikethrough"
                type="checkbox"/>
      <menuitem id="menu_styleSuperscript"
                label="&styleSuperscriptCmd.label;"
                accesskey="&styleSuperscriptCmd.accesskey;"
                observes="cmd_superscript"
                type="checkbox"/>
      <menuitem id="menu_styleSubscript"
                label="&styleSubscriptCmd.label;"
                accesskey="&styleSubscriptCmd.accesskey;"
                observes="cmd_subscript"
                type="checkbox"/>
      <menuitem id="menu_fontFixedWidth"
                label="&fontFixedWidth.label;"
                accesskey="&fontFixedWidth.accesskey;"
                observes="cmd_tt"
                type="checkbox"
                key="fixedwidthkb"/>
      <menuitem id="menu_styleNonbreaking"
                label="&styleNonbreakingCmd.label;"
                accesskey="&styleNonbreakingCmd.accesskey;"
                observes="cmd_nobreak"
                type="checkbox"/>
      <menuseparator id="fontStyleMenuAfterNonbreakingSeparator"/>
      <menuitem id="menu_styleEm"
                label="&styleEm.label;"
                accesskey="&styleEm.accesskey;"
                observes="cmd_em"
                type="checkbox"/>
      <menuitem id="menu_styleStrong"
                label="&styleStrong.label;"
                accesskey="&styleStrong.accesskey;"
                observes="cmd_strong"
                type="checkbox"/>
      <menuitem id="menu_styleCite"
                label="&styleCite.label;"
                accesskey="&styleCite.accesskey;"
                observes="cmd_cite"
                type="checkbox"/>
      <menuitem id="menu_styleAbbr"
                label="&styleAbbr.label;"
                accesskey="&styleAbbr.accesskey;"
                observes="cmd_abbr"
                type="checkbox"/>
      <menuitem id="menu_styleAcronym"
                label="&styleAcronym.label;"
                accesskey="&styleAcronym.accesskey;"
                observes="cmd_acronym"
                type="checkbox"/>
      <menuitem id="menu_styleCode"
                label="&styleCode.label;"
                accesskey="&styleCode.accesskey;"
                observes="cmd_code"
                type="checkbox"/>
      <menuitem id="menu_styleSamp"
                label="&styleSamp.label;"
                accesskey="&styleSamp.accesskey;"
                observes="cmd_samp"
                type="checkbox"/>
      <menuitem id="menu_styleVar"
                label="&styleVar.label;"
                accesskey="&styleVar.accesskey;"
                observes="cmd_var"
                type="checkbox"/>
    </menupopup>
    </menu>
    
    <!-- Note: "cmd_fontColor" only monitors color state, it doesn't execute the command
         (We should use "cmd_fontColorState" and "cmd_backgroundColorState" ?) -->
    <menuitem id="fontColor"
              label="&formatFontColor.label;" 
              accesskey="&formatFontColor.accesskey;"
              observes="cmd_fontColor"
              oncommand="EditorSelectColor('Text', null);"
              position="4"/>
    <menuseparator id="removeSep" position="5"/>

    <!-- label and accesskey set at runtime from strings -->
    <menuitem id="removeStylesMenuitem"
              key="removestyleskb"
              observes="cmd_removeStyles"
              position="6"/>
    <menuitem id="removeLinksMenuitem"
              key="removelinkskb"
              observes="cmd_removeLinks"
              position="7"/>
    <menuitem id="removeNamedAnchorsMenuitem"
              label="&formatRemoveNamedAnchors.label;"
              key="removenamedanchorskb"
              accesskey="&formatRemoveNamedAnchors.accesskey;"
              observes="cmd_removeNamedAnchors"
              position="8"/>
    <menuseparator id="tabSep" position="9"/>

    <!-- Note: the 'Init' menu methods for Paragraph, List, and Align
         assume that the id = 'menu_'+tagName (the 'value' label),
         except for the first ('none') item
     -->
    <!-- Paragraph Style submenu -->
    <menu id="paragraphMenu" label="&paragraphMenu.label;"
          accesskey="&paragraphMenu.accesskey;"
          position="10" onpopupshowing="InitParagraphMenu()">
      <menupopup id="paragraphMenuPopup"
                 oncommand="doStatefulCommand('cmd_paragraphState', event.target.getAttribute('value'))">
        <menuitem id="menu_bodyText"
                  type="radio"
                  name="1"
                  label="&bodyTextCmd.label;"
                  accesskey="&bodyTextCmd.accesskey;"
                  value=""
                  observes="cmd_renderedHTMLEnabler"/>
        <menuitem id="menu_p"
                  type="radio"
                  name="1"
                  label="&paragraphParagraphCmd.label;"
                  accesskey="&paragraphParagraphCmd.accesskey;"
                  value="p"
                  observes="cmd_renderedHTMLEnabler"/>
        <menuitem id="menu_h1"
                  type="radio"
                  name="1"
                  label="&heading1Cmd.label;"
                  accesskey="&heading1Cmd.accesskey;"
                  value="h1"
                  observes="cmd_renderedHTMLEnabler"/>
        <menuitem id="menu_h2"
                  type="radio"
                  name="1"
                  label="&heading2Cmd.label;"
                  accesskey="&heading2Cmd.accesskey;"
                  value="h2"
                  observes="cmd_renderedHTMLEnabler"/>
        <menuitem id="menu_h3"
                  type="radio"
                  name="1" label="&heading3Cmd.label;"
                  accesskey="&heading3Cmd.accesskey;"
                  value="h3"
                  observes="cmd_renderedHTMLEnabler"/>
        <menuitem id="menu_h4"
                  type="radio"
                  name="1" label="&heading4Cmd.label;"
                  accesskey="&heading4Cmd.accesskey;"
                  value="h4"
                  observes="cmd_renderedHTMLEnabler"/>
        <menuitem id="menu_h5"
                  type="radio"
                  name="1" label="&heading5Cmd.label;"
                  accesskey="&heading5Cmd.accesskey;"
                  value="h5"
                  observes="cmd_renderedHTMLEnabler"/>
        <menuitem id="menu_h6"
                  type="radio"
                  name="1"
                  label="&heading6Cmd.label;"
                  accesskey="&heading6Cmd.accesskey;"
                  value="h6"
                  observes="cmd_renderedHTMLEnabler"/>
        <menuitem id="menu_address"
                  type="radio"
                  name="1"
                  label="&paragraphAddressCmd.label;"
                  accesskey="&paragraphAddressCmd.accesskey;"
                  value="address"
                  observes="cmd_renderedHTMLEnabler"/>
        <menuitem id="menu_pre"
                  type="radio"
                  name="1"
                  label="&paragraphPreformatCmd.label;"
                  accesskey="&paragraphPreformatCmd.accesskey;"
                  value="pre"
                  observes="cmd_renderedHTMLEnabler"/>
      </menupopup>
    </menu>

    <!-- List Style submenu -->
    <menu id="listMenu" label="&formatlistMenu.label;"
          accesskey="&formatlistMenu.accesskey;"
          position="11" onpopupshowing="InitListMenu()">
      <menupopup>
        <menuitem id="menu_noList"
                  type="radio"
                  name="1"
                  label="&noneCmd.label;"
                  accesskey="&noneCmd.accesskey;"
                  command="cmd_removeList"/>
        <menuitem id="menu_ul"
                  type="radio"
                  name="1"
                  label="&listBulletCmd.label;"
                  accesskey="&listBulletCmd.accesskey;"
                  command="cmd_ul"/>
        <menuitem id="menu_ol"
                  type="radio"
                  name="1"
                  label="&listNumberedCmd.label;"
                  accesskey="&listNumberedCmd.accesskey;"
                  command="cmd_ol"/>
        <menuitem id="menu_dt"
                  type="radio"
                  name="1"
                  label="&listTermCmd.label;"
                  accesskey="&listTermCmd.accesskey;"
                  command="cmd_dt"/>
        <menuitem id="menu_dd"
                  type="radio"
                  name="1"
                  label="&listDefinitionCmd.label;"
                  accesskey="&listDefinitionCmd.accesskey;"
                  command="cmd_dd"/>
        <menuseparator/>
        <menuitem id="listProps"
                  label="&listPropsCmd.label;"
                  accesskey="&listPropsCmd.accesskey;"
                  command="cmd_listProperties"/>
      </menupopup>
    </menu>
    <menuseparator id="identingSep" position="12"/>

    <menuitem id="increaseIndent"
              label="&increaseIndent.label;"
              accesskey="&increaseIndent.accesskey;"
              key="increaseindentkb"
              command="cmd_indent"
              position="13"/>
    <menuitem id="decreaseIndent"
              label="&decreaseIndent.label;"
              accesskey="&decreaseIndent.accesskey;"
              key="decreaseindentkb"
              command="cmd_outdent"
              position="14"/>

    <menu id="alignMenu" label="&alignMenu.label;" accesskey="&alignMenu.accesskey;"
        onpopupshowing="InitAlignMenu()"
        position="15">
      <!-- Align submenu -->
      <menupopup id="alignMenuPopup"
                 oncommand="doStatefulCommand('cmd_align', event.target.getAttribute('value'))">
        <menuitem id="menu_left"
                  label="&alignLeft.label;"
                  accesskey="&alignLeft.accesskey;"
                  type="radio"
                  name="1"
                  value="left"
                  observes="cmd_renderedHTMLEnabler"/>
        <menuitem id="menu_center"
                  label="&alignCenter.label;"
                  accesskey="&alignCenter.accesskey;"
                  type="radio"
                  name="1"
                  value="center"
                  observes="cmd_renderedHTMLEnabler"/>
        <menuitem id="menu_right"
                  label="&alignRight.label;"
                  accesskey="&alignRight.accesskey;"
                  type="radio"
                  name="1"
                  value="right"
                  observes="cmd_renderedHTMLEnabler"/>
        <menuitem id="menu_justify"
                  label="&alignJustify.label;"
                  accesskey="&alignJustify.accesskey;"
                  type="radio"
                  name="1"
                  value="justify"
                  observes="cmd_renderedHTMLEnabler"/>
      </menupopup>
    </menu>
    <menuseparator id="tableSep" position="16"/>
    <!-- Merge Table Menu and separator in Messenger Composer here -->
    <!-- Merge property items here -->
  </menupopup>

  <!-- Next 2 are items to append at the bottom of the formatMenuPopup -->
  <!-- label and accesskey filled in during menu creation -->
  <menuitem id="objectProperties" command="cmd_objectProperties"/>
  <!-- Don't use 'observes', must call command correctly -->
  <menuitem id="colorsAndBackground"
            label="&colorsAndBackground.label;"
            accesskey="&colorsAndBackground.accesskey;"
            oncommand="goDoCommand('cmd_colorProperties')"
            observes="cmd_renderedHTMLEnabler"/>

  <menu id="tableMenu" label="&tableMenu.label;" accesskey="&tableMenu.accesskey;">
    <menupopup id="tableMenuPopup" onpopupshowing="EditorInitTableMenu()">
      <!-- From EditorCommandOverlay.xul (shared with context popup) -->
      <menu id="tableInsertMenu" label="&tableInsertMenu.label;" accesskey="&tableInsertMenu.accesskey;">
        <menupopup id="tableInsertMenuPopup">
          <menuitem id="menu_insertTable"
                    label="&insertTableCmd.label;"
                    accesskey="&insertTableCmd.accesskey;"
                    command="cmd_InsertTable"/>
          <menuseparator id="tableMenuAfterInsertTableSeparator"/>
          <menuitem id="menu_tableRowAbove"
                    label="&tableRowAbove.label;"
                    accesskey="&tableRowAbove.accesskey;"
                    command="cmd_InsertRowAbove"/>
          <menuitem id="menu_tableRowBelow"
                    label="&tableRowBelow.label;"
                    accesskey="&tableRowBelow.accesskey;"
                    command="cmd_InsertRowBelow"/>
          <menuseparator id="tableMenuAfterTableRowSeparator"/>
          <menuitem id="menu_tableColumnBefore"
                    label="&tableColumnBefore.label;"
                    accesskey="&tableColumnBefore.accesskey;"
                    command="cmd_InsertColumnBefore"/>
          <menuitem id="menu_tableColumnAfter"
                    label="&tableColumnAfter.label;"
                    accesskey="&tableColumnAfter.accesskey;"
                    command="cmd_InsertColumnAfter"/>
          <menuseparator id="tableMenuAfterInsertColumnSeparator"/>
          <menuitem id="menu_tableCellBefore"
                    label="&tableCellBefore.label;"
                    accesskey="&tableCellBefore.accesskey;"
                    command="cmd_InsertCellBefore"/>
          <menuitem id="menu_tableCellAfter"
                    label="&tableCellAfter.label;"
                    accesskey="&tableCellAfter.accesskey;"
                    command="cmd_InsertCellAfter"/>
        </menupopup>
      </menu>
      <menu id="tableSelectMenu" label="&tableSelectMenu.label;" accesskey="&tableSelectMenu.accesskey;">
        <menupopup id="tableSelectPopup">
          <menuitem id="menu_SelectTable"
                    label="&tableTable.label;"
                    accesskey="&tableTable.accesskey;"
                    command="cmd_SelectTable"/>
          <menuitem id="menu_SelectRow"
                    label="&tableRow.label;"
                    accesskey="&tableRow.accesskey;"
                    command="cmd_SelectRow"/>
          <menuitem id="menu_SelectColumn"
                    label="&tableColumn.label;"
                    accesskey="&tableColumn.accesskey;"
                    command="cmd_SelectColumn"/>
          <menuitem id="menu_SelectCell"
                    label="&tableCell.label;"
                    accesskey="&tableCell.accesskey;"
                    command="cmd_SelectCell"/>
          <menuitem id="menu_SelectAllCells"
                    label="&tableAllCells.label;"
                    accesskey="&tableAllCells.accesskey;"
                    command="cmd_SelectAllCells"/>
        </menupopup>
      </menu>
      <menu id="tableDeleteMenu" label="&tableDeleteMenu.label;" accesskey="&tableDeleteMenu.accesskey;">
        <menupopup id="tableDeletePopup">
          <menuitem id="menu_DeleteTable"
                    label="&tableTable.label;"
                    accesskey="&tableTable.accesskey;"
                    command="cmd_DeleteTable"/>
          <menuitem id="menu_DeleteRow"
                    label="&tableRows.label;"
                    accesskey="&tableRow.accesskey;"
                    command="cmd_DeleteRow"/>
          <menuitem id="menu_DeleteColumn"
                    label="&tableColumns.label;"
                    accesskey="&tableColumn.accesskey;"
                    command="cmd_DeleteColumn"/>
          <menuitem id="menu_DeleteCell"
                    label="&tableCells.label;"
                    accesskey="&tableCell.accesskey;"
                    command="cmd_DeleteCell"/>
          <menuitem id="menu_DeleteCellContents"
                    label="&tableCellContents.label;"
                    accesskey="&tableCellContents.accesskey;"
                    command="cmd_DeleteCellContents"/>
        </menupopup>
      </menu>
      <menuseparator id="tableDeleteMenuAfterDeleteCellSeparator"/>
      <!-- menu label is set in InitTableMenu -->
      <menuitem id="menu_JoinTableCells"
                label="&tableJoinCells.label;"
                accesskey="&tableJoinCells.accesskey;"
                command="cmd_JoinTableCells"/>
      <menuitem id="menu_SlitTableCell"
                label="&tableSplitCell.label;"
                accesskey="&tableSplitCell.accesskey;"
                command="cmd_SplitTableCell"/>
      <menuitem id="menu_ConvertToTable"
                label="&convertToTable.label;"
                accesskey="&convertToTable.accesskey;"
                command="cmd_ConvertToTable"/>
      <menuseparator id="tableDeleteMenuAfterConvertToTableSeparator"/>
      <menuitem id="menu_TableOrCellColor"
                label="&tableOrCellColor.label;"
                accesskey="&tableOrCellColor.accesskey;"
                command="cmd_TableOrCellColor"/>
      <menuitem id="menu_tableProperties"
                label="&tableProperties.label;"
                accesskey="&tableProperties.accesskey;"
                command="cmd_editTable"/>
    </menupopup>
  </menu>

  <toolbarbutton id="AlignPopupButton"
                 class="formatting-button"
                 tooltiptext="&AlignPopupButton.tooltip;"
                 type="menu"
                 observes="cmd_align">
    <menupopup id="AlignPopup">
      <menuitem id="AlignLeftItem" class="menuitem-iconic" label="&alignLeft.label;"
                oncommand="doStatefulCommand('cmd_align', 'left')"
                tooltiptext="&alignLeftButton.tooltip;"    />
      <menuitem id="AlignCenterItem" class="menuitem-iconic" label="&alignCenter.label;"
                oncommand="doStatefulCommand('cmd_align', 'center')"
                tooltiptext="&alignCenterButton.tooltip;"  />
      <menuitem id="AlignRightItem" class="menuitem-iconic" label="&alignRight.label;"
                oncommand="doStatefulCommand('cmd_align', 'right')"
                tooltiptext="&alignRightButton.tooltip;"   />
      <menuitem id="AlignJustifyItem" class="menuitem-iconic" label="&alignJustify.label;"
                oncommand="doStatefulCommand('cmd_align', 'justify')"
                tooltiptext="&alignJustifyButton.tooltip;"/>
    </menupopup>
  </toolbarbutton>

  <toolbarbutton id="InsertPopupButton"
                 class="formatting-button"
                 tooltiptext="&InsertPopupButton.tooltip;"
                 type="menu"
                 observes="cmd_renderedHTMLEnabler">
    <menupopup id="InsertPopup">
      <menuitem id="InsertLinkItem"
                class="menuitem-iconic"
                command="cmd_link"
                label="&linkToolbarCmd.label;"
                tooltiptext="&linkToolbarCmd.tooltip;"/>
      <menuitem id="InsertAnchorItem"
                class="menuitem-iconic"
                command="cmd_anchor"
                label="&anchorToolbarCmd.label;"
                tooltiptext="&anchorToolbarCmd.tooltip;"/>
      <menuitem id="InsertImageItem"
                class="menuitem-iconic"
                command="cmd_image"
                label="&imageToolbarCmd.label;"
                tooltiptext="&imageToolbarCmd.tooltip;"/>
      <menuitem id="InsertHRuleItem"
                class="menuitem-iconic"
                command="cmd_hline"
                label="&hruleToolbarCmd.label;"
                tooltiptext="&hruleToolbarCmd.tooltip;"/>
      <menuitem id="InsertTableItem"
                class="menuitem-iconic"
                command="cmd_table"
                label="&tableToolbarCmd.label;"
                tooltiptext="&tableToolbarCmd.tooltip;"/>
    </menupopup>
  </toolbarbutton>

  <!-- Editor toolbar items -->
  <!-- note that we override the submenu item label "Blank Window" with "New" used for the menu -->
  <toolbarbutton id="newButton"
                 class="toolbarbutton-1"
                 label="&newToolbarCmd.label;"
                 command="cmd_newEditor"
                 tooltiptext="&newToolbarCmd.tooltip;"/>
  <toolbarbutton id="openButton"
                 class="toolbarbutton-1"
                 label="&openToolbarCmd.label;"
                 command="cmd_open"
                 tooltiptext="&openToolbarCmd.tooltip;"/>
  <toolbarbutton id="saveButton"
                 class="toolbarbutton-1"
                 command="cmd_save"
                 tooltiptext="&saveToolbarCmd.tooltip;"/>
  <toolbarbutton id="publishButton"
                 class="toolbarbutton-1"
                 command="cmd_publish"
                 tooltiptext="&publishToolbarCmd.tooltip;"/>
  <toolbarbutton id="cutButton" class="toolbarbutton-1"
                 command="cmd_cut"
                 tooltiptext="&cutToolbarCmd.tooltip;"/>
  <toolbarbutton id="copyButton" class="toolbarbutton-1"
                 command="cmd_copy"
                 tooltiptext="&copyToolbarCmd.tooltip;"/>
  <toolbarbutton id="pasteButton" class="toolbarbutton-1"
                 command="cmd_paste"
                 tooltiptext="&pasteToolbarCmd.tooltip;"/>

  <toolbarbutton id="print-button"
                 label="&printToolbarCmd.label;"
                 tooltiptext="&printToolbarCmd.tooltip;"/>
      <!-- 'printSetupToolbar' is merged in here from platformGlobalOverlay.xul -->

  <toolbarbutton id="findButton"
                 class="toolbarbutton-1"
                 label="&findToolbarCmd.label;"
                 command="cmd_find"
                 tooltiptext="&findToolbarCmd.tooltip;"/>
  <toolbarbutton id="spellingButton"
                 class="toolbarbutton-1"
                 label="&spellToolbarCmd.label;"
                 command="cmd_spelling"
                 tooltiptext="&spellToolbarCmd.tooltip;"/>
  <toolbarbutton id="imageButton"
                 class="toolbarbutton-1"
                 label="&imageToolbarCmd.label;"
                 command="cmd_image"
                 tooltiptext="&imageToolbarCmd.tooltip;"/>
  <toolbarbutton id="hlineButton"
                 class="toolbarbutton-1"
                 label="&hruleToolbarCmd.label;"
                 command="cmd_hline"
                 tooltiptext="&hruleToolbarCmd.tooltip;"/>
  <toolbarbutton id="tableButton"
                 class="toolbarbutton-1"
                 label="&tableToolbarCmd.label;"
                 command="cmd_table"
                 tooltiptext="&tableToolbarCmd.tooltip;"/>
  <toolbarbutton id="linkButton"
                 class="toolbarbutton-1"
                 label="&linkToolbarCmd.label;"
                 command="cmd_link"
                 tooltiptext="&linkToolbarCmd.tooltip;"/>
  <toolbarbutton id="namedAnchorButton"
                 class="toolbarbutton-1"
                 label="&anchorToolbarCmd.label;"
                 command="cmd_anchor"
                 tooltiptext="&anchorToolbarCmd.tooltip;"/>

  <!-- Formatting toolbar items. "value" are HTML tagnames, don't translate -->
<toolbaritem id="paragraph-select-container"
             class="formatting-button"
             tooltiptext="&ParagraphSelect.tooltip;"
             observes="cmd_renderedHTMLEnabler">
  <menulist id="ParagraphSelect"
            class="toolbar-focustarget"
            crop="right">
    <observes element="paragraph-select-container" attribute="disabled"/>
    <observes element="cmd_paragraphState" attribute="state" onbroadcast="onParagraphFormatChange(this.parentNode, 'cmd_paragraphState')"/>
    <menupopup id="ParagraphPopup" oncommand="doStatefulCommand('cmd_paragraphState', event.target.value)">
      <menuitem id="toolbarmenu_bodyText" label="&bodyTextCmd.label;" value=""/>
      <menuitem id="toolbarmenu_paragraph" label="&paragraphParagraphCmd.label;" value="p"/>
      <menuitem id="toolbarmenu_h1" label="&heading1Cmd.label;" value="h1"/>
      <menuitem id="toolbarmenu_h2"  label="&heading2Cmd.label;" value="h2"/>
      <menuitem id="toolbarmenu_h3" label="&heading3Cmd.label;" value="h3"/>
      <menuitem id="toolbarmenu_h4" label="&heading4Cmd.label;" value="h4"/>
      <menuitem id="toolbarmenu_h5" label="&heading5Cmd.label;" value="h5"/>
      <menuitem id="toolbarmenu_h6" label="&heading6Cmd.label;" value="h6"/>
      <menuitem id="toolbarmenu_address" label="&paragraphAddressCmd.label;" value="address"/>
      <menuitem id="toolbarmenu_pre" label="&paragraphPreformatCmd.label;"  value="pre"/>
    </menupopup>
  </menulist>
</toolbaritem>

  <!-- "value" are HTML tagnames, don't translate -->
<toolbaritem id="font-face-select-container"
             class="formatting-button"
             tooltiptext="&FontFaceSelect.tooltip;"
             observes="cmd_renderedHTMLEnabler">
  <menulist id="FontFaceSelect"
            class="toolbar-focustarget"
            crop="right">
    <observes element="font-face-select-container" attribute="disabled"/>
    <observes element="cmd_fontFace" attribute="state" onbroadcast="onFontFaceChange(this.parentNode, 'cmd_fontFace')"/>
    <menupopup id="FontFacePopup" oncommand="doStatefulCommand('cmd_fontFace', event.target.value)">
      <menuitem id="toolbarmenu_fontVarWidth" label="&fontVarWidth.label;" value=""/>
      <menuitem id="toolbarmenu_fontFixedWidth" label="&fontFixedWidth.label;" value="tt"/>
      <menuseparator id="toolbarmenuAfterFontFaceFontFixedWidthSeparator"/>
      <menuitem id="toolbarmenu_fontHelvetica" label="&fontHelvetica.label;"
                value="Helvetica, Arial, sans-serif"/>
      <menuitem id="toolbarmenu_fontTimes" label="&fontTimes.label;"
                value="Times New Roman, Times, serif"/>
      <menuitem id="toolbarmenu_fontCourier" label="&fontCourier.label;"
                value="Courier New, Courier, monospace"/>
      <menuseparator id="toolbarmenuAfterFontFaceCourierSeparator"/>
    </menupopup>
  </menulist>
</toolbaritem>

<toolbaritem id="font-size-select-container"
             class="formatting-button"
             tooltiptext="&FontSizeSelect.tooltip;">
  <menulist id="FontSizeSelect"
            class="toolbar-focustarget"
            crop="right"
            oncommand="EditorSelectFontSize();">
    <observes element="font-size-select-container" attribute="disabled"/>
    <observes element="cmd_fontSize" attribute="state" onbroadcast="onFontSizeChange(this.parentNode, 'cmd_fontSize')"/>
    <menupopup id="FontSizePopup">
      <menuitem id="toobarmenu_fontSize_xx-small" label="&size-xx-smallCmd.label;"/>
      <menuitem id="toobarmenu_fontSize_x-small" label="&size-x-smallCmd.label;"/>
      <menuitem id="toobarmenu_fontSize_small" label="&size-smallCmd.label;"/>
      <menuitem id="toobarmenu_fontSize_medium" label="&size-mediumCmd.label;"/>
      <menuitem id="toobarmenu_fontSize_large" label="&size-largeCmd.label;"/>
      <menuitem id="toobarmenu_fontSize_x-large" label="&size-x-largeCmd.label;"/>
      <menuitem id="toobarmenu_fontSize_xx-large" label="&size-xx-largeCmd.label;"/>
    </menupopup>
  </menulist>
</toolbaritem>

<toolbaritem id="color-buttons-container"
             class="formatting-button">
  <stack id="ColorButtons" align="center">
    <observes element="cmd_fontColor"       attribute="state" onbroadcast="onFontColorChange()"/>
    <observes element="cmd_backgroundColor" attribute="state" onbroadcast="onBackgroundColorChange()"/>
    <box class="color-button" id="BackgroundColorButton"
          onclick="EditorSelectColor('', event);"
          tooltiptext="&BackgroundColorButton.tooltip;"/>
    <box class="color-button" id="TextColorButton"
          onclick="EditorSelectColor('Text', event);"
          tooltiptext="&TextColorButton.tooltip;"/>
  </stack>
</toolbaritem>
  <toolbarbutton id="HighlightColorButton"
                 class="formatting-button"
                 tooltiptext="&HighlightColorButton.tooltip;"
                 command="cmd_highlight">
    <observes element="cmd_highlight" attribute="state" onbroadcast="onHighlightColorChange()"/>
    <observes element="cmd_highlight" attribute="collapsed"/>
  </toolbarbutton>

  <toolbarbutton id="DecreaseFontSizeButton"
                 class="formatting-button"
                 tooltiptext="&decreaseFontSizeToolbarCmd.tooltip;"
                 command="cmd_decreaseFont"/>
  <toolbarbutton id="IncreaseFontSizeButton"
                 class="formatting-button"
                 tooltiptext="&increaseFontSizeToolbarCmd.tooltip;"
                 command="cmd_increaseFont"/>
  <toolbarbutton id="boldButton"
                 class="formatting-button"
                 tooltiptext="&boldToolbarCmd.tooltip;"
                 type="checkbox"
                 autoCheck="false"
                 command="cmd_bold">
    <observes element="cmd_bold" type="checkbox" attribute="state" onbroadcast="onButtonUpdate(this.parentNode, 'cmd_bold')"/>
  </toolbarbutton>
  <toolbarbutton id="italicButton"
                 class="formatting-button"
                 tooltiptext="&italicToolbarCmd.tooltip;"
                 type="checkbox"
                 autoCheck="false"
                 command="cmd_italic">
    <observes element="cmd_italic" attribute="state" onbroadcast="onButtonUpdate(this.parentNode, 'cmd_italic')"/>
  </toolbarbutton>
  <toolbarbutton id="underlineButton"
                 class="formatting-button"
                 tooltiptext="&underlineToolbarCmd.tooltip;"
                 type="checkbox"
                 autoCheck="false"
                 command="cmd_underline">
    <observes element="cmd_underline" attribute="state" onbroadcast="onButtonUpdate(this.parentNode, 'cmd_underline')"/>
  </toolbarbutton>

  <toolbarbutton id="ulButton"
                 class="formatting-button"
                 tooltiptext="&bulletListToolbarCmd.tooltip;"
                 type="radio"
                 group="lists"
                 autoCheck="false"
                 command="cmd_ul">
      <observes element="cmd_ul" attribute="state" onbroadcast="onButtonUpdate(this.parentNode, 'cmd_ul')"/>
  </toolbarbutton>

  <toolbarbutton id="olButton"
                 class="formatting-button"
                 tooltiptext="&numberListToolbarCmd.tooltip;"
                 type="radio"
                 group="lists"
                 autoCheck="false"
                 command="cmd_ol">
      <observes element="cmd_ol" attribute="state" onbroadcast="onButtonUpdate(this.parentNode, 'cmd_ol')"/>
  </toolbarbutton>

  <toolbarbutton id="outdentButton"
                 class="formatting-button"
                 tooltiptext="&outdentToolbarCmd.tooltip;"
                 command="cmd_outdent"/>
  <toolbarbutton id="indentButton"
                 class="formatting-button"
                 tooltiptext="&indentToolbarCmd.tooltip;"
                 command="cmd_indent"/>

  <!-- alignment buttons -->
  <toolbarbutton id="align-left-button"
                 class="formatting-button"
                 tooltiptext="&alignLeftButton.tooltip;"
                 type="radio"
                 group="align"
                 autoCheck="false"
                 oncommand="doStatefulCommand('cmd_align', 'left')">
    <observes element="cmd_align" attribute="state" 
              onbroadcast="onStateButtonUpdate(this.parentNode, 'cmd_align', 'left')" />
  </toolbarbutton>
  <toolbarbutton id="align-center-button"
                 class="formatting-button"
                 tooltiptext="&alignCenterButton.tooltip;"
                 type="radio"
                 group="align"
                 autoCheck="false"
                 oncommand="doStatefulCommand('cmd_align', 'center')">
    <observes element="cmd_align" attribute="state" 
              onbroadcast="onStateButtonUpdate(this.parentNode, 'cmd_align', 'center')"/>
  </toolbarbutton>
  <toolbarbutton id="align-right-button"
                 class="formatting-button"
                 tooltiptext="&alignRightButton.tooltip;"
                 type="radio"
                 group="align"
                 autoCheck="false"
                 oncommand="doStatefulCommand('cmd_align', 'right')">
    <observes element="cmd_align" attribute="state"
              onbroadcast="onStateButtonUpdate(this.parentNode, 'cmd_align', 'right')"/>
  </toolbarbutton>
  <toolbarbutton id="align-justify-button"
                 class="formatting-button"
                 tooltiptext="&alignJustifyButton.tooltip;"
                 type="radio"
                 group="align"
                 autoCheck="false"
                 oncommand="doStatefulCommand('cmd_align', 'justify')">
    <observes element="cmd_align" attribute="state"
              onbroadcast="onStateButtonUpdate(this.parentNode, 'cmd_align', 'justify')"/>
  </toolbarbutton>
 
  <toolbarbutton id="absolutePositionButton"
                 class="formatting-button"
                 tooltiptext="&layer.tooltip;"
                 type="checkbox"
                 command="cmd_absPos">
    <observes element="cmd_absPos" attribute="state" onbroadcast="onStateButtonUpdate(this.parentNode, 'cmd_absPos', 'absolute')"/>
  </toolbarbutton>
  <toolbarbutton id="decreaseZIndexButton"
                 class="formatting-button"
                 tooltiptext="&layerSendToBack.tooltip;"
                 command="cmd_decreaseZIndex"/>
  <toolbarbutton id="increaseZIndexButton"
                 class="formatting-button"
                 tooltiptext="&layerBringToFront.tooltip;"
                 command="cmd_increaseZIndex"/>
</overlay>
