mail/components/addrbook/content/addressbook.xul
author hg@mozilla.org
Tue, 22 Jul 2008 14:21:15 +0200
changeset 0 e4f4569d451a5e0d12a6aa33ebd916f979dd8faa
child 4 201855946b54aa8dd10e5a289b12c622f44d372d
permissions -rw-r--r--
bug 437643 - Build Thunderbird and SeaMonkey from comm-central, initial import of code from CVS tag HG_COMM_INITIAL_IMPORT at 2008-07-22 05:18:47 PST, imported and tagged cvs.mozilla.org modules: mozilla/directory/xpcom/ mozilla/mailnews/ mozilla/mail/ mozilla/suite/ mozilla/other-licenses/branding/thunderbird/

<?xml version="1.0"?> 

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

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

#ifdef XP_MACOSX
<?xul-overlay href="chrome://messenger/content/macMenuOverlay.xul"?>
#endif
<?xul-overlay href="chrome://messenger/content/baseMenuOverlay.xul"?>

<!DOCTYPE window [
<!ENTITY % abMainWindowDTD SYSTEM "chrome://messenger/locale/addressbook/abMainWindow.dtd" >
%abMainWindowDTD;
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
%brandDTD;
<!ENTITY % globalDTD SYSTEM "chrome://global/locale/global.dtd">
%globalDTD;
#ifdef TOOLBAR_CUSTOMIZATION_SHEET
<!ENTITY % customizeToolbarDTD SYSTEM "chrome://global/locale/customizeToolbar.dtd">
%customizeToolbarDTD;
#endif
]>

<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:html="http://www.w3.org/1999/xhtml"
    id="addressbookWindow"
    height="450"
    width="750"
    title="&addressbookWindow.title;"
    windowtype="mail:addressbook"
    persist="width height screenX screenY sizemode"
    onload="OnLoadAddressBook()"
    onunload="OnUnloadAddressBook()">

  <stringbundleset id="stringbundleset">
    <stringbundle id="bundle_addressBook" src="chrome://messenger/locale/addressbook/addressBook.properties"/>
    <stringbundle id="bundle_messenger" src="chrome://messenger/locale/messenger.properties"/>
    <stringbundle id="bundle_brand" src="chrome://branding/locale/brand.properties"/>
  </stringbundleset>

<script type="application/x-javascript" src="chrome://messenger/content/accountUtils.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/widgetglue.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/mailCore.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/addressbook/addressbook.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/addressbook/abCommon.js"/>
<script type="application/x-javascript" src="chrome://communicator/content/contentAreaClick.js"/>
<script type="application/x-javascript" src="chrome://global/content/printUtils.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/msgPrintEngine.js"/>

<!-- move needed functions into a single js file -->
<script type="application/x-javascript" src="chrome://communicator/content/utilityOverlay.js"/>
<script type="application/x-javascript" src="chrome://global/content/nsDragAndDrop.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/addressbook/abDragDrop.js"/>
<script type="application/x-javascript" src="chrome://global/content/globalOverlay.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/addressbook/abResultsPane.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/addressbook/abCardViewOverlay.js"/>

<commandset id="addressBook">
  <commandset id="CommandUpdate_AddressBook"
              commandupdater="true"
              events="focus,addrbook-select"
              oncommandupdate="CommandUpdate_AddressBook()"/>
  <commandset id="selectEditMenuItems"
              commandupdater="true"
              events="select"
              oncommandupdate="goUpdateSelectEditMenuItems()"/>
  <commandset id="undoEditMenuItems"
              commandupdater="true"
              events="undo"
              oncommandupdate="goUpdateUndoEditMenuItems()"/>
  <commandset id="globalEditMenuItems"
              commandupdater="true"
              events="focus"
              oncommandupdate="goUpdateGlobalEditMenuItems()"/>
    <command id="cmd_newlist" oncommand="goDoCommand('cmd_newlist');"/>
    <command id="cmd_printcardpreview" oncommand="AbPrintCardPreview();"/>
    <command id="cmd_printcard" oncommand="AbPrintCard();"/>
    <command id="cmd_properties" oncommand="goDoCommand('button_edit');"/>
    <command id="cmd_undo" oncommand="goDoCommand('cmd_undo')" disabled="true"/>
    <command id="cmd_redo" oncommand="goDoCommand('cmd_redo')" disabled="true"/>
    <command id="cmd_cut" oncommand="goDoCommand('cmd_cut')" disabled="true"/>
    <command id="cmd_copy" oncommand="goDoCommand('cmd_copy')" disabled="true"/>
    <command id="cmd_paste" oncommand="goDoCommand('cmd_paste')" disabled="true"/>
    <command id="cmd_delete" oncommand="goDoCommand('cmd_delete')"
             valueAddressBook="&deleteAbCmd.label;"
             valueCard="&deleteCardCmd.label;"
             valueCards="&deleteCardsCmd2.label;"
             valueList="&deleteListCmd.label;"
             valueLists="&deleteListsCmd.label;"
             valueItems="&deleteItemsCmd.label;"
             disabled="true"/>
    <command id="cmd_selectAll" oncommand="goDoCommand('cmd_selectAll')" disabled="true"/>
