Bug 71008 preparation by switching from server/login pages to incoming/outgoing pages r=bienvenu,IanN
authorNeil Rashbrook <neil@parkwaycc.co.uk>
Wed, 07 Mar 2012 20:38:46 +0000
changeset 11022 0935f4dd69c4c5d2f8cbdda51f8da3636996560a
parent 11021 c1fa6cb7574e3303fc1579a3fb71bb124538c9a6
child 11023 291fee0046c7ea25baff9390d184b97bdeb5f3ec
push id463
push userbugzilla@standard8.plus.com
push dateTue, 24 Apr 2012 17:34:51 +0000
treeherdercomm-beta@e53588e8f7b0 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbienvenu, IanN
bugs71008
Bug 71008 preparation by switching from server/login pages to incoming/outgoing pages r=bienvenu,IanN
mail/locales/en-US/chrome/messenger/AccountWizard.dtd
mailnews/base/ispdata/movemail.rdf
mailnews/base/prefs/content/AccountWizard.xul
mailnews/base/prefs/content/aw-accounttype.js
mailnews/base/prefs/content/aw-incoming.js
mailnews/base/prefs/content/aw-login.js
mailnews/base/prefs/content/aw-outgoing.js
mailnews/base/prefs/content/aw-server.js
mailnews/extensions/newsblog/rss.rdf
mailnews/jar.mn
suite/common/bookmarks/bm-props.js
suite/common/bookmarks/editBookmarkOverlay.xul
suite/common/jar.mn
suite/common/src/PlacesUIUtils.jsm
suite/locales/en-US/chrome/mailnews/pref/AccountWizard.dtd
--- a/mail/locales/en-US/chrome/messenger/AccountWizard.dtd
+++ b/mail/locales/en-US/chrome/messenger/AccountWizard.dtd
@@ -27,67 +27,66 @@
 -->
 <!ENTITY fullnameExample.label "(for example, &quot;John Smith&quot;).">
 <!ENTITY fullnameLabel.label "Your Name:">
 <!ENTITY fullnameLabel.accesskey "Y">
 
 <!ENTITY emailLabel.label "Email Address:">
 <!ENTITY emailLabel.accesskey "E">
 
-<!-- Entities for Server page -->
+<!-- Entities for Incoming Server page -->
 
-<!ENTITY serverTitle.label "Server Information">
+<!ENTITY incomingTitle.label "Incoming Server Information">
 <!ENTITY incomingServerTypeDesc.label "Select the type of incoming server you are using.">
-<!-- LOCALIZATION NOTE (incomingServerNameDesc.label) : Do not translate "&quot;pop.example.net&quot;" in below line -->
-<!ENTITY incomingServerNameDesc.label "Enter the name of your incoming server (for example, &quot;mail.example.net&quot;).">
-<!ENTITY incomingServerLabel.label "Incoming Server:">
-<!ENTITY incomingServerLabel.accesskey "S">
-<!-- LOCALIZATION NOTE (newsServerNameDesc.label) : Do not translate "NNTP" or the "&quot;" entities in below line -->
-<!ENTITY newsServerNameDesc.label "Enter the name of your news server (NNTP) (for example, &quot;news.example.net&quot;).">
-<!-- LOCALIZATION NOTE (smtpServerDesc.label) : Do not translate "SMTP" and "&quot;smtp.example.net&quot;" in below line -->
-<!ENTITY smtpServerDesc.label "Enter the name of your outgoing server (SMTP) (for example, &quot;smtp.example.net&quot;).">
-<!ENTITY smtpServerLabel.label "Outgoing Server:">
-<!ENTITY smtpServerLabel.accesskey "O">
-<!ENTITY newsServerLabel.label "Newsgroup Server:">
-<!ENTITY newsServerLabel.accesskey "w">
 <!-- LOCALIZATION NOTE (imapType.label) : Do not translate "IMAP" in below line -->
 <!ENTITY imapType.label "IMAP">
 <!ENTITY imapType.accesskey "I">
 <!-- LOCALIZATION NOTE (popType.label) : Do not translate "POP" in below line -->
 <!ENTITY popType.label "POP">
 <!ENTITY popType.accesskey "P">
 <!ENTITY leaveMsgsOnSrvr.label "Leave messages on server">
 <!ENTITY leaveMsgsOnSrvr.accesskey "L">
 <!ENTITY portNum.label "Port:">
 <!ENTITY portNum.accesskey "o">
 <!ENTITY defaultPortLabel.label "Default:">
 <!ENTITY defaultPortValue.label "">
+<!-- LOCALIZATION NOTE (incomingServerNameDesc.label) : Do not translate "&quot;pop.example.net&quot;" in below line -->
+<!ENTITY incomingServer.description "Enter the name of your incoming server (for example, &quot;mail.example.net&quot;).">
+<!ENTITY incomingServer.label "Incoming Server:">
+<!ENTITY incomingServer.accesskey "S">
+<!-- LOCALIZATION NOTE (incomingUsername.description) : do not translate "&quot;jsmith&quot;" in below line -->
+<!ENTITY incomingUsername.description "Enter the incoming user name given to you by your email provider (for example, &quot;jsmith&quot;).">
+<!ENTITY incomingUsername.label "User Name:">
+<!ENTITY incomingUsername.accesskey "U">
+<!-- LOCALIZATION NOTE (newsServerNameDesc.label) : Do not translate "NNTP" or the "&quot;" entities in below line -->
+<!ENTITY newsServerNameDesc.label "Enter the name of your news server (NNTP) (for example, &quot;news.example.net&quot;).">
+<!ENTITY newsServerLabel.label "Newsgroup Server:">
+<!ENTITY newsServerLabel.accesskey "S">
+
+<!-- Entities for Outgoing Server page -->
+
+<!ENTITY outgoingTitle.label "Outgoing Server Information">
+<!-- LOCALIZATION NOTE (outgoingServer.description) : Do not translate "SMTP" and "&quot;smtp.example.net&quot;" in below line -->
+<!ENTITY outgoingServer.description "Enter the name of your outgoing server (SMTP) (for example, &quot;smtp.example.net&quot;).">
+<!ENTITY outgoingServer.label "Outgoing Server:">
+<!ENTITY outgoingServer.accesskey "S">
+<!ENTITY outgoingUsername.description "Enter the outgoing user name given to you by your email provider (this is typically the same as your incoming user name).">
+<!ENTITY outgoingUsername.label "Outgoing User Name:">
+<!ENTITY outgoingUsername.accesskey "U">
 
 <!-- LOCALIZATION NOTE (modifyOutgoing.suffix) : This string will be appended after each of
      haveSmtp1.suffix3, haveSmtp2.suffix3, haveSmtp3.suffix3 .
 -->
 <!ENTITY modifyOutgoing.suffix "You can change outgoing servers in the account settings.">
 <!-- LOCALIZATION NOTE (haveSmtp1.prefix and haveSmtp1.suffix3) : Do not translate "SMTP" and "&quot;" in
      these variables. Also, translate haveSmtp1.prefix and haveSmtp1.suffix3 as a single sentence, inserting
      text after the "&quot;" entity in haveSmtp1.suffix3, if required grammatically.
 -->
 <!ENTITY haveSmtp1.prefix "Your existing outgoing server (SMTP), &quot;">
 <!ENTITY haveSmtp1.suffix3 "&quot;, will be used.">
