<?xml version="1.0"?> 
<!--
   - The contents of this file are subject to the Netscape 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/NPL/
   -  
   - 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 Netscape are
   - Copyright (C) 1999 Netscape Communications Corporation. All
   - Rights Reserved.
   - 
   - Contributor(s):
  -->

<!DOCTYPE window SYSTEM "chrome://editor/locale/editorOverlay.dtd">

<?xml-stylesheet href="chrome://editor/skin/EditorToolbars.css" type="text/css"?> 

<overlay id="editorOverlay"
        xmlns:html="http://www.w3.org/TR/REC-html40"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

<html:script language="JavaScript" src="chrome://editor/content/editorOverlay.js"/>

  <keyset id="platformOverlayKeyset" />

  <keyset id="defaultKeySet">

    <!-- defined in globalOverlay -->
    <key id="key_newNavigator"/>
    <key id="key_newMessage"/>
    <key id="key_newBlankPage"/>

    <key id="openeditorkb"  xulkey="true" key="&fileopen.keybinding;" observes="Editor:Open" />
    <key id="openremoteeditorkb" xulkey="true" key="&fileopenremote.keybinding;" onkeypress="EditorOpenRemote()" />
    <key id="savekb"        xulkey="true" key="&filesave.keybinding;" observes="Editor:Save"/>
    <key id="closekb"       xulkey="true" key="&fileclose.keybinding;" observes="Editor:Close" />
    <key id="printkb"       xulkey="true" key="&fileprint.keybinding;" observes="Editor:Print" />
    <key id="exitkb"        xulkey="true" key="&fileexit.keybinding;" observes="Editor:Exit" />

    <key id="key_undo"/>
    <key id="key_redo"/>
    <key id="key_cut"/>
    <key id="key_copy"/>
    <key id="key_paste"/>
    <key id="pastequotationkb" xulkey="true" shift="true" key="&editpaste.keybinding;" observes="cmd_pasteQuote" />
    <key id="key_delete"/>
    <key id="key_selectAll"/>
    <key id="findkb"        xulkey="true" key="&editfind.keybinding;" observes="cmd_find" />
    <key id="findnextkb"    xulkey="true" key="&editfindnext.keybinding;" observes="cmd_findNext" />
    <key id="checkspellingkb" xulkey="true" key="&editcheckspelling.keybinding;" observes="cmd_checkSpelling" />
    <key id="key_preferences"/>

    <key id="boldkb"        xulkey="true" key="&stylebold.keybinding;" observes="Editor:Bold"/>
    <key id="italickb"      xulkey="true" key="&styleitalic.keybinding;" observes="Editor:Italic"/>
    
    <key id="underlinekb"   xulkey="true" key="&styleunderline.keybinding;" onkeypress="EditorToggleStyle('underline')"/>
    
    <!-- these should come from tasksOverlay.xul -->
    <key id="navigatortaskkb" xulkey="true" key="1" onkeypress="Navigator()" />
    <key id="messengerkb"   xulkey="true" key="2" onkeypress="Messenger()" />
    <key id="composerkb"    xulkey="true" key="3" onkeypress="Composer()" />
    <key id="calendarkb"    xulkey="true" key="4" onkeypress="Calendar()" />


    <key id="increaseindentkb" xulkey="true" key="&formatindent.keybinding;" onkeypress="EditorIndent('indent')" />
    <key id="decreaseindentkb" xulkey="true" key="&formatoutdent.keybinding;" onkeypress="EditorIndent('outdent')" />

    <key id="removestyleskb" shift="true" xulkey="true" key="&formatremovestyles.keybinding;" onkeypress="EditorRemoveStyle('all')" />
    <key id="decreasefontsizekb" shift="true" xulkey="true" key="&decreaseFontSize.keybinding;" onkeypress="EditorDecreaseFontSize()" />
    <key id="increasefontsizekb" shift="true" xulkey="true" key="&increaseFontSize.keybinding;" onkeypress="EditorIncreaseFontSize()" />

<!-- how to handle return, enter, tab, function keys, arrow keys, others? saari working on solution -->
        <!-- scroll document/page/line and move caret -->
<!--
    <key id="homekb"      keycode="VK_HOME" onkeypress="EditorMoveToTopOfWindow( true, false )" />
    <key id="endkb"       keycode="VK_END" onkeypress="EditorMoveToBottomOfWindow( true, false )" />
    <key id="pageupkb"    keycode="VK_PAGE_UP" onkeypress="EditorMoveUpPage( true, false )" />
    <key id="pagedownkb"  keycode="VK_PAGE_DOWN" onkeypress="EditorMoveDownPage( true, false )" />
    <key id="beginoflinekb" keycode="VK_LEFT" xulkey="true" onkeypress="EditorBeginningOfLine( false )" />
    <key id="endoflinekb" keycode="VK_RIGHT" xulkey="true" onkeypress="EditorEndOfLine( false )" />
    <key id="uphomekb"    keycode="VK_UP" xulkey="true" onkeypress="EditorMoveToTopOfWindow( true, false )" />
    <key id="downendkb"   keycode="VK_DOWN" xulkey="true" onkeypress="EditorMoveToBottomOfWindow( true, false )" />
-->
        <!-- scroll document/page/line and extend selection -->
<!--
    <key id="homeextendkb"      keycode="VK_HOME"  shift="true" onkeypress="EditorMoveToTopOfWindow( true, true )" />
    <key id="endextendkb"       keycode="VK_END"   shift="true" onkeypress="EditorMoveToBottomOfWindow( true, true )" />
    <key id="pageupextendkb"    keycode="VK_PAGE_UP" shift="true" onkeypress="EditorMoveUpPage( true, true )" />
    <key id="pagedownextendkb"  keycode="VK_PAGE_DOWN" shift="true" onkeypress="EditorMoveDownPage( true, true )" />
    <key id="beginoflineextendkb" keycode="VK_LEFT" shift="true" xulkey="true" onkeypress="EditorBeginningOfLine( false )" />
    <key id="endoflineextendkb" keycode="VK_RIGHT" shift="true" xulkey="true" onkeypress="EditorEndOfLine( false )" />
    <key id="uphomeextendkb"    keycode="VK_UP"    shift="true" xulkey="true" onkeypress="EditorMoveToTopOfWindow( true, false )" />
    <key id="downendextendkb"   keycode="VK_DOWN"  shift="true" xulkey="true" onkeypress="EditorMoveToBottomOfWindow( true, false )" />
-->
       <!-- move caret by one character -->
<!--
    <key id="leftkb" keycode="VK_LEFT" onkeypress="EditorPreviousCharacter( false )" />
    <key id="rightkb" keycode="VK_RIGHT" onkeypress="EditorNextCharacter( false )" />
    <key id="upkb"   keycode="VK_UP" onkeypress="EditorPreviousRow( false )" />
    <key id="downkb" keycode="VK_DOWN" onkeypress="EditorNextRow( false )" />
-->
        <!-- move caret by one character/row and extend selection -->
<!--
    <key id="prevcharextendkb" keycode="VK_LEFT" shift="true" onkeypress="EditorPreviousCharacter( true )" />
    <key id="nextcharextendkb" keycode="VK_RIGHT" shift="true" onkeypress="EditorNextCharacter( true )" />
    <key id="prevrowextendkb" keycode="VK_UP"    shift="true" onkeypress="EditorPreviousRow( true )" />
    <key id="nextrowextendkb" keycode="VK_DOWN"  shift="true" onkeypress="EditorNextRow( true )" />
-->
        <!-- move caret by one word/paragraph -->
<!--
    <key id="prevwordkb" keycode="VK_LEFT" alt="true" onkeypress="EditorPreviousWord( false )" />
    <key id="nextwordkb" keycode="VK_RIGHT" alt="true" onkeypress="EditorNextWord( false )" />
    <key id="prevparakb" keycode="VK_UP"   alt="true" onkeypress="EditorBeginningOfParagraph( false )" />
    <key id="nextparakb" keycode="VK_DOWN" alt="true" onkeypress="EditorEndOfParagraph( false )" />