#ifdef XP_MACOSX
    <!-- Mac Window menu -->
    <command id="minimizeWindow" label="&minimizeWindow.label;" oncommand="window.minimize();"/>
    <command id="zoomWindow" label="&zoomWindow.label;" oncommand="zoomWindow();"/>
    <command id="Tasks:Mail" oncommand="toMessengerWindow();"/>
#endif
    <command id="cmd_CustomizeABToolbar"
             oncommand="CustomizeMailToolbar('ab-toolbox', 'CustomizeABToolbar')"/>
</commandset>

<broadcasterset id="abBroadcasters">
  <!-- Edit Menu -->
  <broadcaster id="broadcaster-throbber" busy="false"/>
  <broadcaster id="button_delete" disabled="true"/>
</broadcasterset>

<keyset id="tasksKeys">
  <!-- File Menu -->
#ifdef XP_MACOSX
  <key id="key_newMessage" key="&newMessageCmd.key;" modifiers="accel,shift" oncommand="AbNewMessage()"/>
#else
  <key id="key_newMessage" key="&newMessageCmd.key;" modifiers="accel" oncommand="AbNewMessage()"/>
#endif
  <key id="key_newCard" key="&newCard.key;" modifiers="accel" oncommand="AbNewCard();"/>

  <key id="key_printCard" key="&printCardViewCmd.key;" command="cmd_printcard" modifiers="accel"/>
  <key id="key_close" key="&closeCmd.key;" modifiers="accel" oncommand="AbClose()"/>
  <key id="key_quit" key="&quitApplicationCmd.key;" modifiers="accel" oncommand="goQuitApplication()"/>
  <!-- Edit Menu -->
  <key id="key_undo" key="&undoCmd.key;" modifiers="accel"/>
  <key id="key_redo" key="&redoCmd.key;" modifiers="accel"/>
  <key id="key_cut" key="&cutCmd.key;" modifiers="accel"/>
  <key id="key_copy" key="&copyCmd.key;" modifiers="accel"/>
  <key id="key_paste" key="&pasteCmd.key;" modifiers="accel"/>

#ifdef XP_MACOSX
  <key id="key_delete" keycode="VK_BACK" command="cmd_delete"/>
  <key id="key_delete2" keycode="VK_DELETE" command="cmd_delete"/>
#else
  <key id="key_delete" keycode="VK_DELETE" command="cmd_delete"/>
#endif
  <key id="key_selectAll" key="&selectAllCmd.key;" modifiers="accel"/>
#ifdef MOZ_WIDGET_GTK2
  <key id="key_searchAddresses" key="&searchAddressesCmd.key;" oncommand="onAdvancedAbSearch();" modifiers="shift"/>
#else
  <key id="key_searchAddresses" key="&searchAddressesCmd.key;" oncommand="onAdvancedAbSearch();" modifiers="accel, shift"/>
#endif
  <key id="key_properties" command="cmd_properties" key="&propertiesCmd.key;" modifiers="accel"/>

  <!-- Tab/F6 Keys -->
  <key keycode="VK_TAB" oncommand="SwitchPaneFocus(event);" modifiers="control,shift"/>
  <key keycode="VK_TAB" oncommand="SwitchPaneFocus(event);" modifiers="control"/>
  <key keycode="VK_F6" oncommand="SwitchPaneFocus(event);" modifiers="control,shift"/>
  <key keycode="VK_F6" oncommand="SwitchPaneFocus(event);" modifiers="control"/>
  <key keycode="VK_F6" oncommand="SwitchPaneFocus(event);" modifiers="shift"/>
  <key keycode="VK_F6" oncommand="SwitchPaneFocus(event);"/>

  <key key="&quickSearchCmd.key;" oncommand="QuickSearchFocus();" modifiers="accel"/>
  <key id="key_mail"  key="&messengerCmd.commandkey;" oncommand="toMessengerWindow();" modifiers="accel"/>
#ifdef XP_MACOSX
  <!-- Mac Window keys -->
  <key id="key_minimizeWindow" command="minimizeWindow" key="&minimizeWindow.key;" modifiers="accel"/>
#endif
</keyset>

<keyset id="baseMenuKeyset"/>

<popup id="dirTreeContext">
  <menuitem id="dirTreeContext-properties"
            label="&editButton.label;"
            accesskey="&editButton.accesskey;"
            oncommand="goDoCommand('button_edit');"/>
  <menuseparator/>
  <menuitem id="dirTreeContext-newcard"
            label="&newcardButton.label;"
            accesskey="&newcardButton.accesskey;"
            oncommand="AbNewCard();"/>
  <menuitem id="dirTreeContext-newlist"
            label="&newlistButton.label;"
            accesskey="&newlistButton.accesskey;"
            command="cmd_newlist"/>
  <menuseparator/>
  <menuitem id="dirTreeContext-delete"
            label="&deleteButton.label;"
            accesskey="&deleteButton.accesskey;"
            observes="button_delete"
            oncommand="goDoCommand('button_delete');"/>
</popup>