-
-<!-- Entities for Login page -->
-
-<!ENTITY loginTitle.label "User Names">
-<!ENTITY usernameDesc.label "Enter the incoming user name given to you by your email provider ">
-<!-- LOCALIZATION NOTE (usernameExample.label) : do not translate "&quot;jsmith&quot;" in below line -->
-<!ENTITY usernameExample.label "(for example, &quot;jsmith&quot;).">
-<!ENTITY usernameLabel.label "Incoming User Name:">
-<!ENTITY usernameLabel.accesskey "I">
-<!ENTITY usernameSmtpDesc.label "Enter the outgoing user name given to you by your email provider (this is typically the same as your incoming user name).">
-<!ENTITY usernameSmtpLabel.label "Outgoing User Name:">
-<!ENTITY usernameSmtpLabel.accesskey "O">
 <!-- LOCALIZATION NOTE (haveSmtp2.prefix and haveSmtp2.suffix3) : Do not translate "SMTP" and "&quot;" in
      these variables. Also, translate haveSmtp2.prefix and haveSmtp2.suffix3 as a single sentence, inserting
      text after the "&quot;" entity in haveSmtp2.suffix3, if required grammatically.
 -->
 <!ENTITY haveSmtp2.prefix "Your existing outgoing (SMTP) username, &quot;">
 <!ENTITY haveSmtp2.suffix3 "&quot;, will be used.">
 <!-- LOCALIZATION NOTE (haveSmtp3.prefix and haveSmtp3.suffix3) : Do not translate "SMTP" and "&quot;" in
      these variables. Also, translate haveSmtp3.prefix and haveSmtp3.suffix3 as a single sentence, inserting
--- a/mailnews/base/ispdata/movemail.rdf
+++ b/mailnews/base/ispdata/movemail.rdf
@@ -18,17 +18,17 @@
         <!-- identity defaults -->
         <NC:identity>
           <NC:nsIMsgIdentity>
             <NC:composeHtml>false</NC:composeHtml>
           </NC:nsIMsgIdentity>
         </NC:identity>
 
         <NC:wizardHideIncoming>true</NC:wizardHideIncoming>
-        <NC:wizardSkipPanels>loginpage</NC:wizardSkipPanels>
+        <NC:wizardSkipPanels>incomingpage</NC:wizardSkipPanels>
         <NC:wizardShortName>Movemail</NC:wizardShortName>
         <NC:wizardLongName>Unix Mailspool (Movemail)</NC:wizardLongName>
         <NC:wizardLongNameAccesskey>U</NC:wizardLongNameAccesskey>
         <NC:wizardShow>true</NC:wizardShow>
         <NC:emailProviderName>Movemail</NC:emailProviderName>
 
         <NC:showServerDetailsOnWizardSummary>true</NC:showServerDetailsOnWizardSummary> 
       </NC:nsIMsgAccount>
--- a/mailnews/base/prefs/content/AccountWizard.xul
+++ b/mailnews/base/prefs/content/AccountWizard.xul
@@ -51,18 +51,18 @@
   <stringbundle id="bundle_prefs" src="chrome://messenger/locale/prefs.properties"/>
   <stringbundle id="bundle_messenger" src="chrome://messenger/locale/messenger.properties"/>
   <script type="application/javascript" src="chrome://messenger/content/amUtils.js"/>
   <script type="application/javascript" src="chrome://messenger/content/accountUtils.js"/>
   <script type="application/javascript" src="chrome://messenger/content/AccountWizard.js"/>
   <script type="application/javascript" src="chrome://messenger/content/ispUtils.js"/>
   <script type="application/javascript" src="chrome://messenger/content/aw-accounttype.js"/>
   <script type="application/javascript" src="chrome://messenger/content/aw-identity.js"/>
-  <script type="application/javascript" src="chrome://messenger/content/aw-server.js"/>
-  <script type="application/javascript" src="chrome://messenger/content/aw-login.js"/>
+  <script type="application/javascript" src="chrome://messenger/content/aw-incoming.js"/>
+  <script type="application/javascript" src="chrome://messenger/content/aw-outgoing.js"/>
   <script type="application/javascript" src="chrome://messenger/content/aw-accname.js"/>
   <script type="application/javascript" src="chrome://messenger/content/aw-done.js"/>
 
   <!-- Account Type page : Displays choices of mail and news accounts that user can create -->
   <wizardpage id="accounttype" pageid="accounttype"
               label="&accountTypeTitle.label;"
               onpageshow="document.documentElement.canAdvance = true;"
               onpageadvanced="return acctTypePageUnload();">
@@ -133,22 +133,24 @@
               </hbox>
             </hbox>
           </row>
         </rows>
       </grid>
     </vbox>
   </wizardpage>
 
-  <!-- Server page : User can choose to create mail account of his choice, POP3 or IMAP -->
-  <!-- Collects incoming server name. Outgoing server name is collected if there isn't one already -->
-  <wizardpage id="serverpage" pageid="serverpage" 
-              label="&serverTitle.label;"
-              onpageshow="return serverPageInit();"
-              onpageadvanced="return serverPageUnload();">
+  <!-- Incoming page : User can choose to create mail account of his choice, POP3 or IMAP -->
+  <!-- Collects incoming server name and login name. -->
+  <!-- Login name is prefilled with user id from the email address provided in identity page -->
+  <!-- User can enter a login name here if it is different from the user id of his/her email address -->
+  <wizardpage id="incomingpage" pageid="incomingpage"
+              label="&incomingTitle.label;"
+              onpageshow="return incomingPageInit();"
+              onpageadvanced="return incomingPageUnload();">
     <vbox flex="1">
         <vbox id="serverTypeBox">
         <label control="servertype">&incomingServerTypeDesc.label;</label>
           <separator class="thin"/>
           <hbox align="center" class="serverDataBox">
             <!-- The initial value for the servertype radiogroup is set in onInit() -->
             <radiogroup id="servertype" wsm_persist="true" orient="horizontal">
                 <radio group="servertype" value="pop3" id="pop3" label="&popType.label;" 
@@ -162,84 +164,106 @@
             <textbox id="serverPort" type="number" size="3" max="65535"/>
             <label id="defaultPortLabel" value="&defaultPortLabel.label;"/>
             <label id="defaultPortValue" value="&defaultPortValue.label;"/>
           </hbox>
           <separator/>
         </vbox>
 
         <vbox id="incomingServerbox">
-          <description>&incomingServerNameDesc.label;</description>
+          <description>&incomingServer.description;</description>
           <hbox align="center" class="serverDataBox">
-            <label class="label, serverLabel" value="&incomingServerLabel.label;"
-                   accesskey="&incomingServerLabel.accesskey;" control="incomingServer"/>
-            <textbox wsm_persist="true" id="incomingServer" flex="1" class="uri-element" oninput="serverPageValidate();"/>
+            <label class="label, serverLabel"
+                   value="&incomingServer.label;"
+                   accesskey="&incomingServer.accesskey;"
+                   control="incomingServer"/>
+            <textbox wsm_persist="true"
+                     id="incomingServer"
+                     flex="1"
+                     class="uri-element"
+                     oninput="incomingPageValidate();"/>
           </hbox>
           <hbox id="leaveMsgsOnSrvrBox" class="indent">
             <checkbox id="leaveMessagesOnServer"
                       label="&leaveMsgsOnSrvr.label;"
                       accesskey="&leaveMsgsOnSrvr.accesskey;"
                       wsm_persist="true"
                       oncommand="setServerPrefs(this);"
                       checked="true"/>
           </hbox>
+          <separator/>
         </vbox>
-        <separator class="groove" id="incomingServerSeparator"/>
+        <description>&incomingUsername.description;</description>
+        <separator class="thin"/>
+        <hbox align="center">
+          <label class="label"
+                 value="&incomingUsername.label;"
+                 style="width: 8em;"
+                 accesskey="&incomingUsername.accesskey;"
+                 control="username"/>
+          <textbox id="username"
+                   wsm_persist="true"
+                   flex="1"
+                   oninput="incomingPageValidate();"/>
+        </hbox>
         <vbox id="deferStorageBox">
+            <separator class="groove"/>
             <description> &deferStorageDesc.label;</description>
             <hbox>
               <checkbox id="deferStorage"
                         label="&deferStorage.label;"
                         accesskey="&deferStorage.accesskey;"
                         checked="true"
                         wsm_persist="true"
                         oncommand="setServerPrefs(this);"/>
             </hbox>