-->
        <!-- move caret by one word and extend selection -->
<!--
    <key id="prevwordextendkb" keycode="VK_LEFT" shift="true" alt="true" onkeypress="EditorPreviousWord( true )" />
    <key id="nextwordextendkb" keycode="VK_RIGHT" shift="true" alt="true" onkeypress="EditorNextWord( true )" />
    <key id="prevparaextendkb" keycode="VK_UP"   shift="true" alt="true" onkeypress="EditorBeginningOfParagraph( true )" />
    <key id="nextparaextendkb" keycode="VK_DOWN" shift="true" alt="true" onkeypress="EditorEndOfParagraph( true )" />
-->
  </keyset>

  <broadcasterset id="broadcasterset">
    <!-- Complete broadcasters located in globalOverlay.xul -->
    <!-- File Menu -->
    <broadcaster id="cmd_newNavigator"/>
    <broadcaster id="cmd_newMessage"/>
    <broadcaster id="cmd_newCard"/>
    <broadcaster id="cmd_newEditor"/>
    <broadcaster id="cmd_newEditorTemplate"/>
    <broadcaster id="cmd_newEditorDraft"/>
    <broadcaster id="cmd_sendPage"/>

    <!-- Edit Menu -->
    <broadcaster id="cmd_undo"/>
    <broadcaster id="cmd_redo"/>
    <broadcaster id="cmd_cut"/>
    <broadcaster id="cmd_copy"/>
    <broadcaster id="cmd_paste"/>

    <broadcaster id="cmd_delete"/>
    <broadcaster id="cmd_selectAll"/>
    <broadcaster id="cmd_preferences"/>

    <broadcaster id="cmd_find"          value="&findCmd.label;"            oncommand="EditorFind()"/>
    <broadcaster id="cmd_findNext"      value="&findAgainCmd.label;"       oncommand="EditorFindNext()"/>
    <broadcaster id="cmd_checkSpelling" value="&checkSpellingCmd.label;"   oncommand="CheckSpelling()"/>
    <broadcaster id="cmd_pasteQuote"    value="&pasteAsQuotationCmd.label;" oncommand="goDoCommand('cmd_pasteQuote')"/>
   
    
    <!-- Formatting-related commands -->
    <broadcaster id="Editor:Bold"         bold="false"       oncommand="EditorToggleStyle('bold')"/>
    <broadcaster id="Editor:Italic"       italic="false"     oncommand="EditorToggleStyle('italic')"/>
    <broadcaster id="Editor:Underline"    underline="false"  oncommand="EditorToggleStyle('underline')"/>
  
    <broadcaster id="Editor:Paragraph:Format" format=""/>
    <broadcaster id="Editor:Paragraph:ListType" format=""/>
    <broadcaster id="Editor:Font:Face" face=""/>
    <broadcaster id="Editor:Font:Size" fontsize=""/>

    <!-- Command Broadcaster nodes -->
    <!-- Don't set value on items whose text should be different for different observers -->
    <broadcaster id="Editor:Open"                                          oncommand="EditorOpen()"/>
    <broadcaster id="Editor:Save"         value="&saveCmd.label;"          oncommand="EditorSave()" disabled="true"/>
    <broadcaster id="Editor:SaveAs"       value="&saveAsCmd.label;"        oncommand="EditorSaveAs()"/>
    <broadcaster id="Editor:Preview"                                       oncommand="EditorPreview()"/>
    <broadcaster id="Editor:Close"        value="&closeCmd.label;"         oncommand="EditorClose()"/>
    <broadcaster id="Editor:PrintSetup"   value="&printSetupCmd.label;"    oncommand="EditorPrintSetup()"   disabled="true"/>
    <broadcaster id="Editor:PrintPreview" value="&printPreviewCmd.label;"  oncommand="EditorPrintPreview()" disabled="true"/>
    <broadcaster id="Editor:Print"                                         oncommand="EditorPrint()"/>
    <broadcaster id="Editor:Exit"         value="&exitCmd.label;"          oncommand="goQuitApplication()"/>
    
    <!-- need to toggle the menu item text through style -->
 	<broadcaster id="cmd_viewCompToolbar"     oncommand="goToggleToolbar('EditToolbar','cmd_viewCompToolbar');" checked="true"/>
 	<broadcaster id="cmd_viewFormatToolbar"   oncommand="goToggleToolbar('FormatToolbar','cmd_viewFormatToolbar');" checked="true"/>
 	<broadcaster id="cmd_viewEditModeToolbar" oncommand="goToggleToolbar('EditModeToolbar','cmd_viewEditModeToolbar');" checked="true"/>
	<broadcaster id="cmd_viewtaskbar"         oncommand="goToggleToolbar('taskbar','cmd_viewtaskbar');" checked="true"/>

    <broadcaster id="Editor:InsertLink"   value="&insertLinkCmd.label;"    oncommand="EditorInsertOrEditLink()"/>
    <broadcaster id="Editor:InsertAnchor" value="&insertAnchorCmd.label;"  oncommand="EditorInsertOrEditNamedAnchor()"/>
    <broadcaster id="Editor:InsertImage"  value="&insertImageCmd.label;"   oncommand="EditorInsertOrEditImage()"/>
    <broadcaster id="Editor:InsertHLine"  value="&insertHLineCmd.label;"   oncommand="EditorInsertOrEditHLine()"/>
    <broadcaster id="Editor:InsertTable"  value="&insertTableCmd.label;"   oncommand="EditorInsertTable()"/>
    <broadcaster id="Editor:InsertHTML"   value="&insertHTMLSourceCmd.label;"   oncommand="EditorInsertHTML()"/>
    <broadcaster id="Editor:InsertBreak"  value="&insertLineBreakCmd.label;"    oncommand="_EditorNotImplemented()" disabled="true"/>
    <broadcaster id="Editor:InsertBreakAll"  value="&insertBreakBelowImagesCmd.label;"    oncommand="_EditorNotImplemented()" disabled="true"/>
    <broadcaster id="cmd_preferences"/>
  </broadcasterset>

  <!-- Editor menu items -->
  <menu id="fileMenu" value="&fileMenu.label;" accesskey="&filemenu.accesskey;">
    <menupopup>
      <!-- Note: globalOverlay.xul uses menu_newEditor, but we want different menu item text
                 so we use our own id, value, and accesskey but connect to the same global key and broadcaster node
       -->
      <menuitem id="menu_newBlankPage" value="&newBlankPageCmd.label;" accesskey="&newBlankPage.accesskey;" key="key_newBlankPage" observes="cmd_newEditor"/>
        <menu id="menu_New" value="&newMenu.label;" accesskey="&newMenu.accesskey;">
          <menupopup id="menu_NewPopup">
            <!-- From globalOverlay.xul -->
            <menuitem id="menu_newEditorTemplate"  observes="cmd_newEditorTemplate"/>
            <menuitem id="menu_newEditorDraft"     observes="cmd_newEditorDraft"/>
            <menuseparator/>
            <menuitem id="menu_newNavigator" observes="cmd_newNavigator"/>
            <menuitem id="menu_newMessage"   observes="cmd_newMessage"/>
            <menuitem id="menu_newCard"      observes="cmd_newCard"/>
          </menupopup>
        </menu>
      <menuitem accesskey="&fileopenremote.accesskey;" value="&openremoteCmd.label;" key="openremoteeditorkb" oncommand="EditorOpenRemote()"/>
      <menuitem accesskey="&fileopen.accesskey;"            key="openeditorkb"   observes="Editor:Open" value="&openFileCmd.label;"/>
      <menuseparator />
      <menuitem accesskey="&fileclose.accesskey;"           key="closekb"        observes="Editor:Close"/>
      <menuitem accesskey="&filesave.accesskey;"            key="savekb"         observes="Editor:Save"/>
      <menuitem accesskey="&filesaveas.accesskey;"                               observes="Editor:SaveAs"/>
      <menuseparator />
      <!-- FRAME, LINK should go here, but nav must put them in global files -->
      <menuitem id="menu_sendPage" observes="cmd_sendPage"/>
      <menuitem accesskey="&filepreview.accesskey;"                              observes="Editor:Preview" value="&previewCmd.label;"/>
      <menuseparator />
      <menuitem accesskey="&fileprintsetup.accesskey;"                           observes="Editor:PrintSetup" />
      <menuitem accesskey="&fileprintpreview.accesskey;"                         observes="Editor:PrintPreview"/>
      <menuitem accesskey="&fileprint.accesskey;"           key="printkb"        observes="Editor:Print" value="&printCmd.label;"/>
      <menuseparator />
      <menuitem accesskey="&fileexit.accesskey;"            key="exitkb"         observes="Editor:Exit"/>
    </menupopup>
  </menu>

  <menu id="editMenu" value="&editMenu.label;" accesskey="&editmenu.accesskey;">
    <menupopup id="edEditMenuPopup" oncreate="EditorInitEditMenu()">
      <!-- from globalOverlay.xul -->
      <menuitem id="menu_undo"/>
      <menuitem id="menu_redo"/>
      <menuseparator id="edEditMenuSep1" />
      <menuitem id="menu_cut"/>
      <menuitem id="menu_copy"/>
      <menuitem id="menu_paste"/>
      <menuitem id="menu_delete"/>
      <menuseparator id="edEditMenuSep2" />
      <menuitem id="menu_selectAll"/>
      <menuseparator id="edEditMenuSep3" />
      <menuitem id="menu_find"       accesskey="&editfind.accesskey;"            key="findkb"         observes="cmd_find"/>
      <menuitem id="menu_findnext"   accesskey="&editfindnext.accesskey;"        key="findnextkb"     observes="cmd_findNext"/>
      <menuseparator id="edEditMenuSep4" />
      <menuitem id="menu_checkspelling" accesskey="&editcheckspelling.accesskey;"   key="checkspellingkb" observes="cmd_checkSpelling"/>
      <menuseparator id="edEditMenuSep5" />
      <menuitem id="menu_preferences" oncommand="goPreferences('navigator.xul', 'chrome://pref/content/pref-composer.xul')"/>
    </menupopup>
  </menu>

  <!-- view menu items -->
    <menu id="viewToolbar" value="&viewToolbarsMenu.label;" accesskey="&viewToolbarsMenu.accesskey;">
      <menupopup> 

  		<menuitem value="&compositionToolbarCmd.label;" accesskey="&compositiontb.accesskey;" observes="cmd_viewCompToolbar"  />
  		<menuitem value="&formattingToolbarCmd.label;"  accesskey="&formattingtb.accesskey;"  observes="cmd_viewFormatToolbar" />
  		<menuitem value="&editmodeToolbarCmd.label;"    accesskey="&editmodetb.accesskey;"    observes="cmd_viewEditModeToolbar" />
  		<menuitem value="&taskbarCmd.label;"            accesskey="&taskbarCmd.accesskey;"    observes="cmd_viewtaskbar" />

      </menupopup>
    </menu>
    <menuitem id="viewSourceMenuitem" value="&viewPageSource.label;"     accesskey="&viewpagesource.accesskey;"     oncommand="EditorViewSource();"/>
    <menuitem id="viewParagraphMarks" value="&viewParagraphMarks.label;" accesskey="&viewparagraphmarks.accesskey;" oncommand="EditorToggleParagraphMarks();" persist="checked"/>

    <menu  id="charsetMenu" value="&dcharMenu.label;" accesskey="&viewcharsetmenu.accesskey;">
      <menupopup>
        <menuitem value="&dcharIso1Cmd.label;" accesskey="&charsetLatin1.accesskey;" oncommand="EditorSetDocumentCharacterSet('ISO-8859-1');"/>
        <menuitem value="&dcharIso15Cmd.label;" accesskey="&charsetLatin9.accesskey;" oncommand="EditorSetDocumentCharacterSet('ISO-8859-15');"/>
        <menuitem value="&dcharIso2Cmd.label;" accesskey="&charsetLatin2.accesskey;" oncommand="EditorSetDocumentCharacterSet('ISO-8859-2');"/>
        <menuitem value="&dcharIso3Cmd.label;" accesskey="&charsetLatin3.accesskey;" oncommand="EditorSetDocumentCharacterSet('ISO-8859-3');"/>
        <menuitem value="&dcharIso4Cmd.label;" accesskey="&charsetLatin4.accesskey;" oncommand="EditorSetDocumentCharacterSet('ISO-8859-4');"/>
        <menuitem value="&dcharIsoGreekCmd.label;" accesskey="&charsetGreek.accesskey;" oncommand="EditorSetDocumentCharacterSet('ISO-8859-7');"/>
        <menuitem value="&dcharIso9Cmd.label;" accesskey="&charsetLatin5.accesskey;" oncommand="EditorSetDocumentCharacterSet('ISO-8859-9');"/>
        <menuitem value="&dcharIso10Cmd.label;" accesskey="&charsetLatin6.accesskey;" oncommand="EditorSetDocumentCharacterSet('ISO-8859-10');"/>
        <menuitem value="&dcharIso13Cmd.label;" accesskey="&charsetLatin7.accesskey;" oncommand="EditorSetDocumentCharacterSet('ISO-8859-13');"/>
        <menuitem value="&dcharIso14Cmd.label;" accesskey="&charsetLatin8.accesskey;" oncommand="EditorSetDocumentCharacterSet('ISO-8859-14');"/>
        </menupopup>
    </menu>
    <menu  id="charsetMenu1" value="&dcharMenu1.label;" accesskey="&viewcharsetmenu1.accesskey;">
      <menupopup>
        <menuitem value="&dcharJapanCmd.label;" accesskey="&charsetJIS.accesskey;" oncommand="EditorSetDocumentCharacterSet('ISO-2022-JP');"/>
        <menuitem value="&dcharJapanShiftjsCmd.label;" accesskey="&charsetshiftJIS.accesskey;" oncommand="EditorSetDocumentCharacterSet('Shift_JIS');"/>
        <menuitem value="&dcharJapanEucCmd.label;" accesskey="&charsetJapaneseEUC.accesskey;" oncommand="EditorSetDocumentCharacterSet('EUC-JP');"/>
               <menuseparator />
        <menuitem value="&dcharTradChiBigCmd.label;" accesskey="&charsetChineseBig5.accesskey;" oncommand="EditorSetDocumentCharacterSet('Big5');"/>
        <menuitem value="&dcharTriChiEucCmd.label;" accesskey="&charsetChineseEUC.accesskey;" oncommand="EditorSetDocumentCharacterSet('x-euc-tw');"/>
        <menuitem value="&dcharSimpChiGbCmd.label;" accesskey="&charsetChineseSimplified.accesskey;" oncommand="EditorSetDocumentCharacterSet('GB2312');"/>
               <menuseparator />
        <menuitem value="&dcharKoreanCmd.label;" accesskey="&charsetKorean.accesskey;" oncommand="EditorSetDocumentCharacterSet('EUC-KR');"/>
               <menuseparator />
        <menuitem value="&dcharUtf7Cmd.label;" accesskey="&charsetUTF7.accesskey;" oncommand="EditorSetDocumentCharacterSet('UTF-7');"/>
        <menuitem value="&dcharUtf8Cmd.label;" accesskey="&charsetUTF8.accesskey;" oncommand="EditorSetDocumentCharacterSet('UTF-8');"/>
      </menupopup>
    </menu>
    <menu  id="charsetMenu2" value="&dcharMenu2.label;" accesskey="&viewcharsetmenu2.accesskey;">
      <menupopup>
        <menuitem value="&dcharRusCmd.label;" accesskey="&charsetRussian.accesskey;" oncommand="EditorSetDocumentCharacterSet('KOI8-R');"/>
        <menuitem value="&dcharIsoCyrCmd.label;" accesskey="&charsetISOCyrillic.accesskey;" oncommand="EditorSetDocumentCharacterSet('ISO-8859-5');"/>
        <menuitem value="&dcharWinCyrCmd.label;" accesskey="&charsetWinCyrillic.accesskey;" oncommand="EditorSetDocumentCharacterSet('windows-1251');"/>
        <menuitem value="&dcharEcmaCyrCmd.label;" accesskey="&charsetECMACyrillic.accesskey;" oncommand="EditorSetDocumentCharacterSet('ISO-IR-111');"/>
        <menuitem value="&dcharDosCyrCmd.label;" accesskey="&charsetDOSCyrillic.accesskey;" oncommand="EditorSetDocumentCharacterSet('IBM866');"/>
        <menuitem value="&dcharMacCyrCmd.label;" accesskey="&charsetMacCyrillic.accesskey;" oncommand="EditorSetDocumentCharacterSet('x-mac-cyrillic');"/>
        <menuitem value="&dcharUkrCmd.label;" accesskey="&charsetUkrainian.accesskey;" oncommand="EditorSetDocumentCharacterSet('KOI8-U');"/>
        <menuitem value="&dcharMacUkrCmd.label;" accesskey="&charsetMacUkrainian.accesskey;" oncommand="EditorSetDocumentCharacterSet('x-mac-ukrainian');"/>
      </menupopup>
    </menu>
    <menu  id="charsetMenu3" value="&dcharMenu3.label;" accesskey="&viewcharsetmenu3.accesskey;">
      <menupopup>
        <menuitem value="&dcharWinVietCmd.label;" accesskey="&charsetWinVietnamese.accesskey;" oncommand="EditorSetDocumentCharacterSet('windows-1258');"/>
        <menuitem value="&dcharVietTcnCmd.label;" accesskey="&charsetVietnameseTCN.accesskey;" oncommand="EditorSetDocumentCharacterSet('x-viet-tcvn5712');"/>
        <menuitem value="&dcharVietViCmd.label;" accesskey="&charsetVietnameseVIS.accesskey;" oncommand="EditorSetDocumentCharacterSet('VISCII');"/>
        <menuitem value="&dcharVieVpCmd.label;" accesskey="&charsetVietnameseVPS.accesskey;" oncommand="EditorSetDocumentCharacterSet('x-viet-vps');"/>
               <menuseparator />
        <menuitem value="&dcharThaiCmd.label;" accesskey="&charsetThai.accesskey;" oncommand="EditorSetDocumentCharacterSet('TIS-620');"/>
               <menuseparator />
        <menuitem value="&dcharArmCmd.label;" accesskey="&charsetArmenian.accesskey;" oncommand="EditorSetDocumentCharacterSet('ARMSCII-8');"/>