<popup id="abResultsTreeContext">
  <menuitem id="abResultsTreeContext-properties"
            label="&editButton.label;"
            accesskey="&editButton.accesskey;"
            oncommand="goDoCommand('button_edit');"/>
  <menuseparator/>
  <menuitem id="abResultsTreeContext-newmessage"
            label="&newmsgButton.label;"
            accesskey="&newmsgButton.accesskey;"
            oncommand="AbNewMessage()"/>
  <menuitem id="abResultsTreeContext-newim"
            label="&newIM.label;"
            accesskey="&newIM.accesskey;"
            oncommand="AbIMSelected()"/>
  <menuseparator/>
  <menuitem id="abResultsTreeContext-delete"
            label="&deleteButton.label;"
            accesskey="&deleteButton.accesskey;"
            observes="button_delete"
            oncommand="goDoCommand('button_delete');"/>
</popup>

<popup id="toolbar-context-menu"
       onpopupshowing="onViewToolbarsPopupShowing(event, 'ab-toolbox');">
  <menuseparator id="customizeABToolbarMenuSeparator"/>
  <menuitem id="CustomizeABToolbar"
            command="cmd_CustomizeABToolbar"
            label="&customizeToolbar.label;"
            accesskey="&customizeToolbar.accesskey;"/>
</popup>

<toolbox id="ab-toolbox" class="toolbox-top" mode="full">
  <toolbar type="menubar" id="addrbook-toolbar-menubar2" class="chromeclass-menubar" customizable="true"
#ifdef XP_MACOSX
           defaultset="menubar-items"
#else
          defaultset="menubar-items,spring,throbber-box"
#endif
           context="toolbar-context-menu" mode="icons">

   <toolbaritem id="menubar-items" align="center">
     <menubar id="mail-menubar" style="border:0px;padding:0px;margin:0px;-moz-appearance:none">
        <menu id="menu_File" label="&fileMenu.label;" accesskey="&fileMenu.accesskey;">
#ifdef XP_MACOSX
            <menupopup id="menu_FilePopup" onpopupshowing="onOSXFileMenuInit();">
#else
            <menupopup id="menu_FilePopup">
#endif
                <menu id="menu_New" label="&newMenu.label;" accesskey="&newMenu.accesskey;">
                    <menupopup id="menu_NewPopup">
                      <menuitem label="&newCard.label;" accesskey="&newCard.accesskey;" key="key_newCard" oncommand="AbNewCard();"/>
                      <menuitem label="&newListCmd.label;" accesskey="&newListCmd.accesskey;" command="cmd_newlist"/>
                      <menuitem label="&newAddressBookCmd.label;" accesskey="&newAddressBookCmd.accesskey;" oncommand="AbNewAddressBook()"/>
                      <menuitem label="&newLDAPDirectoryCmd.label;" id="addLDAP" accesskey="&newLDAPDirectoryCmd.accesskey;" oncommand="AbNewLDAPDirectory()"/>
                      <menuseparator/>
                      <menuitem label="&newMessageCmd.label;" id="menu_newMessage" key="key_newMessage" accesskey="&newMessageCmd.accesskey;" oncommand="AbNewMessage()"/>
                    </menupopup>
                </menu>
                <menuitem id="menu_close" label="&closeCmd.label;" key="key_close" accesskey="&closeCmd.accesskey;" oncommand="AbClose()"/>
                <menuseparator/>
#ifdef XP_MACOSX
                <menuitem id="menu_osxAddressBook"
                          label="&osxAddressBook.label;"
                          accesskey="&osxAddressBook.accesskey;"
                          oncommand="AbShowHideOSXAddressBook();"
                          checked="true" type="checkbox"/>
		<menuseparator/>
#endif
                <menuitem id="printSetupMenuItem" label="&printSetupCmd.label;" accesskey="&printSetupCmd.accesskey;" oncommand="PrintUtils.showPageSetup()"/>
#ifndef XP_MACOSX
                <menuitem id="printPreviewMenuItem" label="&printPreviewCardViewCmd.label;" accesskey="&printPreviewCardViewCmd.accesskey;" command="cmd_printcardpreview"/>
                <menuitem id="printPreviewAddressBook" label="&printPreviewAddressBook.label;" accesskey="&printPreviewAddressBook.accesskey;" oncommand="AbPrintPreviewAddressBook()"/>
#endif
                <menuitem id="printMenuItem" label="&printCardViewCmd.label;" accesskey="&printCardViewCmd.accesskey;" key="key_printCard" command="cmd_printcard"/>
                <menuitem id="printAddressBook" label="&printAddressBook.label;" accesskey="&printAddressBook.accesskey;" oncommand="AbPrintAddressBook()"/>
                <menuseparator id="menu_FileQuitSeparator"/>
                <menuitem id="menu_FileQuitItem" 
#ifdef XP_WIN
                label="&quitApplicationCmdWin.label;" accesskey="&quitApplicationCmdWin.accesskey;" 
#else
                label="&quitApplicationCmd.label;" accesskey="&quitApplicationCmd.accesskey;" 
