<?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">

<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="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="undokb"        xulkey="true" key="&editundo.keybinding;" observes="Editor:Undo" />
    <key id="redokb"        xulkey="true" key="&editredo.keybinding;" observes="Editor:Redo" />
    <key id="cutkb"         xulkey="true" key="&editcut.keybinding;" observes="Editor:Cut" />
    <key id="copykb"        xulkey="true" key="&editcopy.keybinding;" observes="Editor:Copy" />
    <key id="pastekb"       xulkey="true" key="&editpaste.keybinding;" observes="Editor:Paste" />
    <key id="pastequotationkb" xulkey="true" shift="true" key="&editpaste.keybinding;" observes="Editor:PasteQuote" />
    <key id="selectallkb"   xulkey="true" key="&editselectall.keybinding;" observes="Editor:SelectAll" />
    <key id="findkb"        xulkey="true" key="&editfind.keybinding;" observes="Editor:Find" />
    <key id="findnextkb"    xulkey="true" key="&editfindnext.keybinding;" observes="Editor:FindNext" />
    <key id="checkspellingkb" xulkey="true" key="&editcheckspelling.keybinding;" observes="Editor:CheckSpelling" />

    <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="indentkb"      xulkey="true" key="&formatindent.keybinding;" onkeypress="EditorIndent('indent')" />
    <key id="outdentkb"     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="DecreaseFontSize()" />
    <key id="increasefontsizekb" shift="true" xulkey="true" key="&increaseFontSize.keybinding;" onkeypress="IncreaseFontSize()" />