<!--
               <menuseparator />

        <menuitem value="&dcharIso6Cmd.label;" accesskey="&charsetArabic.accesskey;" oncommand="EditorSetDocumentCharacterSet('ISO-8859-6');"/>
        <menuitem value="&dcharCp1256Cmd.label;" accesskey="&charsetWinArabic.accesskey;" oncommand="EditorSetDocumentCharacterSet('windows-1256');"/>
               <menuseparator />
        <menuitem value="&dcharIso8Cmd.label;" accesskey="&charsetHebrew.accesskey;" oncommand="EditorSetDocumentCharacterSet('ISO-8859-8');"/>

        <menuitem value="&dcharCp1255Cmd.label;" accesskey="&charsetWinHebrew.accesskey;" oncommand="EditorSetDocumentCharacterSet('windows-1255');"/>
-->

      </menupopup>
    </menu>
    <menu id="charsetMenu4" value="&dcharMenu4.label;" accesskey="&viewcharsetmenu4.accesskey;">
      <menupopup>
        <menuitem value="&dcharMacRomCmd.label;" accesskey="&charsetMacRoman.accesskey;" oncommand="EditorSetDocumentCharacterSet('x-mac-roman');"/>
        <menuitem value="&dcharMacCenEuroCmd.label;" accesskey="&charsetMacCentralEurope.accesskey;" oncommand="EditorSetDocumentCharacterSet('x-mac-ce');"/>
        <menuitem value="&dcharMacTurCmd.label;" accesskey="&charsetMacTurkish.accesskey;" oncommand="EditorSetDocumentCharacterSet('x-mac-turkish');"/>
        <menuitem value="&dcharMacCroaCmd.label;" accesskey="&charsetMacCroatian.accesskey;" oncommand="EditorSetDocumentCharacterSet('x-mac-croatian');"/>
        <menuitem value="&dcharMacRomanianCmd.label;" accesskey="&charsetMacRomanian.accesskey;" oncommand="EditorSetDocumentCharacterSet('x-mac-romanian');"/>
        <menuitem value="&dcharMacIceCmd.label;" accesskey="&charsetMacIcelandic.accesskey;" oncommand="EditorSetDocumentCharacterSet('x-mac-icelandic');"/>
        <menuitem value="&dcharMacGreekCmd.label;" accesskey="&charsetMacGreek.accesskey;" oncommand="EditorSetDocumentCharacterSet('x-mac-greek');"/>
      </menupopup>
    </menu>
    <menu id="charsetMenu5" value="&dcharMenu5.label;" accesskey="&viewcharsetmenu4.accesskey;">
      <menupopup>
        <menuitem value="&dcharWinLat1Cmd.label;" accesskey="&charsetWinLatin1.accesskey;" oncommand="EditorSetDocumentCharacterSet('windows-1252');"/>
        <menuitem value="&dcharWinLat2Cmd.label;" accesskey="&charsetWinLatin2.accesskey;" oncommand="EditorSetDocumentCharacterSet('windows-1250');"/>
        <menuitem value="&dcharWinLat5Cmd.label;" accesskey="&charsetWinLatin5.accesskey;" oncommand="EditorSetDocumentCharacterSet('windows-1254');"/>
        <menuitem value="&dcharWinBalRimCmd.label;" accesskey="&charsetWinBaltic.accesskey;" oncommand="EditorSetDocumentCharacterSet('windows-1257');"/>
        <menuitem value="&dcharWinGreekCmd.label;" accesskey="&charsetWinGreek.accesskey;" oncommand="EditorSetDocumentCharacterSet('windows-1253');"/>
      </menupopup>
    </menu>

    <!-- Insert menu -->
  <menu id="insertMenu" value="&insertMenu.label;" accesskey="&insertmenu.accesskey;">
    <menupopup>
      <menuitem accesskey="&insertlink.accesskey;"                               observes="Editor:InsertLink"/>
      <menuitem accesskey="&insertanchor.accesskey;"                             observes="Editor:InsertAnchor"/>
      <menuitem accesskey="&insertimage.accesskey;"                              observes="Editor:InsertImage"/>
      <menuitem accesskey="&inserthline.accesskey;"                              observes="Editor:InsertHLine"/>
      <menuitem accesskey="&inserttable.accesskey;"                              observes="Editor:InsertTable"/>
      <menuitem accesskey="&insertsource.accesskey;" key="inserthtmlkb"          observes="Editor:InsertHTML"/>
      <menuseparator />
      <menuitem accesskey="&insertlinebreak.accesskey;"  disabled="true"         observes="Editor:InsertBreak"/>
      <menuitem accesskey="&insertbreak.accesskey;"      disabled="true"         observes="Editor:InsertBreakAll"/>
    </menupopup>
  </menu>
    
  <!-- Format Menu -->
  <menupopup id="formatMenuPopup" oncreate="EditorInitFormatMenu()">
    <!-- Font face submenu -->
    <menu id="fontFaceMenu" value="&fontfaceMenu.label;" 
          accesskey="&formatfontmenu.accesskey;" position="1">
    <menupopup>
      <menuitem value="&defaultVariableWidthCmd.label;" 
                accesskey="&fontvarwidth.accesskey;"
                oncommand="EditorSetFontFace('')"/>
      <menuitem value="&defaultFixedWidthCmd.label;"
                oncommand="EditorSetFontFace('tt')"/>
      <menuseparator/>
      <menuitem value="&arialHelveticaFont.label;"
                accesskey="&fonthelvetica.accesskey;"
                oncommand="EditorSetFontFace('Arial, Helvetica, sans-serif')"/>
      <menuitem value="&timesFont.label;"
                accesskey="&fonttimes.accesskey;"
                oncommand="EditorSetFontFace('Times New Roman, Times, serif')"/>
      <menuitem value="&courierFont.label;"
                accesskey="&fontcourier.accesskey;"
                oncommand="EditorSetFontFace('Courier New, Courier, mono')"/>
    </menupopup>
    </menu>

    <!-- Font size submenu -->
    <menu id="fontSizeMenu" value="&fontsizeMenu.label;"
          accesskey="&formatsizemenu.accesskey;" 
          position="2">
    <menupopup>
      <menuitem value="&decreaseFontSize.label;" accesskey="&decreasefontsize.accesskey;" oncommand="EditorDecreaseFontSize()" key="decreasefontsizekb"/>
      <menuitem value="&increaseFontSize.label;" accesskey="&increasefontsize.accesskey;" oncommand="EditorIncreaseFontSize()" key="increasefontsizekb"/>
      <menuseparator/>
      <menuitem value="&size-xx-smallCmd.label;" accesskey="&size-xx-small.accesskey;" oncommand="EditorSetFontSize('xx-small')"/>
      <menuitem value="&size-x-smallCmd.label;"  accesskey="&size-x-small.accesskey;"  oncommand="EditorSetFontSize('x-small')"/>
      <menuitem value="&size-smallCmd.label;"    accesskey="&size-small.accesskey;"    oncommand="EditorSetFontSize('small')"/>
      <menuitem value="&size-mediumCmd.label;"   accesskey="&size-medium.accesskey;"   oncommand="EditorSetFontSize('medium')"/>
      <menuitem value="&size-largeCmd.label;"    accesskey="&size-large.accesskey;"    oncommand="EditorSetFontSize('large')"/>
      <menuitem value="&size-x-largeCmd.label;"  accesskey="&size-x-large.accesskey;"  oncommand="EditorSetFontSize('x-large')"/>
      <menuitem value="&size-xx-largeCmd.label;" accesskey="&size-xx-large.accesskey;" oncommand="EditorSetFontSize('xx-large')"/>
    </menupopup>
    </menu>

    <!-- Font style submenu -->
    <menu id="fontStyleMenu" value="&fontStyleMenu.label;" 
          accesskey="&formatstylemenu.accesskey;"
          position="3">
    <menupopup>
      <menuitem value="&styleBoldCmd.label;"        accesskey="&stylebold.accesskey;"        key="boldkb"      observes="Editor:Bold"/>
      <menuitem value="&styleItalicCmd.label;"      accesskey="&styleitalic.accesskey;"      key="italickb"    observes="Editor:Italic"/>
      <menuitem value="&styleUnderlineCmd.label;"   accesskey="&styleunderline.accesskey;"   key="underlinekb" observes="Editor:Underline"/>
      <menuitem value="&styleStrikeThruCmd.label;"  accesskey="&stylestrikethru.accesskey;"  oncommand="EditorApplyStyle('strike')"/>
      <menuitem value="&styleSuperscriptCmd.label;" accesskey="&stylesuperscript.accesskey;" oncommand="EditorApplyStyle('sup')"/>
      <menuitem value="&styleSubscriptCmd.label;"   accesskey="&stylesubscript.accesskey;"   oncommand="EditorApplyStyle('sub')"/>
      <menuitem value="&styleNonbreakingCmd.label;" accesskey="&stylenonbreaking.accesskey;" oncommand="EditorApplyStyle('nobr')"/>
    </menupopup>
    </menu>
    
    <!-- Font color submenu -->
    <menu id="fontColorMenu" value="&fontColorMenu.label;"
          accesskey="&formatcolormenu.accesskey;"
          position="4">
      <menupopup>
         <menuitem value="&colorBlackCmd.label;"   accesskey="&colorblack.accesskey;"   oncommand="EditorSetFontColor('black')"/>
         <menuitem value="&colorGrayCmd.label;"    accesskey="&colorgray.accesskey;"    oncommand="EditorSetFontColor('gray')"/>
         <menuitem value="&colorSilverCmd.label;"  accesskey="&colorsilver.accesskey;"  oncommand="EditorSetFontColor('silver')"/>
         <menuitem value="&colorWhiteCmd.label;"   accesskey="&colorwhite.accesskey;"   oncommand="EditorSetFontColor('white')"/>
         <menuitem value="&colorRedCmd.label;"     accesskey="&colorred.accesskey;"     oncommand="EditorSetFontColor('red')"/>
         <menuitem value="&colorBlueCmd.label;"    accesskey="&colorblue.accesskey;"    oncommand="EditorSetFontColor('blue')"/>
         <menuitem value="&colorGreenCmd.label;"   accesskey="&colorgreen.accesskey;"   oncommand="EditorSetFontColor('green')"/>
         <menuitem value="&colorCyanCmd.label;"    accesskey="&colorcyan.accesskey;"    oncommand="EditorSetFontColor('cyan')"/>
         <menuitem value="&colorYellowCmd.label;"  accesskey="&coloryellow.accesskey;"  oncommand="EditorSetFontColor('yellow')"/>
         <menuitem value="&colorMagentaCmd.label;" accesskey="&colormagenta.accesskey;" oncommand="EditorSetFontColor('magenta')"/>
      </menupopup>
    </menu>

    <!-- Background color submenu. "value" is set in InitFormatMenu() -->
    <menu id="backgroundColorMenu"
         accesskey="&formatbkgdcolormenu.accesskey;"
         position="5">
      <menupopup>
       <menuitem value="&colorBlackCmd.label;"     accesskey="&colorblack.accesskey;"    oncommand="EditorSetBackgroundColor('black')"/>
       <menuitem value="&colorGrayCmd.label;"      accesskey="&colorgray.accesskey;"     oncommand="EditorSetBackgroundColor('gray')"/>
       <menuitem value="&colorSilverCmd.label;"    accesskey="&colorsilver.accesskey;"   oncommand="EditorSetBackgroundColor('silver')"/>
       <menuitem value="&colorWhiteCmd.label;"     accesskey="&colorwhite.accesskey;"    oncommand="EditorSetBackgroundColor('white')"/>
       <menuitem value="&colorRedCmd.label;"       accesskey="&colorred.accesskey;"      oncommand="EditorSetBackgroundColor('red')"/>
       <menuitem value="&colorBlueCmd.label;"      accesskey="&colorblue.accesskey;"     oncommand="EditorSetBackgroundColor('blue')"/>
       <menuitem value="&colorGreenCmd.label;"     accesskey="&colorgreen.accesskey;"    oncommand="EditorSetBackgroundColor('green')"/>
       <menuitem value="&colorCyanCmd.label;"      accesskey="&colorcyan.accesskey;"     oncommand="EditorSetBackgroundColor('cyan')"/>
       <menuitem value="&colorYellowCmd.label;"    accesskey="&coloryellow.accesskey;"   oncommand="EditorSetBackgroundColor('yellow')"/>
       <menuitem value="&colorMagentaCmd.label;"   accesskey="&colormagenta.accesskey;"  oncommand="EditorSetBackgroundColor('magenta')"/>
      </menupopup>
    </menu>