#endif
                key="key_quit" oncommand="goQuitApplication()"/>
            </menupopup>
        </menu>
        
        <menu id="menu_Edit" label="&editMenu.label;" accesskey="&editMenu.accesskey;">
          <menupopup id="menu_EditPopup">
            <menuitem id="menu_undo" 
                      label="&undoCmd.label;" 
                      key="key_undo"
                      accesskey="&undoCmd.accesskey;"
                      command="cmd_undo"/>
            <menuitem id="menu_redo"
                      label="&redoCmd.label;"
                      key="key_redo"
                      accesskey="&redoCmd.accesskey;"
                      command="cmd_redo"/>
            <menuseparator/>
            <menuitem id="menu_cut"
                      label="&cutCmd.label;"
                      key="key_cut"
                      accesskey="&cutCmd.accesskey;"
                      command="cmd_cut"/>
            <menuitem id="menu_copy"
                      label="&copyCmd.label;"
                      key="key_copy"
                      accesskey="&copyCmd.accesskey;"
                      command="cmd_copy"/>
            <menuitem id="menu_paste"
                      label="&pasteCmd.label;"
                      key="key_paste"
                      accesskey="&pasteCmd.accesskey;"
                      command="cmd_paste"/>
            <menuitem id="menu_delete"
                      label="&deleteCmd.label;"
                      key="key_delete"
                      accesskey="&deleteCmd.accesskey;"
                      command="cmd_delete"/>
            <menuseparator/>
            <menuitem id="menu_selectAll"
                      label="&selectAllCmd.label;"
                      key="key_selectAll"
                      accesskey="&selectAllCmd.accesskey;"
                      command="cmd_selectAll"/>

            <menuseparator/>
            <menuitem label="&searchAddressesCmd.label;" accesskey="&searchAddressesCmd.accesskey;"
                          id="menu_search_addresses" key="key_searchAddresses"  oncommand="onAdvancedAbSearch();"/>

            <menuseparator/>
            <!-- LOCALIZATION NOTE: set "hideSwapFnLnUI" to false in .dtd to enable the UI -->
            <menuitem label="&swapFirstNameLastNameCmd.label;"
                      accesskey="&swapFirstNameLastNameCmd.accesskey;"
                      hidden="&hideSwapFnLnUI;"
                      oncommand="AbSwapFirstNameLastName()"/>
            <menuitem label="&propertiesCmd.label;"
                      accesskey="&propertiesCmd.accesskey;"
                      key="key_properties"
                      command="cmd_properties"/>            
#ifdef XP_UNIX
#ifndef XP_MACOSX
        <menuseparator id="prefSep"/>
        <menuitem id="menu_preferences" label="&preferencesCmdUnix.label;" accesskey="&preferencesCmdUnix.accesskey;"
                  oncommand="openOptionsDialog()"/>