-          <separator/>
-        </vbox>
-
-        <vbox id="noSmtp">
-          <description>&smtpServerDesc.label;</description>
-          <hbox align="center" class="serverDataBox">
-            <label class="label, serverLabel" value="&smtpServerLabel.label;"
-                   accesskey="&smtpServerLabel.accesskey;" control="smtphostname"/>
-            <textbox id="smtphostname" wsm_persist="true" flex="1" class="uri-element" oninput="serverPageValidate();"/>
-          </hbox>
-        </vbox>
-
-        <vbox id="haveSmtp">
-          <description id="smtpStaticText1" style="width: 200px;" prefix="&haveSmtp1.prefix;"
-                       suffix="&haveSmtp1.suffix3; &modifyOutgoing.suffix;">*</description>
         </vbox>
     </vbox>
   </wizardpage>
 
-  <!-- Login page : Login name is prefilled with user id from the email address provided in identity page -->
+  <!-- Outgoing page : Collects outgoing server name and login name. -->
+  <!-- Outgoing server name is collected if there isn't one already -->
+  <!-- Login name is prefilled with user id from the email address provided in identity page -->
   <!-- User can enter a login name here if it is different from the user id of his/her email address -->
-  <wizardpage id="loginpage" pageid="loginpage" 
-              label="&loginTitle.label;"
-              onpageshow="return loginPageInit();"
-              onpageadvanced="return loginPageUnload();">
+  <wizardpage id="outgoingpage" pageid="outgoingpage"
+              label="&outgoingTitle.label;"
+              onpageshow="return outgoingPageInit();"
+              onpageadvanced="return outgoingPageUnload();">
     <vbox flex="1">
-      <description>&usernameDesc.label; &usernameExample.label;</description>
-      <separator class="thin"/>
-      <hbox align="center">
-        <label class="label" value="&usernameLabel.label;" style="width: 8em;"
-               accesskey="&usernameLabel.accesskey;" control="username"/>
-        <textbox id="username" wsm_persist="true" flex="1" oninput="loginPageValidate();"/>
-      </hbox>
+      <vbox id="noSmtp">
+        <description>&outgoingServer.description;</description>
+        <hbox align="center" class="serverDataBox">
+          <label class="label, serverLabel"
+                 value="&outgoingServer.label;"
+                 accesskey="&outgoingServer.accesskey;"
+                 control="smtphostname"/>
+          <textbox id="smtphostname"
+                   wsm_persist="true"
+                   flex="1"
+                   class="uri-element"
+                   oninput="outgoingPageValidate();"/>
+        </hbox>
+      </vbox>
 
-      <separator/>
+      <vbox id="haveSmtp">
+        <description id="smtpStaticText1"
+                     style="width: 200px;"
+                     prefix="&haveSmtp1.prefix;"
+                     suffix="&haveSmtp1.suffix3; &modifyOutgoing.suffix;">*</description>
+      </vbox>
 
       <vbox id="loginSet1">
-        <description>&usernameSmtpDesc.label;</description>
+        <description>&outgoingUsername.description;</description>
         <separator class="thin"/>
         <hbox align="center">
-          <label class="label" value="&usernameSmtpLabel.label;" style="width: 8em;"
-                 accesskey="&usernameSmtpLabel.accesskey;" control="smtpusername"/>
+          <label class="label"
+                 value="&outgoingUsername.label;"
+                 style="width: 8em;"
+                 accesskey="&outgoingUsername.accesskey;"
+                 control="smtpusername"/>
           <textbox id="smtpusername" wsm_persist="true" flex="1"/>
         </hbox>
       </vbox>
 
       <vbox id="loginSet2" hidden="true">
         <description id="smtpStaticText2" style="width: 200px;" prefix="&haveSmtp2.prefix;"
                      suffix="&haveSmtp2.suffix3; &modifyOutgoing.suffix;">*</description>
       </vbox>
@@ -249,25 +273,29 @@
                      suffix="&haveSmtp3.suffix3; &modifyOutgoing.suffix;">*</description>
       </vbox>
 
     </vbox>
   </wizardpage>
 
   <!-- News Server page : Collects the News groups server name -->
   <wizardpage id="newsserver" pageid="newsserver"
-              label="&serverTitle.label;"
-              onpageshow="return serverPageInit();"
-              onpageadvanced="return serverPageUnload();">
+              label="&incomingTitle.label;"
+              onpageshow="return incomingPageInit();"
+              onpageadvanced="return incomingPageUnload();">
     <vbox flex="1">
       <description>&newsServerNameDesc.label;</description>
       <separator class="thin"/>
       <hbox align="center">
         <label control="newsServer" value="&newsServerLabel.label;" accesskey="&newsServerLabel.accesskey;" style="width: 8em;"/>
-        <textbox id="newsServer" wsm_persist="true" flex="1" class="uri-element" oninput="serverPageValidate();"/>
+        <textbox id="newsServer"
+                 wsm_persist="true"
+                 flex="1"
+                 class="uri-element"
+                 oninput="incomingPageValidate();"/>
       </hbox>
     </vbox>
   </wizardpage>
 
   <!-- Account name page : User gets a choice to enter a pretty name for the account -->
   <!-- Defaults : Mail account -> Email address, Newsgroup account -> Newsgroup server name -->
   <wizardpage id="accnamepage" pageid="accnamepage" 
               label="&accnameTitle.label;"
@@ -301,17 +329,17 @@
             <label class="label" flex="1" id="account.name.label" value="&accnameLabel.label;"/>
             <label class="label" id="account.name.text"/>
           </row>
           <row align="center" id="identity.email">
             <label class="label" flex="1" id="identity.email.label" value="&emailLabel.label;"/>
             <label class="label" id="identity.email.text"/>
           </row>
           <row align="center" id="server.username">
-            <label class="label" flex="1" id="server.username.label" value="&usernameLabel.label;"/>
+            <label class="label" flex="1" id="server.username.label" value="&incomingUsername.label;"/>
             <label class="label" id="server.username.text"/>
           </row>
           <row align="center" id="server.name">
             <label class="label" flex="1" id="server.name.label" value="&serverNamePrefix.label;"/>
             <label class="label" id="server.name.text"/>
           </row>
           <row align="center" id="server.type">
             <label class="label" flex="1" id="server.type.label" value="&serverTypePrefix.label;"/>
@@ -321,17 +349,17 @@
             <label class="label" id="server.port.label" flex="1" value="&portNum.label;"/>
             <label class="label" id="server.port.text"/>
           </row>
           <row align="center" id="newsServer.name">
             <label class="label" flex="1" id="newsServer.name.label" value="&newsServerNamePrefix.label;"/>
             <label class="label" id="newsServer.name.text"/>
           </row>
           <row align="center" id="smtpServer.username">
-            <label class="label" flex="1" id="smtpServer.username.label" value="&usernameSmtpLabel.label;"/>
+            <label class="label" flex="1" id="smtpServer.username.label" value="&outgoingUsername.label;"/>
             <label class="label" id="smtpServer.username.text"/>
           </row>
           <row align="center" id="smtpServer.name">
             <label class="label" flex="1" id="smtpServer.name.label" value="&smtpServerNamePrefix.label;"/>
             <label class="label" id="smtpServer.name.text"/>
           </row>
         </rows>
       </grid>