<!-- Font color submenu
     THIS WORKS ONLY IN Windows/Linux (use arbitrary XUL in submenu)
    <menu id="fontColorMenu" value="&fontColorMenu.label;"
          accesskey="&formatcolormenu.accesskey;"
          position="4">
    	<menupopup>
        <colorpicker id="menuTextCP" palettename="standard"
          onclick="EditorSelectTextColor('menuTextCP',null);"/>
        <menuitem value="&colorPicker.default.label;" 
          accesskey="&colorPicker.default.accesskey;" 
          oncommand="EditorRemoveTextColor(null)"/>
    	</menupopup>
    </menu>

    <menu id="backgroundColorMenu"
          accesskey="&formatbkgdcolormenu.accesskey;"
          position="5">
    	<menupopup>
        <colorpicker id="menuBackCP" palettename="standard"
          onclick="EditorSelectBackColor('menuBackCP',null);"/>
        <menuitem value="&colorPicker.default.label;"
          accesskey="&colorPicker.default.accesskey;" 
          oncommand="EditorRemoveBackColor(null)"/>
    	</menupopup>
    </menu>
-->

    <menuitem id="removeAllStylesMenuitem" value="&removeAllStylesCmd.label;"
                accesskey="&formatremovestyles.accesskey;" key="removestyleskb"
                oncommand="EditorRemoveStyle('all')" position="6"/>
    <menuitem id="removeLinksMenuitem" value="&removeLinksCmd.label;"
                accesskey="&formatremovelinks.accesskey;"
                oncommand="EditorRemoveLinks()" position="7"/>
    <menuseparator position="8"/>

    <!-- Heading submenu -->
    <menu id="headingMenu" value="&headingMenu.label;"
          accesskey="&formatheadingmenu.accesskey;"
          position="9">
    <menupopup>
      <menuitem value="&headingNormalCmd.label;"  accesskey="&headingnone.accesskey;"   oncommand="EditorSetParagraphFormat('normal')"/>
      <menuitem value="&heading1Cmd.label;"       accesskey="&heading1.accesskey;"      oncommand="EditorSetParagraphFormat('h1')"/>
      <menuitem value="&heading2Cmd.label;"       accesskey="&heading2.accesskey;"      oncommand="EditorSetParagraphFormat('h2')"/>
      <menuitem value="&heading3Cmd.label;"       accesskey="&heading3.accesskey;"      oncommand="EditorSetParagraphFormat('h3')"/>
      <menuitem value="&heading4Cmd.label;"       accesskey="&heading4.accesskey;"      oncommand="EditorSetParagraphFormat('h4')"/>
      <menuitem value="&heading5Cmd.label;"       accesskey="&heading5.accesskey;"      oncommand="EditorSetParagraphFormat('h5')"/>
      <menuitem value="&heading6Cmd.label;"       accesskey="&heading6.accesskey;"      oncommand="EditorSetParagraphFormat('h6')"/>
    </menupopup>
    </menu>

    <!-- Paragraph Style submenu -->
    <menu id="paragraphMenu" value="&paragraphMenu.label;"
          accesskey="&formatparagraphmenu.accesskey;"
          position="10">
    <menupopup>
      <menuitem value="&paragraphNormalCmd.label;"      accesskey="&paragraphnormal.accesskey;"     oncommand="EditorSetParagraphFormat('normal')"/>
      <menuitem value="&paragraphParagraphCmd.label;"   accesskey="&paragraphparagraph.accesskey;"  oncommand="EditorSetParagraphFormat('p')" disabled="true"/>
      <menuitem value="&paragraphBlockquoteCmd.label;"  accesskey="&paragraphblockquote.accesskey;" oncommand="EditorSetParagraphFormat('blockquote')"/>
      <menuitem value="&paragraphAddressCmd.label;"     accesskey="&paragraphaddress.accesskey;"    oncommand="EditorSetParagraphFormat('address')"/>
      <menuitem value="&paragraphPreformatCmd.label;"   accesskey="&paragraphpreformat.accesskey;"  oncommand="EditorSetParagraphFormat('pre')"/>
      <menuitem value="&paragraphDfnTermCmd.label;"     accesskey="&paragraphterm.accesskey;"       oncommand="EditorSetParagraphFormat('dt')"/>
      <menuitem value="&paragraphDfnDescCmd.label;"     accesskey="&paragraphdesc.accesskey;"       oncommand="EditorSetParagraphFormat('dd')"/>
    </menupopup>
    </menu>

    <!-- List Style (opens dialog)  -->
    <menuitem id="listProps" value="&listProps.label;"
              accesskey="&formatlistmenu.accesskey;"
              oncommand="EditorListProperties()"
              position="11"/>
    <menu id="alignMenu" value="&alignMenu.label;"
          accesskey="&formatalignmenu.accesskey;"
          position="12">
      <!-- Align submenu -->
      <menupopup>
        <menuitem value="&alignLeft.label;"    accesskey="&alignleft.accesskey;"    oncommand="EditorAlign('left')"/>
        <menuitem value="&alignCenter.label;"  accesskey="&aligncenter.accesskey;"  oncommand="EditorAlign('center')"/>
        <menuitem value="&alignRight.label;"   accesskey="&alignright.accesskey;"   oncommand="EditorAlign('right')"/>
        <menuitem value="&alignJustify.label;" accesskey="&alignjustify.accesskey;" oncommand="EditorAlign('justify')"/>
      </menupopup>
    </menu>
    <menuseparator position="13"/>

    <!-- Stylesheet submenu -->
    <menu id="stylesheetMenu" value="&stylesheetMenu.label;"
          accesskey="&formatstylesheetmenu.accesskey;"
          position="14">
    <menupopup>
      <menuitem value="&stylesheetOldstyleCmd.label;"      accesskey="&ssoldstyle.accesskey;"    oncommand="EditorApplyStyleSheet('http://www.w3.org/StyleSheets/Core/Oldstyle')"/>
      <menuitem value="&stylesheetModernistCmd.label;"     accesskey="&ssmodernist.accesskey;"   oncommand="EditorApplyStyleSheet('http://www.w3.org/StyleSheets/Core/Modernist')"/>
      <menuitem value="&stylesheetMidnightCmd.label;"      accesskey="&ssmidnight.accesskey;"    oncommand="EditorApplyStyleSheet('http://www.w3.org/StyleSheets/Core/Midnight')"/>
      <menuitem value="&stylesheetUltramarineCmd.label;"   accesskey="&ssultramarine.accesskey;" oncommand="EditorApplyStyleSheet('http://www.w3.org/StyleSheets/Core/Ultramarine')"/>
      <menuitem value="&stylesheetChocolateCmd.label;"     accesskey="&sschocolate.accesskey;"   oncommand="EditorApplyStyleSheet('http://www.w3.org/StyleSheets/Core/Chocolate')"/>
      <menuitem value="&stylesheetSteelyCmd.label;"        accesskey="&sssteely.accesskey;"      oncommand="EditorApplyStyleSheet('http://www.w3.org/StyleSheets/Core/Steely')"/>
    </menupopup>
    </menu>

    <menuseparator position="15"/>

    <menuitem id="increaseIndent" value="&increaseIndent.label;"
              accesskey="&increaseindent.accesskey;" 
              key="increaseindentkb"
              oncommand="EditorIndent('indent')"
              position="16"/>
    <menuitem id="decreaseIndent" value="&decreaseIndent.label;"
              accesskey="&decreaseindent.accesskey;"
              key="decreaseindentkb"
              oncommand="EditorIndent('outdent')"
              position="17"/>
    <menuseparator position="18"/>
    <!-- Merge Table Menu and separator in Messenger Composer here -->
    <!-- Merge property items here -->
  </menupopup>

  <!-- Items to append at the bottom of the formatMenuPopup -->
  <menuitem id="objectProperties" value="&properties.label;"
            accesskey="&properties.accesskey;"
            oncommand="EditorObjectProperties()"/>
  <menuitem id="pageProperties" value="&pageProperties.label;"
            accesskey="&pageproperties.accesskey;"
            oncommand="EditorPageProperties()"/>
  <menuitem id="colorsAndBackground" value="&colorsAndBackground.label;"
            accesskey="&colorsandbackground.accesskey;"
            oncommand="EditorColorProperties()"/>

  <menu id="tableMenu" value="&tableMenu.label;" accesskey="&tablemenu.accesskey;">
  <menupopup>
    <menu id="tableSelectMenu" value="&tableSelectMenu.label;"
          accesskey="&tableselectmenu.accesskey;">
    <menupopup>
        <menuitem value="&tableTable.label;"    accesskey="&tabletable.accesskey;"    oncommand="EditorSelectTable()"/>
        <menuitem value="&tableRow.label;"      accesskey="&tablerow.accesskey;"      oncommand="EditorSelectTableRow()"/>
        <menuitem value="&tableColumn.label;"   accesskey="&tablecolumn.accesskey;"   oncommand="EditorSelectTableColumn()"/>
        <menuitem value="&tableCell.label;"     accesskey="&tablecell.accesskey;"     oncommand="EditorSelectTableCell()"/>
        <menuitem value="&tableAllCells.label;" accesskey="&tableallcells.accesskey;" oncommand="EditorSelectAllTableCells()"/>
    </menupopup>
    </menu>
    <menu id="tableInsertMenu" value="&tableInsertMenu.label;" accesskey="&tableinsertmenu.accesskey;">
    <menupopup>
        <menuitem value="&insertTableCmd.label;"    accesskey="&tabletable.accesskey;"    oncommand="EditorInsertTable()"/>
        <menuseparator />
        <menuitem value="&tableRowAbove.label;"     accesskey="&tablerow.accesskey;"         oncommand="EditorInsertTableRow(false)"/>
        <menuitem value="&tableRowBelow.label;"     accesskey="&tablerowbelow.accesskey;"    oncommand="EditorInsertTableRow(true)"/>
        <menuseparator />
        <menuitem value="&tableColumnBefore.label;" accesskey="&tablecolumn.accesskey;"      oncommand="EditorInsertTableColumn(false)"/>
        <menuitem value="&tableColumnAfter.label;"  accesskey="&tablecolumnafter.accesskey;" oncommand="EditorInsertTableColumn(true)"/>
        <menuseparator />
        <menuitem value="&tableCellBefore.label;"   accesskey="&tablecell.accesskey;"        oncommand="EditorInsertTableCell(false)"/>
        <menuitem value="&tableCellAfter.label;"    accesskey="&tablecellafter.accesskey;"   oncommand="EditorInsertTableCell(true)"/>
    </menupopup>
    </menu>
    <menu id="tableDeleteMenu" value="&tableDeleteMenu.label;" accesskey="&tabledeletemenu.accesskey;">
    <menupopup>
        <menuitem value="&tableTable.label;"  accesskey="&tabletable.accesskey;"   oncommand="EditorDeleteTable()"/>
        <menuitem value="&tableRow.label;"    accesskey="&tablerow.accesskey;"     oncommand="EditorDeleteTableRow(1)"/>
        <menuitem value="&tableColumn.label;" accesskey="&tablecolumn.accesskey;"  oncommand="EditorDeleteTableColumn(1)"/>
        <menuitem value="&tableCell.label;"   accesskey="&tablecell.accesskey;"    oncommand="EditorDeleteTableCell(1)"/>
    </menupopup>
    </menu>
    <menuseparator />
    <menuitem id="tableFixupMenuitem"      value="&tableFixup.label;"      accesskey="&tablefixup.accesskey;"   oncommand="EditorNormalizeTable()"/>
    <menuitem id="tableJoinCellsMenuitem"  value="&tableJoinCells.label;"  accesskey="&tablejoin.accesskey;"    oncommand="EditorJoinTableCells()" disabled="true"/>
    <menuitem id="tablePropertiesMenuitem" value="&tableProperties.label;" accesskey="&properties.accesskey;"   oncommand="EditorInsertOrEditTable(false)"/>
  </menupopup>
  </menu>

    <popup id="TextColorPopup"  popupanchor="bottomleft">
      <titledbutton id="TextColorCaption" class="color-caption" value="&textColorCaption.label;" flex="1"/>
        <!-- TODO: Add "Last color picked" button and text -->
      <colorpicker id="TextColorPicker" palettename="standard" onclick="EditorSelectTextColor('TextColorPicker','TextColorPopupButton');"/>
      <titledbutton class="push" value="&colorPicker.default.label;" onclick="EditorRemoveTextColor('TextColorPopupButton');"/>
    </popup>

    <popup id="BackColorPopup" popupanchor="bottomleft" oncreate="InitBackColorPopup()">
      <!-- Text is filled in at runtime according to what background element will be set -->
      <titledbutton id="BackColorCaption" class="color-caption" value="Background Color" flex="1"/>
        <!-- TODO: Add "Last color picked" button and text -->
        <colorpicker id="BackColorPicker" palettename="standard" onclick="EditorSelectBackColor('BackColorPicker','BackColorPopupButton');"/>
      <titledbutton class="push" value="&colorPicker.default.label;" onclick="EditorRemoveBackColor('BackColorPopupButton');"/>
    </popup>

    <menupopup id="AlignmentPopup">
      <menuitem oncommand="EditorAlign('left')">
       <titledbutton id="text-align-left" align="left" value="&alignLeft.label;"/>
      </menuitem>
      <menuitem oncommand="EditorAlign('center')">
       <titledbutton id="text-align-center" align="left" value="&alignCenter.label;"/>
      </menuitem>
      <menuitem oncommand="EditorAlign('right')">
       <titledbutton id="text-align-right" align="left" value="&alignRight.label;"/>
      </menuitem>
      <menuitem oncommand="EditorAlign('justify')">
       <titledbutton id="text-align-justify" align="left" value="&alignJustify.label;"/>
      </menuitem>
    </menupopup>
    
    <!-- InsertPopup is used by messengercompose.xul -->
    <menupopup id="InsertPopup">
      <menuitem oncommand="EditorInsertOrEditLink()">
       <titledbutton id="linkButton-dark" darkcolor="true" align="left" value="&linkToolbarCmd.label;"/>
      </menuitem>
      <menuitem oncommand="EditorInsertOrEditNamedAnchor()">
       <titledbutton id="namedAnchorButton-dark" align="left" value="&anchorToolbarCmd.label;"/>
      </menuitem>
      <menuitem oncommand="EditorInsertOrEditImage()">
       <titledbutton id="imageButton-dark" align="left" value="&imageToolbarCmd.label;"/>
      </menuitem>
      <menuitem oncommand="EditorInsertOrEditHLine()">
       <titledbutton id="hlineButton-dark" align="left" value="&hruleToolbarCmd.label;"/>
      </menuitem>
      <menuitem oncommand="EditorInsertOrEditTable(true)">
       <titledbutton id="tableButton-dark" align="left" value="&tableToolbarCmd.label;"/>
      </menuitem>
    </menupopup>

    <!-- Editor toolbar items -->
    <!-- note that we override the submenu item label "Blank Window" with "New" used for the menu -->
    <button class="key-toolbar left" orient="vertical" id="newButton" observes="cmd_newEditor" value="&newMenu.label;" />
    <button class="key-toolbar left" orient="vertical" id="openButton" observes="Editor:Open" value="&openToolbarCmd.label;"/>
    <button class="key-toolbar left" orient="vertical" id="saveButton" observes="Editor:Save"/>
    <button class="key-toolbar left" orient="vertical" id="previewButton" observes="Editor:Preview" value="&previewToolbarCmd.label;"/>
    <button class="toolbar left" orient="vertical" id="printButton" observes="Editor:Print" value="&printToolbarCmd.label;"/>
    <button class="toolbar left" orient="vertical" id="findButton" observes="cmd_find" value="&findToolbarCmd.label;"/>
    <button class="toolbar left" orient="vertical" id="spellingButton" value="&spellToolbarCmd.label;" onclick="CheckSpelling()"/>

    <button class="toolbar left" orient="vertical" id="imageButton" value="&imageToolbarCmd.label;" onclick="EditorInsertOrEditImage()"/>
    <button class="toolbar left" orient="vertical" id="hlineButton" value="&hruleToolbarCmd.label;" onclick="EditorInsertOrEditHLine()"/>
    <button class="toolbar left" orient="vertical" id="tableButton" value="&tableToolbarCmd.label;" onclick="EditorInsertOrEditTable(true)"/>
    <button class="toolbar left" orient="vertical" id="linkButton" value="&linkToolbarCmd.label;" onclick="EditorInsertOrEditLink()"/>
    <button class="toolbar left" orient="vertical" id="namedAnchorButton" value="&anchorToolbarCmd.label;" onclick="EditorInsertOrEditNamedAnchor()"/>

    <!-- Formatting toolbar items -->
    <html:select class="toolbar" id="ParagraphSelect" size="1" onchange="EditorSelectParagraphFormat()">
      <observes element="Editor:Paragraph:Format" attribute="format" onbroadcast="onParagraphFormatChange()"/>
      <html:option>&headingNormalCmd.label;</html:option>
      <html:option>&paragraphParagraphCmd.label;</html:option>
      <html:option>&heading1Cmd.label;</html:option>
      <html:option>&heading2Cmd.label;</html:option>
      <html:option>&heading3Cmd.label;</html:option>
      <html:option>&heading4Cmd.label;</html:option>
      <html:option>&heading5Cmd.label;</html:option>
      <html:option>&heading6Cmd.label;</html:option>
      <html:option>&paragraphBlockquoteCmd.label;</html:option>
      <html:option>&paragraphAddressCmd.label;</html:option>
      <html:option>&paragraphPreformatCmd.label;</html:option>
      <html:option>&paragraphDfnTermCmd.label;</html:option>
      <html:option>&paragraphDfnDescCmd.label;</html:option>
    </html:select>

    <!-- TODO: Use actual "face" value when combobox can display arbitrary HTML -->
    <html:select class="toolbar" id="FontFaceSelect" size="1" onchange="EditorSelectFontFace()">
      <observes element="Editor:Font:Face" attribute="face" onbroadcast="onFontFaceChange()"/>
      <html:option>&defaultVariableWidthCmd.label;</html:option>
      <html:option>&defaultFixedWidthCmd.label;</html:option>
      <html:option>&arialHelveticaFont.label;</html:option>
      <html:option>&timesFont.label;</html:option>
      <html:option>&courierFont.label;</html:option>
    </html:select>

    <html:select class="toolbar" id="FontSizeSelect" size="1" onchange="EditorSelectFontSize()">
      <observes element="Editor:Font:Size" attribute="fontsize" onbroadcast="onFontSizeChange()"/>
      <html:option>&size-xx-smallCmd.label;</html:option>
      <html:option>&size-x-smallCmd.label;</html:option>
      <html:option>&size-smallCmd.label;</html:option>
      <html:option>&size-mediumCmd.label;</html:option>
      <html:option>&size-largeCmd.label;</html:option>
      <html:option>&size-x-largeCmd.label;</html:option>
      <html:option>&size-xx-largeCmd.label;</html:option>
    </html:select>

    <!-- The new Color Picker UI -->
    <html:div id="ColorButtons">
      <titledbutton id="BackColorPopupButton" popup="BackColorPopup"
       tooltiptext="Set text color"/>
      <titledbutton id="TextColorPopupButton" popup="TextColorPopup"
       tooltiptext="Set page, table, or cell background color"/>
    </html:div>

    <titledbutton id="DecreaseFontSizeButton" onclick="EditorDecreaseFontSize()"/>
    <titledbutton id="IncreaseFontSizeButton" onclick="EditorIncreaseFontSize()"/>

    <titledbutton id="boldButton" class="format" align="center" onclick="EditorToggleStyle('bold')">
      <observes element="Editor:Bold" attribute="bold" onbroadcast="onStyleChange('bold')"/>
    </titledbutton>
    <titledbutton id="italicButton" class="format" align="center" onclick="EditorToggleStyle('italic')">
      <observes element="Editor:Italic" attribute="italic" onbroadcast="onStyleChange('italic')"/>
    </titledbutton>
    <titledbutton id="underlineButton" class="format" align="center" onclick="EditorToggleStyle('underline')">
      <observes element="Editor:Underline" attribute="underline" onbroadcast="onStyleChange('underline')"/>
    </titledbutton>

    <titledbutton id="ulButton" class="format" onclick="EditorMakeOrChangeList('ul')">
        <observes element="Editor:Paragraph:ListType" attribute="format" onbroadcast="onListFormatChange('ul')"/>
    </titledbutton>

    <titledbutton id="olButton" class="format" onclick="EditorMakeOrChangeList('ol')">
        <observes element="Editor:Paragraph:ListType" attribute="format" onbroadcast="onListFormatChange('ol')"/>
    </titledbutton>

    <titledbutton id="outdentButton"    class="format"        onclick="EditorIndent('outdent')"/>
    <titledbutton id="indentButton"     class="format"        onclick="EditorIndent('indent')"/>
    <titledbutton id="AlignPopupButton" class="format popup"/>
    
    <!-- InsertPopupButton is used by messengercompose.xul -->
    <titledbutton id="InsertPopupButton" class="format popup"/>

    <!-- Paste as quotation is used by mail compose,
         but in composer it has to go in the debug menu
     -->
    <menuitem id="menu_pasteQuote" value="&pasteAsQuotationCmd.label;" accesskey="&editpastequotation.accesskey;" oncommand="EditorPasteAsQuotation()"/>

    <!-- DEBUG only -->
    <menu id="debugMenu" value="&debugMenu.label;">
    <menupopup>
      <menuitem value="&newEditorTestPage.label;" oncommand="window.openDialog('chrome://editor/content','_blank','chrome,all,dialog=no','chrome://editor/content/EditorInitPage.html')"/>
      <menuitem value="&textEditorCmd.label;"     oncommand="EditorNewPlaintext();" />
      <menuitem value="&outputTextCmd.label;"
             oncommand="EditorGetText()"/>
      <menuitem value="&outputHTMLCmd.label;"
             oncommand="EditorGetHTML()"/>
      <menuitem value="&outputXIFCmd.label;"
             oncommand="EditorGetXIF()"/>
      <menuseparator />
      <menuitem value="&pasteAsQuotationCmd.label;" accesskey="&editpastequotation.accesskey;" oncommand="EditorPasteAsQuotation()"/>
      <menuitem value="&insertTextCmd.label;"
             oncommand="EditorInsertText('All good things come to those who wait. ')"/>
      <menuseparator />
      <menuitem value="&testSelectionCmd.label;"
             oncommand="EditorTestSelection()"/>
      <menuitem value="&testTableLayoutCmd.label;"
             oncommand="EditorTestTableLayout()"/>
      <menuitem value="&showEmbeddedCmd.label;"
             oncommand="EditorShowEmbeddedObjects()"/>
      <menuitem value="&dumpContentCmd.label;"
             oncommand="EditorDumpContent()"/>
      <menuitem value="&testDocumentCmd.label;"
             oncommand="EditorTestDocument()"/>
      <menuitem value="&runUnitTestsCmd.label;"
             oncommand="EditorUnitTests()"/>
      <menuseparator />
      <menuitem value="&startLogCmd.label;"
             oncommand="EditorStartLog()"/>
      <menuitem value="&stopLogCmd.label;"
             oncommand="EditorStopLog()"/>
      <menuitem value="&runLogCmd.label;"
             oncommand="EditorRunLog()"/>
      <menuseparator />
      <menuitem value="&setFocusCmd.label;"
              accesskey="&toolsetfocus.accesskey;"
              oncommand="window.focus()"/>
    </menupopup>
    </menu>
    <!-- end DEBUG only -->

    <!-- Window bottom -->
      <box id="status-bar" chromeclass="status">
        <box id="state-box" align="horizontal" flex="100%" style="min-width: 1px">
          <box align="vertical" style="width:100px">
          <spring flex="100%"/>
          <progressmeter id="statusbar-icon" mode="normal" align="horizontal" value="0">
              <observes element="Editor:Throbber" attribute="busy"/>
          </progressmeter>
          <spring flex="100%"/>
        </box>
        <spring style="width: 1em"/>
        <titledbutton id="statusText" class="status-bar" align="left" flex="100%" 
          value="&tempDoneLoading.label;"  style="min-width: 1px">
        </titledbutton>
    
        <titledbutton class="status-bar" align="left" value=""/>
      </box>
     </box>
     
</overlay>
