diff --git a/build.xml b/build.xml
index b80f6fd12..da8cfc4c2 100644
--- a/build.xml
+++ b/build.xml
@@ -297,9 +297,6 @@
-
-
-
@@ -319,6 +316,16 @@
+
+
+
+
+
+
+
+
+
+
@@ -364,7 +371,7 @@
-
+
@@ -374,9 +381,6 @@
-
-
-
diff --git a/apps/routerconsole/jsp/default.css b/installer/resources/themes/console/classic/console.css
similarity index 100%
rename from apps/routerconsole/jsp/default.css
rename to installer/resources/themes/console/classic/console.css
diff --git a/installer/resources/themes/console/classic/default.css b/installer/resources/themes/console/classic/default.css
new file mode 100644
index 000000000..88aa40d7f
--- /dev/null
+++ b/installer/resources/themes/console/classic/default.css
@@ -0,0 +1,182 @@
+body {
+ margin : 0px;
+ padding : 0px;
+ text-align : center;
+ font-family : Arial, Helvetica, sans-serif;
+ background-color : #ffffff;
+ color : #000000;
+ font-size : 100%;
+
+ /* we've avoided Tantek Hacks so far,
+ ** but we can't avoid using the non-w3c method of
+ ** box rendering. (and therefore one of mozilla's
+ ** proprietry -moz properties (which hopefully they'll
+ ** drop soon).
+ */
+ -moz-box-sizing : border-box;
+ box-sizing : border-box;
+}
+
+div {
+ -moz-box-sizing : border-box;
+ box-sizing : border-box;
+}
+
+h4, label {
+ margin : 0px;
+ padding : 2px;
+ float : left;
+ width : 150px;
+ height : 24px;
+ font-weight : bold;
+ text-align : right;
+ font-size : 1.0em;
+ -moz-box-sizing: border-box;
+ box-sizing : border-box;
+}
+
+h4 {
+ font-size : 1.2em;
+ text-align : center;
+ width : 750px;
+}
+
+a {
+ text-decoration : none;
+}
+
+form {
+ margin : 0px;
+}
+
+textarea, input, select, button, a {
+ font-family : Arial, Helvetica, sans-serif;
+ -moz-box-sizing : border-box;
+ box-sizing : border-box;
+ font-size : 1.0em;
+ float : left;
+}
+
+button {
+ float : none;
+}
+
+textarea {
+ border : 1px solid #ddddc0;
+}
+
+br {
+ clear : left;
+}
+
+div.statusNotRunning {
+ float : left;
+ width : 82px;
+ height : 24px;
+ color : #dd0000;
+}
+div.statusRunning {
+ float : left;
+ width : 82px;
+ height : 24px;
+ color : #00dd00;
+}
+div.statusStarting {
+ float : left;
+ width : 82px;
+ height : 24px;
+ color : #339933;
+}
+
+hr {
+ display : none;
+}
+
+.separator, .subdivider {
+ clear : both;
+ height : 1px;
+ margin : 3px 0px 3px 0px;
+ border-bottom : 1px solid #ddddc0;
+}
+
+.subdivider {
+ border-bottom : 1px dashed #ddddc0;
+}
+
+.freetext {
+ width : 150px;
+ height : 22px;
+ border : 1px solid #aaaac0;
+}
+
+.control {
+ margin : 0 4px 0 0;
+ padding : 0 0 4px 0;
+ overflow : hidden;
+ height : 20px;
+ width : 60px;
+ font-weight : normal;
+ background-color : #dddddd;
+ color : black;
+ border : 1px outset #ddddc0;
+ text-align : center;
+ white-space : nowrap;
+}
+
+.control:hover {
+ background-color : #ffffed;
+}
+
+.control:active {
+ border : 2px inset;
+}
+
+.panel {
+ width : 760px;
+ margin : 16px auto 16px auto;
+ overflow : hidden;
+ text-align : left;
+ font-size : 0.8em;
+ background-color : #ffffef;
+ border : 4px solid #ffffd0;
+}
+
+.panel .footer {
+ float : right;
+ padding : 4px;
+}
+
+.toolbox {
+ float : right;
+}
+
+.rowItem {
+ width : 750px;
+ float : left;
+ margin : 0px;
+}
+
+.comment {
+ font-style : italic;
+}
+
+.text {
+ height : 24px;
+ width : 150px;
+ padding : 2px 0 0 2px;
+ float : left;
+ margin : 0;
+}
+
+.accessKey {
+ text-decoration : underline;
+}
+
+#globalOperationsPanel {
+ background-color : #ffefef;
+ border : 4px solid #ffd0d0;
+}
+
+#globalOperationsPanel .control {
+ width : 100px;
+}
diff --git a/installer/resources/themes/console/classic/i2ptunnel.css b/installer/resources/themes/console/classic/i2ptunnel.css
new file mode 100644
index 000000000..814cab892
--- /dev/null
+++ b/installer/resources/themes/console/classic/i2ptunnel.css
@@ -0,0 +1,178 @@
+/* I2P Tunnel Edit Page
+*/
+
+#tunnelEditPage input {
+ width : 458px;
+}
+
+#tunnelEditPage select {
+ width : 308px;
+}
+
+#tunnelEditPage option[selected] {
+ color: green;
+}
+
+#tunnelEditPage #targetField,
+#tunnelEditPage #accessField,
+#tunnelEditPage #optionsField {
+ height : 48px;
+ width : 150px;
+}
+#tunnelEditPage #tunnelOptionsField {
+ height : 96px;
+ width : 150px;
+}
+
+#tunnelEditPage #targetField label,
+#tunnelEditPage #accessField label,
+#tunnelEditPage #tunnelOptionsField label,
+#tunnelEditPage #optionsField label{
+ height : 48px;
+ width : 150px;
+}
+
+#tunnelEditPage #reachField,
+#tunnelEditPage #hostField,
+#tunnelEditPage #depthField,
+#tunnelEditPage #countField,
+#tunnelEditPage #optionsHostField {
+ width : 304px;
+ margin-right: 4px;
+}
+
+#tunnelEditPage #portField,
+#tunnelEditPage #optionsPortField,
+#tunnelEditPage #backupField,
+#tunnelEditPage #varianceField {
+ width : 150px;
+
+}
+
+#tunnelEditPage #reachField label,
+#tunnelEditPage #hostField label,
+#tunnelEditPage #portField label,
+#tunnelEditPage #optionsHostField label,
+#tunnelEditPage #optionsPortField label,
+#tunnelEditPage #depthField label,
+#tunnelEditPage #countField label,
+#tunnelEditPage #backupField label,
+#tunnelEditPage #varianceField label {
+ text-align : left;
+
+}
+
+#tunnelEditPage #otherField label {
+ width : 300px;
+}
+
+#tunnelEditPage #reachableByOther,
+#tunnelEditPage #tunnelDepth,
+#tunnelEditPage #tunnelQuantity,
+#tunnelEditPage #targetHost,
+#tunnelEditPage #clientHost {
+ width : 306px;
+}
+
+#tunnelEditPage #port {
+ width : 80px;
+}
+
+#tunnelEditPage #targetPort,
+#tunnelEditPage #clientPort,
+#tunnelEditPage #tunnelBackupQuantity,
+#tunnelEditPage #tunnelVariance {
+ width : 150px;
+}
+
+#tunnelEditPage #shared,
+#tunnelEditPage #connectDelay,
+#tunnelEditPage #startOnLoad {
+ width : 16px;
+}
+
+#tunnelEditPage label {
+ width : 150px;
+ font-weight : bold;
+ text-align : right;
+ float : left;
+}
+
+/* I2P Tunnel List Page
+*/
+
+#tunnelListPage .rowItem {
+ width : 150px;
+}
+
+#tunnelListPage select {
+ width : 150px;
+}
+
+#tunnelListPage textarea {
+ width : 750px;
+ height : 100px;
+ padding : 0 0 0 4px;
+}
+
+#tunnelListPage .footer .control {
+ margin-left: 2px;
+}
+
+#tunnelListPage .footer label {
+ text-align : right;
+ height : 24px;
+ width : 360px;
+ float : left;
+
+}
+
+/* Use Leary and Langridge content replacement methods (LIR)
+** to embed accessibility information into the document.
+** Should allow the lists to be rendered nicely by
+** screen readers. (and lynx!)
+*/
+
+#tunnelListPage label {
+ height : 0;
+ width : 0;
+ overflow : hidden;
+}
+
+#tunnelListPage .nameHeaderField label,
+#tunnelListPage .portHeaderField label,
+#tunnelListPage .typeHeaderField label,
+#tunnelListPage .interfaceHeaderField label,
+#tunnelListPage .targetHeaderField label,
+#tunnelListPage .previewHeaderField label,
+#tunnelListPage .statusHeaderField label {
+ text-align : left;
+ width : 150px;
+ height : 24px;
+ float : left;
+}
+
+#tunnelListPage .targetField,
+#tunnelListPage .targetField .text,
+#tunnelListPage .targetHeaderField,
+#tunnelListPage .targetHeaderField label {
+ width : 300px;
+}
+
+#tunnelListPage .descriptionField,
+#tunnelListPage .destinationField {
+ width : 750px;
+}
+
+#tunnelListPage .descriptionField .text,
+#tunnelListPage .destinationField input {
+ width : 450px;
+}
+
+#tunnelListPage .descriptionField label,
+#tunnelListPage .destinationField label {
+ text-align : right;
+ width : 150px;
+ height : 24px;
+ float : left;
+}
diff --git a/installer/resources/themes/console/console.css b/installer/resources/themes/console/console.css
new file mode 100644
index 000000000..99077d1e0
--- /dev/null
+++ b/installer/resources/themes/console/console.css
@@ -0,0 +1,112 @@
+body {
+ font-family: Verdana, Tahoma, Helvetica, sans-serif;
+ margin: 1em 0em;
+ padding: 0em;
+ text-align: center;
+ background-color: white;
+ color: black;
+ font-size: 100%;
+}
+
+.hide {
+ display: none;
+}
+
+img {
+ border: none;
+}
+
+pre {
+ width: 100%;
+ overflow-x: scroll;
+}
+
+div.logo {
+ float: left;
+ width: 200px;
+ left: 1em;
+ top: 1em;
+ margin: 0em;
+ padding: .5em;
+ text-align: center;
+}
+
+div.toolbar {
+ margin: 0em 0em 2em 0em;
+ font-weight: bold;
+}
+
+div.routersummaryouter {
+ float: left;
+ width: 215px;
+ margin: 0;
+ padding: 0;
+ border: 0;
+ clear: left; /* fixes a bug in Opera */
+ overflow: auto;
+}
+
+div.routersummary {
+ background-color: #fafaff;
+ width: 195px;
+ color: inherit;
+ margin: 0em;
+ padding: 5px;
+ text-align: left;
+ border: medium solid #efefff;
+ font-size: 0.82em;
+}
+
+div.warning {
+ margin: 0em 1em 1em 224px;
+ padding: .5em 1em;
+ background-color: #ffefef;
+ border: medium solid #ffafaf;
+ text-align: left;
+ color: inherit;
+}
+
+div.main {
+ margin: 0em 1em 1em 224px;
+ padding: .5em 1em;
+ background-color: #ffffef;
+ border: medium solid #ffffd0;
+ text-align: left;
+ color: inherit;
+}
+
+div.main textarea {
+ width: 100% !important;
+}
+
+div.news {
+ margin: 0em 1em 1em 224px;
+ padding: .5em 1em;
+ background-color: #ffffc0;
+ border: medium solid #ffffa0;
+ text-align: left;
+ color: inherit;
+}
+
+div.confignav {
+ padding: 1em;
+ background-color: #efefff;
+}
+
+div.configure {
+ padding: 1em;
+ background-color: #ffffc0;
+}
+
+div.messages {
+ padding: 1em;
+ background-color: #fafaff;
+}
+
+div.messages span.error {
+ color: #d00000;
+}
+
+div.messages span.notice {
+ font-style: italic;
+}
diff --git a/installer/resources/themes/console/defCon1/console.css b/installer/resources/themes/console/defCon1/console.css
new file mode 100644
index 000000000..99077d1e0
--- /dev/null
+++ b/installer/resources/themes/console/defCon1/console.css
@@ -0,0 +1,112 @@
+body {
+ font-family: Verdana, Tahoma, Helvetica, sans-serif;
+ margin: 1em 0em;
+ padding: 0em;
+ text-align: center;
+ background-color: white;
+ color: black;
+ font-size: 100%;
+}
+
+.hide {
+ display: none;
+}
+
+img {
+ border: none;
+}
+
+pre {
+ width: 100%;
+ overflow-x: scroll;
+}
+
+div.logo {
+ float: left;
+ width: 200px;
+ left: 1em;
+ top: 1em;
+ margin: 0em;
+ padding: .5em;
+ text-align: center;
+}
+
+div.toolbar {
+ margin: 0em 0em 2em 0em;
+ font-weight: bold;
+}
+
+div.routersummaryouter {
+ float: left;
+ width: 215px;
+ margin: 0;
+ padding: 0;
+ border: 0;
+ clear: left; /* fixes a bug in Opera */
+ overflow: auto;
+}
+
+div.routersummary {
+ background-color: #fafaff;
+ width: 195px;
+ color: inherit;
+ margin: 0em;
+ padding: 5px;
+ text-align: left;
+ border: medium solid #efefff;
+ font-size: 0.82em;
+}
+
+div.warning {
+ margin: 0em 1em 1em 224px;
+ padding: .5em 1em;
+ background-color: #ffefef;
+ border: medium solid #ffafaf;
+ text-align: left;
+ color: inherit;
+}
+
+div.main {
+ margin: 0em 1em 1em 224px;
+ padding: .5em 1em;
+ background-color: #ffffef;
+ border: medium solid #ffffd0;
+ text-align: left;
+ color: inherit;
+}
+
+div.main textarea {
+ width: 100% !important;
+}
+
+div.news {
+ margin: 0em 1em 1em 224px;
+ padding: .5em 1em;
+ background-color: #ffffc0;
+ border: medium solid #ffffa0;
+ text-align: left;
+ color: inherit;
+}
+
+div.confignav {
+ padding: 1em;
+ background-color: #efefff;
+}
+
+div.configure {
+ padding: 1em;
+ background-color: #ffffc0;
+}
+
+div.messages {
+ padding: 1em;
+ background-color: #fafaff;
+}
+
+div.messages span.error {
+ color: #d00000;
+}
+
+div.messages span.notice {
+ font-style: italic;
+}