<?xml version="1.0"?>
# -*- Mode: HTML -*-
#
# 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) 1998-2000 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s): 
#   Blake Ross <blake@cs.stanford.edu>
#   David Hyatt <hyatt@mozilla.org>
#   Joe Hewitt <hewitt@netscape.com>
#   Pierre Chanial <chanial@noos.fr>
#   Dean Tessman <dean_tessman@hotmail.com>

<?xml-stylesheet href="chrome://browser/skin/" type="text/css"?> 
<?xml-stylesheet href="chrome://browser/content/browser.css" type="text/css"?>
<?xml-stylesheet href="chrome://global/skin/findBar.css" type="text/css"?>

#ifdef XP_MACOSX
<?xul-overlay href="chrome://browser/content/macBrowserOverlay.xul"?>
#endif

# All DTD information is stored in a separate file so that it can be shared by
# hiddenWindow.xul.
#include browser-doctype.inc
 
<window id="main-window"
        xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
        onload="Startup()" onunload="Shutdown()" onclose="return WindowIsClosing();"
        contenttitlesetting="true"
        title="&mainWindow.title;"
        titlemodifier="&mainWindow.title;"
        titlemenuseparator="&mainWindow.titlemodifiermenuseparator;"
        windowtype="navigator:browser"
        screenX="4" screenY="4"
        persist="screenX screenY width height sizemode"> 

#ifndef XP_MACOSX
# All JS files that browser.xul wishes to include *must* go into the browser-scripts.inc file
# so that they can be shared by hiddenWindow.xul.
#include browser-scripts.inc

# All sets except for popupsets (commands, keys, stringbundles and broadcasters) *must* go into the 
# browser-sets.inc file for sharing with hiddenWindow.xul.
#include browser-sets.inc
#endif

  <popupset id="mainPopupSet">
    <popup id="backMenu" 
           position="after_start" 
           onpopupshowing="return BrowserBackMenu(event);"
           oncommand="gotoHistoryIndex(event);"
           onclick="checkForMiddleClick(this, event);"/>
    <popup id="forwardMenu"
           position="after_start"
           onpopupshowing="return BrowserForwardMenu(event);"
           oncommand="gotoHistoryIndex(event);"
           onclick="checkForMiddleClick(this, event);"/>
    <tooltip id="aHTMLTooltip" onpopupshowing="return FillInHTMLTooltip(document.tooltipNode);"/>

    <popup type="autocomplete" id="PopupAutoComplete"/>

    <popup id="toolbar-context-menu"
           onpopupshowing="updateToolbarStates(this); onViewToolbarsPopupShowing(event);">
      <menuseparator/>
      <menuitem command="cmd_CustomizeToolbars"
                label="&viewCustomizeToolbar.label;"
                accesskey="&viewCustomizeToolbar.accesskey;"/>
    </popup>

    <popup id="blockedPopupOptions" 
           onpopupshowing="gPopupBlockerObserver.fillPopupList(event);">
      <menuitem observes="blockedPopupAllowSite"/>
      <menuitem observes="blockedPopupEditSettings"/>
      <menuitem observes="blockedPopupDontShowMessage"/>
      <menuseparator observes="blockedPopupsSeparator"/>
    </popup>

#include browser-context.inc

  </popupset>

#ifndef XP_MACOSX
# The hacky hidden tree used by the Go menu to build items.
#include browser-gotreehack.inc
#endif

  <!-- bookmarks context menu -->
  <popupset>
    <menupopup id="bookmarks-context-menu" 
               onpopupshowing="return BookmarksMenu.createContextMenu(event);"
               onpopuphidden ="BookmarksMenu.destroyContextMenu(event);"/>
  </popupset>

  <!-- bookmarks toolbar tooltip -->
  <tooltip id="btTooltip" noautohide="true" 
           onpopupshowing="return BookmarksToolbar.fillInBTTooltip(document.tooltipNode)">
    <vbox id="btTooltipTextBox" flex="1">  
      <label id="btTitleText" />
      <label id="btUrlText" />
    </vbox>
  </tooltip>

  <toolbox id="navigator-toolbox" class="toolbox-top" mode="icons">
    <!-- Menu -->
    <toolbar type="menubar" id="toolbar-menubar" class="chromeclass-menubar" customizable="true"
#ifdef XP_MACOSX
             defaultset="menubar-items"
#else
             defaultset="menubar-items,spring,throbber-box"