#endif
#endif
          </menupopup>
        </menu>

        <menu id="menu_View" label="&viewMenu.label;" accesskey="&viewMenu.accesskey;">
            <menupopup id="menu_View_Popup">
                <menu id="menu_Toolbars"
                      label="&viewToolbarsMenu.label;" accesskey="&viewToolbarsMenu.accesskey;"
                      onpopupshowing="onViewToolbarsPopupShowing(event, 'ab-toolbox');">
                  <menupopup id="view_toolbars_popup">
                    <menuseparator id="viewMenuBeforeCustomizeABToolbarsSeparator"/>
                    <menuitem id="customizeABToolbars"
                              command="cmd_CustomizeABToolbar"
                              label="&customizeToolbar.label;"
                              accesskey="&customizeToolbar.accesskey;"/>
                  </menupopup>
                </menu>
                <menuitem id="menu_showTaskbar"
                          label="&showTaskbarCmd.label;" accesskey="&showTaskbarCmd.accesskey;"
                          oncommand="goToggleToolbar('status-bar', 'menu_showTaskbar')"
                          type="checkbox" checked="true"/>
                <menuseparator id="viewMenuAfterTaskbarSeparator"/>
                <menuitem id="menu_showCardPane"
                          label="&showCardPane.label;"
                          accesskey="&showCardPane.accesskey;"
                          oncommand="goToggleSplitter('results-splitter', 'menu_showCardPane')"
                          checked="true" type="checkbox"/>
                <menuseparator/>
                <menu id="menu_ShowNameAs" label="&menu_ShowNameAs.label;" accesskey="&menu_ShowNameAs.accesskey;">
                    <menupopup id="menu_ShowNameAsPopup">
                        <menuitem type="radio" name="shownameas"
                                  id="firstLastCmd"
                                  label="&firstLastCmd.label;"
                                  accesskey="&firstLastCmd.accesskey;"
                                  oncommand="SetNameColumn('firstLastCmd')"/>
                        <menuitem type="radio" name="shownameas"
                                  id="lastFirstCmd"
                                  label="&lastFirstCmd.label;"
                                  accesskey="&lastFirstCmd.accesskey;"
                                  oncommand="SetNameColumn('lastFirstCmd')"/>
                        <menuitem type="radio" name="shownameas"
                                  id="displayNameCmd"
                                  label="&displayNameCmd.label;"
                                  accesskey="&displayNameCmd.accesskey;"
                                  oncommand="SetNameColumn('displayNameCmd')"/>
                    </menupopup>
                </menu>
                <menu id="sortMenu" label="&sortMenu.label;" accesskey="&sortMenu.accesskey;">
                    <menupopup id="sortMenuPopup" onpopupshowing="InitViewSortByMenu()">
                        <menuitem label="&GeneratedName.label;" 
                                  id="cmd_SortByGeneratedName"
                                  accesskey="&GeneratedName.accesskey;"
                                  oncommand="SortResultPane('GeneratedName');" name="sortas" type="radio" checked="true"/>
                        <menuitem label="&PrimaryEmail.label;"
                                  id="cmd_SortByPrimaryEmail"
                                  accesskey="&PrimaryEmail.accesskey;"
                                  oncommand="SortResultPane('PrimaryEmail');" name="sortas" type="radio" checked="true"/>
                        <menuitem label="&ScreenName.label;"
                                  id="cmd_SortBy_AimScreenName"
                                  accesskey="&ScreenName.accesskey;"
                                  oncommand="SortResultPane('_AimScreenName');" name="sortas" type="radio" checked="true"/>
                        <menuitem label="&Company.label;"
                                  id="cmd_SortByCompany"
                                  accesskey="&Company.accesskey;"
                                  oncommand="SortResultPane('Company');" name="sortas" type="radio" checked="true"/>
                        <!-- LOCALIZATION NOTE:
                        Fields for phonetic are disabled as default and can be enabled by 
                        editing "mail.addr_book.show_phonetic_fields"    
                        -->
                        <menuitem label="&_PhoneticName.label;"
                                  id="cmd_SortBy_PhoneticName"
                                  hidden="true"
                                  accesskey="&_PhoneticName.accesskey;"
                                  oncommand="SortResultPane('_PhoneticName');" name="sortas" type="radio" checked="true"/>
                        <menuitem label="&NickName.label;"
                                  id="cmd_SortByNickName"
                                  accesskey="&NickName.accesskey;"
                                  oncommand="SortResultPane('NickName');" name="sortas" type="radio" checked="true"/>
                        <menuitem label="&SecondEmail.label;"
                                  id="cmd_SortBySecondEmail"
                                  accesskey="&SecondEmail.accesskey;"
                                  oncommand="SortResultPane('SecondEmail');" name="sortas" type="radio" checked="true"/>
                        <menuitem label="&Department.label;"
                                  id="cmd_SortByDepartment"
                                  accesskey="&Department.accesskey;"
                                  oncommand="SortResultPane('Department');" name="sortas" type="radio" checked="true"/>
                        <menuitem label="&JobTitle.label;"
                                  id="cmd_SortByJobTitle"
                                  accesskey="&JobTitle.accesskey;"
                                  oncommand="SortResultPane('JobTitle');" name="sortas" type="radio" checked="true"/>
                        <menuitem label="&CellularNumber.label;"
                                  id="cmd_SortByCellularNumber"
                                  accesskey="&CellularNumber.accesskey;"
                                  oncommand="SortResultPane('CellularNumber');" name="sortas" type="radio" checked="true"/>
                        <menuitem label="&PagerNumber.label;"
                                  id="cmd_SortByPagerNumber"
                                  accesskey="&PagerNumber.accesskey;"
                                  oncommand="SortResultPane('PagerNumber');" name="sortas" type="radio" checked="true"/>
                        <menuitem label="&FaxNumber.label;"
                                  id="cmd_SortByFaxNumber"
                                  accesskey="&FaxNumber.accesskey;"
                                  oncommand="SortResultPane('FaxNumber');" name="sortas" type="radio" checked="true"/>
                        <menuitem label="&HomePhone.label;"
                                  id="cmd_SortByHomePhone"
                                  accesskey="&HomePhone.accesskey;"
                                  oncommand="SortResultPane('HomePhone');" name="sortas" type="radio" checked="true"/>
                        <menuitem label="&WorkPhone.label;"
                                  id="cmd_SortByWorkPhone"
                                  accesskey="&WorkPhone.accesskey;"
                                  oncommand="SortResultPane('WorkPhone');" name="sortas" type="radio" checked="true"/>
                        <menuseparator/>
                        <menuitem id="sortAscending" type="radio" name="sortdirection" label="&sortAscending.label;" accesskey="&sortAscending.accesskey;" oncommand="AbSortAscending()"/>
                        <menuitem id="sortDescending" type="radio" name="sortdirection" label="&sortDescending.label;" accesskey="&sortDescending.accesskey;" oncommand="AbSortDescending()"/>
                    </menupopup>
                </menu>
            </menupopup>
        </menu>   
    
        <menu id="tasksMenu" label="&tasksMenu.label;" accesskey="&tasksMenu.accesskey;">
          <menupopup id="taskPopup">
        

        <!-- Moving the messengerCmd menu item item to the Window menu on the Mac -->
#ifndef XP_MACOSX
            <menuitem accesskey="&messengerCmd.accesskey;" label="&messengerCmd.label;"  key="key_mail" oncommand="toMessengerWindow();" id="tasksMenuMail" class="menuitem-iconic icon-mail16 menu-iconic"/>
            <menuseparator />  
#endif
            <menuitem label="&importCmd.label;" accesskey="&importCmd.accesskey;" oncommand="toImport()"/>
            <menuitem label="&exportCmd.label;" accesskey="&exportCmd.accesskey;" oncommand="AbExport()"/>

#ifndef XP_UNIX
        <menuseparator id="prefSep"/>
            <menuitem id="menu_preferences" label="&preferencesCmd.label;" accesskey="&preferencesCmd.accesskey;"
                      oncommand="openOptionsDialog()"/>
#else
#ifdef XP_MACOSX
        <menuitem id="menu_preferences" label="&preferencesCmd.label;" accesskey="&preferencesCmd.accesskey;"
                  oncommand="openOptionsDialog()"/>
