Bug 503436 - autoconfig UI needs polish
authorBlake Winton <bwinton@latte.ca>
Sun, 30 Aug 2009 16:30:07 +0200
changeset 3452 189aba5c6bc5cab9e6a4e2ebb0ec8c55a18c59df
parent 3451 f3cf62cbdf2e916a7a317ef087b60f16eec4923e
child 3453 b6392cba3b7d16a3ef9709eb7de6ac9d8f608184
push idunknown
push userunknown
push dateunknown
bugs503436
Bug 503436 - autoconfig UI needs polish r=philringnalda sr=bienvenu ui-r=clarkbw
mail/locales/en-US/chrome/messenger/accountCreation.dtd
mail/themes/gnomestripe/mail/accountCreation.css
mail/themes/pinstripe/mail/accountCreation.css
mail/themes/qute/mail/accountCreation.css
mailnews/base/prefs/content/accountcreation/createInBackend.js
mailnews/base/prefs/content/accountcreation/emailWizard.js
mailnews/base/prefs/content/accountcreation/emailWizard.xul
--- a/mail/locales/en-US/chrome/messenger/accountCreation.dtd
+++ b/mail/locales/en-US/chrome/messenger/accountCreation.dtd
@@ -37,26 +37,21 @@
 <!ENTITY edit.accesskey                  "E">
 
 <!ENTITY rememberPassword.label          "Remember password">
 <!ENTITY rememberPassword.accesskey      "m">
 
 <!ENTITY warning.label                   "Warning!">
 <!ENTITY incomingSettings.label          "Incoming settings:">
 <!ENTITY outgoingSettings.label          "Outgoing settings:">
-<!-- LOCALIZATION NOTE (confirmIncomingWarning.label): If there is a security
-     warning on the incoming server, then the user will need to check a
-     checkbox beside this text before continuing. -->
-<!ENTITY confirmIncomingWarning.label    "I understand the risks.">
-<!ENTITY confirmIncomingWarning.accesskey "u">
-<!-- LOCALIZATION NOTE (confirmOutgoingWarning.label): If there is a security
+<!-- LOCALIZATION NOTE (confirmWarning.label): If there is a security
      warning on the outgoing server, then the user will need to check a
      checkbox beside this text before continuing. -->
-<!ENTITY confirmOutgoingWarning.label    "I understand the risks.">
-<!ENTITY confirmOutgoingWarning.accesskey "d">
+<!ENTITY confirmWarning.label            "I understand the risks.">
+<!ENTITY confirmWarning.accesskey        "u">
 <!-- LOCALIZATION NOTE (createAccount.label): If there is a security warning
      on the incoming or outgoing servers, then the page that pops up will
      have this text in a button to continue by creating the account. -->
 <!ENTITY createAccount.label             "Create Account">
 <!ENTITY createAccount.accesskey         "C">
 <!-- LOCALIZATION NOTE (changeSettings.label): If there is a security warning on
      the incoming or outgoing servers, then the page that pops up will have
      this text in a button to take you back to the previous page to change
--- a/mail/themes/gnomestripe/mail/accountCreation.css
+++ b/mail/themes/gnomestripe/mail/accountCreation.css
@@ -1,97 +1,8 @@
-vbox.icon {
-  width: 22px;
-  height: 22px;
-  background-repeat: no-repeat;
-}
-
-image.insecureLarry  {
-  height: 64px;
-  width: 64px;
-  padding: 0;
-  list-style-image: url("chrome://global/skin/icons/sslWarning.png");
-}
-
-image.secureLarry  {
-  height: 64px;
-  width: 64px;
-  padding: 0;
-  list-style-image: url("chrome://messenger/skin/icons/identity.png");
-}
-
-vbox.icon[state='strong'] {
-  background-image: url("chrome://messenger/skin/icons/secure.png");
-}
-
-vbox.icon[state='failed'] {
-  background-image: url("chrome://messenger/skin/icons/failed.png");
-}
-
-vbox.icon[state='probing'] {
-  background-image: url("chrome://messenger/skin/icons/probing.png");
-}
-
-vbox.icon[state='weak'] {
-  background-image: url("chrome://messenger/skin/icons/insecure.png");
-}
-
-label.textbox-label {
-  color: GrayText;
-  font-size: smaller;
-  border-bottom: 1px dotted InactiveBorder;
-}
-
-.protocol,
-textbox.security {
-  width: 8em;
-}
-
-textbox.port {
-  width: 5em;
-}
-
-textbox.host {
-  width: 12em;
-  margin-bottom: 4px !important;
-  margin-top: 4px !important;
-}
-
-menulist.host {
-  width: 12em;
-  margin-bottom: 4px !important;
-  margin-top: 4px !important;
-}
-
-textbox[disabled="true"] {
-  -moz-appearance: none;
-  border: none;
-  padding: 6px;
-  background-color: #fff;
-  color: -moz-DialogText;
-}
-
-menulist[disabled="true"] {
-  -moz-appearance: none;
-  border: none;
-  background-color: #fff;
-  color: -moz-DialogText;
-}
-
-menulist[disabled="true"] > .menulist-editable-box,
-menulist[disabled="true"] > .menulist-editable-box > .menulist-editable-input,
-menulist[disabled="true"] > .menulist-dropmarker {
-  -moz-appearance: none;
-  color: -moz-DialogText;
-}
-
-#outgoing_protocol {
-  padding: 6px;
-}
-
 /* ::::: BUTTONS ::::: */
 
 .larger-button {
   font-size: 1.1em;
 }
 
 .smaller-button {
   font-size: 0.85em;
@@ -145,56 +56,82 @@ menulist[disabled="true"] > .menulist-dr
   overflow: auto;
 }
 
 .protocol_label {
   width: 73px;
   -moz-padding-start: 6px;
 }
 
+/* Missing:
+ * #incoming_config
+ */
+
+menulist[disabled="true"] {
+  -moz-appearance: none;
+  border: none;
+  background-color: #fff;
+  color: -moz-DialogText;
+}
+
+menulist[disabled="true"] > .menulist-editable-box,
+menulist[disabled="true"] > .menulist-editable-box > .menulist-editable-input,
+menulist[disabled="true"] > .menulist-dropmarker {
+  -moz-appearance: none;
+  color: -moz-DialogText;
+}
+
+#outgoing_protocol {
+  padding: 6px;
+}
+
+/* Missing:
+ * #outgoing_config
+ */
+
 .config_area {
   padding: 6px;
 }
 
 .settingsbox {
   min-height: 200px;
 }
 
 description.error_notice {
   color: rgb(244,50,50);
 }
 
