<?xml version="1.0"?> <!-- -*- Mode: HTML; indent-tabs-mode: nil; -*- -->
<!--

  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.org code.
 
  The Initial Developer of the Original Code is Netscape
  Communications Corporation.  Portions created by Netscape are
  Copyright (C) 1998 Netscape Communications Corporation. All
  Rights Reserved.
 
  Contributor(s): 
    Blake Ross <blakeross@telocity.com>

-->

<?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://communicator/skin/bookmarks/bookmarks.css" type="text/css"?>
<?xul-overlay href="chrome://global/content/globalOverlay.xul"?>
<?xul-overlay href="chrome://communicator/content/utilityOverlay.xul"?>
<?xul-overlay href="chrome://communicator/content/tasksOverlay.xul"?>
<?xul-overlay href="chrome://communicator/content/communicatorOverlay.xul"?>

<!DOCTYPE window SYSTEM "chrome://communicator/locale/bookmarks/bookmarks.dtd">

<window title="&bookmarksWindowTitle.label;" id="bookmark-window" onunload="doUnload()"
  xmlns:html="http://www.w3.org/1999/xhtml"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:web="http://home.netscape.com/WEB-rdf#"
  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
  width="630" height="400" screenX="20" screenY="20"
  persist="width height screenX screenY" orient="vertical"
  onload="Init();"
  ondraggesture="return TopLevelDrag(event);"
  windowtype="bookmarks:manager"
  >

  <script src="chrome://communicator/content/bookmarks/bookmarks.js"/>
  <script src="chrome://communicator/content/bookmarks/bookmarksDD.js"/>
  <script src="chrome://global/content/nsTreeUtils.js"/>
  <script src="chrome://global/content/treePopups.js"/>
  <script src="chrome://global/content/strres.js"/>
  <script src="chrome://global/content/globalOverlay.js"/>
  <script src="chrome://global/content/nsJSComponentManager.js"/>

<commands id="commands">
  <commandset id="CommandUpdate_Bookmarks"
    commandupdater="true"
    events="focus,tree-select"
    oncommandupdate="CommandUpdate_Bookmarks()"/>
  <commandset id="selectEditMenuItems"/>
  <commandset id="globalEditMenuItems">
    <command id="bm_cmd_find" oncommand="return OpenBookmarksFind();"/>
    <command id="bm_cmd_properties" oncommand="return BookmarkProperties();"/>
  </commandset>
</commands>

<broadcasterset id="broadcasterset">
  <!-- File Menu -->
  <broadcaster id="cmd_newNavigator"/>
  <broadcaster id="cmd_newEditor"/>
  <broadcaster id="cmd_close" oncommand="window.close()"/>
  <broadcaster id="cmd_quit"/>
  <broadcaster id="bm_cmd_saveas"/>
  <!-- Edit Menu -->
  <broadcaster id="cmd_undo"/>
  <broadcaster id="cmd_cut"/>
  <broadcaster id="cmd_copy"/>
  <broadcaster id="cmd_paste"/>
  <broadcaster id="cmd_delete"/>
  <broadcaster id="cmd_selectAll"/>
  <broadcaster id="cmd_preferences"/>
</broadcasterset>

<keyset id="keyset">
  <!-- File Menu -->
  <key id="key_newNavigator"/>
  <key id="key_newEditor"/>
  <key id="key_close"/>
  <key id="key_quit"/>
  <!-- Edit Menu -->
  <key id="key_undo"/>
  <key id="key_cut"/>
  <key id="key_copy"/>
  <key id="key_paste"/>
  <key id="key_delete"/>
  <key id="key_selectAll"/>
  <key id="bm_key_find"  key="&edit.find.keybinding;"  observes="bm_cmd_find" modifiers="accel"/>
  <key id="bm_key_properties" 
    key="&edit.properties.keybinding;"  observes="bm_cmd_properties" modifiers="accel"/>