#endif
             mode="icons" context="toolbar-context-menu">
      <toolbaritem id="menubar-items" align="center">
#ifndef XP_MACOSX
# The entire main menubar is placed into browser-menubar.inc, so that it can be shared by 
# hiddenWindow.xul.
#include browser-menubar.inc
#endif
      </toolbaritem>
      <toolbaritem id="softwareupdate-item" title="&updatesItem.title;" align="center" pack="center">
        <toolbarbutton type="updates" id="softwareupdate"/>
      </toolbaritem>
    </toolbar>

    <toolbarpalette id="BrowserToolbarPalette">
      <toolbarbutton id="back-button" type="menu-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
                     chromedir="&locale.dir;"
                     label="&backCmd.label;"
                     oncommand="BrowserBack(event)"
                     onclick="checkForMiddleClick(this, event);"
                     context="backMenu"
                     tooltiptext="&backButton.tooltip;">
        <observes element="Browser:Back" attribute="disabled"/>
        <menupopup context=""
                   onpopupshowing="BrowserBackMenu(event);"
                   oncommand="gotoHistoryIndex(event); event.preventBubble();"
                   onclick="checkForMiddleClick(this, event);"/>
      </toolbarbutton>
    
      <toolbarbutton id="forward-button" type="menu-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
                     chromedir="&locale.dir;"
                     label="&forwardCmd.label;"
                     oncommand="BrowserForward(event)"
                     onclick="checkForMiddleClick(this, event);"
                     context="forwardMenu"
                     tooltiptext="&forwardButton.tooltip;">
        <observes element="Browser:Forward" attribute="disabled"/>
        <menupopup context=""
                   onpopupshowing="BrowserForwardMenu(event);"
                   oncommand="gotoHistoryIndex(event); event.preventBubble()"
                   onclick="checkForMiddleClick(this, event);"/>
      </toolbarbutton>
    
      <toolbarbutton id="reload-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
                     label="&reloadCmd.label;"
                     oncommand="if (event.shiftKey) BrowserReloadSkipCache(); else BrowserReload();"  
                     tooltiptext="&reloadButton.tooltip;"/>
                    
      <toolbarbutton id="stop-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
                     label="&stopCmd.label;"
                     command="Browser:Stop"
                     tooltiptext="&stopButton.tooltip;"/>

      <toolbarbutton id="home-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
                     label="&homeButton.label;"
                     ondragover="nsDragAndDrop.dragOver(event, homeButtonObserver);"
                     ondragdrop="nsDragAndDrop.drop(event, homeButtonObserver);"
                     ondragexit="nsDragAndDrop.dragExit(event, homeButtonObserver);"
                     onclick="BrowserHomeClick(event);"/>

      <toolbaritem id="urlbar-container" align="center" flex="1000"
                   title="&locationItem.title;" class="chromeclass-location">
        <textbox id="urlbar" flex="1"
                 type="autocomplete"
                 autocompletesearch="history" 
                 autocompletepopup="PopupAutoComplete"
                 completeselectedindex="true"
                 tabscrolling="true"
                 showcommentcolumn="true"
                 enablehistory="true"
                 oninput="gBrowser.userTypedValue = this.value"
                 ontextentered="return handleURLBarCommand(param);"
                 ontextreverted="return handleURLBarRevert();"
                 onfocus="URLBarFocusHandler(event, this);"
                 onmousedown="URLBarMouseDownHandler(event, this);"
                 onclick="URLBarClickHandler(event, this);"
                 oninfoclick="displaySecurityInfo();">
          <deck id="page-proxy-deck">
            <image id="page-proxy-button"
                    ondraggesture="PageProxyDragGesture(event);"
                    tooltiptext="&proxyIcon.tooltip;"/>
            <image id="page-proxy-favicon"
                    ondraggesture="PageProxyDragGesture(event);"
                    onload="this.parentNode.selectedIndex = 1;
                            event.stopPropagation();
                            event.preventBubble();"
                    onerror="gBrowser.addToMissedIconCache(this.src);
                             this.removeAttribute('src');
                             this.parentNode.selectedIndex = 0;"
                    tooltiptext="&proxyIcon.tooltip;"/>
          </deck>
        </textbox>
      </toolbaritem>

      <toolbaritem id="search-container" title="&searchItem.title;" 
                   align="center" class="chromeclass-toolbar-additional">
        <searchbar id="searchbar"/>
      </toolbaritem>
      
      <toolbaritem id="go-container" align="center" class="chromeclass-toolbar-additional">
        <toolbarbutton id="go-button"
                       chromedir="&locale.dir;"
                       label="&goButton.label;"
                       oncommand="handleURLBarCommand(event);"
                       ondragover="nsDragAndDrop.dragOver(event, goButtonObserver);"
                       ondragdrop="nsDragAndDrop.drop(event, goButtonObserver);"
                       ondragexit="nsDragAndDrop.dragExit(event, goButtonObserver);"
                       tooltiptext="&goButton.tooltip;"/> 
      </toolbaritem>
      
      <toolbarbutton id="print-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
                     label="&printButton.label;" command="cmd_print"
                     tooltiptext="&printButton.tooltip;"/>

      <toolbaritem id="throbber-box" title="&throbberItem.title;" align="center" pack="center">
        <button id="navigator-throbber" 
                oncommand="goClickThrobber('browser.throbber.url', event)"
                onclick="checkForMiddleClick(this, event);"
                tooltiptext="&throbber.tooltip;"/>
      </toolbaritem>
      
      <toolbaritem id="personal-bookmarks" title="&bookmarksItem.title;" flex="1"
                   class="chromeclass-directories">
        <stack id="bookmarks-stack" flex="1" style="min-width:0px; width:0px;"
               onpopupshowing="BookmarksToolbar.setOpenedMenu(event);"
               onpopuphidden="BookmarksToolbar.unsetOpenedMenu(event);">
          <hbox id="bookmarks-ptf" class="bookmarks-toolbar-items" contextmenu="bookmarks-context-menu"
                flex="1" style="min-width:0px; width:0px;margin-left: 3px;" 
                datasources="rdf:bookmarks rdf:files rdf:localsearch"
                template="bookmarks-template" flags="dont-test-empty"
                infer="forward-proxy"
                rdf:type="http://home.netscape.com/NC-rdf#Folder"
                onpopupshowing="BookmarksMenu.onShowMenu(event.target)"
                onpopuphidden="BookmarksMenu.onHideMenu(event.target)"
                oncommand="BookmarksMenu.loadBookmark(event, event.target, this.database)"
                onclick="BookmarksMenu.loadBookmarkMiddleClick(event, this.database)"
                ondraggesture="nsDragAndDrop.startDrag(event, BookmarksMenuDNDObserver)"
                ondragdrop="nsDragAndDrop.drop(event, BookmarksMenuDNDObserver); event.preventBubble()"
                ondragenter="nsDragAndDrop.dragEnter(event, BookmarksMenuDNDObserver); event.preventBubble()"
                ondragexit="nsDragAndDrop.dragExit(event, BookmarksMenuDNDObserver); event.preventBubble()"
                ondragover="nsDragAndDrop.dragOver(event, BookmarksMenuDNDObserver); event.preventBubble()">
          </hbox>
          <hbox class="bookmarks-toolbar-overflow-items" mousethrough="always">
            <hbox mousethrough="always" id="overflow-padder"/>
              <toolbarbutton id="bookmarks-chevron" type="menu" class="chevron"
                             chromedir="&locale.dir;"
                             mousethrough="never" collapsed="true" 
                             datasources="rdf:bookmarks rdf:files rdf:localsearch"
                             template="bookmarks-template" flags="dont-test-empty"
                             onpopupshowing="BookmarksMenu.onShowMenu(event.target)"
                             onpopuphidden="BookmarksMenu.onHideMenu(event.target)"
                             oncommand="BookmarksMenu.loadBookmark(event, event.target, this.database)"
                             onclick="BookmarksMenu.loadBookmarkMiddleClick(event, this.database)"
                             ondraggesture="nsDragAndDrop.startDrag(event, BookmarksMenuDNDObserver)"
                             ondragdrop="nsDragAndDrop.drop(event, BookmarksMenuDNDObserver); event.preventBubble()"
                             ondragenter="nsDragAndDrop.dragEnter(event, BookmarksMenuDNDObserver); event.preventBubble()"
                             ondragexit="nsDragAndDrop.dragExit(event, BookmarksMenuDNDObserver); event.preventBubble()"
                             ondragover="nsDragAndDrop.dragOver(event, BookmarksMenuDNDObserver); event.preventBubble()">
                <menupopup contextmenu="bookmarks-context-menu"
                           onpopupshowing="if (event.target == this) BookmarksToolbar.updateOverflowMenu(this);"/>
              </toolbarbutton>
            </hbox>
            <toolbarbutton class="bookmark-item bookmarks-toolbar-customize" mousethrough="never"
                           label="&bookmarksToolbarItem.label;"/>
          </stack>
        </toolbaritem>

        <toolbarbutton id="downloads-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
                       observes="Tools:Downloads"
                       ondragdrop="nsDragAndDrop.drop(event, DownloadsButtonDNDObserver); event.preventBubble()"
                       ondragover="nsDragAndDrop.dragOver(event, DownloadsButtonDNDObserver); event.preventBubble()"
                       ondragenter="nsDragAndDrop.dragEnter(event, DownloadsButtonDNDObserver); event.preventBubble()"
                       ondragexit="nsDragAndDrop.dragExit(event, DownloadsButtonDNDObserver); event.preventBubble()"
                       label="&downloads.label;"
                       tooltiptext="&downloads.tooltip;"/>

        <toolbarbutton id="history-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
                       observes="viewHistorySidebar"
                       tooltiptext="&historyButton.tooltip;"/>