#endif
#endif
          </menupopup>
        </menu>

#ifdef XP_MACOSX
<!-- Mac window menu -->
#include ../../../../toolkit/content/macWindowMenu.inc
#endif

      <!-- Help -->
      <menu id="helpMenu"/>
    </menubar>
   </toolbaritem>
  </toolbar>
  
  <toolbarpalette id="AddressBookToolbarPalette">
      <toolbarbutton class="toolbarbutton-1" id="button-newcard" label="&newcardButton.label;" tooltiptext="&newcardButton.tooltip;" oncommand="AbNewCard();"/>
      <toolbarbutton class="toolbarbutton-1" id="button-newlist" label="&newlistButton.label;" tooltiptext="&newlistButton.tooltip;" command="cmd_newlist"/>
      <toolbarbutton class="toolbarbutton-1" id="button-editcard" label="&editButton.label;" tooltiptext="&editButton.tooltip;" oncommand="goDoCommand('button_edit');"/>
      <toolbarbutton class="toolbarbutton-1" id="button-newmessage" label="&newmsgButton.label;" tooltiptext="&newmsgButton.tooltip;" oncommand="AbNewMessage();"/>
      <toolbarbutton class="toolbarbutton-1" id="button-newim" label="&newIM.label;" tooltiptext="&newIM.tooltip;" oncommand="AbIMSelected();"/>
      <toolbarbutton class="toolbarbutton-1" id="button-abdelete" observes="button_delete" label="&deleteButton.label;" tooltiptext="&deleteButton.tooltip;" oncommand="goDoCommand('button_delete');"/>

      <toolbaritem id="throbber-box" title="&throbberItem.title;" align="center" pack="center">
        <button id="navigator-throbber" disabled="true"/>
      </toolbaritem>

      <toolbaritem id="search-container" title="&searchItem.title;" align="center" class="chromeclass-toolbar-additional">
        <textbox id="searchInput" flex="1" timeout="800"
                 onfocus="onSearchInputFocus(event);"
                 onblur="onSearchInputBlur(event);"
                 onclick="this.select();" oncommand="onEnterInSearchBar();"
                 chromedir="&locale.dir;">
          <button id="quick-search-button" type="menu" chromedir="&locale.dir;">
            <menupopup id="quick-search-menupopup" value="0" persist="value" popupalign="topleft" popupanchor="bottomleft">
              <menuitem value="0" label="&SearchNameOrEmail.label;" type="radio"/>
            </menupopup>
          </button>
        </textbox>
      </toolbaritem>     
  </toolbarpalette>
  <!-- toolbar -->
  <toolbar id="ab-bar2" class="toolbar-primary chromeclass-toolbar"
           toolbarname="&showAbToolbarCmd.label;"
           accesskey="&showAbToolbarCmd.accesskey;"
           fullscreentoolbar="true" mode="full"
           customizable="true"
           context="toolbar-context-menu"
#ifdef XP_MACOSX
           defaultset="button-newcard,button-newlist,spacer,button-editcard,button-newmessage,spacer,button-abdelete,spring,search-container,throbber-box">
#else
           defaultset="button-newcard,button-newlist,separator,button-editcard,button-newmessage,separator,button-abdelete,spring,search-container">