<!-- 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 -->
	  <broadcaster id="cmd_newNavigator"/>
	  <broadcaster id="cmd_newMessage"/>
    <broadcaster id="cmd_newCard"/>
    <broadcaster id="cmd_newEditor"/>
    <broadcaster id="cmd_newEditorTemplate"/>
    <broadcaster id="cmd_newEditorDraft"/>

    <!-- 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 -->
    <broadcaster id="Editor:Open"         value="&openCmd.label;"                           oncommand="EditorOpen()"/>
    <broadcaster id="Editor:Save"         value="&saveCmd.label;"         disabled="true"   oncommand="EditorSave()"/>
    <broadcaster id="Editor:SaveAs"       value="&saveAsCmd.label;"        oncommand="EditorSaveAs()"/>
    <broadcaster id="Editor:Close"        value="&closeCmd.label;"         oncommand="EditorClose()"/>
    <broadcaster id="Editor:PrintSetup"   value="&printSetupCmd.label;"    oncommand="_EditorNotImplemented()"/>
    <broadcaster id="Editor:PrintPreview" value="&printPreviewCmd.label;"  oncommand="EditorPrintPreview()"/>
    <broadcaster id="Editor:Print"        value="&printCmd.label;"         oncommand="EditorPrint()"/>
    <broadcaster id="Editor:Exit"         value="&exitCmd.label;"          oncommand="EditorExit()"/>
  
    <broadcaster id="Editor:Undo"         value="&undoCmd.label;"          oncommand="EditorUndo()"/>
    <broadcaster id="Editor:Redo"         value="&redoCmd.label;"          oncommand="EditorRedo()"/>
    <broadcaster id="Editor:Cut"          value="&cutCmd.label;"           oncommand="EditorCut()"/>
    <broadcaster id="Editor:Copy"         value="&copyCmd.label;"          oncommand="EditorCopy()"/>
    <broadcaster id="Editor:Paste"        value="&pasteCmd.label;"         oncommand="EditorPaste()"/>
    <broadcaster id="Editor:PasteQuote"   value="&pasteAsQuotationCmd.label;"  oncommand="EditorPasteAsQuotation()"/>
    <broadcaster id="Editor:Clear"        value="&clearCmd.label;"         oncommand="_EditorNotImplemented()"/>
    <broadcaster id="Editor:SelectAll"    value="&selectAllCmd.label;"     oncommand="EditorSelectAll()"/>
    <broadcaster id="Editor:Find"         value="&findCmd.label;"                           oncommand="EditorFind()"/>
    <broadcaster id="Editor:FindNext"     value="&findAgainCmd.label;"     oncommand="EditorFindNext()"/>
    <broadcaster id="Editor:CheckSpelling" value="&checkSpellingCmd.label;"  oncommand="CheckSpelling()"/>
  
    <!-- need to toggle the menu item text through style -->
    <broadcaster id="Editor:ToggleCompositionToolbar" value="&hideCompositionToolbarCmd.label;" showing="true" oncommand="_EditorNotImplemented()"/>
    <broadcaster id="Editor:ToggleFormattingToolbar"  value="&hideFormattingToolbarCmd.label;"  showing="true" oncommand="_EditorNotImplemented()"/>
  
    <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()"/>
    <broadcaster id="Editor:InsertBreakAll"  value="&insertBreakBelowImagesCmd.label;"    oncommand="_EditorNotImplemented()"/>
  	<broadcaster id="cmd_preferences"/>
  </broadcasterset>

    <!-- Editor menu items -->
    <menu id="fileMenu" value="&fileMenu.label;" accesskey="&filemenu.accesskey;">
    <menupopup>
  	  <!-- From globalOverlay.xul -->
      <!-- Note slightly different menu item text (value) used here DOESN'T WORK IN MENUS! -->
  		<menuitem id="menu_newEditor" observes="cmd_newEditor" value="&newBlankPage.label;"/>
			<menu id="menu_New" value="&newMenu.label;" accesskey="&newMenu.accesskey;">
				<menupopup>
	        <!-- 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="&fileopen.accesskey;"            key="openeditorkb"   observes="Editor:Open"/>
      <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 />
      <menuitem accesskey="&fileprintsetup.accesskey;"                           observes="Editor:PrintSetup"/>
      <menuitem accesskey="&fileprintpreview.accesskey;"                         observes="Editor:PrintPreview"/>
      <menuitem accesskey="&fileprint.accesskey;"           key="printkb"        observes="Editor:Print"/>
      <menuseparator />
      <menuitem accesskey="&fileexit.accesskey;"            key="exitkb"         observes="Editor:Exit"/>
    </menupopup>
    </menu>

    <menu id="editMenu" value="&editMenu.label;" accesskey="&editmenu.accesskey;">
    <menupopup>
      <menuitem accesskey="&editundo.accesskey;"            key="undokb"         observes="Editor:Undo"/>
      <menuitem accesskey="&editredo.accesskey;"            key="redokb"         observes="Editor:Redo"/>
      <menuseparator />
      <menuitem accesskey="&editcut.accesskey;"             key="cutkb"          observes="Editor:Cut"/>
      <menuitem accesskey="&editcopy.accesskey;"            key="copykb"         observes="Editor:Copy"/>
      <menuitem accesskey="&editpaste.accesskey;"           key="pastekb"        observes="Editor:Paste"/>
      <menuitem accesskey="&editpastequotation.accesskey;"  key="pastequotationkb"  observes="Editor:PasteQuote"/>
      <menuitem accesskey="&editclear.accesskey;"                                observes="Editor:Clear"/>
      <menuseparator />
      <menuitem accesskey="&editselectall.accesskey;"       key="selectallkb"    observes="Editor:SelectAll"/>
      <menuseparator />
      <menuitem accesskey="&editfind.accesskey;"            key="findkb"         observes="Editor:Find"/>
      <menuitem accesskey="&editfindnext.accesskey;"        key="findnextkb"     observes="Editor:FindNext"/>
      <menuseparator />
      <menuitem accesskey="&editcheckspelling.accesskey;"   key="checkspellingkb" observes="Editor:CheckSpelling"/>
      <menuseparator />
      <!-- TODO: PREF PANELS FOR EDITOR. Replace pref-publish with pref-editor -->
      <menuitem id="menu_preferences" oncommand="goPreferences('navigator.xul', 'chrome://pref/content/pref-publish.xul')"/>
    </menupopup>
    </menu>

    <!-- view menu items -->
      <menu id="viewToolbar" value="&viewToolbarsMenu.label;" accesskey="viewToolbarsMenu.accesskey">
        <menupopup> 
          <menuitem id="compToolbarMenuitem" accesskey="&viewcompositiontb.accesskey;" observes="Editor:ToggleCompositionToolbar"/>
          <menuitem id="formatToolbarMenuitem" accesskey="&viewformattingtb.accesskey;"  observes="Editor:ToggleFormattingToolbar"/>
          <menuitem id="editorTaskBar" value="&showTaskbarCmd.label;" accesskey="&showTaskbarCmd.accesskey;" oncommand="goToggleToolbar('taskbar','cmd_viewtaskbar');" checked="true"/>
        </menupopup>
      </menu>
      <menuitem id="viewSourceMenuitem" value="&viewPageSource.label;" accesskey="&viewpagesource.accesskey;" oncommand="EditorViewSource();" />

      <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;"                          observes="Editor:InsertBreak"/>
      <menuitem accesskey="&insertbreak.accesskey;"                              observes="Editor:InsertBreakAll"/>
    </menupopup>
    </menu>
    
    <!-- Format Menu -->
  <menupopup id="formatMenuPopup">
    <!-- 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="&size-2Cmd.label;" accesskey="&size-2.accesskey;" oncommand="EditorSetFontSize('-2')"/>
      <menuitem value="&size-1Cmd.label;" accesskey="&size-1.accesskey;" oncommand="EditorSetFontSize('-1')"/>
      <menuitem value="&size0Cmd.label;"  accesskey="&size0.accesskey;"  oncommand="EditorSetFontSize('0')"/>
      <menuitem value="&size1Cmd.label;"  accesskey="&size1.accesskey;"  oncommand="EditorSetFontSize('+1')"/>
      <menuitem value="&size2Cmd.label;"  accesskey="&size2.accesskey;"  oncommand="EditorSetFontSize('+2')"/>
      <menuitem value="&size3Cmd.label;"  accesskey="&size3.accesskey;"  oncommand="EditorSetFontSize('+3')"/>
      <menuitem value="&size4Cmd.label;"  accesskey="&size4.accesskey;"  oncommand="EditorSetFontSize('+4')"/>
    </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="&styleBlinkCmd.label;"       accesskey="&styleblink.accesskey;"       oncommand="EditorApplyStyle('blink')"/>
      <menuitem value="&styleNonbreakingCmd.label;" accesskey="&stylenonbreaking.accesskey;" oncommand="EditorApplyStyle('nobr')"/>
    </menupopup>
    </menu>
    
    <!-- TODO: REPLACE WITH COLORPICKER -->
    <!-- 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 -->
    <menu id="backgroundColorMenu" value="&backgroundColorMenu.label;" 
          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>

    <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')"/>
      <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"/>
    <menuseparator position="12"/>

    <!-- Stylesheet submenu -->
    <menu id="stylesheetMenu" value="&stylesheetMenu.label;"
          accesskey="&formatstylesheetmenu.accesskey;"
          position="13">
    <menupopup>
      <menuitem value="&stylesheetEditorOneCmd.label;"     accesskey="&sseditor1.accesskey;"     oncommand="EditorApplyStyleSheet('chrome://editor/content/EditorStyles1.css')"/>
      <menuseparator />
      <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>

    <!-- Align submenu -->
    <menu id="alignMenu" value="&alignMenu.label;"
          accesskey="&formatalignmenu.accesskey;"
          position="14">
    <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="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"/>
    <menuitem id="objectProperties" value="&properties.label;"
              accesskey="&properties.accesskey;"
              oncommand="EditorObjectProperties()"
              position="19"/>
    <menuitem id="colorsAndBackground" value="&colorsAndBackground.label;"
              accesskey="&colorsandbackground.accesskey;"
              oncommand="EditorPageProperties('1')"
              position="20"/>
    <!-- Merge page property items here -->
  </menupopup>

  <menuitem id="pageProperties" value="&pageProperties.label;"
            accesskey="&pageproperties.accesskey;"
            oncommand="EditorPageProperties('0')"/>

  <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()"/>
    </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="tableJoinCellsMenuitem"  value="&tableJoinCells.label;" accesskey="&tablejoin.accesskey;"    oncommand="EditorJoinTableCells()"/>
    <menuitem id="tablePropertiesMenuitem" value="&properties.label;"     accesskey="&properties.accesskey;"   oncommand="EditorInsertOrEditTable(false)"/>
  </menupopup>
  </menu>

    <popup id="TextColorPopup"  popupanchor="bottomleft">
      <html:div id="TextColorCaption" class="color-caption" align="center">&textColorCaption.label;</html:div>
  		<!-- TODO: Add "Last color picked" button and text -->
      <colorpicker id="TextColorPicker" palettename="standard" onclick="EditorSelectTextColor('TextColorPicker','TextColorPopupButton')"/>
    </popup>

    <popup id="BackColorPopup"  popupanchor="bottomleft">
      <!-- Text Caption is filled in at runtime -->
  		<!-- TODO: Add "Last color picked" button and text -->
      <html:div id="BackColorCaption" class="color-caption" align="center">Background Color</html:div>
  		<colorpicker id="BackColorPicker" palettename="standard" onclick="EditorSelectBackColor('BackColorPicker','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 -->
    <titledbutton id="newButton"         class="button28" observes="cmd_newEditor" value="&newMenu.label;" />
    <titledbutton id="openButton"        class="button28" observes="Editor:Open"/>
    <titledbutton id="saveButton"        class="button28" observes="Editor:Save"/>
    <titledbutton id="printButton"       class="other28"  observes="Editor:Print"/>
    <titledbutton id="findButton"        class="other28"  observes="Editor:Find"/>
    <titledbutton id="spellingButton"    class="other28"  value="&spellToolbarCmd.label;" onclick="CheckSpelling()"/>

    <titledbutton id="imageButton"       class="other28" value="&imageToolbarCmd.label;"  onclick="EditorInsertOrEditImage()"/>
    <titledbutton id="hlineButton"       class="other28" value="&hruleToolbarCmd.label;"  onclick="EditorInsertOrEditHLine()"/>
    <titledbutton id="tableButton"       class="other28" value="&tableToolbarCmd.label;"  onclick="EditorInsertOrEditTable(true)"/>
    <titledbutton id="linkButton"        class="other28" value="&linkToolbarCmd.label;"   onclick="EditorInsertOrEditLink()"/>
    <titledbutton id="namedAnchorButton" class="other28" 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-2Cmd.label;</html:option>
      <html:option>&size-1Cmd.label;</html:option>
      <html:option>&size0Cmd.label;</html:option>
      <html:option>&size1Cmd.label;</html:option>
      <html:option>&size2Cmd.label;</html:option>
      <html:option>&size3Cmd.label;</html:option>
      <html:option>&size4Cmd.label;</html:option>
    </html:select>

    <!-- The new Color Picker UI -->
    <html:div id="ColorButtons">
      <titledbutton id="TextColorPopupButton" popup="TextColorPopup"/>
      <titledbutton id="BackColorPopupButton" popup="BackColorPopup"/>
    </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"/>


    <!-- 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="&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 align="horizontal" id="status-bar">
      <titledbutton value="&tempNotification.label;" onclick="doTests()"/>
      <box id="EditorProgressBox" align="vertical" flex="100%">
        <spring flex="100%"/>
        <progressmeter mode="normal" value="0">
        </progressmeter>
        <spring flex="100%"/>
      </box>
      <titledbutton id="statusText" align="right" flex="100%" value="&tempDoneLoading.label;" style="font-family:sans-serif;font-size:2.5mm">
      </titledbutton>
    </box>
</overlay>
