From e118c076ca28d3c5e7985732c74b3ce01d68fcf6 Mon Sep 17 00:00:00 2001
From: echicken <>
Date: Sun, 14 Aug 2011 23:04:13 +0000
Subject: [PATCH] Initial commit.

---
 web/root/ecWeb/themes/blacktastic/layout.ssjs |  69 +++++
 web/root/ecWeb/themes/blacktastic/style.css   | 214 ++++++++++++++++
 .../ecWeb/themes/blocktastic-r/layout.ssjs    |  69 +++++
 web/root/ecWeb/themes/blocktastic-r/style.css | 235 ++++++++++++++++++
 web/root/ecWeb/themes/blocktastic/layout.ssjs |  69 +++++
 web/root/ecWeb/themes/blocktastic/style.css   | 235 ++++++++++++++++++
 web/root/ecWeb/themes/hotdogstand/layout.ssjs |  69 +++++
 web/root/ecWeb/themes/hotdogstand/style.css   | 220 ++++++++++++++++
 web/root/ecWeb/themes/shitenade/layout.ssjs   |  69 +++++
 web/root/ecWeb/themes/shitenade/style.css     | 216 ++++++++++++++++
 .../ecWeb/themes/stocktastic-r/layout.ssjs    |  69 +++++
 web/root/ecWeb/themes/stocktastic-r/style.css | 216 ++++++++++++++++
 web/root/ecWeb/themes/stocktastic/layout.ssjs |  69 +++++
 web/root/ecWeb/themes/stocktastic/style.css   | 216 ++++++++++++++++
 14 files changed, 2035 insertions(+)
 create mode 100644 web/root/ecWeb/themes/blacktastic/layout.ssjs
 create mode 100644 web/root/ecWeb/themes/blacktastic/style.css
 create mode 100644 web/root/ecWeb/themes/blocktastic-r/layout.ssjs
 create mode 100644 web/root/ecWeb/themes/blocktastic-r/style.css
 create mode 100644 web/root/ecWeb/themes/blocktastic/layout.ssjs
 create mode 100644 web/root/ecWeb/themes/blocktastic/style.css
 create mode 100644 web/root/ecWeb/themes/hotdogstand/layout.ssjs
 create mode 100644 web/root/ecWeb/themes/hotdogstand/style.css
 create mode 100644 web/root/ecWeb/themes/shitenade/layout.ssjs
 create mode 100644 web/root/ecWeb/themes/shitenade/style.css
 create mode 100644 web/root/ecWeb/themes/stocktastic-r/layout.ssjs
 create mode 100644 web/root/ecWeb/themes/stocktastic-r/style.css
 create mode 100644 web/root/ecWeb/themes/stocktastic/layout.ssjs
 create mode 100644 web/root/ecWeb/themes/stocktastic/style.css