+/* Missing:
+ * description.heading
+ */
+
 description.explanation {
   padding-top: 1em;
   padding-bottom: 1em;
 }
 
-vbox.statusimage {
-  padding-top: 6px;
-}
-
 #config_status_title {
   font-size: larger;
   font-weight: bold;
 }
 
 #config_status_subtitle {
   font-size: smaller;
   color: GrayText;
   font-style: italic;
 }
 
-label.heading {
-  font-size: larger;
-  font-weight: bolder;
+vbox.statusimage {
+  padding-top: 6px;
 }
 
-row.heading {
-  padding-bottom: 1em;
-}
+/* Missing:
+ * label.bignumber
+ * hbox.stepheading
+ */
 
 window {
   -moz-appearance: none;
   background-color: #fff;
 }
 
 .wizard-header {
   -moz-border-radius-topright: 15px;
@@ -224,48 +161,87 @@ window {
   background-color: #FFFFFF;
   opacity: 0.8;
 }
 
 .header {
   font-weight: bold;
 }
 
+vbox.icon {
+  width: 22px;
+  height: 22px;
+  background-repeat: no-repeat;
+}
+
+image.insecureLarry {
+  height: 64px;
+  width: 64px;
+  padding: 0;
+  list-style-image: url("chrome://global/skin/icons/sslWarning.png");
+}
+
+image.secureLarry {
+  height: 64px;
+  width: 64px;
+  padding: 0;
+  list-style-image: url("chrome://messenger/skin/icons/identity.png");
+}
+
 vbox.mastervbox {
   padding: 14px;
 }
 
+vbox.icon[state='strong'] {
+  background-image: url("chrome://messenger/skin/icons/secure.png");
+}
+
+vbox.icon[state='failed'] {
+  background-image: url("chrome://messenger/skin/icons/failed.png");
+}
+
+vbox.icon[state='probing'] {
+  background-image: url("chrome://messenger/skin/icons/probing.png");
+}
+
+vbox.icon[state='weak'] {
+  background-image: url("chrome://messenger/skin/icons/insecure.png");
+}
+
 .warningbox {
   background: #333333 none repeat scroll 0% 0%;
-  padding: 3em;
+  padding: 1em;
   overflow: auto;
 }
 
 .warning {
-  padding: 3em;
+  padding: 2em;
   -moz-border-radius: 10px;
-  -moz-padding-start: 30px;
   background-color: #772222;
   border: 1px solid threedshadow;
-  margin: 4em auto;
 }
 
 .warning_text {
   color: white;
   font-size: 120%;
 }
 
 .warning-heading {
   border-bottom:1px solid threedlightshadow;
   font-size:160%;
   margin:0 0 0.6em;
 }
 
+.warning_settings {
+  color: yellow;
+  font-weight: bold;
+}
+
 .larrybox {
-  -moz-padding-end: 3em;
+  -moz-padding-end: 2em;
 }
 
 label.linklabel {
   color: yellow;
 }
 
 label.linklabel {
   text-decoration: underline !important;
@@ -294,8 +270,70 @@ vbox.settings {
   padding: 3px;
 }
 
 .popup-panel {
   padding: 2px 3px;
   background-color: #ffffc7;
   max-width: 320px;
 }
+
+label.textbox-label {
+  color: GrayText;
+  font-size: smaller;
+  border-bottom: 1px dotted InactiveBorder;
+}
+
+.protocol,
+textbox.security {
+  width: 8em;
+}
+
+textbox.port {
+  width: 5em;
+}
+
+textbox.host {
+  width: 12em;
+  margin-bottom: 4px !important;
+  margin-top: 4px !important;
+}
+
+menulist.host {
+  width: 12em;
+  margin-bottom: 4px !important;
+  margin-top: 4px !important;
+}
+
+textbox[disabled="true"] {
+  -moz-appearance: none;
+  border: none;
+  padding: 6px;
+  background-color: #fff;
+  color: -moz-DialogText;
+}
+
+label.heading {
+  font-size: larger;
+  font-weight: bolder;
+}
+
+row.heading {
+  padding-bottom: 1em;
+}
+
+/* Missing:
+ * hbox.clickable
+ * hbox.hoverable:hover
+ * textbox.clickable
+ * textbox.editing
+ * textbox.clickable > .textbox-input-box > .textbox-input:hover
+ * textbox.clickable > .textbox-input-box
+ * textbox.clickable > .textbox-input-box > .texbox-input
+ * menulist.clickable
+ * menulist.clickable:hover
+ * menulist.clickable > .menulist-label-box
+ * menulist.clickable > .menulist-label-box:hover
+ * menulist[editable="true"].clickable
+ * menulist[editable="true"].clickable > .menulist-editable-box
+ * menulist[editable="true"].clickable > .menulist-editable-box > .menulist-editable-input
+ * menulist[editable="true"].clickable > .menulist-dropmarker
+ */
--- a/mail/themes/pinstripe/mail/accountCreation.css
+++ b/mail/themes/pinstripe/mail/accountCreation.css
@@ -1,58 +1,314 @@
-hbox.clickable {
-  border-bottom: 1px dotted rgb(200,200,200);
+/* Missing:
+ * .larger-button
+ * .smaller-button
+ */
+
+.clickable_label:hover {
+  text-decoration: underline;
+  cursor: pointer;
+}
+
+.clickable_label {
+  color: blue;
+  width: 120px;
+  padding-top: 6px;
+  -moz-padding-start: 2px;
+  padding-bottom: 5px;
+  overflow: auto;
+}
+
+.short_clickable_label {
+  color: blue;
+  width: 60px;
+  padding-top: 6px;
+  -moz-padding-start: 2px;
+  padding-bottom: 5px;
+  overflow: auto;
+}
+
+.short_not_clickable_label {
+  width: 60px;
+  padding-top: 6px;
+  -moz-padding-start: 2px;
+  padding-bottom: 5px;
+  overflow: auto;
+}
+
+.errordescription {
+  -moz-padding-start: 4px;
+  padding-top: 4px;
+  color: rgb(244,50,50);
+}
+
+.edited_label {
+  width: 123px;
+  overflow: auto;
+}
+
+.short_edited_label {
+  width: 63px;
+  overflow: auto;
+}
+
+.protocol_label {
+  width: 73px;
+  -moz-padding-start: 6px;
+}
+
+/* Missing:
+ * #incoming_config
+ * menulist[disabled="true"]
+ * menulist[disabled="true"] > .menulist-editable-box
+ * menulist[disabled="true"] > .menulist-editable-box > .menulist-editable-input
+ * menulist[disabled="true"] > .menulist-dropmarker
+ * #outgoing_protocol
+ * #outgoing_config
+ */
+
+.config_area {
+  padding: 6px;
 }
 
-hbox.hoverable:hover {
-  background-color: #FCF097;
+.settingsbox {
+  min-height: 200px;
+}
+
+description.error_notice {
+  color: rgb(244,50,50);
+}
+
+description.heading {
+  font-size: larger;
+  padding-bottom: 1em;
+}
+
+description.explanation {
+  padding-top: 1em;
+  padding-bottom: 1em;
+}
+
+/* Missing:
+ * #config_status_title
+ * #config_status_subtitle
+ */
+
+vbox.statusimage {
+  padding-top: 6px;
+}
+
+label.bignumber {
+  font-size: larger;
+  font-weight: bolder;
+  color: white;
+  background-color: rgb(140,140,140);
+  -moz-border-radius: 8px;
+  padding: 8px;
 }
 
-textbox.clickable {
+hbox.stepheading {
+  padding-bottom: 1em;
+}
+
+window {
   -moz-appearance: none;
-  background-color: transparent;
-  border: none;
+}
+
+.wizard-header {
+  -moz-border-radius-topright: 15px;
+  -moz-border-radius-topleft: 15px;
+  margin-top: 70px;
+  -moz-margin-end: 0;
+  -moz-margin-start: 0;
+  border-bottom: none;
+  -moz-padding-start: 14px;
+  -moz-padding-end: 14px;
+  padding-top: 14px;
+}
+
+.wizard-page-box {
+  -moz-border-radius-bottomright: 15px;
+  -moz-border-radius-bottomleft: 15px;
+  margin-top: 0;
+  -moz-margin-end: 0;
+  -moz-margin-start: 0;
+  -moz-padding-start: 14px;
+  -moz-padding-end: 14px;
+  padding-bottom: 14px;
+}
+
+.wizard-header, .wizard-page-box {
+  -moz-appearance: none;
+  background-color: #FFFFFF;
+  opacity: 0.8;
+}
+
+.header {
+  font-weight: bold;
 }
 
 vbox.icon {
   width: 22px;
   height: 22px;
   background-repeat: no-repeat;
 }
 
-image.insecureLarry  {
+image.insecureLarry {
   height: 64px;
   width: 64px;
   padding: 0;
   list-style-image: url("chrome://global/skin/icons/sslWarning.png");
 }
 
-image.secureLarry  {
+image.secureLarry {
   height: 64px;
   width: 64px;
   padding: 0;
   list-style-image: url("chrome://messenger/skin/icons/identity.png");
 }
 
+vbox.mastervbox {
+  padding: 14px;
+}
+
 vbox.icon[state='strong'] {
   background-image: url("chrome://messenger/skin/icons/secure.png");
 }
 
 vbox.icon[state='failed'] {
   background-image: url("chrome://messenger/skin/icons/failed.png");
 }
 
 vbox.icon[state='probing'] {
   background-image: url("chrome://messenger/skin/icons/probing.png");
 }
 
 vbox.icon[state='weak'] {
   background-image: url("chrome://messenger/skin/icons/insecure.png");
 }
 
+.warningbox {
+  background: #333333 none repeat scroll 0% 0%;
+  padding: 1em;
+  overflow: auto;
+}
+
+.warning {
+  padding: 2em;
+  -moz-border-radius: 10px;
+  background-color: #772222;
+  border: 1px solid threedshadow;
+}
+
+.warning_text {
+  color: white;
+  font-size: 120%;
+}
+
+.warning-heading {
+  border-bottom:1px solid threedlightshadow;
+  font-size:160%;
+  margin:0 0 0.6em;
+}
+
+.warning_settings {
+  color: yellow;
+  font-weight: bold;
+}
+
+.larrybox {
+  -moz-padding-end: 2em;
+}
+
+label.linklabel {
+  color: yellow;
+}
+
+label.linklabel {
+  text-decoration: underline !important;
+}
+
+label.linklabel:hover {
+  cursor: move;
+  text-decoration: underline !important;
+}
+
+checkbox.acknowledge_checkbox {
+  padding-top: .5em;
+}
+
+vbox.settings {
+  padding: 1em;
+}
+
+.title {
+  font-weight: bold;
+  padding: 0px 3px;
+}
+
+.details {
+  font-style: italic;
+  padding: 3px;
+}
+
+.popup-panel {
+  padding: 2px 3px;
+  background-color: #ffffc7;
+  max-width: 320px;
+}
+
+/* Missing:
+ * label.textbox-label
+ */
+
+.protocol {
+  width: 8em;
+}
+
+textbox.security {
+  width: 8em;
+}
+
+textbox.port {
+  width: 5em;
+}
+
+textbox.host {
+  width: 14em;
+  margin-bottom: 4px !important;
+  margin-top: 4px !important;
+}
+
+menulist.host {
+  width: 14em;
+  margin-bottom: 4px !important;
+  margin-top: 4px !important;
+}
+
+/* Missing:
+ * textbox[disabled="true"]
+ * label.heading
+ * row.heading
+ */
+
+hbox.clickable {
+  border-bottom: 1px dotted rgb(200,200,200);
+}
+
+hbox.hoverable:hover {
+  background-color: #FCF097;
+}
+
+textbox.clickable {
+  -moz-appearance: none;
+  background-color: transparent;
+  border: none;
+}
+
 textbox.editing {
   border-bottom: 2px solid transparent;
 }
 
 textbox.clickable > .textbox-input-box > .textbox-input:hover {
   -moz-appearance: none;
 }
 
@@ -97,230 +353,8 @@ menulist[editable="true"].clickable > .m
   border-width: 3px;
 }
 
 menulist[editable="true"].clickable > .menulist-dropmarker{
   -moz-appearance: menulist-button;
   display: inline;
 }
 
-textbox.host {
-  width: 12em;
-  margin-bottom: 4px !important;
-  margin-top: 4px !important;
-}
-
-menulist.host {
-  width: 12em;
-  margin-bottom: 4px !important;
-  margin-top: 4px !important;
-}
-
-.protocol {
-  width: 8em;
-}
-
-.port {
-  width: 5em;
-}
-
-.security {
-  width: 8em;
-}
-
-.clickable_label:hover {
-  text-decoration: underline;
-  cursor: pointer;
-}
-
-.clickable_label {
-  color: blue;
-  width: 120px;
-  padding-top: 6px;
-  -moz-padding-start: 2px;
-  padding-bottom: 5px;
-  overflow: auto;
-}
-
-.short_clickable_label {
-  color: blue;
-  width: 60px;
-  padding-top: 6px;
-  -moz-padding-start: 2px;
-  padding-bottom: 5px;
-  overflow: auto;
-}
-
-.short_not_clickable_label {
-  width: 60px;
-  padding-top: 6px;
-  -moz-padding-start: 2px;
-  padding-bottom: 5px;
-  overflow: auto;
-}
-
-.errordescription {
-  -moz-padding-start: 4px;
-  padding-top: 4px;
-  color: rgb(244,50,50);
-}
-
-.edited_label {
-  width: 123px;
-  overflow: auto;
-}
-
-.short_edited_label {
-  width: 63px;
-  overflow: auto;
-}
-
-.protocol_label {
-  width: 73px;
-  -moz-padding-start: 6px;
-}
-
-.config_area {
-  padding: 6px;
-}
-
-.settingsbox {
-  min-height: 200px;
-}
-
-description.error_notice {
-  color: rgb(244,50,50);
-}
-
-description.heading {
-  font-size: larger;
-  padding-bottom: 1em;
-}
-
-description.explanation {
-  padding-top: 1em;
-  padding-bottom: 1em;
-}
-
-vbox.statusimage {
-  padding-top: 6px;
-}
-
-label.bignumber {
-  font-size: larger;
-  font-weight: bolder;
-  color: white;
-  background-color: rgb(140,140,140);
-  -moz-border-radius: 8px;
-  padding: 8px;
-}
-
-hbox.stepheading {
-  padding-bottom: 1em;
-}
-
-window {
-  -moz-appearance: none;
-}
-
-.wizard-header {
-  -moz-border-radius-topright: 15px;
-  -moz-border-radius-topleft: 15px;
-  margin-top: 70px;
-  -moz-margin-end: 0;
-  -moz-margin-start: 0;
-  border-bottom: none;
-  -moz-padding-start: 14px;
-  -moz-padding-end: 14px;
-  padding-top: 14px;
-}
-
-.wizard-page-box {
-  -moz-border-radius-bottomright: 15px;
-  -moz-border-radius-bottomleft: 15px;
-  margin-top: 0;
-  -moz-margin-end: 0;
-  -moz-margin-start: 0;
-  -moz-padding-start: 14px;
-  -moz-padding-end: 14px;
-  padding-bottom: 14px;
-}
-
-.wizard-header, .wizard-page-box {
-  -moz-appearance: none;
-  background-color: #FFFFFF;
-  opacity: 0.8;
-}
-
-.header {
-  font-weight: bold;
-}
-
-vbox.mastervbox {
-  padding: 14px;
-}
-
-.warningbox {
-  background: #333333 none repeat scroll 0% 0%;
-  padding: 3em;
-  overflow: auto;
-}
-
-.warning {
-  padding: 3em;
-  -moz-border-radius: 10px;
-  -moz-padding-start: 30px;
-  background-color: #772222;
-  border: 1px solid threedshadow;
-  margin: 4em auto;
-}
-
-.warning_text {
-  color: white;
-  font-size: 120%;
-}
-
-.warning-heading {
-  border-bottom:1px solid threedlightshadow;
-  font-size:160%;
-  margin:0 0 0.6em;
-}
-
-.larrybox {
-  -moz-padding-end: 3em;
-}
-
-label.linklabel {
-  color: yellow;
-}
-
-label.linklabel {
-  text-decoration: underline !important;
-}
-
-label.linklabel:hover {
-  cursor: move;
-  text-decoration: underline !important;
-}
-
-checkbox.acknowledge_checkbox {
-  padding-top: .5em;
-}
-
-vbox.settings {
-  padding: 1em;
-}
-
-.title {
-  font-weight: bold;
-  padding: 0px 3px;
-}
-
-.details {
-  font-style: italic;
-  padding: 3px;
-}
-
-.popup-panel {
-  padding: 2px 3px;
-  background-color: #ffffc7;
-  max-width: 320px;
-}
--- a/mail/themes/qute/mail/accountCreation.css
+++ b/mail/themes/qute/mail/accountCreation.css
@@ -17,27 +17,36 @@
   color: blue;
   width: 120px;
   padding-top: 6px;
   -moz-padding-start: 2px;
   padding-bottom: 5px;
   overflow: auto;
 }
 
+/* Missing:
+ * .short_clickable_label
+ * .short_not_clickable_label
+ */
+
 .errordescription {
   -moz-padding-start: 4px;
   padding-top: 4px;
   color: rgb(244,50,50);
 }
 
 .edited_label {
   width: 123px;
   overflow: auto;
 }
 
+/* Missing:
+ * .short_edited_label
+ */
+
 .protocol_label {
   width: 73px;
   -moz-padding-start: 6px;
 }
 
 #incoming_config {
   width: 73px;
   padding-top: 6px;
@@ -159,24 +168,24 @@ window {
 }
 
 vbox.icon {
   width: 22px;
   height: 22px;
   background-repeat: no-repeat;
 }
 
-image.insecureLarry  {
+image.insecureLarry {
   height: 64px;
   width: 64px;
   padding: 0;
   list-style-image: url("chrome://global/skin/icons/sslWarning.png");
 }
 
-image.secureLarry  {
+image.secureLarry {
   height: 64px;
   width: 64px;
   padding: 0;
   list-style-image: url("chrome://messenger/skin/icons/identity.png");
 }
 
 vbox.mastervbox {
   padding: 14px;
@@ -195,20 +204,64 @@ vbox.icon[state='probing'] {
 }
 
 vbox.icon[state='weak'] {
   background-image: url("chrome://messenger/skin/icons/insecure.png");
 }
 
 .warningbox {
   background: #333333 none repeat scroll 0% 0%;
-  padding: 3em;
+  padding: 1em;
   overflow: auto;
 }
 
+.warning {
+  padding: 2em;
+  -moz-border-radius: 10px;
+  background-color: #772222;
+  border: 1px solid threedshadow;
+}
+
+.warning_text {
+  color: white;
+  font-size: 120%;
+}
+
+.warning-heading {
+  border-bottom:1px solid threedlightshadow;
+  font-size:160%;
+  margin:0 0 0.6em;
+}
+
+.warning_settings {
+  color: yellow;
+  font-weight: bold;
+}
+
+.larrybox {
+  -moz-padding-end: 2em;
+}
+
+label.linklabel {
+  color: yellow;
+}
+
+label.linklabel {
+  text-decoration: underline !important;
+}
+
+label.linklabel:hover {
+  cursor: move;
+  text-decoration: underline !important;
+}
+
+checkbox.acknowledge_checkbox {
+  padding-top: .5em;
+}
+
 vbox.settings {
   padding: 1em;
 }
 
 .title {
   font-weight: bold;
   padding: 0px 3px;
 }
@@ -218,8 +271,35 @@ vbox.settings {
   padding: 3px;
 }
 
 .popup-panel {
   padding: 2px 3px;
   background-color: #ffffc7;
   max-width: 320px;
 }
+
+/* Missing:
+ * label.textbox-label
+ * .protocol
+ * textbox.security
+ * textbox.port
+ * textbox.host
+ * menulist.host
+ * textbox[disabled="true"]
+ * label.heading
+ * row.heading
+ * hbox.clickable
+ * hbox.hoverable:hover
+ * textbox.clickable
+ * textbox.editing
+ * textbox.clickable > .textbox-input-box > .textbox-input:hover
+ * textbox.clickable > .textbox-input-box
+ * textbox.clickable > .textbox-input-box > .texbox-input
+ * menulist.clickable
+ * menulist.clickable:hover
+ * menulist.clickable > .menulist-label-box
+ * menulist.clickable > .menulist-label-box:hover
+ * menulist[editable="true"].clickable
+ * menulist[editable="true"].clickable > .menulist-editable-box
+ * menulist[editable="true"].clickable > .menulist-editable-box > .menulist-editable-input
+ * menulist[editable="true"].clickable > .menulist-dropmarker
+ */
--- a/mailnews/base/prefs/content/accountcreation/createInBackend.js
+++ b/mailnews/base/prefs/content/accountcreation/createInBackend.js
@@ -54,17 +54,17 @@ function createAccountInBackend(config)
                     .getService(Ci.nsISmtpService);
 
   // incoming server
   var inServer = accountManager.createIncomingServer(
       config.incoming.username,
       config.incoming.hostname,
       sanitize.enum(config.incoming.type, ["pop3", "imap", "nntp"]));
   inServer.port = config.incoming.port;
-  if (config.rememberPassword && config.incoming.password.length);
+  if (config.rememberPassword && config.incoming.password.length)
     rememberPassword(inServer, config.incoming.password);
 
   // SSL
   if (config.incoming.socketType == 1) // plain
     inServer.socketType = Ci.nsIMsgIncomingServer.defaultSocket;
   else if (config.incoming.socketType == 2) // SSL / TLS
     inServer.socketType = Ci.nsIMsgIncomingServer.useSSL;
   else if (config.incoming.socketType == 3) // STARTTLS
--- a/mailnews/base/prefs/content/accountcreation/emailWizard.js
+++ b/mailnews/base/prefs/content/accountcreation/emailWizard.js
@@ -105,27 +105,28 @@ function EmailConfigWizard()
 EmailConfigWizard.prototype =
 {
   _init : function EmailConfigWizard__init()
   {
     gEmailWizardLogger.info("Initializing setup wizard");
     this._probeAbortable = null;
   },
 
-  onLoad : function ()
+  onLoad : function()
   {
     this._email = "";
     this._realname = "";
     this._password = "";
     this._verifiedConfig = false;
     this._userChangedIncomingProtocol = false;
     this._userChangedIncomingPort = false;
     this._userChangedIncomingSocketType = false;
     this._userChangedOutgoingPort = false;
     this._userChangedOutgoingSocketType = false;
+    this._userChangedPassword = false;
 
     this._incomingWarning = 'cleartext';
     this._outgoingWarning = 'cleartext';
     this._userPickedOutgoingServer = false;
 
     if (window.arguments && window.arguments[0] &&
         window.arguments[0].msgWindow)
       this._parentMsgWindow = window.arguments[0].msgWindow;
@@ -134,32 +135,34 @@ EmailConfigWizard.prototype =
     gBrandBundle = document.getElementById("bundle_brand");
 
     // Populate SMTP server dropdown with already configured SMTP servers from
     // other accounts.
     let gSmtpManager = Cc["@mozilla.org/messengercompose/smtp;1"]
                        .getService(Ci.nsISmtpService);
     this._smtpServers = gSmtpManager.smtpServers;
     var menupopup = getElementById("smtp_menupopup");
+    this._smtpServerCount = 0;
     while (this._smtpServers.hasMoreElements())
     {
       var server = this._smtpServers.getNext().QueryInterface(Ci.nsISmtpServer);
+      this._smtpServerCount++;
       var menuitem = document.createElement("menuitem");
       var label = server.displayname;
       if (server.key == gSmtpManager.defaultServer.key)
         label += " " + gStringsBundle.getString("default_server_tag");
 
       menuitem.setAttribute("label", label);
       menuitem.setAttribute("value", server.key);
       menuitem.hostname = server.hostname;
       menupopup.appendChild(menuitem);
     }
     var menulist = getElementById("outgoing_server");
     menulist.addEventListener("command",
-      function() { gEmailConfigWizard.userChangedOutgoing(); }, true);
+      function(event) { gEmailConfigWizard.userChangedOutgoing(event); }, true);
   },
 
   /* When the next button is clicked we've moved from the initial account
    * information stage to using that information to configure account details.
    */
   onNext : function()
   {
     // change the inputs to a flat look
@@ -207,54 +210,87 @@ EmailConfigWizard.prototype =
    *
    * NOTE: The remember password input was skipped purposefully, people should
    *        continue to be able to change that setting even as account details
    *        are determined.
    */
   _accountInfoInputs : function(disabled)
   {
     let ids = ["realname","email","password"];
+    if (disabled && getElementById("password").getAttribute("empty")) {
+      getElementById("password").value = " ";
+      getElementById("password").setAttribute("empty", true);
+      getElementById("remember_password").checked = false;
+    }
+
     for ( let i = 0; i < ids.length; i++ )
       getElementById(ids[i]).disabled = disabled;
+
+    if (!disabled && getElementById("password").getAttribute("empty")) {
+      getElementById("password").value = "";
+      getElementById("password").setAttribute("empty", true);
+      getElementById("remember_password").checked = false;
+    }
   },
 
-  userChangedOutgoing : function ()
+  userChangedOutgoing : function(event)
   {
+    let menulist = getElementById("outgoing_server");
+
+    let selectedIndex = menulist.getIndexOfItem(event.target);
+
+    if (selectedIndex != -1) {
+      getElementById("outgoing_port").value = this._currentConfig.outgoing.port;
+      getElementById("outgoing_security").value = this._currentConfig
+                                                      .outgoing.socketType;
+    }
+
+    if (selectedIndex == -1 || selectedIndex == 0) {
+      this._outgoingState = '';
+      this._userPickedOutgoingServer = false;
+      _show('outgoing_protocol');
+      _show('outgoing_port');
+      _show('outgoing_security');
+      menulist.setAttribute("editable", true);
+      return;
+    }
+    menulist.setAttribute("editable", false);
     this._outgoingState = 'done';
     this._outgoingWarning = '';
 
     if (this._probeAbortable)
       this._probeAbortable.cancel('outgoing');
 
+    // Re-set the outgoing port and security.
     this._userPickedOutgoingServer = true;
     _hide('outgoing_protocol');
     _hide('outgoing_port');
     _hide('outgoing_security');
 
     if (this._incomingState == 'done')
       this.foundConfig(this.getUserConfig());
   },
 
   /* This does very little other than to check that a name was entered at all
    * Since this is such an insignificant test we should be using a very light
    * or even jovial warning.
    */
-  validateRealname : function ()
+  validateRealname : function()
   {
     if (getElementById('realname').value.length > 0)
       this.clearError('nameerror');
     else
       this.setError("nameerror", "name.error");
   },
 
   /*
    * This checks if the email address is at least possibly valid, meaning it
    * has an '@' before the last char.
    */
-  emailAddrValidish : function ()
+  emailAddrValidish : function()
   {
     let emailAddr = getElementById('email').value;
     let atPos = emailAddr.lastIndexOf("@");
     return  atPos > 0 && atPos + 1 < emailAddr.length;
   },
 
   /*
    * onEmailInput and onRealnameInput are called onInput, and just handle
@@ -278,17 +314,17 @@ EmailConfigWizard.prototype =
     else
       _hide("next_button");
    },
 
   /* This check is done on blur and is only done as an informative warning
    * we don't want to block the person if they've entered and email that
    * doesn't conform to our regex
    */
-  validateEmail : function ()
+  validateEmail : function()
   {
     if (getElementById('email').value.length <= 0)
       return;
 
     if (emailRE.test(getElementById('email').value))
       this.clearError('emailerror');
     else
       this.setError("emailerror", "email.error");
@@ -324,21 +360,33 @@ EmailConfigWizard.prototype =
         break;
       case 'outgoing_port':
         this._userChangedOutgoingPort = true;
         this._outgoingState = "";
         break;
     }
   },
   
+  oninputPassword : function()
+  {
+    let passwordElt = getElementById("password");
+    let rememberPasswordElt = getElementById("remember_password");
+    if (passwordElt.value.length < 1) {
+      getElementById("remember_password").checked = false;
+      this._userChangedPassword = false;
+    }
+    else if (!this._userChangedPassword)
+      getElementById("remember_password").checked = true;
+  },
+
   /* If the user just tabbed through the password input without entering
    * anything, set the type back to text so we don't wind up showing the
    * emptytext as bullet characters.
    */
-  onblurPassword : function ()
+  onblurPassword : function()
   {
     let passwordElt = getElementById("password");
     if (passwordElt.value.length < 1)
       passwordElt.type = "text";
   },
 
   findConfig : function(domain, email)
   {
@@ -539,34 +587,27 @@ EmailConfigWizard.prototype =
                                         incoming.hostname,
                                         sanitize.enum(incoming.type,
                                                       ["pop3", "imap", "nntp"]),
                                         incoming.port) == null;
     }
     return isNew;
   },
 
-  toggleAcknowledgeIncoming : function()
+  toggleAcknowledgeWarning : function()
   {
-    this._incomingWarningAcknowledged =
-      getElementById('acknowledge_incoming').checked;
-    this.checkEnableIKnow();
-  },
-
-  toggleAcknowledgeOutgoing : function()
-  {
-    this._outgoingWarningAcknowledged =
-      getElementById('acknowledge_outgoing').checked;
+    this._warningAcknowledged =
+      getElementById('acknowledge_warning').checked;
     this.checkEnableIKnow();
   },
 
   checkEnableIKnow: function()
   {
-    if ((!this._incomingWarning || this._incomingWarningAcknowledged) &&
-        (!this._outgoingWarning || this._outgoingWarningAcknowledged))
+    if ((!this._incomingWarning && !this._outgoingWarning) ||
+        this._warningAcknowledged)
       document.getElementById('iknow').disabled = false;
     else
       document.getElementById('iknow').disabled = true;
   },
 
   onOK : function()
   {
     try {
@@ -580,90 +621,84 @@ EmailConfigWizard.prototype =
         _hide('mastervbox');
         _show('warningbox');
 
         let incomingwarningstring;
         let outgoingwarningstring;
         let incoming_details;
         let outgoing_details;
         let incoming = this._currentConfigFilledIn.incoming;
-        let incomingSettings = incoming.hostname + ':' + incoming.port +
-                                ' (' + sslLabel(incoming.socketType) + ')';
         let outgoing = this._currentConfigFilledIn.outgoing;
-        let outgoingSettings = outgoing.hostname + ':' + outgoing.port +
-                                ' (' + sslLabel(outgoing.socketType) + ')';
         var brandShortName = gBrandBundle.getString("brandShortName");
         switch (this._incomingWarning)
         {
           case 'cleartext':
             incomingwarningstring = gStringsBundle.getFormattedString(
               "incoming_cleartext_warning", [brandShortName, incoming.hostname]);
             incoming_details = gStringsBundle.getString("cleartext_details");
             setText('warning_incoming', incomingwarningstring);
             setText('incoming_details', incoming_details);
-            setText('incomingSettings', incomingSettings);
             _show('incoming_box');
-            _show('acknowledge_incoming');
+            _show('acknowledge_warning');
             break;
           case 'selfsigned':
             incomingwarningstring = gStringsBundle.getFormattedString(
               "incoming_selfsigned_warning", [brandShortName, incoming.hostname]);
             incoming_details = gStringsBundle.getString("selfsigned_details");
             setText('warning_incoming', incomingwarningstring);
             setText('incoming_details', incoming_details);
-            setText('incomingSettings', incomingSettings);
             _show('incoming_box');
-            _show('acknowledge_incoming');
+            _show('acknowledge_warning');
             break;
           case '':
             _hide('incoming_box');
-            _hide('acknowledge_incoming');
+            _hide('acknowledge_warning');
         }
         switch (this._outgoingWarning)
         {
           case 'cleartext':
             outgoingwarningstring = gStringsBundle.getFormattedString(
               "outgoing_cleartext_warning", [brandShortName, outgoing.hostname]);
             outgoing_details = gStringsBundle.getString("cleartext_details");
             setText('warning_outgoing', outgoingwarningstring);
             setText('outgoing_details', outgoing_details);
-            setText('outgoingSettings', outgoingSettings);
             _show('outgoing_box');
-            _show('acknowledge_outgoing');
+            _show('acknowledge_warning');
             break;
           case 'selfsigned':
             outgoingwarningstring = gStringsBundle.getFormattedString(
               "outgoing_selfsigned_warning", [brandShortName, outgoing.hostname]);
             outgoing_details = gStringsBundle.getString("selfsigned_details");
             setText('warning_outgoing', outgoingwarningstring);
             setText('outgoing_details', outgoing_details);
-            setText('outgoingSettings', outgoingSettings);
             _show('outgoing_box');
-            _show('acknowledge_outgoing');
+            _show('acknowledge_warning');
             break;
           case '':
             _hide('outgoing_box');
-            _hide('acknowledge_outgoing');
+            if (this._incomingWarning == '')
+              _hide('acknowledge_warning');
         }
       }
       else
       {
         // no certificate or cleartext issues
         this.validateAndFinish();
       }
 
     } catch (ex) { alertPrompt(gStringsBundle.getString("error_creating_account"), ex); }
   },
 
   getMeOutOfHere : function()
   {
+    // If we're going backwards, we should reset the acknowledge_warning.
+    getElementById('acknowledge_warning').checked = false;
+    this.toggleAcknowledgeWarning();
     _hide('warningbox');
     _show('mastervbox');
-    getElementById('acknowledge_incoming').checked = false;
-    getElementById('acknowledge_outgoing').checked = false;
   },
 
   validateAndFinish : function()
   {
     // if we're coming from the cert warning dialog
     _show('mastervbox');
     _hide('warningbox');
 
@@ -803,59 +838,59 @@ EmailConfigWizard.prototype =
       getElementById("incoming_protocol").value == 1 ? "imap" : "pop3";
     // type is a string, "imap" or "pop3", protocol is a protocol type.
     config.incoming.protocol = sanitize.translate(config.incoming.type, { "imap" : 0, "pop3" : 1});
     config.incoming.socketType = parseInt(getElementById("incoming_security").value);
 
     return config;
   },
 
-  _setIncomingStatus : function (state, details)
+  _setIncomingStatus : function(state, details)
   {
     if (!details)
       details = "";
 
     switch (state)
     {
       case 'strong':
         this._incomingState = 'done';
         this._incomingWarning = '';
         // fall through
       case 'weak':
         this._incomingWarning = details;
-        this._incomingWarningAcknowledged = false;
+        this._warningAcknowledged = false;
         break;
       default:
         this._incomingState = state;
     }
     // since we look for SSL/TLS first, if we get 'weak', we're
     // stuck with it, and might as well admit we're done.
     if (state == 'weak')
       this._incomingState = 'done';
 
     this._setIconAndTooltip('incoming_status', state, details);
   },
 
-  _setOutgoingStatus: function (state, details)
+  _setOutgoingStatus: function(state, details)
   {
     if (!details)
       details = '';
 
     if (this._userPickedOutgoingServer)
       return;
 
     switch (state)
     {
       case 'strong':
         this._outgoingState = 'done';
         this._outgoingWarning = '';
         // fall through
       case 'weak':
         this._outgoingWarning = details;
-        this._outgoingWarningAcknowledged = false;
+        this._warningAcknowledged = false;
         break
       default:
         this._outgoingState = state;
     }
     // since we look for SSL/TLS first, if we get 'weak', we're
     // stuck with it, and might as well admit we're done.
     if (state == 'weak')
       this._outgoingState = 'done';
@@ -913,33 +948,43 @@ EmailConfigWizard.prototype =
     this._setOutgoingStatus('hidden');
   },
 
   /* Setting the config details form so it can be edited.  We also disable
    * (and hide) the create button during this time because we don't know what
    * might have changed.  The function called from the button that restarts
    * the config check should be enabling the config button as needed.
    */
-  editConfigDetails : function() {
+  editConfigDetails : function()
+  {
+    // Add the custom entry to the menulist, if it's not already there.
+    let menulist = getElementById("outgoing_server");
+    if (this._smtpServerCount == menulist.itemCount) {
+      var hostname = getElementById("outgoing_server").value;
+      let menuitem = menulist.insertItemAt(0, hostname, hostname);
+      menuitem.hostname = hostname;
+    }
+
     this._disableConfigDetails(false);
     this._setIncomingStatus('hidden');
     this._setOutgoingStatus('hidden');
     getElementById('create_button').disabled = true;
     _hide("create_button");
     _hide("stop_button");
     _hide("edit_button");
     _show("go_button");
   },
 
   /* This _doesn't_ set create back to enabled, that needs to be done in a
    * config check.  Only showing the button.
    * XXX However it seems that a disabled button can still receive click
    *     events so this needs to be looked into further.
    */
-  goWithConfigDetails : function() {
+  goWithConfigDetails : function()
+  {
     this._disableConfigDetails(true);
     _show("create_button");
   },
 
   // IDs of <textbox> inputs that can have a .value attr set
   _configDetailTextInputs : ["username", "incoming_server",
                              "incoming_port", "incoming_protocol",
                              "outgoing_port"],
@@ -1272,17 +1317,17 @@ EmailConfigWizard.prototype =
       _show(which);
       getElementById(which).textContent = gStringsBundle.getString(msg_name);
     }
     catch(ex) {
       alertPrompt("missing error string", msg_name);
     }
   },
 
-  onKeyDown : function (event)
+  onKeyDown : function(event)
   {
     let key = event.keyCode;
     if (key == 27) {
       this.onCancel();
       return true;
     }
     if (key == 13 && !getElementById('create_button').hidden) {
       this.onOK();
--- a/mailnews/base/prefs/content/accountcreation/emailWizard.xul
+++ b/mailnews/base/prefs/content/accountcreation/emailWizard.xul
@@ -187,23 +187,25 @@
               </row>
               <row align="center">
                 <!-- this starts out as text so the emptytext shows, but then
                      changes to type=password once it's not empty -->
                 <textbox id="password"
                          class="padded"
                          emptytext="&password.description;"
                          type="text"
+                         oninput="gEmailConfigWizard.oninputPassword();"
                          onfocus="this.type='password';"
                          onblur="gEmailConfigWizard.onblurPassword();"/>
               </row>
               <row align="center">
                 <checkbox id="remember_password"
                           accesskey="&rememberPassword.accesskey;"
-                          label="&rememberPassword.label;" checked="true"/>
+                          onclick="gEmailConfigWizard._userChangedPassword=true;"
+                          label="&rememberPassword.label;" checked="false"/>
               </row>
               <row>
                 <hbox pack="end">
                   <button id="next_button"
                           hidden="true"
                           oncommand="gEmailConfigWizard.onNext();"
                           accesskey="&next.accesskey;"
                           label="&next.label;" class="larger-button"/>
@@ -250,23 +252,23 @@
                              src="chrome://global/skin/icons/loading_16.png"
                              hidden="true"/>
                       </vbox>
                     </hbox>
                   </hbox>
                 </vbox>
                 <vbox id="usernamearea">
                   <label class="textbox-label" value="&username.label;"
-                          control="username"/>
+                         control="username"/>
                   <hbox>
                     <vbox class="statusimage" width="22"/>
-                      <textbox id="username"
-                               value=""
-                               disabled="true"
-                               class="username"/>
+                    <textbox id="username"
+                             value=""
+                             disabled="true"
+                             class="username"/>
                   </hbox>
                 </vbox>
                 <vbox id="incomingarea">
                   <label class="textbox-label" value="&receivingServer.label;"
                           control="incoming_server"/>
                   <hbox>
                     <vbox id="incoming_status" class="icon" width="22"/>
                     <hbox>
@@ -277,16 +279,17 @@
                     </hbox>
                   </hbox>
                   <hbox>
                     <spacer height="30" width="22"/>
                     <hbox>
                       <menulist id="incoming_protocol"
                                 value=""
                                 disabled="true"
+                                sizetopopup="none"
                                 class="protocol">
                         <menupopup onpopuphidden="gEmailConfigWizard.setIncomingProtocol()">
                           <menuitem label="&imap.label;" value="1"/>
                           <menuitem label="&pop.label;" value="2"/>
                         </menupopup>
                       </menulist>
                     </hbox>
                     <hbox>
@@ -295,58 +298,61 @@
                                disabled="true"
                                oninput="gEmailConfigWizard.setPort('incoming_port')"
                                class="port"/>
                     </hbox>
                     <hbox>
                       <menulist id="incoming_security"
                                 value=""
                                 disabled="true"
+                                sizetopopup="none"
                                 class="security">
                         <menupopup onpopuphidden="gEmailConfigWizard.setSecurity('incoming_security')">
                           <menuitem label="&noEncryption.label;" value="1"/>
                           <menuitem label="&starttls.label;" value="3"/>
                           <menuitem label="&sslTls.label;" value="2"/>
                         </menupopup>
                       </menulist>
                     </hbox>
                   </hbox>
                 </vbox>
                 <vbox id="outgoingarea">
                   <label class="textbox-label" value="&sendingServer.label;"
-                          control="outgoing_server"/>
+                         control="outgoing_server"/>
                   <hbox>
                     <vbox id="outgoing_status" class="icon" width="22"/>
                     <hbox>
                       <menulist id="outgoing_server"
                                 class="host uri-element"
-                                disabled="false"
+                                disabled="true"
+                                sizetopopup="none"
                                 editable="true" >
                               <!-- oncommand, and onchange and onmousedown of menulist's inputfield, set in ctor -->
                         <menupopup id="smtp_menupopup"/>
                       </menulist>
                     </hbox>
                   </hbox>
                   <hbox>
                     <spacer height="30" width="22"/>
-                    <hbox>
+                    <hbox align="center">
                       <label id="outgoing_protocol"
                              class="protocol" value="&smtp.label;"/>
                     </hbox>
                     <hbox>
                       <textbox id="outgoing_port"
                                value=""
                                disabled="true"
                                oninput="gEmailConfigWizard.setPort('outgoing_port')"
                                class="port"/>
                     </hbox>
                     <hbox>
                       <menulist id="outgoing_security"
                                 value=""
                                 disabled="true"
+                                sizetopopup="none"
                                 class="security">
                         <menupopup onpopuphidden="gEmailConfigWizard.setSecurity('outgoing_security')">
                           <menuitem label="&noEncryption.label;" value="1"/>
                           <menuitem label="&starttls.label;" value="3"/>
                           <menuitem label="&sslTls.label;" value="2"/>
                         </menupopup>
                       </menulist>
                     </hbox>
@@ -383,45 +389,31 @@
       <vbox class="larrybox">
         <image id="insecure_larry" class="insecureLarry"/>
       </vbox>
       <vbox flex="1">
         <vbox class="warning_text" flex="1">
           <label class="warning-heading">&warning.label;</label>
           <description id="warning_description"/>
           <vbox id="incoming_box" flex="1">
+            <label class="warning_settings" value="&incomingSettings.label;"/>
             <description id="warning_incoming"/>
-            <vbox class="settings">
-              <description id="incoming_details"/>
-              <hbox>
-                <label value="&incomingSettings.label;"/><label id="incomingSettings"/>
-              </hbox>
-              <checkbox id="acknowledge_incoming"
-                        class="acknowledge_checkbox"
-                        label="&confirmIncomingWarning.label;"
-                        accesskey="&confirmIncomingWarning.accesskey;"
-                        oncommand="gEmailConfigWizard.toggleAcknowledgeIncoming()"/>
-            </vbox>
+            <description id="incoming_details"/>
           </vbox>
           <vbox id="outgoing_box" flex="1">
+            <label class="warning_settings" value="&outgoingSettings.label;"/>
             <description id="warning_outgoing"/>
-            <vbox class="settings">
-              <description id="outgoing_details"/>
-              <hbox>
-                <label value="&outgoingSettings.label;"/><label id="outgoingSettings"/>
-              </hbox>
-              <checkbox id="acknowledge_outgoing"
-                        class="acknowledge_checkbox"
-                        label="&confirmOutgoingWarning.label;"
-                        accesskey="&confirmOutgoingWarning.accesskey;"
-                        oncommand="gEmailConfigWizard.toggleAcknowledgeOutgoing()"/>
-            </vbox>
+            <description id="outgoing_details"/>
           </vbox>
-          <spacer flex="1"/>
           <description id="findoutmore">&contactYourProvider.description;</description>
+          <checkbox id="acknowledge_warning"
+                    class="acknowledge_checkbox"
+                    label="&confirmWarning.label;"
+                    accesskey="&confirmWarning.accesskey;"
+                    oncommand="gEmailConfigWizard.toggleAcknowledgeWarning()"/>
         </vbox>
         <spacer flex="1"/>
         <hbox>
           <button id="getmeoutofhere" label="&changeSettings.label;"
                   accesskey="&changeSettings.accesskey;"
                   oncommand="gEmailConfigWizard.getMeOutOfHere()"/>
           <spacer flex="1"/>
           <button id="iknow" label="&createAccount.label;" disabled="true"