#ifdef HAVE_SHELL_SERVICE
        <toolbarbutton id="mail-button" type="menu" class="toolbarbutton-1 chromeclass-toolbar-additional"
                       label="&mailButton.label;" orient="vertical"
                       onmouseover="MailIntegration.updateUnreadCount();"
                       tooltiptext="&mailButton.tooltip;">
          <menupopup tooltiptext="">
            <menuitem accesskey="&mailButton.readMail.accesskey;"
                      command="Browser:ReadMail"/>
            <menuitem label="&mailButton.newMessage.label;" 
                      accesskey="&mailButton.newMessage.accesskey;"
                      command="Browser:NewMessage"/>
          </menupopup>
        </toolbarbutton>                       
#endif

        <toolbarbutton id="bookmarks-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
                       observes="viewBookmarksSidebar"
                       tooltiptext="&bookmarksButton.tooltip;"
                       ondragover="nsDragAndDrop.dragOver(event, bookmarksButtonObserver);"
                       ondragdrop="nsDragAndDrop.drop(event, bookmarksButtonObserver);"
                       ondragexit="nsDragAndDrop.dragExit(event, bookmarksButtonObserver);"/>

        <toolbarbutton id="new-tab-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
                       label="&tabCmd.label;"
                       command="cmd_newNavigatorTab"
                       tooltiptext="&newTabButton.tooltip;"/>

        <toolbarbutton id="new-window-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
                       label="&newNavigatorCmd.label;"
                       command="key_newNavigator"
                       tooltiptext="&newWindowButton.tooltip;"/>

        <toolbarbutton id="cut-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
                       label="&cutCmd.label;"
                       command="cmd_cut"
                       tooltiptext="&cutButton.tooltip;"/>

        <toolbarbutton id="copy-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
                       label="&copyCmd.label;"
                       command="cmd_copy"
                       tooltiptext="&copyButton.tooltip;"/>

        <toolbarbutton id="paste-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
                       label="&pasteCmd.label;"
                       command="cmd_paste"
                       tooltiptext="&pasteButton.tooltip;"/>

    </toolbarpalette>

    <toolbar id="nav-bar" class="toolbar-primary chromeclass-toolbar"
             toolbarname="&navbarCmd.label;" accesskey="&navbarCmd.accesskey;"
             fullscreentoolbar="true" mode="icons" 
             customizable="true"