diff --git a/web/root/ecWeb/themes/blacktastic/layout.ssjs b/web/root/ecWeb/themes/blacktastic/layout.ssjs
new file mode 100644
index 0000000000..fd20ee2182
--- /dev/null
+++ b/web/root/ecWeb/themes/blacktastic/layout.ssjs
@@ -0,0 +1,69 @@
+function openPage(pageTitle) {
+	// Print the initial HTML tags
+	print("<html>");
+	print("<head>");
+	print("<link rel=stylesheet type=text/css href=" + eval(webIni.webUrl) + "/themes/" + webIni.theme + "/style.css />");
+	print("<title>" + pageTitle + "</title>");
+	print("<script language=javascript type=text/javascript src=" + eval(webIni.webUrl) + "/lib/clientLib.js></script>");
+	print("</head>");
+	print("<body class='standardFont backdropColor'>");
+	print("<center>");
+
+	// Open the container
+	print("<div id='container' class='standardBorder standardColor'>");
+
+	// Draw the header
+	print("<div id='header' class='standardBorder titleFont'>");
+	print("<div class='standardMargin'>");
+	print(eval(webIni.headerText));
+	print("</div>");
+	print("</div>");
+
+	// Draw the sidebar
+	print("<div id='sidebar'>");
+	print("<div style=margin:10px;>"); // Uh oh - a hard-coded value :|
+	// Load the sidebar widgets
+	var c = 0;
+	var d = directory(webIni.webRoot + "/sidebar/*");
+	for(var f in d) {
+		print("<div class='sidebarBox standardBorder standardPadding underMargin'>");
+		if(file_getext(d[f]).toUpperCase() == ".SSJS" || file_getext(d[f]).toUpperCase() == ".JS") load(d[f]);
+		if(file_getext(d[f]).toUpperCase() == ".TXT" || file_getext(d[f]).toUpperCase() == ".HTML") {
+			var handle = new File(d[f]);
+			handle.open("r");
+			var printme = handle.read();
+			handle.close();
+			if(file_getext(d[f]).toUpperCase() == ".TXT") printme = "<pre>" + printme + "</pre>";
+			print(printme);
+		}
+		c++;
+		print("</div>");
+	}
+	print("</div>");
+	print("</div>");
+	
+	// Main content box opens here
+	print("<div id='content'>");
+	print("<div class='standardMargin'>");
+}
+
+function closePage() {
+	print("</div>");
+	print("</div>");
+	// Close the main content box
+
+	// Draw the footer
+	print("<div id='footer' class='standardBorder'>");
+	print("<div class='standardMargin'>");
+	print(eval(webIni.footerText));
+	print("</div>");
+	print("</div>");
+
+	print("</div>");
+	// Close the container
+
+	// Close out the remaining HTML
+	print("</center>");
+	print("</body>");
+	print("</html>");
+}
diff --git a/web/root/ecWeb/themes/blacktastic/style.css b/web/root/ecWeb/themes/blacktastic/style.css
new file mode 100644
index 0000000000..413ee1e4ba
--- /dev/null
+++ b/web/root/ecWeb/themes/blacktastic/style.css
@@ -0,0 +1,214 @@
+/* blacktastic v2 by echicken */
+
+/* HTML input elements, (eg. text inputs, buttons.) */
+input {
+	border-style: solid;
+	border-width: 1px;
+	border-color: #FFFFFF;
+	color: #FFFFFF;
+	background-color: #000000;
+}
+
+textarea {
+	border-style: solid;
+	border-width: 1px;
+	border-color: #FFFFFF;
+	color: #FFFFFF;
+	background-color: #000000;
+}
+
+/* The background of the top level of the page */
+.backdropColor {
+	background-color: #000000;
+}
+
+/* Colors applied to heading boxes in the forum (eg. board names) */
+.subBoardHeaderColor {
+	background-color: #666666;
+	color: #000000;
+}
+
+/* Colors applied to boxes below the heading boxes in the forum (eg. messages) */
+.messageBoxColor {
+	background-color: #666666;
+	color: #000000;
+}
+
+/* The font that is used most of the time. */
+.standardFont {
+	font-family: arial,helvetica;
+	font-size: 10pt;
+}
+
+/* The font used in the page header and for page titles (eg. "Message Forum") */
+.titleFont {
+	font-size: 16pt;
+	font-weight: bold;
+}
+
+/* The font that is used for items such as message subjects and message group names. */
+.headingFont {
+	/* Message group names, subject lines */
+	font-weight: bold;
+}
+
+/* Set a font-family, etc. here if you want a different (eg. monospace) font
+   for messages in the forum. */
+.messageFont {
+
+}
+
+/* The foreground and background colors used most in most places. */
+.standardColor {
+	color: #FFFFFF;
+	background-color: #000000;
+}
+
+/* The border that is drawn around the various 'boxes' that make up each page. */
+.standardBorder {
+	border-style: solid;
+	border-width: 1px;
+}
+
+/* The buffer between certain elements. Best left as is. */
+.standardMargin {
+	margin: 10px;
+}
+
+/* The buffer between certain elements' borders and their contents. Best left as is. */
+.standardPadding {
+	padding: 10px;
+}
+
+/* The buffer between certain elements and the elements below them. Best left as is. */
+.underMargin {
+	margin-bottom: 10px;
+}
+
+/* The amount certain items are indented (particularly in the forum.) */
+.treeIndent {
+	margin-left: 40px;
+}
+
+/* As above, but for items that need to be indented even more. */
+.subTreeIndent {
+	margin-left: 80px;
+}
+
+/* By default, the inverse of .standardColor. Not currently used. */
+.reverseColor {
+	color: #000000;
+	background-color: #FFFFFF;
+}
+
+/* For use with <hr>, draws a thin, solid line. Deprecated and not currently used. */
+.line {
+	width: 100%;
+	border: 0;
+	color: #FFFFFF;
+	background-color: #FFFFFF;
+	height: 1px;
+}
+
+/* The style applied to most hyperlinks. */
+.link { 
+	text-decoration: none;
+	font-weight: bold;
+}
+
+.link:link  {
+	color: #FFFFFF;
+	background-color: #000000;
+}
+
+.link:visited {
+	color: #FFFFFF;
+	background-color: #000000;
+}
+
+.link:hover {
+	color: #000000;
+	background-color: #FFFFFF;
+}
+
+.link:active {
+	color: #000000;
+	background-color: #FFFFFF;
+}
+
+/* The style applied to certain hyperlinks, especially in the forum. */
+.ulLink { 
+	text-decoration: none;
+	font-weight: bold;
+}
+
+.ulLink:link  {
+	color: #000000;
+}
+
+.ulLink:visited {
+	color: #000000;
+}
+
+.ulLink:hover {
+	color: #000000;
+	text-decoration: underline;
+}
+
+.ulLink:active {
+	color: #000000;
+	text-decoration: underline;
+}
+
+.textFile {
+	width: 765px;
+	/* Wrapping stuff from http://www.longren.org/wrapping-text-inside-pre-tags/ */
+	white-space: pre-wrap;       /* css-3 */
+	white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
+	white-space: -pre-wrap;      /* Opera 4-6 */
+	white-space: -o-pre-wrap;    /* Opera 7 */
+	word-wrap: break-word;       /* Internet Explorer 5.5+ */
+}
+
+/* This is the container that holds the header, footer, sidebar, and main
+   content of the page. (eg. the white box hovering over the grey backdrop
+   in the 'stocktastic' theme.) */
+#container {
+	width: 1024px;
+	text-align: left;
+}
+
+/* This is the container that holds the header content. (eg. system.name) */
+#header {
+	width: 1024px;
+	clear: both;
+	border-style: none none solid none;
+}
+
+/* This is the container that holds the sidebar widgets. */
+#sidebar {
+	width: 255px;
+	float: left;
+	border-style: none;
+}
+
+/* Styles for the sidebar widget boxes can be set here. */
+.sidebarBox {
+}
+
+/* This is the container that holds the main content of the page (eg. the 
+   portion below the header, beside the sidebar, above the footer.) */
+#content {
+	width: 765px;
+	float: right;
+}
+
+/* This is the container that holds the footer content. (eg. a Synchronet
+   version statement.) */
+#footer {
+	width: 1024px;
+	clear: both;
+	border-style: solid none none none;
+	text-align: right;
+	font-style: italic;
+}
diff --git a/web/root/ecWeb/themes/blocktastic-r/layout.ssjs b/web/root/ecWeb/themes/blocktastic-r/layout.ssjs
new file mode 100644
index 0000000000..fd20ee2182
--- /dev/null
+++ b/web/root/ecWeb/themes/blocktastic-r/layout.ssjs
@@ -0,0 +1,69 @@
+function openPage(pageTitle) {
+	// Print the initial HTML tags
+	print("<html>");
+	print("<head>");
+	print("<link rel=stylesheet type=text/css href=" + eval(webIni.webUrl) + "/themes/" + webIni.theme + "/style.css />");
+	print("<title>" + pageTitle + "</title>");
+	print("<script language=javascript type=text/javascript src=" + eval(webIni.webUrl) + "/lib/clientLib.js></script>");
+	print("</head>");
+	print("<body class='standardFont backdropColor'>");
+	print("<center>");
+
+	// Open the container
+	print("<div id='container' class='standardBorder standardColor'>");
+
+	// Draw the header
+	print("<div id='header' class='standardBorder titleFont'>");
+	print("<div class='standardMargin'>");
+	print(eval(webIni.headerText));
+	print("</div>");
+	print("</div>");
+
+	// Draw the sidebar
+	print("<div id='sidebar'>");
+	print("<div style=margin:10px;>"); // Uh oh - a hard-coded value :|
+	// Load the sidebar widgets
+	var c = 0;
+	var d = directory(webIni.webRoot + "/sidebar/*");
+	for(var f in d) {
+		print("<div class='sidebarBox standardBorder standardPadding underMargin'>");
+		if(file_getext(d[f]).toUpperCase() == ".SSJS" || file_getext(d[f]).toUpperCase() == ".JS") load(d[f]);
+		if(file_getext(d[f]).toUpperCase() == ".TXT" || file_getext(d[f]).toUpperCase() == ".HTML") {
+			var handle = new File(d[f]);
+			handle.open("r");
+			var printme = handle.read();
+			handle.close();
+			if(file_getext(d[f]).toUpperCase() == ".TXT") printme = "<pre>" + printme + "</pre>";
+			print(printme);
+		}
+		c++;
+		print("</div>");
+	}
+	print("</div>");
+	print("</div>");
+	
+	// Main content box opens here
+	print("<div id='content'>");
+	print("<div class='standardMargin'>");
+}
+
+function closePage() {
+	print("</div>");
+	print("</div>");
+	// Close the main content box
+
+	// Draw the footer
+	print("<div id='footer' class='standardBorder'>");
+	print("<div class='standardMargin'>");
+	print(eval(webIni.footerText));
+	print("</div>");
+	print("</div>");
+
+	print("</div>");
+	// Close the container
+
+	// Close out the remaining HTML
+	print("</center>");
+	print("</body>");
+	print("</html>");
+}
diff --git a/web/root/ecWeb/themes/blocktastic-r/style.css b/web/root/ecWeb/themes/blocktastic-r/style.css
new file mode 100644
index 0000000000..69651b2887
--- /dev/null
+++ b/web/root/ecWeb/themes/blocktastic-r/style.css
@@ -0,0 +1,235 @@
+/* blocktastic-r by echicken */
+
+/* HTML input elements, (eg. text inputs, buttons.) */
+input {
+	border-style: solid;
+	border-width: 1px;
+	border-color: #FFFFFF;
+	color: #FFFFFF;
+	background-color: #000000;
+}
+
+textarea {
+	border-style: solid;
+	border-width: 1px;
+	border-color: #FFFFFF;
+	color: #FFFFFF;
+	background-color: #000000;
+}
+
+/* The background of the top level of the page */
+.backdropColor {
+	background-color: #000000;
+}
+
+/* Colors applied to heading boxes in the forum (eg. board names) */
+.subBoardHeaderColor {
+	background-color: #666666;
+	color: #000000;
+	border-style: solid;
+	border-color: #FFFFFF;
+	border-width: 1px;
+}
+
+/* Colors applied to boxes below the heading boxes in the forum (eg. messages) */
+.messageBoxColor {
+	background-color: #666666;
+	color: #000000;
+	border-style: solid;
+	border-color: #FFFFFF;
+	border-width: 1px;
+}
+
+/* The font that is used most of the time. */
+.standardFont {
+	font-family: arial,helvetica;
+	font-size: 10pt;
+}
+
+/* The font used in the page header and for page titles (eg. "Message Forum") */
+.titleFont {
+	font-size: 16pt;
+	font-weight: bold;
+}
+
+/* The font that is used for items such as message subjects and message group names. */
+.headingFont {
+	/* Message group names, subject lines */
+	font-weight: bold;
+}
+
+/* Set a font-family, etc. here if you want a different (eg. monospace) font
+   for messages in the forum. */
+.messageFont {
+
+}
+
+/* The foreground and background colors used most in most places. */
+.standardColor {
+	color: #FFFFFF;
+}
+
+/* The border that is drawn around the various 'boxes' that make up each page. */
+.standardBorder {
+	border-style: none;
+	border-width: 1px;
+}
+
+/* The buffer between certain elements. Best left as is. */
+.standardMargin {
+	margin: 10px;
+}
+
+/* The buffer between certain elements' borders and their contents. Best left as is. */
+.standardPadding {
+	padding: 10px;
+}
+
+/* The buffer between certain elements and the elements below them. Best left as is. */
+.underMargin {
+	margin-bottom: 10px;
+}
+
+/* The amount certain items are indented (particularly in the forum.) */
+.treeIndent {
+	margin-left: 40px;
+}
+
+/* As above, but for items that need to be indented even more. */
+.subTreeIndent {
+	margin-left: 80px;
+}
+
+/* By default, the inverse of .standardColor. Not currently used. */
+.reverseColor {
+	color: #000000;
+	background-color: #FFFFFF;
+}
+
+/* For use with <hr>, draws a thin, solid line. Deprecated and not currently used. */
+.line {
+	width: 100%;
+	border: 0;
+	color: #FFFFFF;
+	background-color: #FFFFFF;
+	height: 1px;
+}
+
+/* The style applied to most hyperlinks. */
+.link { 
+	text-decoration: none;
+	font-weight: bold;
+}
+
+.link:link  {
+	color: #FFFFFF;
+	background-color: #330033;
+}
+
+.link:visited {
+	color: #FFFFFF;
+	background-color: #330033;
+}
+
+.link:hover {
+	color: #330033;
+	background-color: #FFFFFF;
+}
+
+.link:active {
+	color: #330033;
+	background-color: #FFFFFF;
+}
+
+/* The style applied to certain hyperlinks, especially in the forum. */
+.ulLink { 
+	text-decoration: none;
+	font-weight: bold;
+}
+
+.ulLink:link  {
+	color: #000000;
+}
+
+.ulLink:visited {
+	color: #000000;
+}
+
+.ulLink:hover {
+	color: #000000;
+	text-decoration: underline;
+}
+
+.ulLink:active {
+	color: #000000;
+	text-decoration: underline;
+}
+
+.textFile {
+	width: 765px;
+	/* Wrapping stuff from http://www.longren.org/wrapping-text-inside-pre-tags/ */
+	white-space: pre-wrap;       /* css-3 */
+	white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
+	white-space: -pre-wrap;      /* Opera 4-6 */
+	white-space: -o-pre-wrap;    /* Opera 7 */
+	word-wrap: break-word;       /* Internet Explorer 5.5+ */
+}
+
+/* This is the container that holds the header, footer, sidebar, and main
+   content of the page. (eg. the white box hovering over the grey backdrop
+   in the 'stocktastic' theme.) */
+#container {
+	width: 1024px;
+	text-align: left;
+}
+
+/* This is the container that holds the header content. (eg. system.name) */
+#header {
+	width: 1024px;
+	clear: both;
+	border-style: solid;
+	border-color: #FFFFFF;
+	border-width: 1px;
+	background-color: #330033;
+}
+
+/* This is the container that holds the sidebar widgets. */
+#sidebar {
+	width: 255px;
+	float: right;
+	border-style: none;
+	margin-right: -10px;
+}
+
+/* Styles for the sidebar widget boxes can be set here. */
+.sidebarBox {
+	border-style: solid;
+	border-color: #FFFFFF;
+	border-width: 1px;
+	background-color: #330033;
+}
+
+/* This is the container that holds the main content of the page (eg. the 
+   portion below the header, beside the sidebar, above the footer.) */
+#content {
+	width: 765px;
+	float: left;
+	margin-top: 10px;
+	border-style: solid;
+	border-color: #FFFFFF;
+	border-width: 1px;
+	background-color: #330033;
+}
+
+/* This is the container that holds the footer content. (eg. a Synchronet
+   version statement.) */
+#footer {
+	width: 1024px;
+	clear: both;
+	text-align: right;
+	font-style: italic;
+	border-style: solid;
+	border-color: #FFFFFF;
+	border-width: 1px;	
+	background-color: #330033;
+}
diff --git a/web/root/ecWeb/themes/blocktastic/layout.ssjs b/web/root/ecWeb/themes/blocktastic/layout.ssjs
new file mode 100644
index 0000000000..fd20ee2182
--- /dev/null
+++ b/web/root/ecWeb/themes/blocktastic/layout.ssjs
@@ -0,0 +1,69 @@
+function openPage(pageTitle) {
+	// Print the initial HTML tags
+	print("<html>");
+	print("<head>");
+	print("<link rel=stylesheet type=text/css href=" + eval(webIni.webUrl) + "/themes/" + webIni.theme + "/style.css />");
+	print("<title>" + pageTitle + "</title>");
+	print("<script language=javascript type=text/javascript src=" + eval(webIni.webUrl) + "/lib/clientLib.js></script>");
+	print("</head>");
+	print("<body class='standardFont backdropColor'>");
+	print("<center>");
+
+	// Open the container
+	print("<div id='container' class='standardBorder standardColor'>");
+
+	// Draw the header
+	print("<div id='header' class='standardBorder titleFont'>");
+	print("<div class='standardMargin'>");
+	print(eval(webIni.headerText));
+	print("</div>");
+	print("</div>");
+
+	// Draw the sidebar
+	print("<div id='sidebar'>");
+	print("<div style=margin:10px;>"); // Uh oh - a hard-coded value :|
+	// Load the sidebar widgets
+	var c = 0;
+	var d = directory(webIni.webRoot + "/sidebar/*");
+	for(var f in d) {
+		print("<div class='sidebarBox standardBorder standardPadding underMargin'>");
+		if(file_getext(d[f]).toUpperCase() == ".SSJS" || file_getext(d[f]).toUpperCase() == ".JS") load(d[f]);
+		if(file_getext(d[f]).toUpperCase() == ".TXT" || file_getext(d[f]).toUpperCase() == ".HTML") {
+			var handle = new File(d[f]);
+			handle.open("r");
+			var printme = handle.read();
+			handle.close();
+			if(file_getext(d[f]).toUpperCase() == ".TXT") printme = "<pre>" + printme + "</pre>";
+			print(printme);
+		}
+		c++;
+		print("</div>");
+	}
+	print("</div>");
+	print("</div>");
+	
+	// Main content box opens here
+	print("<div id='content'>");
+	print("<div class='standardMargin'>");
+}
+
+function closePage() {
+	print("</div>");
+	print("</div>");
+	// Close the main content box
+
+	// Draw the footer
+	print("<div id='footer' class='standardBorder'>");
+	print("<div class='standardMargin'>");
+	print(eval(webIni.footerText));
+	print("</div>");
+	print("</div>");
+
+	print("</div>");
+	// Close the container
+
+	// Close out the remaining HTML
+	print("</center>");
+	print("</body>");
+	print("</html>");
+}
diff --git a/web/root/ecWeb/themes/blocktastic/style.css b/web/root/ecWeb/themes/blocktastic/style.css
new file mode 100644
index 0000000000..05e8ca3a2a
--- /dev/null
+++ b/web/root/ecWeb/themes/blocktastic/style.css
@@ -0,0 +1,235 @@
+/* blocktastic v2 by echicken */
+
+/* HTML input elements, (eg. text inputs, buttons.) */
+input {
+	border-style: solid;
+	border-width: 1px;
+	border-color: #FFFFFF;
+	color: #FFFFFF;
+	background-color: #000000;
+}
+
+textarea {
+	border-style: solid;
+	border-width: 1px;
+	border-color: #FFFFFF;
+	color: #FFFFFF;
+	background-color: #000000;
+}
+
+/* The background of the top level of the page */
+.backdropColor {
+	background-color: #000000;
+}
+
+/* Colors applied to heading boxes in the forum (eg. board names) */
+.subBoardHeaderColor {
+	background-color: #666666;
+	color: #000000;
+	border-style: solid;
+	border-color: #FFFFFF;
+	border-width: 1px;
+}
+
+/* Colors applied to boxes below the heading boxes in the forum (eg. messages) */
+.messageBoxColor {
+	background-color: #666666;
+	color: #000000;
+	border-style: solid;
+	border-color: #FFFFFF;
+	border-width: 1px;
+}
+
+/* The font that is used most of the time. */
+.standardFont {
+	font-family: arial,helvetica;
+	font-size: 10pt;
+}
+
+/* The font used in the page header and for page titles (eg. "Message Forum") */
+.titleFont {
+	font-size: 16pt;
+	font-weight: bold;
+}
+
+/* The font that is used for items such as message subjects and message group names. */
+.headingFont {
+	/* Message group names, subject lines */
+	font-weight: bold;
+}
+
+/* Set a font-family, etc. here if you want a different (eg. monospace) font
+   for messages in the forum. */
+.messageFont {
+
+}
+
+/* The foreground and background colors used most in most places. */
+.standardColor {
+	color: #FFFFFF;
+}
+
+/* The border that is drawn around the various 'boxes' that make up each page. */
+.standardBorder {
+	border-style: none;
+	border-width: 1px;
+}
+
+/* The buffer between certain elements. Best left as is. */
+.standardMargin {
+	margin: 10px;
+}
+
+/* The buffer between certain elements' borders and their contents. Best left as is. */
+.standardPadding {
+	padding: 10px;
+}
+
+/* The buffer between certain elements and the elements below them. Best left as is. */
+.underMargin {
+	margin-bottom: 10px;
+}
+
+/* The amount certain items are indented (particularly in the forum.) */
+.treeIndent {
+	margin-left: 40px;
+}
+
+/* As above, but for items that need to be indented even more. */
+.subTreeIndent {
+	margin-left: 80px;
+}
+
+/* By default, the inverse of .standardColor. Not currently used. */
+.reverseColor {
+	color: #000000;
+	background-color: #FFFFFF;
+}
+
+/* For use with <hr>, draws a thin, solid line. Deprecated and not currently used. */
+.line {
+	width: 100%;
+	border: 0;
+	color: #FFFFFF;
+	background-color: #FFFFFF;
+	height: 1px;
+}
+
+/* The style applied to most hyperlinks. */
+.link { 
+	text-decoration: none;
+	font-weight: bold;
+}
+
+.link:link  {
+	color: #FFFFFF;
+	background-color: #330033;
+}
+
+.link:visited {
+	color: #FFFFFF;
+	background-color: #330033;
+}
+
+.link:hover {
+	color: #330033;
+	background-color: #FFFFFF;
+}
+
+.link:active {
+	color: #330033;
+	background-color: #FFFFFF;
+}
+
+/* The style applied to certain hyperlinks, especially in the forum. */
+.ulLink { 
+	text-decoration: none;
+	font-weight: bold;
+}
+
+.ulLink:link  {
+	color: #000000;
+}
+
+.ulLink:visited {
+	color: #000000;
+}
+
+.ulLink:hover {
+	color: #000000;
+	text-decoration: underline;
+}
+
+.ulLink:active {
+	color: #000000;
+	text-decoration: underline;
+}
+
+.textFile {
+	width: 765px;
+	/* Wrapping stuff from http://www.longren.org/wrapping-text-inside-pre-tags/ */
+	white-space: pre-wrap;       /* css-3 */
+	white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
+	white-space: -pre-wrap;      /* Opera 4-6 */
+	white-space: -o-pre-wrap;    /* Opera 7 */
+	word-wrap: break-word;       /* Internet Explorer 5.5+ */
+}
+
+/* This is the container that holds the header, footer, sidebar, and main
+   content of the page. (eg. the white box hovering over the grey backdrop
+   in the 'stocktastic' theme.) */
+#container {
+	width: 1024px;
+	text-align: left;
+}
+
+/* This is the container that holds the header content. (eg. system.name) */
+#header {
+	width: 1024px;
+	clear: both;
+	border-style: solid;
+	border-color: #FFFFFF;
+	border-width: 1px;
+	background-color: #330033;
+}
+
+/* This is the container that holds the sidebar widgets. */
+#sidebar {
+	width: 255px;
+	float: left;
+	border-style: none;
+	margin-left: -10px;
+}
+
+/* Styles for the sidebar widget boxes can be set here. */
+.sidebarBox {
+	border-style: solid;
+	border-color: #FFFFFF;
+	border-width: 1px;
+	background-color: #330033;
+}
+
+/* This is the container that holds the main content of the page (eg. the 
+   portion below the header, beside the sidebar, above the footer.) */
+#content {
+	width: 765px;
+	float: right;
+	margin-top: 10px;
+	border-style: solid;
+	border-color: #FFFFFF;
+	border-width: 1px;
+	background-color: #330033;
+}
+
+/* This is the container that holds the footer content. (eg. a Synchronet
+   version statement.) */
+#footer {
+	width: 1024px;
+	clear: both;
+	text-align: right;
+	font-style: italic;
+	border-style: solid;
+	border-color: #FFFFFF;
+	border-width: 1px;	
+	background-color: #330033;
+}
diff --git a/web/root/ecWeb/themes/hotdogstand/layout.ssjs b/web/root/ecWeb/themes/hotdogstand/layout.ssjs
new file mode 100644
index 0000000000..fd20ee2182
--- /dev/null
+++ b/web/root/ecWeb/themes/hotdogstand/layout.ssjs
@@ -0,0 +1,69 @@
+function openPage(pageTitle) {
+	// Print the initial HTML tags
+	print("<html>");
+	print("<head>");
+	print("<link rel=stylesheet type=text/css href=" + eval(webIni.webUrl) + "/themes/" + webIni.theme + "/style.css />");
+	print("<title>" + pageTitle + "</title>");
+	print("<script language=javascript type=text/javascript src=" + eval(webIni.webUrl) + "/lib/clientLib.js></script>");
+	print("</head>");
+	print("<body class='standardFont backdropColor'>");
+	print("<center>");
+
+	// Open the container
+	print("<div id='container' class='standardBorder standardColor'>");
+
+	// Draw the header
+	print("<div id='header' class='standardBorder titleFont'>");
+	print("<div class='standardMargin'>");
+	print(eval(webIni.headerText));
+	print("</div>");
+	print("</div>");
+
+	// Draw the sidebar
+	print("<div id='sidebar'>");
+	print("<div style=margin:10px;>"); // Uh oh - a hard-coded value :|
+	// Load the sidebar widgets
+	var c = 0;
+	var d = directory(webIni.webRoot + "/sidebar/*");
+	for(var f in d) {
+		print("<div class='sidebarBox standardBorder standardPadding underMargin'>");
+		if(file_getext(d[f]).toUpperCase() == ".SSJS" || file_getext(d[f]).toUpperCase() == ".JS") load(d[f]);
+		if(file_getext(d[f]).toUpperCase() == ".TXT" || file_getext(d[f]).toUpperCase() == ".HTML") {
+			var handle = new File(d[f]);
+			handle.open("r");
+			var printme = handle.read();
+			handle.close();
+			if(file_getext(d[f]).toUpperCase() == ".TXT") printme = "<pre>" + printme + "</pre>";
+			print(printme);
+		}
+		c++;
+		print("</div>");
+	}
+	print("</div>");
+	print("</div>");
+	
+	// Main content box opens here
+	print("<div id='content'>");
+	print("<div class='standardMargin'>");
+}
+
+function closePage() {
+	print("</div>");
+	print("</div>");
+	// Close the main content box
+
+	// Draw the footer
+	print("<div id='footer' class='standardBorder'>");
+	print("<div class='standardMargin'>");
+	print(eval(webIni.footerText));
+	print("</div>");
+	print("</div>");
+
+	print("</div>");
+	// Close the container
+
+	// Close out the remaining HTML
+	print("</center>");
+	print("</body>");
+	print("</html>");
+}
diff --git a/web/root/ecWeb/themes/hotdogstand/style.css b/web/root/ecWeb/themes/hotdogstand/style.css
new file mode 100644
index 0000000000..999949b494
--- /dev/null
+++ b/web/root/ecWeb/themes/hotdogstand/style.css
@@ -0,0 +1,220 @@
+/* hotdogstand v2 by echicken */
+
+/* lol :| */
+
+/* HTML input elements, (eg. text inputs, buttons.) */
+input {
+	border-style: solid;
+	border-width: 1px;
+	border-color: #000000;
+}
+
+textarea {
+	border-style: solid;
+	border-width: 1px;
+	border-color: #000000;
+}
+
+/* The background of the top level of the page */
+.backdropColor {
+	background-color: #FFFF00;
+}
+
+/* Colors applied to heading boxes in the forum (eg. board names) */
+.subBoardHeaderColor {
+	background-color: #FFFF00;
+	color: #000000;
+}
+
+/* Colors applied to boxes below the heading boxes in the forum (eg. messages) */
+.messageBoxColor {
+	background-color: #FFFF00;
+	color: #000000;
+}
+
+/* The font that is used most of the time. */
+.standardFont {
+	font-family: arial,helvetica;
+	font-size: 10pt;
+}
+
+/* The font used in the page header and for page titles (eg. "Message Forum") */
+.titleFont {
+	font-size: 16pt;
+	font-weight: bold;
+}
+
+/* The font that is used for items such as message subjects and message group names. */
+.headingFont {
+	/* Message group names, subject lines */
+	font-weight: bold;
+}
+
+/* Set a font-family, etc. here if you want a different (eg. monospace) font
+   for messages in the forum. */
+.messageFont {
+
+}
+
+/* The foreground and background colors used most in most places. */
+.standardColor {
+	color: #FFFFFF;
+	background-color: #FF0000;
+}
+
+/* The border that is drawn around the various 'boxes' that make up each page. */
+.standardBorder {
+	border-style: solid;
+	border-width: 1px;
+}
+
+/* The buffer between certain elements. Best left as is. */
+.standardMargin {
+	margin: 10px;
+}
+
+/* The buffer between certain elements' borders and their contents. Best left as is. */
+.standardPadding {
+	padding: 10px;
+}
+
+/* The buffer between certain elements and the elements below them. Best left as is. */
+.underMargin {
+	margin-bottom: 10px;
+}
+
+/* The amount certain items are indented (particularly in the forum.) */
+.treeIndent {
+	margin-left: 40px;
+}
+
+/* As above, but for items that need to be indented even more. */
+.subTreeIndent {
+	margin-left: 80px;
+}
+
+/* By default, the inverse of .standardColor. Not currently used. */
+.reverseColor {
+	color: #FFFFFF;
+	background-color: #000000;
+}
+
+/* For use with <hr>, draws a thin, solid line. Deprecated and not currently used. */
+.line {
+	width: 100%;
+	border: 0;
+	color: #000000;
+	background-color: #000000;
+	height: 1px;
+}
+
+/* The style applied to most hyperlinks. */
+.link { 
+	text-decoration: none;
+	font-weight: bold;
+}
+
+.link:link  {
+	color: #FFFFFF;
+	background-color: #FF0000;
+}
+
+.link:visited {
+	color: #FFFFFF;
+	background-color: #FF0000;
+}
+
+.link:hover {
+	color: #000000;
+	background-color: #FFFF00;
+}
+
+.link:active {
+	color: #000000;
+	background-color: #000000;
+}
+
+/* The style applied to certain hyperlinks, especially in the forum. */
+.ulLink { 
+	text-decoration: none;
+	font-weight: bold;
+}
+
+.ulLink:link  {
+	color: #FFFFFF;
+}
+
+.ulLink:visited {
+	color: #FFFFFF;
+}
+
+.ulLink:hover {
+	color: #FFFFFF;
+	text-decoration: underline;
+}
+
+.ulLink:active {
+	color: #FFFFFF;
+	text-decoration: underline;
+}
+
+.fakeUlLink {
+	text-decoration: none;
+}
+
+.fakeUlLink:hover {
+	text-decoration: underline;
+}
+
+.textFile {
+	width: 765px;
+	/* Wrapping stuff from http://www.longren.org/wrapping-text-inside-pre-tags/ */
+	white-space: pre-wrap;       /* css-3 */
+	white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
+	white-space: -pre-wrap;      /* Opera 4-6 */
+	white-space: -o-pre-wrap;    /* Opera 7 */
+	word-wrap: break-word;       /* Internet Explorer 5.5+ */
+}
+
+/* This is the container that holds the header, footer, sidebar, and main
+   content of the page. (eg. the white box hovering over the grey backdrop
+   in the 'stocktastic' theme.) */
+#container {
+	width: 1024px;
+	text-align: left;
+}
+
+/* This is the container that holds the header content. (eg. system.name) */
+#header {
+	width: 1024px;
+	clear: both;
+	border-style: none none solid none;
+}
+
+/* This is the container that holds the sidebar widgets. */
+#sidebar {
+	width: 255px;
+	float: left;
+	border-style: none;
+}
+
+/* Styles for the sidebar widget boxes can be set here. */
+.sidebarBox {
+}
+
+/* This is the container that holds the main content of the page (eg. the 
+   portion below the header, beside the sidebar, above the footer.) */
+#content {
+	width: 765px;
+	float: right;
+}
+
+/* This is the container that holds the footer content. (eg. a Synchronet
+   version statement.) */
+#footer {
+	width: 1024px;
+	clear: both;
+	border-style: solid none none none;
+	text-align: right;
+	font-style: italic;
+}
diff --git a/web/root/ecWeb/themes/shitenade/layout.ssjs b/web/root/ecWeb/themes/shitenade/layout.ssjs
new file mode 100644
index 0000000000..fd20ee2182
--- /dev/null
+++ b/web/root/ecWeb/themes/shitenade/layout.ssjs
@@ -0,0 +1,69 @@
+function openPage(pageTitle) {
+	// Print the initial HTML tags
+	print("<html>");
+	print("<head>");
+	print("<link rel=stylesheet type=text/css href=" + eval(webIni.webUrl) + "/themes/" + webIni.theme + "/style.css />");
+	print("<title>" + pageTitle + "</title>");
+	print("<script language=javascript type=text/javascript src=" + eval(webIni.webUrl) + "/lib/clientLib.js></script>");
+	print("</head>");
+	print("<body class='standardFont backdropColor'>");
+	print("<center>");
+
+	// Open the container
+	print("<div id='container' class='standardBorder standardColor'>");
+
+	// Draw the header
+	print("<div id='header' class='standardBorder titleFont'>");
+	print("<div class='standardMargin'>");
+	print(eval(webIni.headerText));
+	print("</div>");
+	print("</div>");
+
+	// Draw the sidebar
+	print("<div id='sidebar'>");
+	print("<div style=margin:10px;>"); // Uh oh - a hard-coded value :|
+	// Load the sidebar widgets
+	var c = 0;
+	var d = directory(webIni.webRoot + "/sidebar/*");
+	for(var f in d) {
+		print("<div class='sidebarBox standardBorder standardPadding underMargin'>");
+		if(file_getext(d[f]).toUpperCase() == ".SSJS" || file_getext(d[f]).toUpperCase() == ".JS") load(d[f]);
+		if(file_getext(d[f]).toUpperCase() == ".TXT" || file_getext(d[f]).toUpperCase() == ".HTML") {
+			var handle = new File(d[f]);
+			handle.open("r");
+			var printme = handle.read();
+			handle.close();
+			if(file_getext(d[f]).toUpperCase() == ".TXT") printme = "<pre>" + printme + "</pre>";
+			print(printme);
+		}
+		c++;
+		print("</div>");
+	}
+	print("</div>");
+	print("</div>");
+	
+	// Main content box opens here
+	print("<div id='content'>");
+	print("<div class='standardMargin'>");
+}
+
+function closePage() {
+	print("</div>");
+	print("</div>");
+	// Close the main content box
+
+	// Draw the footer
+	print("<div id='footer' class='standardBorder'>");
+	print("<div class='standardMargin'>");
+	print(eval(webIni.footerText));
+	print("</div>");
+	print("</div>");
+
+	print("</div>");
+	// Close the container
+
+	// Close out the remaining HTML
+	print("</center>");
+	print("</body>");
+	print("</html>");
+}
diff --git a/web/root/ecWeb/themes/shitenade/style.css b/web/root/ecWeb/themes/shitenade/style.css
new file mode 100644
index 0000000000..a9a9d6f382
--- /dev/null
+++ b/web/root/ecWeb/themes/shitenade/style.css
@@ -0,0 +1,216 @@
+/* shitenade v2 by echicken */
+
+/* HTML input elements, (eg. text inputs, buttons.) */
+input {
+	border-style: solid;
+	border-width: 1px;
+	border-color: #FFFFFF;
+}
+
+textarea {
+	border-style: solid;
+	border-width: 1px;
+	border-color: #FFFFFF;
+}
+
+/* The background of the top level of the page */
+.backdropColor {
+	background-color: #1F2346;
+}
+
+/* Colors applied to heading boxes in the forum (eg. board names) */
+.subBoardHeaderColor {
+	background-color: #1F2346;
+}
+
+/* Colors applied to boxes below the heading boxes in the forum (eg. messages) */
+.messageBoxColor {
+	background-color: #1F2346;
+}
+
+/* The font that is used most of the time. */
+.standardFont {
+	font-family: arial,helvetica;
+	font-size: 10pt;
+}
+
+/* The font used in the page header and for page titles (eg. "Message Forum") */
+.titleFont {
+	font-size: 16pt;
+	font-weight: bold;
+}
+
+/* The font that is used for items such as message subjects and message group names. */
+.headingFont {
+	/* Message group names, subject lines */
+	font-weight: bold;
+}
+
+/* Set a font-family, etc. here if you want a different (eg. monospace) font
+   for messages in the forum. */
+.messageFont {
+
+}
+
+/* The foreground and background colors used most in most places. */
+.standardColor {
+	color: #9DAAD9;
+	background-color: #1F2346;
+}
+
+/* The border that is drawn around the various 'boxes' that make up each page. */
+.standardBorder {
+	border-style: solid;
+	border-width: 1px;
+}
+
+/* The buffer between certain elements. Best left as is. */
+.standardMargin {
+	margin: 10px;
+}
+
+/* The buffer between certain elements' borders and their contents. Best left as is. */
+.standardPadding {
+	padding: 10px;
+}
+
+/* The buffer between certain elements and the elements below them. Best left as is. */
+.underMargin {
+	margin-bottom: 10px;
+}
+
+/* The amount certain items are indented (particularly in the forum.) */
+.treeIndent {
+	margin-left: 40px;
+}
+
+/* As above, but for items that need to be indented even more. */
+.subTreeIndent {
+	margin-left: 80px;
+}
+
+/* By default, the inverse of .standardColor. Not currently used. */
+.reverseColor {
+	color: #1F2346;
+	background-color: #9DAAD9;
+}
+
+/* For use with <hr>, draws a thin, solid line. Deprecated and not currently used. */
+.line {
+	width: 100%;
+	border: 0;
+	color: #9DAAD9;
+	background-color: #9DAAD9;
+	height: 1px;
+}
+
+/* The style applied to most hyperlinks. */
+.link { 
+	text-decoration: none;
+	font-weight: bold;
+}
+
+.link:link  {
+	color: #9DAAD9;
+	background-color: #1F2346;
+}
+
+.link:visited {
+	color: #9DAAD9;
+	background-color: #1F2346;
+}
+
+.link:hover {
+	color: #1F2346;
+	background-color: #9DAAD9;
+}
+
+.link:active {
+	color: #1F2346;
+	background-color: #9DAAD9;
+}
+
+/* The style applied to certain hyperlinks, especially in the forum. */
+.ulLink { 
+	text-decoration: none;
+	font-weight: bold;
+}
+
+.ulLink:link  {
+	color: #9DAAD9;
+}
+
+.ulLink:visited {
+	color: #9DAAD9;
+}
+
+.ulLink:hover {
+	color: #9DAAD9;
+	text-decoration: underline;
+}
+
+.ulLink:active {
+	color: #9DAAD9;
+	text-decoration: underline;
+}
+
+.fakeUlLink {
+	text-decoration: none;
+}
+
+.fakeUlLink:hover {
+	text-decoration: underline;
+}
+
+.textFile {
+	width: 765px;
+	/* Wrapping stuff from http://www.longren.org/wrapping-text-inside-pre-tags/ */
+	white-space: pre-wrap;       /* css-3 */
+	white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
+	white-space: -pre-wrap;      /* Opera 4-6 */
+	white-space: -o-pre-wrap;    /* Opera 7 */
+	word-wrap: break-word;       /* Internet Explorer 5.5+ */
+}
+
+/* This is the container that holds the header, footer, sidebar, and main
+   content of the page. (eg. the white box hovering over the grey backdrop
+   in the 'stocktastic' theme.) */
+#container {
+	width: 1024px;
+	text-align: left;
+}
+
+/* This is the container that holds the header content. (eg. system.name) */
+#header {
+	width: 1024px;
+	clear: both;
+	border-style: none none solid none;
+}
+
+/* This is the container that holds the sidebar widgets. */
+#sidebar {
+	width: 255px;
+	float: left;
+	border-style: none;
+}
+
+/* Styles for the sidebar widget boxes can be set here. */
+.sidebarBox {
+}
+
+/* This is the container that holds the main content of the page (eg. the 
+   portion below the header, beside the sidebar, above the footer.) */
+#content {
+	width: 765px;
+	float: right;
+}
+
+/* This is the container that holds the footer content. (eg. a Synchronet
+   version statement.) */
+#footer {
+	width: 1024px;
+	clear: both;
+	border-style: solid none none none;
+	text-align: right;
+	font-style: italic;
+}
diff --git a/web/root/ecWeb/themes/stocktastic-r/layout.ssjs b/web/root/ecWeb/themes/stocktastic-r/layout.ssjs
new file mode 100644
index 0000000000..fd20ee2182
--- /dev/null
+++ b/web/root/ecWeb/themes/stocktastic-r/layout.ssjs
@@ -0,0 +1,69 @@
+function openPage(pageTitle) {
+	// Print the initial HTML tags
+	print("<html>");
+	print("<head>");
+	print("<link rel=stylesheet type=text/css href=" + eval(webIni.webUrl) + "/themes/" + webIni.theme + "/style.css />");
+	print("<title>" + pageTitle + "</title>");
+	print("<script language=javascript type=text/javascript src=" + eval(webIni.webUrl) + "/lib/clientLib.js></script>");
+	print("</head>");
+	print("<body class='standardFont backdropColor'>");
+	print("<center>");
+
+	// Open the container
+	print("<div id='container' class='standardBorder standardColor'>");
+
+	// Draw the header
+	print("<div id='header' class='standardBorder titleFont'>");
+	print("<div class='standardMargin'>");
+	print(eval(webIni.headerText));
+	print("</div>");
+	print("</div>");
+
+	// Draw the sidebar
+	print("<div id='sidebar'>");
+	print("<div style=margin:10px;>"); // Uh oh - a hard-coded value :|
+	// Load the sidebar widgets
+	var c = 0;
+	var d = directory(webIni.webRoot + "/sidebar/*");
+	for(var f in d) {
+		print("<div class='sidebarBox standardBorder standardPadding underMargin'>");
+		if(file_getext(d[f]).toUpperCase() == ".SSJS" || file_getext(d[f]).toUpperCase() == ".JS") load(d[f]);
+		if(file_getext(d[f]).toUpperCase() == ".TXT" || file_getext(d[f]).toUpperCase() == ".HTML") {
+			var handle = new File(d[f]);
+			handle.open("r");
+			var printme = handle.read();
+			handle.close();
+			if(file_getext(d[f]).toUpperCase() == ".TXT") printme = "<pre>" + printme + "</pre>";
+			print(printme);
+		}
+		c++;
+		print("</div>");
+	}
+	print("</div>");
+	print("</div>");
+	
+	// Main content box opens here
+	print("<div id='content'>");
+	print("<div class='standardMargin'>");
+}
+
+function closePage() {
+	print("</div>");
+	print("</div>");
+	// Close the main content box
+
+	// Draw the footer
+	print("<div id='footer' class='standardBorder'>");
+	print("<div class='standardMargin'>");
+	print(eval(webIni.footerText));
+	print("</div>");
+	print("</div>");
+
+	print("</div>");
+	// Close the container
+
+	// Close out the remaining HTML
+	print("</center>");
+	print("</body>");
+	print("</html>");
+}
diff --git a/web/root/ecWeb/themes/stocktastic-r/style.css b/web/root/ecWeb/themes/stocktastic-r/style.css
new file mode 100644
index 0000000000..34897a3de8
--- /dev/null
+++ b/web/root/ecWeb/themes/stocktastic-r/style.css
@@ -0,0 +1,216 @@
+/* stocktastic-r by echicken */
+
+/* HTML input elements, (eg. text inputs, buttons.) */
+input {
+	border-style: solid;
+	border-width: 1px;
+	border-color: #000000;
+}
+
+textarea {
+	border-style: solid;
+	border-width: 1px;
+	border-color: #000000;
+}
+
+/* The background of the top level of the page */
+.backdropColor {
+	background-color: #CCCCCC;
+}
+
+/* Colors applied to heading boxes in the forum (eg. board names) */
+.subBoardHeaderColor {
+	background-color: #CCCCCC;
+}
+
+/* Colors applied to boxes below the heading boxes in the forum (eg. messages) */
+.messageBoxColor {
+	background-color: #CCCCCC;
+}
+
+/* The font that is used most of the time. */
+.standardFont {
+	font-family: arial,helvetica;
+	font-size: 10pt;
+}
+
+/* The font used in the page header and for page titles (eg. "Message Forum") */
+.titleFont {
+	font-size: 16pt;
+	font-weight: bold;
+}
+
+/* The font that is used for items such as message subjects and message group names. */
+.headingFont {
+	/* Message group names, subject lines */
+	font-weight: bold;
+}
+
+/* Set a font-family, etc. here if you want a different (eg. monospace) font
+   for messages in the forum. */
+.messageFont {
+
+}
+
+/* The foreground and background colors used most in most places. */
+.standardColor {
+	color: #000000;
+	background-color: #FFFFFF;
+}
+
+/* The border that is drawn around the various 'boxes' that make up each page. */
+.standardBorder {
+	border-style: solid;
+	border-width: 1px;
+}
+
+/* The buffer between certain elements. Best left as is. */
+.standardMargin {
+	margin: 10px;
+}
+
+/* The buffer between certain elements' borders and their contents. Best left as is. */
+.standardPadding {
+	padding: 10px;
+}
+
+/* The buffer between certain elements and the elements below them. Best left as is. */
+.underMargin {
+	margin-bottom: 10px;
+}
+
+/* The amount certain items are indented (particularly in the forum.) */
+.treeIndent {
+	margin-left: 40px;
+}
+
+/* As above, but for items that need to be indented even more. */
+.subTreeIndent {
+	margin-left: 80px;
+}
+
+/* By default, the inverse of .standardColor. Not currently used. */
+.reverseColor {
+	color: #FFFFFF;
+	background-color: #000000;
+}
+
+/* For use with <hr>, draws a thin, solid line. Deprecated and not currently used. */
+.line {
+	width: 100%;
+	border: 0;
+	color: #000000;
+	background-color: #000000;
+	height: 1px;
+}
+
+/* The style applied to most hyperlinks. */
+.link { 
+	text-decoration: none;
+	font-weight: bold;
+}
+
+.link:link  {
+	color: #000000;
+	background-color: #FFFFFF;
+}
+
+.link:visited {
+	color: #000000;
+	background-color: #FFFFFF;
+}
+
+.link:hover {
+	color: #FFFFFF;
+	background-color: #000000;
+}
+
+.link:active {
+	color: #FFFFFF;
+	background-color: #000000;
+}
+
+/* The style applied to certain hyperlinks, especially in the forum. */
+.ulLink { 
+	text-decoration: none;
+	font-weight: bold;
+}
+
+.ulLink:link  {
+	color: #000000;
+}
+
+.ulLink:visited {
+	color: #000000;
+}
+
+.ulLink:hover {
+	color: #000000;
+	text-decoration: underline;
+}
+
+.ulLink:active {
+	color: #000000;
+	text-decoration: underline;
+}
+
+.fakeUlLink {
+	text-decoration: none;
+}
+
+.fakeUlLink:hover {
+	text-decoration: underline;
+}
+
+.textFile {
+	width: 765px;
+	/* Wrapping stuff from http://www.longren.org/wrapping-text-inside-pre-tags/ */
+	white-space: pre-wrap;       /* css-3 */
+	white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
+	white-space: -pre-wrap;      /* Opera 4-6 */
+	white-space: -o-pre-wrap;    /* Opera 7 */
+	word-wrap: break-word;       /* Internet Explorer 5.5+ */
+}
+
+/* This is the container that holds the header, footer, sidebar, and main
+   content of the page. (eg. the white box hovering over the grey backdrop
+   in the 'stocktastic' theme.) */
+#container {
+	width: 1024px;
+	text-align: left;
+}
+
+/* This is the container that holds the header content. (eg. system.name) */
+#header {
+	width: 1024px;
+	clear: both;
+	border-style: none none solid none;
+}
+
+/* This is the container that holds the sidebar widgets. */
+#sidebar {
+	width: 255px;
+	float: right;
+	border-style: none;
+}
+
+/* Styles for the sidebar widget boxes can be set here. */
+.sidebarBox {
+}
+
+/* This is the container that holds the main content of the page (eg. the 
+   portion below the header, beside the sidebar, above the footer.) */
+#content {
+	width: 765px;
+	float: left;
+}
+
+/* This is the container that holds the footer content. (eg. a Synchronet
+   version statement.) */
+#footer {
+	width: 1024px;
+	clear: both;
+	border-style: solid none none none;
+	text-align: right;
+	font-style: italic;
+}
diff --git a/web/root/ecWeb/themes/stocktastic/layout.ssjs b/web/root/ecWeb/themes/stocktastic/layout.ssjs
new file mode 100644
index 0000000000..fd20ee2182
--- /dev/null
+++ b/web/root/ecWeb/themes/stocktastic/layout.ssjs
@@ -0,0 +1,69 @@
+function openPage(pageTitle) {
+	// Print the initial HTML tags
+	print("<html>");
+	print("<head>");
+	print("<link rel=stylesheet type=text/css href=" + eval(webIni.webUrl) + "/themes/" + webIni.theme + "/style.css />");
+	print("<title>" + pageTitle + "</title>");
+	print("<script language=javascript type=text/javascript src=" + eval(webIni.webUrl) + "/lib/clientLib.js></script>");
+	print("</head>");
+	print("<body class='standardFont backdropColor'>");
+	print("<center>");
+
+	// Open the container
+	print("<div id='container' class='standardBorder standardColor'>");
+
+	// Draw the header
+	print("<div id='header' class='standardBorder titleFont'>");
+	print("<div class='standardMargin'>");
+	print(eval(webIni.headerText));
+	print("</div>");
+	print("</div>");
+
+	// Draw the sidebar
+	print("<div id='sidebar'>");
+	print("<div style=margin:10px;>"); // Uh oh - a hard-coded value :|
+	// Load the sidebar widgets
+	var c = 0;
+	var d = directory(webIni.webRoot + "/sidebar/*");
+	for(var f in d) {
+		print("<div class='sidebarBox standardBorder standardPadding underMargin'>");
+		if(file_getext(d[f]).toUpperCase() == ".SSJS" || file_getext(d[f]).toUpperCase() == ".JS") load(d[f]);
+		if(file_getext(d[f]).toUpperCase() == ".TXT" || file_getext(d[f]).toUpperCase() == ".HTML") {
+			var handle = new File(d[f]);
+			handle.open("r");
+			var printme = handle.read();
+			handle.close();
+			if(file_getext(d[f]).toUpperCase() == ".TXT") printme = "<pre>" + printme + "</pre>";
+			print(printme);
+		}
+		c++;
+		print("</div>");
+	}
+	print("</div>");
+	print("</div>");
+	
+	// Main content box opens here
+	print("<div id='content'>");
+	print("<div class='standardMargin'>");
+}
+
+function closePage() {
+	print("</div>");
+	print("</div>");
+	// Close the main content box
+
+	// Draw the footer
+	print("<div id='footer' class='standardBorder'>");
+	print("<div class='standardMargin'>");
+	print(eval(webIni.footerText));
+	print("</div>");
+	print("</div>");
+
+	print("</div>");
+	// Close the container
+
+	// Close out the remaining HTML
+	print("</center>");
+	print("</body>");
+	print("</html>");
+}
diff --git a/web/root/ecWeb/themes/stocktastic/style.css b/web/root/ecWeb/themes/stocktastic/style.css
new file mode 100644
index 0000000000..2c25dbb616
--- /dev/null
+++ b/web/root/ecWeb/themes/stocktastic/style.css
@@ -0,0 +1,216 @@
+/* stocktastic v2 by echicken */
+
+/* HTML input elements, (eg. text inputs, buttons.) */
+input {
+	border-style: solid;
+	border-width: 1px;
+	border-color: #000000;
+}
+
+textarea {
+	border-style: solid;
+	border-width: 1px;
+	border-color: #000000;
+}
+
+/* The background of the top level of the page */
+.backdropColor {
+	background-color: #CCCCCC;
+}
+
+/* Colors applied to heading boxes in the forum (eg. board names) */
+.subBoardHeaderColor {
+	background-color: #CCCCCC;
+}
+
+/* Colors applied to boxes below the heading boxes in the forum (eg. messages) */
+.messageBoxColor {
+	background-color: #CCCCCC;
+}
+
+/* The font that is used most of the time. */
+.standardFont {
+	font-family: arial,helvetica;
+	font-size: 10pt;
+}
+
+/* The font used in the page header and for page titles (eg. "Message Forum") */
+.titleFont {
+	font-size: 16pt;
+	font-weight: bold;
+}
+
+/* The font that is used for items such as message subjects and message group names. */
+.headingFont {
+	/* Message group names, subject lines */
+	font-weight: bold;
+}
+
+/* Set a font-family, etc. here if you want a different (eg. monospace) font
+   for messages in the forum. */
+.messageFont {
+
+}
+
+/* The foreground and background colors used most in most places. */
+.standardColor {
+	color: #000000;
+	background-color: #FFFFFF;
+}
+
+/* The border that is drawn around the various 'boxes' that make up each page. */
+.standardBorder {
+	border-style: solid;
+	border-width: 1px;
+}
+
+/* The buffer between certain elements. Best left as is. */
+.standardMargin {
+	margin: 10px;
+}
+
+/* The buffer between certain elements' borders and their contents. Best left as is. */
+.standardPadding {
+	padding: 10px;
+}
+
+/* The buffer between certain elements and the elements below them. Best left as is. */
+.underMargin {
+	margin-bottom: 10px;
+}
+
+/* The amount certain items are indented (particularly in the forum.) */
+.treeIndent {
+	margin-left: 40px;
+}
+
+/* As above, but for items that need to be indented even more. */
+.subTreeIndent {
+	margin-left: 80px;
+}
+
+/* By default, the inverse of .standardColor. Not currently used. */
+.reverseColor {
+	color: #FFFFFF;
+	background-color: #000000;
+}
+
+/* For use with <hr>, draws a thin, solid line. Deprecated and not currently used. */
+.line {
+	width: 100%;
+	border: 0;
+	color: #000000;
+	background-color: #000000;
+	height: 1px;
+}
+
+/* The style applied to most hyperlinks. */
+.link { 
+	text-decoration: none;
+	font-weight: bold;
+}
+
+.link:link  {
+	color: #000000;
+	background-color: #FFFFFF;
+}
+
+.link:visited {
+	color: #000000;
+	background-color: #FFFFFF;
+}
+
+.link:hover {
+	color: #FFFFFF;
+	background-color: #000000;
+}
+
+.link:active {
+	color: #FFFFFF;
+	background-color: #000000;
+}
+
+/* The style applied to certain hyperlinks, especially in the forum. */
+.ulLink { 
+	text-decoration: none;
+	font-weight: bold;
+}
+
+.ulLink:link  {
+	color: #000000;
+}
+
+.ulLink:visited {
+	color: #000000;
+}
+
+.ulLink:hover {
+	color: #000000;
+	text-decoration: underline;
+}
+
+.ulLink:active {
+	color: #000000;
+	text-decoration: underline;
+}
+
+.fakeUlLink {
+	text-decoration: none;
+}
+
+.fakeUlLink:hover {
+	text-decoration: underline;
+}
+
+.textFile {
+	width: 765px;
+	/* Wrapping stuff from http://www.longren.org/wrapping-text-inside-pre-tags/ */
+	white-space: pre-wrap;       /* css-3 */
+	white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
+	white-space: -pre-wrap;      /* Opera 4-6 */
+	white-space: -o-pre-wrap;    /* Opera 7 */
+	word-wrap: break-word;       /* Internet Explorer 5.5+ */
+}
+
+/* This is the container that holds the header, footer, sidebar, and main
+   content of the page. (eg. the white box hovering over the grey backdrop
+   in the 'stocktastic' theme.) */
+#container {
+	width: 1024px;
+	text-align: left;
+}
+
+/* This is the container that holds the header content. (eg. system.name) */
+#header {
+	width: 1024px;
+	clear: both;
+	border-style: none none solid none;
+}
+
+/* This is the container that holds the sidebar widgets. */
+#sidebar {
+	width: 255px;
+	float: left;
+	border-style: none;
+}
+
+/* Styles for the sidebar widget boxes can be set here. */
+.sidebarBox {
+}
+
+/* This is the container that holds the main content of the page (eg. the 
+   portion below the header, beside the sidebar, above the footer.) */
+#content {
+	width: 765px;
+	float: right;
+}
+
+/* This is the container that holds the footer content. (eg. a Synchronet
+   version statement.) */
+#footer {
+	width: 1024px;
+	clear: both;
+	border-style: solid none none none;
+	text-align: right;
+	font-style: italic;
+}
-- 
GitLab