</keyset>
<toolbox>
<menubar id="main-menubar">
  <menu id="menu_File">
    <menupopup id="menu_FilePopup">
      <menuitem accesskey="&menuitem.newBookmark.accesskey;" value="&menuitem.newBookmark.label;" oncommand="return doContextCmd('http://home.netscape.com/NC-rdf#command?cmd=newbookmark');" />
      <menu id="menu_New">
        <menupopup id="menu_NewPopup">
          <menuitem value="&menuitem.newFolder.label;" oncommand="return doContextCmd('http://home.netscape.com/NC-rdf#command?cmd=newfolder');"/>
          <menuitem value="&menuitem.newSeparator.label;" oncommand="return doContextCmd('http://home.netscape.com/NC-rdf#command?cmd=newseparator');"/>
          <menuseparator/>
	    <menuitem id="menu_newNavigator" observes="cmd_newNavigator"/>
	    <menuitem id="menu_newEditor"    observes="cmd_newEditor"/>
        </menupopup>
      </menu>
      <menuseparator/>
      <menuitem id="menu_close"/>
      <menuseparator/>
      <menuitem value="&menuitem.import.label;" oncommand="return doContextCmd('http://home.netscape.com/NC-rdf#command?cmd=import');" />
      <menuitem value="&menuitem.export.label;" oncommand="return doContextCmd('http://home.netscape.com/NC-rdf#command?cmd=export');" />
      <menuseparator/>
    </menupopup>
  </menu>

  <menu id="menu_Edit">
    <menupopup>
      <menuitem id="menu_undo" disabled="true" />
      <menuseparator/>
      <menuitem id="menu_cut"/>
      <menuitem id="menu_copy"/>
      <menuitem id="menu_paste"/>
      <menuitem id="menu_delete"/>
      <menuseparator/>
      <menuitem id="menu_selectAll"/>
      <menuseparator/>
      <menuitem observes="bm_cmd_find" key="bm_key_find"
        value="&menuitem.find.label;" accesskey="&menuitem.find.accesskey;"/>
      <menuseparator/>
      <menuitem id="menu_preferences" oncommand="goPreferences('navigator.xul', 'chrome://communicator/content/pref/pref-navigator.xul', 'navigator')"/>
      <menuitem observes="bm_cmd_properties" key="bm_key_properties" 
        value="&menuitem.properties.label;" accesskey="&menuitem.properties.accesskey;" />
    </menupopup>
  </menu>

  <menu id="menu_View">
    <menupopup oncreate="fillViewMenu(this)">
      <menuitem type="radio" name="sort_column" id="unsorted_menuitem"
        value="&menuitem.view.unsorted.label;" accesskey="&menuitem.view.unsorted.accesskey;"
        oncommand="return SetSortDirection('natural');"/>
      <menuseparator id="fill_after_this_node" collapsed="true" />
      <menuseparator id="fill_before_this_node"/>
      <menuitem type="radio" name="sort_direction" id="sort_ascending"
        value="&menuitem.view.ascending.label;" accesskey="&menuitem.view.ascending.accesskey;"
        oncommand="return SetSortDirection('ascending');"/>
      <menuitem type="radio" name="sort_direction" id="sort_descending"
        value="&menuitem.view.descending.label;" accesskey="&menuitem.view.descending.accesskey;"
        oncommand="return SetSortDirection('descending');"/>
      <menuseparator/>
      <menu value="&menuitem.view.show_columns.label;" accesskey="&menuitem.view.show_columns.accesskey;">
        <menupopup
          oncreate="BuildTreePopup(document.getElementById('theColumns'), 
                                   document.getElementById('headRow'), this,
                                   document.getElementById('popupCell'))"/>
      </menu>
      <menuseparator/>
      <menuitem value="&menuitem.newbookmarkfolder.label;" accesskey="&menuitem.newbookmarkfolder.accesskey;"
        oncommand="return doContextCmd(NC_NS + 'command?cmd=setnewbookmarkfolder')"/>
      <menuitem value="&menuitem.newinternetsearchfolder.label;"
        oncommand="return doContextCmd(NC_NS + 'command?cmd=setnewsearchfolder')"
        accesskey="&menuitem.newinternetsearchfolder.accesskey;"/>
      <menuitem value="&menuitem.personaltoolbarfolder.label;"
        oncommand="return doContextCmd(NC_NS + 'command?cmd=setpersonaltoolbarfolder')"
        accesskey="&menuitem.personaltoolbarfolder.accesskey;"/>
    </menupopup>
  </menu>
  <menu id="tasksMenu" accesskey="t" />
  <menu id="menu_Help" accesskey="h" />