#ifdef XP_MACOSX
             defaultset="back-button,forward-button,reload-button,stop-button,home-button,urlbar-container,go-container,search-container,throbber-box"
#else
             defaultset="back-button,forward-button,reload-button,stop-button,home-button,urlbar-container,go-container,search-container,fullscreenflex,window-controls"
#endif
             context="toolbar-context-menu">
#ifndef XP_MACOSX
      <hbox id="fullscreenflex" flex="1" hidden="true" fullscreencontrol="true"/>
      <hbox id="window-controls" hidden="true" fullscreencontrol="true">
        <toolbarbutton id="minimize-button" class="toolbarbutton-1"
                       tooltiptext="&fullScreenMinimize.tooltip;"
                       oncommand="window.minimize();"/>

        <toolbarbutton id="restore-button" class="toolbarbutton-1"
                       tooltiptext="&fullScreenRestore.tooltip;"
                       oncommand="BrowserFullScreen();"/>

        <toolbarbutton id="close-button" class="toolbarbutton-1"
                       tooltiptext="&fullScreenClose.tooltip;"
                       oncommand="window.close();"/>
      </hbox>
#endif
    </toolbar>
 
    <toolbarset id="customToolbars" context="toolbar-context-menu"/>

    <toolbar id="PersonalToolbar" class="chromeclass-directories" iconsize="small"
             customizable="true" defaultset="personal-bookmarks" mode="icons"
             toolbarname="&personalbarCmd.label;" accesskey="&personalbarCmd.accesskey;"
             context="toolbar-context-menu"/>   
  </toolbox>
  
  <hbox flex="1" id="browser">
    <vbox id="sidebar-box" hidden="true" class="chromeclass-extrachrome">
      <sidebarheader align="center">
        <label id="sidebar-title" persist="value" flex="1" crop="end"/>
        <image id="sidebar-throbber"/>
        <toolbarbutton class="tabs-closebutton" tooltiptext="&sidebarCloseButton.tooltip;" oncommand="toggleSidebar();"/>
      </sidebarheader>        
      <browser id="sidebar" flex="1" autoscroll="false"
               style="min-width: 150px; width: 200px; max-width: 400px;"/>
    </vbox>    
    
    <splitter id="sidebar-splitter" class="chromeclass-extrachrome" hidden="true"/>
    <vbox id="appcontent" flex="1">
      <tabbrowser id="content" disablehistory="true"
                  flex="1" contenttooltip="aHTMLTooltip"
                  contentcontextmenu="contentAreaContextMenu"
                  onnewtab="BrowserOpenTab();"
                  onkeyup="onBrowserKeyUp(event);"
                  autocompletepopup="PopupAutoComplete"
                  ondragdrop="nsDragAndDrop.drop(event, contentAreaDNDObserver);"
                  onclick="return contentAreaClick(event, false);"/>
    </vbox>
  </hbox>
  