#endif
   </toolbar>
   <toolbarset id="customToolbars" context="toolbar-context-menu"/>
  </toolbox>

  <!-- The main address book three pane -->
  <hbox id="abContent" flex="1">
    <vbox id="dirTreeBox" persist="width collapsed">
      <sidebarheader id="abDirTreeHeader" align="center">
        <label id="abDirTreeHeader-title" value="&dirTreeHeader.label;" control="dirTree"/>
      </sidebarheader>

      <!-- FIX ME - remove document.commandDispatcher.updateCommands() when tree selection calls this automatically -->
      <tree id="dirTree" class="abDirectory plain" seltype="single" minwidth="150" flex="1" persist="width"
            datasources="rdf:addressdirectory" ref="moz-abdirectory://"
            flags="dont-build-content"
            hidecolumnpicker="true"
            context="dirTreeContext"
            onselect="DirPaneSelectionChange(); document.commandDispatcher.updateCommands('addrbook-select');"
            ondblclick="DirPaneDoubleClick(event);"
            onblur="goOnEvent(this,'blur')">
 
        <treecols>
          <treecol id="DirCol" flex="1" primary="true" 
                   crop="center" persist="width" ignoreincolumnpicker="true" hideheader="true"
                   sort="?DirTreeNameSort" sortActive="true" sortDirection="ascending"/>
        </treecols>
     
        <template>
          <rule>
            <conditions>
              <content uri="?container"/> 
              <member container="?container" child="?member"/>
            </conditions>
 
            <bindings>
              <binding subject="?member"
                       predicate="http://home.netscape.com/NC-rdf#DirName"
                       object="?DirName"/>
              <binding subject="?member"
                       predicate="http://home.netscape.com/NC-rdf#DirTreeNameSort"
                       object="?DirTreeNameSort"/>
              <binding subject="?member"
                       predicate="http://home.netscape.com/NC-rdf#IsMailList"
                       object="?IsMailList"/>
              <binding subject="?member"
                       predicate="http://home.netscape.com/NC-rdf#IsRemote"
                       object="?IsRemote"/>
              <binding subject="?member"
                       predicate="http://home.netscape.com/NC-rdf#IsSecure"
                       object="?IsSecure"/>
            </bindings>

            <action>
              <treechildren>
                <treeitem uri="?member" persist="sortDirection sortColumn open">
                  <treerow>
                    <treecell label="?DirName" properties="IsMailList-?IsMailList IsRemote-?IsRemote IsSecure-?IsSecure"/>
                  </treerow>
                </treeitem>
              </treechildren>
            </action>
          </rule>
        </template>
      </tree>
    </vbox>

    <splitter id="dirTree-splitter" collapse="before" persist="state"/> 
    
    <vbox flex="1" minwidth="100">

      <!-- results pane -->
      <tree id="abResultsTree" flex="1" enableColumnDrag="true" class="plain"
            context="abResultsTreeContext"
            onclick="AbResultsPaneOnClick(event);"
            onkeypress="AbResultsPaneKeyPress(event);"
            onselect="this.view.selectionChanged(); document.commandDispatcher.updateCommands('addrbook-select');"
            sortCol="GeneratedName"
            minheight="100" height="100"
            persist="height sortCol">

        <treecols id="abResultsTreeCols">
          <!-- these column ids must match up to the mork column names, except for GeneratedName, see nsIAddrDatabase.idl -->
          <treecol id="GeneratedName" class="sortDirectionIndicator" 
                   persist="hidden ordinal width sortDirection" flex="1" 
                   label="&GeneratedName.label;" primary="true"/>
          <splitter class="tree-splitter"/>
          <treecol id="PrimaryEmail" class="sortDirectionIndicator" 
                   persist="hidden ordinal width sortDirection"  flex="1"
                   label="&PrimaryEmail.label;"/>
          <splitter class="tree-splitter"/>
          <treecol id="_AimScreenName" class="sortDirectionIndicator" 
                   persist="hidden ordinal width sortDirection"  flex="1"
                   label="&ScreenName.label;"/>
          <splitter class="tree-splitter"/>
          <treecol id="Company" class="sortDirectionIndicator" 
                   persist="hidden ordinal width sortDirection" flex="1"
                   label="&Company.label;"/>
          <splitter class="tree-splitter"/>
          <treecol id="NickName" class="sortDirectionIndicator" 
                   persist="hidden ordinal width sortDirection" flex="1"
                   label="&NickName.label;" hidden="true"/>
          <splitter class="tree-splitter"/>
          <treecol id="SecondEmail" class="sortDirectionIndicator" 
                   persist="hidden ordinal width sortDirection" flex="1" 
                   label="&SecondEmail.label;" hidden="true"/>
          <splitter class="tree-splitter"/>
          <treecol id="Department" class="sortDirectionIndicator" 
                   persist="hidden ordinal width sortDirection" flex="1"  
                   label="&Department.label;" hidden="true"/>
          <splitter class="tree-splitter"/>
          <treecol id="JobTitle" class="sortDirectionIndicator" 
                   persist="hidden ordinal width sortDirection" flex="1" 
                   label="&JobTitle.label;" hidden="true"/>
          <splitter class="tree-splitter"/>
          <treecol id="CellularNumber" class="sortDirectionIndicator" 
                   persist="hidden ordinal width sortDirection" flex="1" 
                   label="&CellularNumber.label;" hidden="true"/>
          <splitter class="tree-splitter"/>
          <treecol id="PagerNumber" class="sortDirectionIndicator" 
                   persist="hidden ordinal width sortDirection" flex="1" 
                   label="&PagerNumber.label;" hidden="true"/>
          <splitter class="tree-splitter"/>
          <treecol id="FaxNumber" class="sortDirectionIndicator" 
                   persist="hidden ordinal width sortDirection" flex="1" 
                   label="&FaxNumber.label;" hidden="true"/>
          <splitter class="tree-splitter"/>
          <treecol id="HomePhone" class="sortDirectionIndicator" 
                   persist="hidden ordinal width sortDirection" flex="1" 
                   label="&HomePhone.label;" hidden="true"/>
          <splitter class="tree-splitter"/>
          <treecol id="WorkPhone" class="sortDirectionIndicator" 
                   persist="hidden ordinal width sortDirection" flex="1"
                   label="&WorkPhone.label;"/>
    
          <!-- LOCALIZATION NOTE: _PhoneticName may be enabled for Japanese builds. -->
          <!--
          <treecol id="_PhoneticName" class="sortDirectionIndicator" 
                   persist="hidden ordinal width sortDirection" flex="1" 
                   label="&_PhoneticName.label;" hiddenbydefault="true"/>
          <splitter class="tree-splitter"/>
          -->
        </treecols>

        <treechildren ondraggesture="nsDragAndDrop.startDrag(event, abResultsPaneObserver);"/>
      </tree>
      
      <splitter id="results-splitter" collapse="after" persist="state"/>
      
      <!-- card view -->
      <hbox id="CardViewOuterBox" flex="1" minheight="100" height="200" persist="height"> 
        <vbox id="CardViewBox" flex="1">
          <vbox id="CardViewInnerBox" collapsed="true" flex="1">
            <description id="CardTitle"/>
            <hbox flex="1">
              <vbox flex="1">
                <vbox id="cvbContact" class="cardViewGroup">
                  <description class="CardViewHeading" id="cvhContact">&contact.heading;</description>          
                  <description class="CardViewLink" id="cvListNameBox">
                    <html:p><html:a href="" id="cvListName"/></html:p>
                  </description>
                  <description class="CardViewText" id="cvDisplayName"/>
                  <description class="CardViewText" id="cvNickname"/>
                  <description class="CardViewLink" id="cvEmail1Box">
                    <html:a href="" id="cvEmail1"/>
                  </description>
                  <description class="CardViewLink" id="cvEmail2Box">
                    <html:a href="" id="cvEmail2"/>
                  </description>
                  <description class="CardViewLink" id="cvScreennameBox">
                    <html:a href="" id="cvScreenname"/>
                    <html:img onclick="GoIM()" align="top" id="cvAimPresence"/>
                  </description>
                </vbox>
                <vbox id="cvbHome" class="cardViewGroup">
                  <description class="CardViewHeading" id="cvhHome">&home.heading;</description>          
                  <hbox>
                    <vbox flex="1">
                      <description class="CardViewText" id="cvHomeAddress"/>
                      <description class="CardViewText" id="cvHomeAddress2"/>
                      <description class="CardViewText" id="cvHomeCityStZip"/>
                      <description class="CardViewText" id="cvHomeCountry"/>
                    </vbox>
                    <vbox id="cvbHomeMapItBox" pack="end">
                      <button id="cvHomeMapIt" url="" label="&mapItButton.label;" oncommand="MapIt('cvHomeMapIt');" tooltiptext="&mapIt.tooltip;"/>
                    </vbox>
                  </hbox>
                  <description class="CardViewLink" id="cvHomeWebPageBox">
                    <html:a onclick="return openLink('cvHomeWebPage');" href="" id="cvHomeWebPage"/>
                  </description>
                </vbox>
                <vbox id="cvbOther" class="cardViewGroup">
                  <description class="CardViewHeading" id="cvhOther">&other.heading;</description>
                  <description class="CardViewText" id="cvCustom1"/>
                  <description class="CardViewText" id="cvCustom2"/>
                  <description class="CardViewText" id="cvCustom3"/>
                  <description class="CardViewText" id="cvCustom4"/>
                  <description class="CardViewText" id="cvNotes" style="white-space: pre-wrap;"/>
                  <hbox>
                    <image id="cvBuddyIcon"/> 
                  </hbox>
                </vbox>
                <vbox id="cvbDescription" class="cardViewGroup">
                  <description class="CardViewHeading" id="cvhDescription">&description.heading;</description>
                  <description class="CardViewText" id="cvDescription"/>
                </vbox>
                <vbox id="cvbAddresses" class="cardViewGroup">
                  <description class="CardViewHeading" id="cvhAddresses">&addresses.heading;</description>
                </vbox>
              </vbox>
      
              <spacer width="20"/>

              <vbox flex="1">
                <vbox id="cvbPhone" class="cardViewGroup">
                  <description class="CardViewHeading" id="cvhPhone">&phone.heading;</description>
                  <description class="CardViewText" id="cvPhWork"/>
                  <description class="CardViewText" id="cvPhHome"/>
                  <description class="CardViewText" id="cvPhFax"/>
                  <description class="CardViewText" id="cvPhCellular"/>
                  <description class="CardViewText" id="cvPhPager"/>
                </vbox>
                <vbox id="cvbWork" class="cardViewGroup">
                  <description class="CardViewHeading" id="cvhWork">&work.heading;</description>
                  <description class="CardViewText" id="cvJobTitle"/>
                  <description class="CardViewText" id="cvDepartment"/>
                  <description class="CardViewText" id="cvCompany"/>
                  <hbox>
                    <vbox flex="1">
                      <description class="CardViewText" id="cvWorkAddress"/>
                      <description class="CardViewText" id="cvWorkAddress2"/>
                      <description class="CardViewText" id="cvWorkCityStZip"/>
                      <description class="CardViewText" id="cvWorkCountry"/>
                    </vbox>
                    <vbox id="cvbWorkMapItBox" pack="end">
                      <button id="cvWorkMapIt" url="" label="&mapItButton.label;" oncommand="MapIt('cvWorkMapIt');" tooltiptext="&mapIt.tooltip;"/>
                    </vbox>
                  </hbox>
                  <description class="CardViewLink" id="cvWorkWebPageBox">
                    <html:a onclick="return openLink('cvWorkWebPage');" href="" id="cvWorkWebPage"/>
                  </description>
                </vbox>
              </vbox>
            </hbox>
          </vbox>
        </vbox>
      </hbox>
    </vbox>
  </hbox>
#ifdef TOOLBAR_CUSTOMIZATION_SHEET
  <panel id="customizeToolbarSheetPopup" noautohide="true">
    <iframe id="customizeToolbarSheetIFrame"
            style="&dialog.style;"
            hidden="true"/>
  </panel>
#endif
  
  <statusbar id="status-bar" class="chromeclass-status">
    <statusbarpanel id="statusText" flex="1" value="&statusText.label;"/>            
  </statusbar>  
</window>