</menubar>
</toolbox>

<popupset>
<popup id="contextual" oncreate="return fillContextMenu('contextual');" >
	<menu />
</popup>
</popupset>

<tree  id="bookmarksTree" ref="NC:BookmarksRoot" context="contextual"
       datasources="rdf:bookmarks rdf:files rdf:localsearch rdf:internetsearch rdf:httpindex"
       multiple="true" flags="dont-test-empty"
       onselect="bookmarkSelect();"
       ondragover="return DragOverTree(event);"
       ondraggesture="return BeginDragTree(event);"
       ondragdrop="return DropOnTree(event);"
       style="height:0px" flex="2">

  <template>
    <rule rdf:type="http://home.netscape.com/NC-rdf#BookmarkSeparator">
      <treechildren>
       <treeitem uri="rdf:*"
         rdf:type="rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#type"
         loading="rdf:http://home.netscape.com/NC-rdf#loading">
         <treerow>
           <treecell><treeindentation/>
             <separator class="groove" flex="1" align="center"/></treecell>
           <treecell>
             <separator class="groove" flex="1" align="center"/></treecell>
           <treecell>
             <separator class="groove" flex="1" align="center"/></treecell>
           <treecell>
             <separator class="groove" flex="1" align="center"/></treecell>
           <treecell>
             <separator class="groove" flex="1" align="center"/></treecell>
           <treecell>
             <separator class="groove" flex="1" align="center"/></treecell>
           <treecell>
             <separator class="groove" flex="1" align="center"/></treecell>
         </treerow>
       </treeitem>  		
      </treechildren>
     </rule>

     <rule>
      <treechildren>
       <treeitem uri="rdf:*" persist="open" class="treeitem-bookmark"
         web:status="rdf:http://home.netscape.com/WEB-rdf#status"
         rdf:type="rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#type"
         loading="rdf:http://home.netscape.com/NC-rdf#loading">
         <treerow>
           <treecell class="treecell-bookmark treecell-indent"
             value="rdf:http://home.netscape.com/NC-rdf#Name"
             src="rdf:http://home.netscape.com/NC-rdf#Icon"
             web:status="rdf:http://home.netscape.com/WEB-rdf#status"
             rdf:type="rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#type"
             loading="rdf:http://home.netscape.com/NC-rdf#loading" />
           <treecell crop="right"
             value="rdf:http://home.netscape.com/NC-rdf#URL"/>
           <treecell
             value="rdf:http://home.netscape.com/NC-rdf#ShortcutURL"/>
           <treecell
             value="rdf:http://home.netscape.com/NC-rdf#Description"/>
           <treecell
             value="rdf:http://home.netscape.com/WEB-rdf#LastVisitDate"/>
           <treecell
             value="rdf:http://home.netscape.com/NC-rdf#BookmarkAddDate"/>
           <treecell
             value="rdf:http://home.netscape.com/WEB-rdf#LastModifiedDate"/>
         </treerow>
       </treeitem>
      </treechildren>
     </rule>
  </template>

  <treecolgroup id="theColumns">
    <treecol id="Name"
      sortSeparators="true" persist="hidden width" width="4*" flex="4"
      resource="http://home.netscape.com/NC-rdf#Name"/>

    <splitter class="tree-splitter"/>

    <treecol id="URL"
      sortSeparators="true" persist="hidden width" width="4*" flex="4"
      resource="http://home.netscape.com/NC-rdf#URL"
      resource2="http://home.netscape.com/NC-rdf#Name"/>

    <splitter class="tree-splitter"/>

    <treecol id="ShortcutURL"
      sortSeparators="true" persist="hidden width" width="1*" flex="1"
      resource="http://home.netscape.com/NC-rdf#ShortcutURL"
      resource2="http://home.netscape.com/NC-rdf#Name"/>

    <splitter class="tree-splitter"/>

    <treecol id="Description"
      sortSeparators="true" persist="hidden width" width="1*" flex="1"
      resource="http://home.netscape.com/NC-rdf#Description"
      resource2="http://home.netscape.com/NC-rdf#Name"/>

    <splitter class="tree-splitter"/>

    <treecol id="LastVisitDate"
      sortSeparators="true" persist="hidden width" width="1*" flex="1"
      resource="http://home.netscape.com/WEB-rdf#LastVisitDate"
      resource2="http://home.netscape.com/NC-rdf#Name"/>

    <splitter class="tree-splitter"/>

    <treecol id="BookmarkAddDate"
      sortSeparators="true" persist="hidden width" width="1*" flex="1"
      resource="http://home.netscape.com/NC-rdf#BookmarkAddDate"
      resource2="http://home.netscape.com/NC-rdf#Name"/>

    <splitter class="tree-splitter"/>

    <treecol id="LastModifiedDate"
      sortSeparators="true" persist="hidden width" width="1*" flex="1"
      resource="http://home.netscape.com/WEB-rdf#LastModifiedDate"
      resource2="http://home.netscape.com/NC-rdf#Name"/>
    <treecol persist="width" fixed="true" width="14" id="PopupColumn"/>
  </treecolgroup>

  <treehead>
    <treerow id="headRow">
      <treecell class="treecell-header sortDirectionIndicator"
        value="&tree.header.name.label;"
        onclick="return TriStateColumnSort('Name');"
        observes="Name" />
      <treecell class="treecell-header sortDirectionIndicator" 
        value="&tree.header.url.label;"
        onclick="return TriStateColumnSort('URL');"
        observes="URL" />
      <treecell class="treecell-header sortDirectionIndicator"
        value="&tree.header.shortcut.label;"
        onclick="return TriStateColumnSort('ShortcutURL');"
        observes="ShortcutURL" />
      <treecell class="treecell-header sortDirectionIndicator"
        value="&tree.header.description.label;" 
        onclick="return TriStateColumnSort('Description');"
        observes="Description" />
      <treecell class="treecell-header sortDirectionIndicator"
        value="&tree.header.lastvisit.label;"
        onclick="return TriStateColumnSort('LastVisitDate');"
        observes="LastVisitDate" />
      <treecell class="treecell-header sortDirectionIndicator"
        value="&tree.header.addedon.label;"
        onclick="return TriStateColumnSort('BookmarkAddDate');"
        observes="BookmarkAddDate" />
      <treecell class="treecell-header sortDirectionIndicator"
        value="&tree.header.lastmod.label;" 
        onclick="return TriStateColumnSort('LastModifiedDate');" 
        observes="LastModifiedDate" />
      <treecell class="treecell-header" allowevents="true" id="popupCell">
        <menu>
          <image class="treecell-popup-icon"/>
          <menupopup popupanchor="bottomright" 
            popupalign="topright"
            oncreate="BuildTreePopup(document.getElementById('theColumns'), 
                                     document.getElementById('headRow'), this,
                                     document.getElementById('popupCell'))"/>
        </menu>
      </treecell>
    </treerow>
  </treehead>
  <treechildren flex="1" id="treechildren-bookmarks" 
   onclick="return OpenURL(event, event.target.parentNode.parentNode, 
                           'bookmarksTree');"/>
</tree>

<statusbar id="status-bar">
  <statusbarpanel class="statusbarpanel-icononly" id="offline-status"/>
  <statusbarpanel id="statusbar-text" flex="1"/>
</statusbar>
</window>