--- a/mailnews/base/prefs/content/aw-accounttype.js
+++ b/mailnews/base/prefs/content/aw-accounttype.js
@@ -88,17 +88,17 @@ function setupWizardPanels() {
       // "done" is the only required panel for all accounts. We used to require an identity panel but not anymore.
       // initialize wizardPanels with the optional mail/news panels
       var wizardPanels, i;
       var isMailAccount = pageData.accounttype.mailaccount;
       var isNewsAccount = pageData.accounttype.newsaccount;
       if (skipPanels == "true") // Support old syntax of true/false for wizardSkipPanels
         wizardPanels = new Array("identitypage"); 
       else if (isMailAccount && isMailAccount.value)
-        wizardPanels = new Array("identitypage", "serverpage", "loginpage", "accnamepage");
+        wizardPanels = new Array("identitypage", "incomingpage", "outgoingpage", "accnamepage");
       else if (isNewsAccount && isNewsAccount.value)
         wizardPanels = new Array("identitypage", "newsserver", "accnamepage");
       else { // An account created by an extension and XUL overlays
         var button = document.getElementById("acctyperadio").selectedItem;
         wizardPanels = button.value.split(/ *, */);
       }
 
       // Create a hash table of the panels to skip
rename from mailnews/base/prefs/content/aw-server.js
rename to mailnews/base/prefs/content/aw-incoming.js
--- a/mailnews/base/prefs/content/aw-server.js
+++ b/mailnews/base/prefs/content/aw-incoming.js
@@ -32,95 +32,89 @@
  * 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 ***** */
 
-var gPrefsBundle;
 var gOnMailServersPage;
 var gOnNewsServerPage;
 var gHideIncoming;
 var gProtocolInfo = null;
 
 function hostnameIsIllegal(hostname)
 {
   // XXX TODO do a complete check.
   // this only checks for illegal characters in the hostname
   // but hostnames like "...." and "_" and ".111" will get by
   // my test.  
   hostname = trim(hostname);
   return !hostname || /[^A-Za-z0-9.-]/.test(hostname);
 }
 
-function serverPageValidate() 
+function incomingPageValidate()
 {
-  // If this is for a server that doesn't require a username, check if the
-  // account exists. For other types, we check after the user provides the
-  // username (see aw-login.js).
   var canAdvance = true;
 
   if (gOnMailServersPage) {
     var incomingServerName = document.getElementById("incomingServer").value;
-    var smtpserver = document.getElementById("smtphostname").value;
-
-    var usingDefaultSMTP = document.getElementById("noSmtp").hidden;
-    if ((!gHideIncoming && hostnameIsIllegal(incomingServerName)) ||
-        (!usingDefaultSMTP && hostnameIsIllegal(smtpserver)))
+    if (!gHideIncoming && hostnameIsIllegal(incomingServerName))
       canAdvance = false;
   }
   if (gOnNewsServerPage) {
     var newsServerName = document.getElementById("newsServer").value;
     if (hostnameIsIllegal(newsServerName))
       canAdvance = false;
   }
-  if (canAdvance && gProtocolInfo && !gProtocolInfo.requiresUsername) {
+  if (canAdvance) {
     var pageData = parent.GetPageData();
     var serverType = parent.getCurrentServerType(pageData);
     var hostName;
     if (gOnMailServersPage)
       hostName = incomingServerName;
     else if (gOnNewsServerPage)
       hostName = newsServerName;
 
-    if (parent.AccountExists(null, hostName, serverType))
+    var username = document.getElementById("username").value;
+    if (gProtocolInfo && gProtocolInfo.requiresUsername && !username ||
+        parent.AccountExists(username, hostName, serverType))
       canAdvance = false;
   }
 
   document.documentElement.canAdvance = canAdvance;
 }
 
-function serverPageUnload()
+function incomingPageUnload()
 {
   var pageData = parent.GetPageData();
 
   if (gOnMailServersPage) {
     // If we have hidden the incoming server dialogs, we don't want
     // to set the server to an empty value here
     if (!gHideIncoming) {
       var incomingServerName = document.getElementById("incomingServer");
       setPageData(pageData, "server", "hostname", trim(incomingServerName.value));
     }
-    var smtpserver = document.getElementById("smtphostname");
-    setPageData(pageData, "server", "smtphostname", trim(smtpserver.value));
     var serverport = document.getElementById("serverPort").value;
     setPageData(pageData, "server", "port", serverport);
+    var username = document.getElementById("username").value;
+    setPageData(pageData, "login", "username", username);
   }
   else if (gOnNewsServerPage) {
     var newsServerName = document.getElementById("newsServer");
     setPageData(pageData, "newsserver", "hostname", trim(newsServerName.value));
   }
 
   return true;
 }
 
-function serverPageInit() {
-  gOnMailServersPage = (document.documentElement.currentPage.id == "serverpage");
+function incomingPageInit() {
+  gOnMailServersPage = (document.documentElement.currentPage.id == "incomingpage");
   gOnNewsServerPage = (document.documentElement.currentPage.id == "newsserver");
   if (gOnNewsServerPage)
   {
     var newsServer = document.getElementById("newsServer");
     var pageData = parent.GetPageData();
     try
     {
       newsServer.value = pageData.newsserver.hostname.value;
@@ -173,101 +167,60 @@ function serverPageInit() {
     }
     var leaveMessages = document.getElementById("leaveMessagesOnServer");
     var deferStorage = document.getElementById("deferStorage");
     setServerType();
     setServerPrefs(leaveMessages);
     setServerPrefs(deferStorage);
   }
   else if (isOtherAccount) {
-    document.getElementById("incomingServerSeparator").hidden = true;
     document.getElementById("deferStorageBox").hidden = true;
   }
 
-  gPrefsBundle = document.getElementById("bundle_prefs");
-  var smtpServer = null;
-  var smtpCreateNewServer = gCurrentAccountData && gCurrentAccountData.smtpCreateNewServer;
-
-  // Don't use the default smtp server if smtp server creation was explicitly
-  // requested in isp rdf.
-  // If we're reusing the default smtp we should not set the smtp hostname.
-  if (parent.smtpService.defaultServer && !smtpCreateNewServer) {
-    smtpServer = parent.smtpService.defaultServer;
-    reusingDefaultSmtp = true;
-    setPageData(pageData, "identity", "smtpServerKey", "");
-  }
-
-  var noSmtpBox = document.getElementById("noSmtp");
-  var haveSmtpBox = document.getElementById("haveSmtp");
-
-  var boxToHide;
-  var boxToShow;
-
   if (pageData.server && pageData.server.hostname) {
     var incomingServerTextBox = document.getElementById("incomingServer");
     if (incomingServerTextBox && incomingServerTextBox.value == "")
       incomingServerTextBox.value = pageData.server.hostname.value;
   }
 
-  if (pageData.server && pageData.server.smtphostname && smtpCreateNewServer) {
-    var smtpTextBox = document.getElementById("smtphostname");
-    if (smtpTextBox && smtpTextBox.value == "")
-      smtpTextBox.value = pageData.server.smtphostname.value;
-  }
-
-  if (smtpServer && smtpServer.hostname) {
-    // we have a hostname, so modify and show the static text and 
-    // store the value of the default smtp server in the textbox.
-    modifyStaticText(smtpServer.hostname, "1")
-    boxToShow = haveSmtpBox;
-    boxToHide = noSmtpBox;
-  }
-  else {
-    // no default hostname yet
-    boxToShow = noSmtpBox;
-    boxToHide = haveSmtpBox;
-  }
-
-  if (boxToHide)
-    boxToHide.setAttribute("hidden", "true");
-
-  if (boxToShow)
-    boxToShow.removeAttribute("hidden");
-
   var type = parent.getCurrentServerType(pageData);
   gProtocolInfo = Components.classes["@mozilla.org/messenger/protocol/info;1?type=" + type]
                             .getService(Components.interfaces.nsIMsgProtocolInfo);
-  serverPageValidate();
-}
+  var loginNameInput = document.getElementById("username");
+
+  if (loginNameInput.value == "") {
+    // retrieve data from previously entered pages
+    var type = parent.getCurrentServerType(pageData);
 
-function modifyStaticText(smtpMod, smtpBox)
-{
-  // modify the value in the smtp display if we already have a 
-  // smtp server so that the single string displays the hostname
-  // or username for the smtp server.
-  var smtpStatic = document.getElementById("smtpStaticText"+smtpBox);
-  if (smtpStatic && smtpStatic.hasChildNodes())
-    smtpStatic.childNodes[0].nodeValue = smtpStatic.getAttribute("prefix") +
-                                         smtpMod + smtpStatic.getAttribute("suffix");  
+    gProtocolInfo = Components.classes["@mozilla.org/messenger/protocol/info;1?type=" + type]
+                              .getService(Components.interfaces.nsIMsgProtocolInfo);
+
+    if (gProtocolInfo.requiresUsername) {
+      // since we require a username, use the uid from the email address
+      loginNameInput.value = parent.getUsernameFromEmail(pageData.identity.email.value, gCurrentAccountData &&
+                                                         gCurrentAccountData.incomingServerUserNameRequiresDomain);
+    }
+  }
+  incomingPageValidate();
 }
  
 function setServerType()
 {
   var pageData = parent.GetPageData();
   var serverType = document.getElementById("servertype").value;
   var deferStorageBox = document.getElementById("deferStorageBox");
   var leaveMessages = document.getElementById("leaveMsgsOnSrvrBox");
   var port = serverType == "pop3" ? 110 : 143;
 
   document.getElementById("serverPort").value = port;
   document.getElementById("defaultPortValue").value = port;
 
   deferStorageBox.hidden = serverType == "imap";
   leaveMessages.hidden = serverType == "imap";
-  document.getElementById("incomingServerSeparator").hidden = false;
   setPageData(pageData, "server", "servertype", serverType);
   setPageData(pageData, "server", "port", port);
+  incomingPageValidate();
 }
 
 function setServerPrefs(aThis)
 {
   setPageData(parent.GetPageData(), "server", aThis.id, aThis.checked);
 }
rename from mailnews/base/prefs/content/aw-login.js
rename to mailnews/base/prefs/content/aw-outgoing.js
--- a/mailnews/base/prefs/content/aw-login.js
+++ b/mailnews/base/prefs/content/aw-outgoing.js
@@ -35,64 +35,88 @@
  * 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 ***** */
 
 var gProtocolInfo = null;
 var gPrefsBundle;
 
-function loginPageValidate() {
-  var canAdvance = false;
-  var username = document.getElementById("username").value;
+function outgoingPageValidate() {
+  var canAdvance = true;
 
-  if (!gProtocolInfo || !gProtocolInfo.requiresUsername || username) {
-    var pageData = parent.GetPageData();
-    var hostName = parent.getCurrentHostname(pageData);
-    var serverType = parent.getCurrentServerType(pageData);
-    if (!parent.AccountExists(username, hostName, serverType))
-      canAdvance = true;
-  }
+  var smtpserver = document.getElementById("smtphostname").value;
+  var usingDefaultSMTP = document.getElementById("noSmtp").hidden;
+  if (!usingDefaultSMTP && hostnameIsIllegal(smtpserver))
+    canAdvance = false;
 
   document.documentElement.canAdvance = canAdvance;
 }
 
-function loginPageUnload() {
+function outgoingPageUnload() {
   var pageData = parent.GetPageData();
   var username = document.getElementById("username").value;
+  var smtpserver = document.getElementById("smtphostname");
+  setPageData(pageData, "server", "smtphostname", trim(smtpserver.value));
 
   // If SMTP username box is blank it is because the
   // incoming and outgoing server names were the same,
   // so set to be same as incoming username
   var smtpusername = document.getElementById("smtpusername").value || username;
 
-  setPageData(pageData, "login", "username", username);
   setPageData(pageData, "login", "smtpusername", smtpusername);
 
   return true;
 }
 
-function loginPageInit() {
+function outgoingPageInit() {
     gPrefsBundle = document.getElementById("bundle_prefs");
     var pageData = parent.GetPageData();
-    var loginNameInput = document.getElementById("username");
-    
-    if (loginNameInput.value == "") {
-      // retrieve data from previously entered pages
-      var type = parent.getCurrentServerType(pageData);
+
+    var smtpServer = null;
+    var smtpCreateNewServer = gCurrentAccountData && gCurrentAccountData.smtpCreateNewServer;
+
+    // Don't use the default smtp server if smtp server creation was explicitly
+    // requested in isp rdf.
+    // If we're reusing the default smtp we should not set the smtp hostname.
+    if (parent.smtpService.defaultServer && !smtpCreateNewServer) {
+      smtpServer = parent.smtpService.defaultServer;
+      setPageData(pageData, "identity", "smtpServerKey", "");
+    }
+
+    var noSmtpBox = document.getElementById("noSmtp");
+    var haveSmtpBox = document.getElementById("haveSmtp");
+
+    var boxToHide;
+    var boxToShow;
 
-      gProtocolInfo = Components.classes["@mozilla.org/messenger/protocol/info;1?type=" + type]
-                                .getService(Components.interfaces.nsIMsgProtocolInfo);
+    if (pageData.server && pageData.server.smtphostname && smtpCreateNewServer) {
+      var smtpTextBox = document.getElementById("smtphostname");
+      if (smtpTextBox && smtpTextBox.value == "")
+        smtpTextBox.value = pageData.server.smtphostname.value;
+    }
 
-      if (gProtocolInfo.requiresUsername) {
-        // since we require a username, use the uid from the email address
-        loginNameInput.value = parent.getUsernameFromEmail(pageData.identity.email.value, gCurrentAccountData &&
-                                                           gCurrentAccountData.incomingServerUserNameRequiresDomain);
-      }
+    if (smtpServer && smtpServer.hostname) {
+      // we have a hostname, so modify and show the static text and
+      // store the value of the default smtp server in the textbox.
+      modifyStaticText(smtpServer.hostname, "1")
+      boxToShow = haveSmtpBox;
+      boxToHide = noSmtpBox;
     }
+    else {
+      // no default hostname yet
+      boxToShow = noSmtpBox;
+      boxToHide = haveSmtpBox;
+    }
+
+    if (boxToHide)
+      boxToHide.setAttribute("hidden", "true");
+
+    if (boxToShow)
+      boxToShow.removeAttribute("hidden");
 
     var smtpNameInput = document.getElementById("smtpusername");
     var smtpServer = parent.smtpService.defaultServer;
     if (smtpServer && smtpServer.hostname && smtpServer.username) {
       // we have a default SMTP server, so modify and show the static text
       // and store the username for the default server in the textbox.
       modifyStaticText(smtpServer.username, "2")
       hideShowLoginSettings(2, 1, 3);
@@ -112,17 +136,28 @@ function loginPageInit() {
       }
       else {
         // incoming and outgoing server names are different, so set smtp
         // username's textbox to be the same as incoming's one, unless already set.
         hideShowLoginSettings(1, 2, 3);
         smtpNameInput.value = smtpNameInput.value || loginNameInput.value;
       }
     }
-    loginPageValidate();
+    outgoingPageValidate();
+}
+
+function modifyStaticText(smtpMod, smtpBox)
+{
+  // modify the value in the smtp display if we already have a
+  // smtp server so that the single string displays the hostname
+  // or username for the smtp server.
+  var smtpStatic = document.getElementById("smtpStaticText"+smtpBox);
+  if (smtpStatic && smtpStatic.hasChildNodes())
+    smtpStatic.childNodes[0].nodeValue = smtpStatic.getAttribute("prefix") +
+                                         smtpMod + smtpStatic.getAttribute("suffix");
 }
 
 function hideShowLoginSettings(aEle, bEle, cEle)
 {
     document.getElementById("loginSet" + aEle).hidden = false;
     document.getElementById("loginSet" + bEle).hidden = true;
     document.getElementById("loginSet" + cEle).hidden = true;
 }
--- a/mailnews/extensions/newsblog/rss.rdf
+++ b/mailnews/extensions/newsblog/rss.rdf
@@ -21,17 +21,17 @@
         <NC:identity>
           <NC:nsIMsgIdentity>
           </NC:nsIMsgIdentity>
         </NC:identity>
 
         <NC:wizardAutoGenerateUniqueHostname>true</NC:wizardAutoGenerateUniqueHostname>
         <NC:wizardHideIncoming>true</NC:wizardHideIncoming>
         <NC:wizardAccountName>&feeds.accountName;</NC:wizardAccountName>
-        <NC:wizardSkipPanels>identitypage,serverpage,loginpage</NC:wizardSkipPanels>
+        <NC:wizardSkipPanels>identitypage,incomingpage,outgoingpage</NC:wizardSkipPanels>
         <NC:wizardShortName>&feeds.wizardShortName;</NC:wizardShortName>
         <NC:wizardLongName>&feeds.wizardLongName;</NC:wizardLongName>
         <NC:wizardLongNameAccesskey>&feeds.wizardLongName.accesskey;</NC:wizardLongNameAccesskey>
         <NC:wizardShow>true</NC:wizardShow>
         <NC:emailProviderName>RSS</NC:emailProviderName>
         <NC:showServerDetailsOnWizardSummary>false</NC:showServerDetailsOnWizardSummary> 
       </NC:nsIMsgAccount>
     </NC:providers>
--- a/mailnews/jar.mn
+++ b/mailnews/jar.mn
@@ -43,18 +43,18 @@ messenger.jar:
     content/messenger/am-identity-edit.xul                                     (base/prefs/content/am-identity-edit.xul)
     content/messenger/am-copiesOverlay.xul                                     (base/prefs/content/am-copiesOverlay.xul)
     content/messenger/am-archiveoptions.xul                                    (base/prefs/content/am-archiveoptions.xul)
     content/messenger/am-archiveoptions.js                                     (base/prefs/content/am-archiveoptions.js)
 *   content/messenger/AccountWizard.xul                                        (base/prefs/content/AccountWizard.xul)
     content/messenger/AccountWizard.js                                         (base/prefs/content/AccountWizard.js)
     content/messenger/aw-accounttype.js                                        (base/prefs/content/aw-accounttype.js)
     content/messenger/aw-identity.js                                           (base/prefs/content/aw-identity.js)
-    content/messenger/aw-server.js                                             (base/prefs/content/aw-server.js)
-    content/messenger/aw-login.js                                              (base/prefs/content/aw-login.js)
+    content/messenger/aw-incoming.js                                           (base/prefs/content/aw-incoming.js)
+    content/messenger/aw-outgoing.js                                           (base/prefs/content/aw-outgoing.js)
     content/messenger/aw-accname.js                                            (base/prefs/content/aw-accname.js)
     content/messenger/aw-done.js                                               (base/prefs/content/aw-done.js)
     content/messenger/accountUtils.js                                          (base/prefs/content/accountUtils.js)
     content/messenger/amUtils.js                                               (base/prefs/content/amUtils.js)
     content/messenger/ispUtils.js                                              (base/prefs/content/ispUtils.js)
     content/messenger/SmtpServerEdit.xul                                       (base/prefs/content/SmtpServerEdit.xul)
     content/messenger/SmtpServerEdit.js                                        (base/prefs/content/SmtpServerEdit.js)
     content/messenger/smtpEditOverlay.xul                                      (base/prefs/content/smtpEditOverlay.xul)
--- a/suite/common/bookmarks/bm-props.js
+++ b/suite/common/bookmarks/bm-props.js
@@ -377,16 +377,17 @@ var BookmarkPropertiesPanel = {
         this._element("feedLocationField")
             .addEventListener("input", this, false);
         this._element("siteLocationField")
             .addEventListener("input", this, false);
       }
     }
 
     window.sizeToContent();
+    window.addEventListener("resize", this, false);
   },
 
   // nsIDOMEventListener
   _elementsHeight: [],
   handleEvent: function BPP_handleEvent(aEvent) {
     var target = aEvent.target;
     switch (aEvent.type) {
       case "input":
@@ -395,33 +396,35 @@ var BookmarkPropertiesPanel = {
             target.id == "editBMPanel_siteLocationField" ||
             target.id == "editBMPanel_keywordField") {
           // Check uri fields to enable accept button if input is valid
           document.documentElement
                   .getButton("accept").disabled = !this._inputIsValid();
         }
         break;
 
+      case "resize":
+        ["folderTree", "tagsSelector", "description"].forEach(function(e) {
+          var el = document.getElementById("editBMPanel_" + e + "Row");
+          if (el.boxObject.height)
+            el.height = el.boxObject.height;
+        });
+        break;
+
       case "DOMAttrModified":
         // this is called when collapsing a node, but also its direct children,
         // we only need to resize when the original node changes.
         if ((target.id == "editBMPanel_tagsSelectorRow" ||
              target.id == "editBMPanel_folderTreeRow") &&
             aEvent.attrName == "collapsed" &&
             target == aEvent.originalTarget) {
-          var id = target.id;
-          var newHeight = window.outerHeight;
-          if (aEvent.newValue) // is collapsed
-            newHeight -= this._elementsHeight[id];
-          else {
-            this._elementsHeight[id] = target.boxObject.height;
-            newHeight += this._elementsHeight[id];
-          }
-
-          window.resizeTo(window.outerWidth, newHeight);
+          var el = document.getElementById("editBookmarkPanelContent");
+          var width = el.boxObject.width;
+          window.sizeToContent();
+          window.outerWidth -= el.boxObject.width - width;
         }
         break;
     }
   },
 
   _beginBatch: function BPP__beginBatch() {
     if (this._batching)
       return;
@@ -466,16 +469,17 @@ var BookmarkPropertiesPanel = {
     throw Components.results.NS_NOINTERFACE;
   },
 
   _element: function BPP__element(aID) {
     return document.getElementById("editBMPanel_" + aID);
   },
 
   onDialogUnload: function BPP_onDialogUnload() {
+    window.removeEventListener("resize", this, false);
     // gEditItemOverlay does not exist anymore here, so don't rely on it.
     // Calling removeEventListener with arguments which do not identify any
     // currently registered EventListener on the EventTarget has no effect.
     this._element("tagsSelectorRow")
         .removeEventListener("DOMAttrModified", this, false);
     this._element("folderTreeRow")
         .removeEventListener("DOMAttrModified", this, false);
     this._element("locationField")
--- a/suite/common/bookmarks/editBookmarkOverlay.xul
+++ b/suite/common/bookmarks/editBookmarkOverlay.xul
@@ -43,17 +43,17 @@
 ]>
 
 <?xml-stylesheet href="chrome://communicator/skin/bookmarks/editBookmarkOverlay.css"?>
 <?xml-stylesheet href="chrome://communicator/skin/bookmarks/bookmarks.css"?>
 
 <overlay id="editBookmarkOverlay"
          xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 
-  <vbox id="editBookmarkPanelContent">
+  <vbox id="editBookmarkPanelContent" flex="1">
     <broadcaster id="paneElementsBroadcaster"/>
 
     <hbox id="editBMPanel_selectionCount" hidden="true" pack="center">
       <label id="editBMPanel_itemsCountText"/>
     </hbox>
 
     <grid id="editBookmarkPanelGrid" flex="1">
       <columns id="editBMPanel_columns">
@@ -140,24 +140,25 @@
                     tooltiptext="&editBookmarkOverlay.foldersExpanderDown.tooltip;"
                     tooltiptextdown="&editBookmarkOverlay.foldersExpanderDown.tooltip;"
                     tooltiptextup="&editBookmarkOverlay.expanderUp.tooltip;"
                     oncommand="gEditItemOverlay.toggleFolderTreeVisibility();"
                     observes="paneElementsBroadcaster"/>
           </hbox>
         </row>
 
-        <row align="center" id="editBMPanel_folderTreeRow" collapsed="true">
+        <row id="editBMPanel_folderTreeRow" collapsed="true" flex="2">
           <spacer/>
           <vbox flex="1">
             <tree id="editBMPanel_folderTree"
                   class="placesTree"
                   type="places"
                   treelines="true"
                   height="150"
+                  flex="1"
                   editable="true"
                   onselect="gEditItemOverlay.onFolderTreeSelect();"
                   hidecolumnpicker="true"
                   observes="paneElementsBroadcaster">
               <treecols>
                 <treecol anonid="title" flex="1" primary="true" hideheader="true"/>
               </treecols>
               <treechildren flex="1"/>
@@ -196,46 +197,46 @@
                     tooltiptext="&editBookmarkOverlay.tagsExpanderDown.tooltip;"
                     tooltiptextdown="&editBookmarkOverlay.tagsExpanderDown.tooltip;"
                     tooltiptextup="&editBookmarkOverlay.expanderUp.tooltip;"
                     oncommand="gEditItemOverlay.toggleTagsSelector();"
                     observes="paneElementsBroadcaster"/>
           </hbox>
         </row>
 
-        <row id="editBMPanel_tagsSelectorRow"
-             align="center"
-             collapsed="true">
+        <row id="editBMPanel_tagsSelectorRow" collapsed="true" flex="2">
           <spacer/>
           <listbox id="editBMPanel_tagsSelector"
                    height="150"
+                   flex="1"
                    observes="paneElementsBroadcaster"/>
         </row>
 
         <row align="center" id="editBMPanel_keywordRow">
           <observes element="additionalInfoBroadcaster" attribute="hidden"/>
           <label value="&editBookmarkOverlay.keyword.label;"
                  class="editBMPanel_rowLabel"
                  accesskey="&editBookmarkOverlay.keyword.accesskey;"
                  control="editBMPanel_keywordField"
                  observes="paneElementsBroadcaster"/>
           <textbox id="editBMPanel_keywordField"
                    onblur="gEditItemOverlay.onKeywordFieldBlur();"
                    observes="paneElementsBroadcaster"/>
         </row>
 
-        <row id="editBMPanel_descriptionRow">
+        <row id="editBMPanel_descriptionRow" flex="1">
           <observes element="additionalInfoBroadcaster" attribute="hidden"/>
           <label value="&editBookmarkOverlay.description.label;"
                  class="editBMPanel_rowLabel"
                  accesskey="&editBookmarkOverlay.description.accesskey;"
                  control="editBMPanel_descriptionField"
                  observes="paneElementsBroadcaster"/>
           <textbox id="editBMPanel_descriptionField"
                    multiline="true"
+                   flex="1"
                    onblur="gEditItemOverlay.onDescriptionFieldBlur();"
                    observes="paneElementsBroadcaster"/>
         </row>
       </rows>
     </grid>
 
     <checkbox id="editBMPanel_loadInSidebarCheckbox"
               label="&editBookmarkOverlay.loadInSidebar.label;"
--- a/suite/common/jar.mn
+++ b/suite/common/jar.mn
@@ -105,18 +105,16 @@ comm.jar:
    content/communicator/bindings/general.xml                        (bindings/general.xml)
    content/communicator/bindings/notification.xml                   (bindings/notification.xml)
    content/communicator/bindings/toolbar.xml                        (bindings/toolbar.xml)
 *  content/communicator/bindings/prefwindow.xml                     (bindings/prefwindow.xml)
    content/communicator/bookmarks/bm-panel.js                       (bookmarks/bm-panel.js)
    content/communicator/bookmarks/bm-panel.xul                      (bookmarks/bm-panel.xul)
    content/communicator/bookmarks/bm-props.js                       (bookmarks/bm-props.js)
    content/communicator/bookmarks/bm-props.xul                      (bookmarks/bm-props.xul)
-# Provide another URI for the bookmark properties dialog so we can persist the attributes separately
-% override chrome://communicator/content/bookmarks/bm-props2.xul chrome://communicator/content/bookmarks/bm-props.xul
    content/communicator/bookmarks/bookmarksManager.css              (bookmarks/bookmarksManager.css)
    content/communicator/bookmarks/bookmarksManager.js               (bookmarks/bookmarksManager.js)
    content/communicator/bookmarks/bookmarksManager.xul              (bookmarks/bookmarksManager.xul)
    content/communicator/bookmarks/browser-places.js                 (bookmarks/browser-places.js)
    content/communicator/bookmarks/editBookmarkOverlay.js            (bookmarks/editBookmarkOverlay.js)
    content/communicator/bookmarks/editBookmarkOverlay.xul           (bookmarks/editBookmarkOverlay.xul)
    content/communicator/bookmarks/moveBookmarks.js                  (bookmarks/moveBookmarks.js)
    content/communicator/bookmarks/moveBookmarks.xul                 (bookmarks/moveBookmarks.xul)
--- a/suite/common/src/PlacesUIUtils.jsm
+++ b/suite/common/src/PlacesUIUtils.jsm
@@ -455,17 +455,17 @@ var PlacesUIUtils = {
       if (typeof(aPostData) == "string")
         info.postData = aPostData;
       if (typeof(aCharSet) == "string")
         info.charSet = aCharSet;
     }
     else
       info.hiddenRows.push("keyword");
 
-    return this._showBookmarkDialog(info, true);
+    return this._showBookmarkDialog(info);
   },
 
   /**
    * Shows the "Add Live Bookmark" dialog.
    *
    * @param [optional] aFeedURI
    *        The feed URI for which the dialog is to be shown (nsIURI).
    * @param [optional] aSiteURI
@@ -546,17 +546,17 @@ var PlacesUIUtils = {
     if (aDescription)
       info.description = aDescription;
 
     if (aDefaultInsertionPoint) {
       info.defaultInsertionPoint = aDefaultInsertionPoint;
       if (!aShowPicker)
         info.hiddenRows.push("folderPicker");
     }
-    return this._showBookmarkDialog(info, true);
+    return this._showBookmarkDialog(info);
   },
 
   /**
    * Show an "Add Bookmarks" dialog to allow the adding of a folder full
    * of bookmarks corresponding to the objects in the uriList.  This will
    * be called most often as the result of a "Bookmark All Tabs..." command.
    *
    * @param aURIList  List of nsIURI objects representing the locations
@@ -567,17 +567,17 @@ var PlacesUIUtils = {
     if (aURIList.length == 0)
       throw("showAddMultiBookmarkUI expects a list of nsIURI objects");
     var info = {
       action: "add",
       type: "folder",
       hiddenRows: ["description"],
       URIList: aURIList
     };
-    return this._showBookmarkDialog(info, true);
+    return this._showBookmarkDialog(info);
   },
 
   /**
    * Opens the properties dialog for a given item identifier.
    *
    * @param aItemId
    *        item identifier for which the properties are to be shown
    * @param aType
@@ -637,27 +637,20 @@ var PlacesUIUtils = {
    *        Describes the item to be edited/added in the dialog.
    *        See documentation at the top of bm-props.js
    * @param aMinimalUI
    *        [optional] if true, the dialog is opened by its alternative
    *        chrome: uri.
    *
    * @return true if any transaction has been performed, false otherwise.
    */
-  _showBookmarkDialog: function PUIU__showBookmarkDialog(aInfo, aMinimalUI) {
-    var dialogURL = aMinimalUI ?
-                    "chrome://communicator/content/bookmarks/bm-props2.xul" :
-                    "chrome://communicator/content/bookmarks/bm-props.xul";
-
-    var features;
-    if (aMinimalUI)
-      features = "centerscreen,chrome,modal,resizable=yes";
-    else
-      features = "centerscreen,chrome,modal,resizable=no";
-    this._getCurrentActiveWin().openDialog(dialogURL, "",  features, aInfo);
+  _showBookmarkDialog: function PUIU__showBookmarkDialog(aInfo) {
+    var dialogURL = "chrome://communicator/content/bookmarks/bm-props.xul";
+    var features = "centerscreen,chrome,modal,resizable=yes";
+    this._getCurrentActiveWin().openDialog(dialogURL, "", features, aInfo);
     return ("performed" in aInfo && aInfo.performed);
   },
 
   _getTopBrowserWin: function PUIU__getTopBrowserWin() {
     return Services.wm.getMostRecentWindow("navigator:browser");
   },
 
   _getCurrentActiveWin: function PUIU__getCurrentActiveWin() {
--- a/suite/locales/en-US/chrome/mailnews/pref/AccountWizard.dtd
+++ b/suite/locales/en-US/chrome/mailnews/pref/AccountWizard.dtd
@@ -27,67 +27,66 @@
 -->
 <!ENTITY fullnameExample.label "(for example, &quot;John Smith&quot;).">
 <!ENTITY fullnameLabel.label "Your Name:">
 <!ENTITY fullnameLabel.accesskey "Y">
 
 <!ENTITY emailLabel.label "Email Address:">
 <!ENTITY emailLabel.accesskey "E">
 
-<!-- Entities for Server page -->
+<!-- Entities for Incoming Server page -->
 
-<!ENTITY serverTitle.label "Server Information">
+<!ENTITY incomingTitle.label "Incoming Server Information">
 <!ENTITY incomingServerTypeDesc.label "Select the type of incoming server you are using.">
-<!-- LOCALIZATION NOTE (incomingServerNameDesc.label) : Do not translate "&quot;pop.example.net&quot;" in below line -->
-<!ENTITY incomingServerNameDesc.label "Enter the name of your incoming server (for example, &quot;mail.example.net&quot;).">
-<!ENTITY incomingServerLabel.label "Incoming Server:">
-<!ENTITY incomingServerLabel.accesskey "S">
-<!-- LOCALIZATION NOTE (newsServerNameDesc.label) : Do not translate "NNTP" or the "&quot;" entities in below line -->
-<!ENTITY newsServerNameDesc.label "Enter the name of your news server (NNTP) (for example, &quot;news.example.net&quot;).">
-<!-- LOCALIZATION NOTE (smtpServerDesc.label) : Do not translate "SMTP" and "&quot;smtp.example.net&quot;" in below line -->
-<!ENTITY smtpServerDesc.label "Enter the name of your outgoing server (SMTP) (for example, &quot;smtp.example.net&quot;).">
-<!ENTITY smtpServerLabel.label "Outgoing Server:">
-<!ENTITY smtpServerLabel.accesskey "O">
-<!ENTITY newsServerLabel.label "Newsgroup Server:">
-<!ENTITY newsServerLabel.accesskey "w">
 <!-- LOCALIZATION NOTE (imapType.label) : Do not translate "IMAP" in below line -->
 <!ENTITY imapType.label "IMAP">
 <!ENTITY imapType.accesskey "I">
 <!-- LOCALIZATION NOTE (popType.label) : Do not translate "POP" in below line -->
 <!ENTITY popType.label "POP">
 <!ENTITY popType.accesskey "P">
 <!ENTITY portNum.label "Port:">
 <!ENTITY portNum.accesskey "o">
 <!ENTITY defaultPortLabel.label "Default:">
 <!ENTITY defaultPortValue.label "">
+<!-- LOCALIZATION NOTE (incomingServerNameDesc.label) : Do not translate "&quot;pop.example.net&quot;" in below line -->
+<!ENTITY incomingServer.description "Enter the name of your incoming server (for example, &quot;mail.example.net&quot;).">
+<!ENTITY incomingServer.label "Incoming Server:">
+<!ENTITY incomingServer.accesskey "S">
 <!ENTITY leaveMsgsOnSrvr.label "Leave messages on server">
 <!ENTITY leaveMsgsOnSrvr.accesskey "L">
+<!-- LOCALIZATION NOTE (incomingUsername.description) : do not translate "&quot;jsmith&quot;" in below line -->
+<!ENTITY incomingUsername.description "Enter the incoming user name given to you by your email provider (for example, &quot;jsmith&quot;).">
+<!ENTITY incomingUsername.label "User Name:">
+<!ENTITY incomingUsername.accesskey "U">
+<!-- LOCALIZATION NOTE (newsServerNameDesc.label) : Do not translate "NNTP" or the "&quot;" entities in below line -->
+<!ENTITY newsServerNameDesc.label "Enter the name of your news server (NNTP) (for example, &quot;news.example.net&quot;).">
+<!ENTITY newsServerLabel.label "Newsgroup Server:">
+<!ENTITY newsServerLabel.accesskey "S">
+
+<!-- Entities for Outgoing Server page -->
+
+<!ENTITY outgoingTitle.label "Outgoing Server Information">
+<!-- LOCALIZATION NOTE (outgoingServer.description) : Do not translate "SMTP" and "&quot;smtp.example.net&quot;" in below line -->
+<!ENTITY outgoingServer.description "Enter the name of your outgoing server (SMTP) (for example, &quot;smtp.example.net&quot;).">
+<!ENTITY outgoingServer.label "Outgoing Server:">
+<!ENTITY outgoingServer.accesskey "S">
+<!ENTITY outgoingUsername.description "Enter the outgoing user name given to you by your email provider (this is typically the same as your incoming user name).">
+<!ENTITY outgoingUsername.label "Outgoing User Name:">
+<!ENTITY outgoingUsername.accesskey "U">
 
 <!-- LOCALIZATION NOTE (modifyOutgoing.suffix) : This string will be appended after each of
      haveSmtp1.suffix3, haveSmtp2.suffix3, haveSmtp3.suffix3 .
 -->
 <!ENTITY modifyOutgoing.suffix "You can modify outgoing server settings from within Mail &amp; Newsgroups Account Settings.">
 <!-- LOCALIZATION NOTE (haveSmtp1.prefix and haveSmtp1.suffix3) : Do not translate "SMTP" and "&quot;" in
      these variables. Also, translate haveSmtp1.prefix and haveSmtp1.suffix3 as a single sentence, inserting
      text after the "&quot;" entity in haveSmtp1.suffix3, if required grammatically.
 -->
 <!ENTITY haveSmtp1.prefix "Your existing outgoing server (SMTP), &quot;">
 <!ENTITY haveSmtp1.suffix3 "&quot;, will be used.">
-
-<!-- Entities for Login page -->
-
-<!ENTITY loginTitle.label "User Names">
-<!ENTITY usernameDesc.label "Enter the incoming user name given to you by your email provider ">
-<!-- LOCALIZATION NOTE (usernameExample.label) : do not translate "&quot;jsmith&quot;" in below line -->
-<!ENTITY usernameExample.label "(for example, &quot;jsmith&quot;).">
-<!ENTITY usernameLabel.label "Incoming User Name:">
-<!ENTITY usernameLabel.accesskey "I">
-<!ENTITY usernameSmtpDesc.label "Enter the outgoing user name given to you by your email provider (this is typically the same as your incoming user name).">
-<!ENTITY usernameSmtpLabel.label "Outgoing User Name:">
-<!ENTITY usernameSmtpLabel.accesskey "O">
 <!-- LOCALIZATION NOTE (haveSmtp2.prefix and haveSmtp2.suffix3) : Do not translate "SMTP" and "&quot;" in
      these variables. Also, translate haveSmtp2.prefix and haveSmtp2.suffix3 as a single sentence, inserting
      text after the "&quot;" entity in haveSmtp2.suffix3, if required grammatically.
 -->
 <!ENTITY haveSmtp2.prefix "Your existing outgoing (SMTP) username, &quot;">
 <!ENTITY haveSmtp2.suffix3 "&quot;, will be used.">
 <!-- LOCALIZATION NOTE (haveSmtp3.prefix and haveSmtp3.suffix3) : Do not translate "SMTP" and "&quot;" in
      these variables. Also, translate haveSmtp3.prefix and haveSmtp3.suffix3 as a single sentence, inserting