#include ../../../toolkit/components/typeaheadfind/content/findBar.inc
  
  <statusbar class="chromeclass-status" id="status-bar"
             ondragdrop="nsDragAndDrop.drop(event, contentAreaDNDObserver);">
    <statusbarpanel id="statusbar-display" flex="1"/>
    <statusbarpanel class="statusbarpanel-progress" collapsed="true" id="statusbar-progresspanel">
      <progressmeter class="progressmeter-statusbar" id="statusbar-icon" mode="normal" value="0"/>
    </statusbarpanel>
    <statusbarpanel id="security-button" class="statusbarpanel-iconic-text"
                    ondblclick="if (event.button == 0) displaySecurityInfo();"/>
    <statusbarpanel id="page-report-button" type="menu" 
                    class="statusbarpanel-menu-iconic" 
                    tooltiptext="&pageReportIcon.tooltip;">
      <menupopup onpopupshowing="gPopupBlockerObserver.fillPopupList(event);">
        <menuitem observes="blockedPopupAllowSite"/>
        <menuitem observes="blockedPopupEditSettings"/>
        <menuitem observes="blockedPopupDontShowMessage"/>
        <menuseparator observes="blockedPopupsSeparator"/>
      </menupopup>
    </statusbarpanel>
#ifdef ALTSS_ICON
    <statusbarpanel id="page-theme-button" type="menu"
                    class="statusbarpanel-menu-iconic" 
                    tooltiptext="&pageStyleIcon.tooltip;">
      <menupopup onpopupshowing="stylesheetFillPopup(this);"
                 oncommand="stylesheetSwitchAll(window._content, event.target.getAttribute('data')); setStyleDisabled(false);">
        <menuitem label="&pageStyleNoStyle.label;" accesskey="&pageStyleNoStyle.accesskey;"
                  oncommand="setStyleDisabled(true); event.preventBubble();" type="radio" hidden="true"/>
        <menuitem label="&pageStylePersistentOnly.label;" accesskey="&pageStylePersistentOnly.accesskey;" type="radio" checked="true"/>
        <menuseparator/>
      </menupopup>
    </statusbarpanel>
#endif
    <statusbarpanel id="livemark-button" type="menu" class="statusbarpanel-menu-iconic" chromedir="&locale.dir;">
      <menupopup onpopupshowing="return livemarkFillPopup(this);"
                 oncommand="livemarkAddMark(window._content, event.target.getAttribute('data'));" />
    </statusbarpanel>
  </statusbar>
</window>
  
