diff --git a/web/root/ecWeb/lib/captchaLib.ssjs b/web/root/ecWeb/lib/captchaLib.ssjs
index 7e20bfa135274f6092a0d5b10fcc4acee8a9a7c8..b6d78d2337e3157b6090fc66b329e19a0e2e04ac 100644
--- a/web/root/ecWeb/lib/captchaLib.ssjs
+++ b/web/root/ecWeb/lib/captchaLib.ssjs
@@ -35,8 +35,8 @@ function insertCaptcha() {
 		print("<pre style='font-face:monospace;font-family:courier new,courier,fixedsys,monospace;background-color:black;float:left;padding-right:5px;'>" + h + "</pre>");
 		captchaString = captchaString + file_getname(f[randomLetter]).replace(file_getext(f[randomLetter]), "")
 	}
-	print("</div><br style=clear:both;/><br />");
-	print("<input class='border font' type=text size=" + webIni.captchaLength + " name=letters1> Enter the letters shown above (<a class=link href=./lib/captchaLib.ssjs?font=" + randomFont + " target=_blank>Help</a>)<br /><br />");
+	print("</div><br style=clear:both><br>");
+	print("<input class='border font' type=text size=" + webIni.captchaLength + " name=letters1> Enter the letters shown above (<a class=link href='./lib/captchaLib.ssjs?font=" + randomFont + "' target=_blank>Help</a>)<br><br>");
 	print("<input type=hidden name=letters2 value=" + md5_calc(captchaString.toUpperCase(), hex=true) + ">");
 }
 
@@ -44,12 +44,14 @@ if(http_request.query.hasOwnProperty("font")) {
 	load('webInit.ssjs');
 	load(webIni.webRoot + '/themes/' + webIni.theme + '/layout.ssjs');
 	openPage("Captcha Help"); 
-	print("<span class=headingFont>CAPTCHA Help</span><br /><br />");
-	print("Having trouble reading the CAPTCHA? Compare what you see in the CAPTCHA box to the letters in the alphabet below.<br />(Note: this CAPTCHA uses letters, not numbers, and is not case sensitive.)<br /><br />");
+	print("<span class=headingFont>CAPTCHA Help</span><br><br>");
+	print("Having trouble reading the CAPTCHA? Compare what you see in the CAPTCHA box to the letters in the alphabet below.<br>(Note: this CAPTCHA uses letters, not numbers, and is not case sensitive.)<br><br>");
 	var d = directory(webIni.webRoot + "/lib/captchaAnsis/*");
 	if(parseInt(http_request.query.font) < d.length) {
 		var f = directory(d[parseInt(http_request.query.font)] + "/*");
 		for(g in f) {
+			if(file_isdir(f[g]))
+				continue;
 			var h = new File(f[g]);
 			h.open("r");
 			i = h.read();
diff --git a/web/root/ecWeb/lib/clientLib.js b/web/root/ecWeb/lib/clientLib.js
index 658dc336bc0035f0d7f7dd3eda21360ea7881ad0..00e7212c3555083f975ac0633be9b79bbe8393ce 100644
--- a/web/root/ecWeb/lib/clientLib.js
+++ b/web/root/ecWeb/lib/clientLib.js
@@ -153,7 +153,10 @@ function validateNewUserForm() {
 				document.getElementById(theForm.elements[e].id + 'Error').innerHTML = '';
 			}
 		}
-		if(theForm.elements[e].id == 'sex') {
+		if(theForm.elements[e].id == 'sexM') {
+			if(!theForm.elements[e].checked) sexCheck++;
+		}
+		if(theForm.elements[e].id == 'sexF') {
 			if(!theForm.elements[e].checked) sexCheck++;
 		}
 		if(theForm.elements[e].id == 'birthDate') {
diff --git a/web/root/ecWeb/lightirc/lightirc.ssjs b/web/root/ecWeb/lightirc/lightirc.ssjs
index e490c890843d2f016eacb0bbd630fa77ad82322f..514f974d8c9017e892d9d4063c75f86976d4b63d 100644
--- a/web/root/ecWeb/lightirc/lightirc.ssjs
+++ b/web/root/ecWeb/lightirc/lightirc.ssjs
@@ -21,9 +21,9 @@ if(f.open("r",true)) {
 	var fspPort = 843;
 }
 
-print("<script type=text/javascript src=" + eval(webIni.webUrl) + "lightirc/swfobject.js></script>");
+print('<script type="text/javascript" src="' + eval(webIni.webUrl) + 'lightirc/swfobject.js"></script>');
 print("<div id=lightIRC></div>");
-print("<script language=javascript type=text/javascript>");
+print('<script type="text/javascript">');
 print("var params = {};");
 print("params.host = '" + system.inet_addr + "';");
 print("params.policyPort = " + fspPort + ";");
diff --git a/web/root/ecWeb/newUser.ssjs b/web/root/ecWeb/newUser.ssjs
index deb6498983122c762322a595c9ed9b19c695e1f9..c26aee02cbebff5293c4cf69e916003a5a99cfae 100644
--- a/web/root/ecWeb/newUser.ssjs
+++ b/web/root/ecWeb/newUser.ssjs
@@ -11,7 +11,7 @@ load(webIni.webRoot + '/themes/' + webIni.theme + "/layout.ssjs");
 load(webIni.webRoot + '/lib/captchaLib.ssjs');
 
 openPage("New User Registration");
-print("<span class=titleFont>New User Registration</span><br /><br />");
+print("<span class=titleFont>New User Registration</span><br><br>");
 
 if(http_request.query.hasOwnProperty('action') && http_request.query.action == 'newUser' && user.alias.toUpperCase() == webIni.guestUser.toUpperCase()) {
 
@@ -22,29 +22,29 @@ if(http_request.query.hasOwnProperty('action') && http_request.query.action == '
 
 	if(system.newuser_questions&UQ_ALIASES) {
 		if(!http_request.query.hasOwnProperty('alias') || http_request.query.alias.toString().length < 1) {
-			failString = '- Alias not provided<br />';
+			failString = '- Alias not provided<br>';
 		} else if(system.trashcan('name', http_request.query.alias)) {
-			failString += '- Invalid alias supplied<br />';
+			failString += '- Invalid alias supplied<br>';
 		} else if(system.matchuser(http_request.query.alias.toString())) {
-			failString += '- Alias already in use<br />';
+			failString += '- Alias already in use<br>';
 		} else {
 			newUserObject.alias = http_request.query.alias.toString();
 		}
 	}
 
 	if(!http_request.query.hasOwnProperty('password1') || !http_request.query.hasOwnProperty('password2') || http_request.query.password1.toString().toUpperCase() != http_request.query.password2.toString().toUpperCase() || http_request.query.password1.toString().length < 4) {
-		failString += '- Invalid or mismatched passwords supplied<br />';
+		failString += '- Invalid or mismatched passwords supplied<br>';
 	} else {
 		newUserObject.password = http_request.query.password1.toString().toUpperCase();
 	}
 
 	if(system.newuser_questions&UQ_REALNAME) {
 		if(!http_request.query.hasOwnProperty('realName') || http_request.query.realName.toString().length < 1) {
-			failString += '- Real name not provided<br />';
+			failString += '- Real name not provided<br>';
 		} else if(system.trashcan('name', http_request.query.realName)) {
-			failString += '- Invalid real name supplied<br />';
+			failString += '- Invalid real name supplied<br>';
 		} else if(system.newuser_questions&UQ_DUPREAL && system.matchuser(http_request.query.realName.toString())) {
-			failString += '- Real name already in use<br />';
+			failString += '- Real name already in use<br>';
 		} else {
 			newUserObject.name = http_request.query.realName.toString();
 		}
@@ -52,11 +52,11 @@ if(http_request.query.hasOwnProperty('action') && http_request.query.action == '
 
 	if(system.newuser_questions&UQ_HANDLE) {
 		if(!http_request.query.hasOwnProperty('handle') || http_request.query.handle.toString().length < 1) {
-			failString += '- Chat handle not provided<br />';
+			failString += '- Chat handle not provided<br>';
 		} else if(system.trashcan('name', http_request.query.handle)) {
-			failString += '- Invalid chat handle supplied<br />';
+			failString += '- Invalid chat handle supplied<br>';
 		} else if(system.newuser_questions&UQ_DUPHAND && system.matchuser(http_request.query.handle.toString())) {
-			failString += '- Chat handle already in use<br />';
+			failString += '- Chat handle already in use<br>';
 		} else {
 			newUserObject.handle = http_request.query.handle.toString();
 		}
@@ -64,7 +64,7 @@ if(http_request.query.hasOwnProperty('action') && http_request.query.action == '
 
 	if(system.newuser_questions&UQ_LOCATION) {
 		if(!http_request.query.hasOwnProperty('location') || http_request.query.location.toString().length < 1) { 
-			failString += '- Location not provided<br />';
+			failString += '- Location not provided<br>';
 		} else {
 			newUserObject.location = http_request.query.location.toString();
 		}
@@ -72,7 +72,7 @@ if(http_request.query.hasOwnProperty('action') && http_request.query.action == '
 
 	if(system.newuser_questions&UQ_ADDRESS) {
 		if(!http_request.query.hasOwnProperty('streetAddress') || http_request.query.streetAddress.toString().length < 6) {
-			failString += '- Address not provided<br />';
+			failString += '- Address not provided<br>';
 		} else {
 			newUserObject.address = http_request.query.streetAddress.toString();
 		}
@@ -80,9 +80,9 @@ if(http_request.query.hasOwnProperty('action') && http_request.query.action == '
 
 	if(system.newuser_questions&UQ_PHONE) {
 		if(!http_request.query.hasOwnProperty('phone') || http_request.query.phone.length < 1) {
-			failString += '- Phone number not provided<br />';
+			failString += '- Phone number not provided<br>';
 		} else if(system.trashcan('phone', http_request.query.phone)) {
-			failString += '- Invalid phone number suplied<br />';
+			failString += '- Invalid phone number suplied<br>';
 		} else {
 			newUserObject.phone = http_request.query.phone.toString();
 		}
@@ -90,7 +90,7 @@ if(http_request.query.hasOwnProperty('action') && http_request.query.action == '
 
 	if(system.newuser_questions&UQ_SEX) {
 		if(!http_request.query.hasOwnProperty('sex') || (http_request.query.sex.toString() != 'm' && http_request.query.sex.toString() != 'f')) {
-			failString += '- Sex not provided (lol)<br />';
+			failString += '- Sex not provided (lol)<br>';
 		} else {
 			newUserObject.gender = http_request.query.sex.toString().toUpperCase();
 		}
@@ -98,7 +98,7 @@ if(http_request.query.hasOwnProperty('action') && http_request.query.action == '
 
 	if(system.newuser_questions&UQ_BIRTH) {
 		if(!http_request.query.hasOwnProperty('birthDate') || http_request.query.birthDate.toString().match(/\d\d-\d\d-\d\d/) == null) {
-			failString += '- Birth date not provided<br />';
+			failString += '- Birth date not provided<br>';
 		} else {
 			newUserObject.birthdate = http_request.query.birthDate.toString();
 		}
@@ -106,7 +106,7 @@ if(http_request.query.hasOwnProperty('action') && http_request.query.action == '
 
 	if(system.newuser_questions&UQ_COMPANY) {
 		if(!http_request.query.hasOwnProperty('company') || http_request.query.company.length < 1) {
-			failString += '- Company name not provided<br />';
+			failString += '- Company name not provided<br>';
 		} else {
 			// I don't know where this would go, either. Probably one of the
 			// 'comment' properties of the user object. Probably doesn't matter.
@@ -116,24 +116,24 @@ if(http_request.query.hasOwnProperty('action') && http_request.query.action == '
 	if(system.newuser_questions&UQ_NONETMAIL) {
 	} else {
 		if(!http_request.query.hasOwnProperty('netmail') || !http_request.query.netmail.toString().match(/\w+\@\w+/)) {
-			failString += '- Invalid email/netmail address provided<br />';
+			failString += '- Invalid email/netmail address provided<br>';
 		} else {
 			newUserObject.netmail = http_request.query.netmail.toString();
 		}
 	}
 
 	if(!http_request.query.hasOwnProperty('letters1') || !http_request.query.hasOwnProperty('letters2')) {
-		failString += '- CAPTCHA missing<br />';
+		failString += '- CAPTCHA missing<br>';
 	} else if(md5_calc(http_request.query.letters1.toString().toUpperCase(), hex=true) != http_request.query.letters2.toString()) {
-		failString += '- CAPTCHA mismatch<br />';
+		failString += '- CAPTCHA mismatch<br>';
 	}
 
 	if(system.newuser_password != "" && (!http_request.query.hasOwnProperty('nup') || http_request.query.nup.toString().toUpperCase() != system.newuser_password.toUpperCase())) {
-		failString += '- Incorrect or no newuser password supplied<br />';
+		failString += '- Incorrect or no newuser password supplied<br>';
 	}
 
 	if(failString.length > 0) {
-		print("Your registration failed for the following reasons:<br /><br />" + failString);
+		print("Your registration failed for the following reasons:<br><br>" + failString);
 	} else {
 		var makeNewUser = system.new_user(newUserObject.alias);
 		for(property in newUserObject) {
@@ -149,27 +149,27 @@ if(http_request.query.hasOwnProperty('action') && http_request.query.action == '
 
 } else if(user.alias.toUpperCase() == webIni.guestUser.toUpperCase()) {
 
-	print("<form name=newUser id=newUser action=./newUser.ssjs method=post onsubmit='return validateNewUserForm()'>");
-	print("<input type=hidden name=action value=newUser />");
-	if(system.newuser_questions&UQ_ALIASES) print("Alias:<br /><input type=text size=30 name=alias id=alias /> <span id=aliasError></span><br /><br />");
-	print("Password:<br /><input type=password size=30 name=password1 id=password1 /> <span id=password1Error></span><br /><br />");
-	print("Password again:<br /><input type=password size=30 name=password2 id=password2 /> <span id=password2Error></span><br /><br />");
-	if(system.newuser_questions&UQ_REALNAME) print("Real Name:<br /><input type=text size=30 name=realName id=realName /> <span id=realNameError></span><br /><br />");
-	if(system.newuser_questions&UQ_HANDLE) print("Chat Handle:<br /><input type=text size=30 name=handle id=handle /> <span id=handleError></span><br /><br />");
-	if(system.newuser_questions&UQ_LOCATION) print("Location:<br /><input type=text size=30 name=location id=location /> <span id=locationError></span><br /><br />");
-	if(system.newuser_questions&UQ_ADDRESS) print("Street Address:<br /><input type=text size=30 name=streetAddress id=streetAddress /> <span id=streetAddressError></span><br /><br />");
-	if(system.newuser_questions&UQ_PHONE) print("Phone Number:<br /><input type=text size=30 name=phone id=phone /> <span id=phoneError></span><br /><br />");
-	if(system.newuser_questions&UQ_SEX) print("Sex: <input type=radio name=sex id=sex value=m />M <input type=radio name=sex id=sex value=f />F <span id=sexError></span><br /><br />"); // lol
-	if(system.newuser_questions&UQ_BIRTH) print("Birthdate DD-MM-YY:<br /><input type=text size=8 name=birthDate id=birthDate /> <span id=birthDateError></span><br /><br />");
-	if(system.newuser_questions&UQ_COMPANY) print("Company:<br /><input type=text size=30 name=company id=company /> <span id=companyError></span><br /><br />");
+	print('<form name=newUser id=newUser action="./newUser.ssjs" method=post onsubmit="return validateNewUserForm()"><div>');
+	print("<input type=hidden name=action value=newUser>");
+	if(system.newuser_questions&UQ_ALIASES) print("Alias:<br><input type=text size=30 name=alias id=alias> <span id=aliasError></span><br><br>");
+	print("Password:<br><input type=password size=30 name=password1 id=password1> <span id=password1Error></span><br><br>");
+	print("Password again:<br><input type=password size=30 name=password2 id=password2> <span id=password2Error></span><br><br>");
+	if(system.newuser_questions&UQ_REALNAME) print("Real Name:<br><input type=text size=30 name=realName id=realName> <span id=realNameError></span><br><br>");
+	if(system.newuser_questions&UQ_HANDLE) print("Chat Handle:<br><input type=text size=30 name=handle id=handle> <span id=handleError></span><br><br>");
+	if(system.newuser_questions&UQ_LOCATION) print("Location:<br><input type=text size=30 name=location id=location> <span id=locationError></span><br><br>");
+	if(system.newuser_questions&UQ_ADDRESS) print("Street Address:<br><input type=text size=30 name=streetAddress id=streetAddress> <span id=streetAddressError></span><br><br>");
+	if(system.newuser_questions&UQ_PHONE) print("Phone Number:<br><input type=text size=30 name=phone id=phone> <span id=phoneError></span><br><br>");
+	if(system.newuser_questions&UQ_SEX) print("Sex: <input type=radio name=sex id=sexM value=m>M <input type=radio name=sex id=sexF value=f>F <span id=sexError></span><br><br>"); // lol
+	if(system.newuser_questions&UQ_BIRTH) print("Birthdate DD-MM-YY:<br><input type=text size=8 name=birthDate id=birthDate> <span id=birthDateError></span><br><br>");
+	if(system.newuser_questions&UQ_COMPANY) print("Company:<br><input type=text size=30 name=company id=company> <span id=companyError></span><br><br>");
 	if(system.newuser_questions&UQ_NONETMAIL) {
 	} else {
-		print("Email/Netmail:<br /><input type=text size=30 name=netmail id=netmail /> <span id=netmailError></span><br /><br />");
+		print("Email/Netmail:<br><input type=text size=30 name=netmail id=netmail> <span id=netmailError></span><br><br>");
 	}
 	insertCaptcha(); // Draws a CAPTCHA, inserts the hidden input 'letters2' (md5 sum of the CAPTCHA string) and text input 'letters1'
-	if(system.newuser_password != "") print("Please supply the new user password below.<br /><input class='border font' type=password size=25 name=nup><br /><br />");
-	print("<input type=submit value=Submit />");
-	print("</form>");
+	if(system.newuser_password != "") print("Please supply the new user password below.<br><input class='border font' type=password size=25 name=nup><br><br>");
+	print("<input type=submit value=Submit>");
+	print("</div></form>");
 
 } else {
 
diff --git a/web/root/ecWeb/pages/000-home.ssjs b/web/root/ecWeb/pages/000-home.ssjs
index 503b697b2bcc636495c9c4fd0b7a44e298af8a46..e10f5e12c547e3cd5e44eaa0c0b0bb1e01294094 100644
--- a/web/root/ecWeb/pages/000-home.ssjs
+++ b/web/root/ecWeb/pages/000-home.ssjs
@@ -8,9 +8,9 @@
 // reflect that change.
 
 // Embed fTelnet
-print("<span class=titleFont>Telnet</span><br /><br />");
+print("<span class=titleFont>Telnet</span><br><br>");
 load(webIni.webRoot + '/fTelnet/fTelnet.ssjs');
 
 // Embed lightIRC
-print("<br /><br /><span class=titleFont>IRC Chat</span><br /><br />");
+print("<br><br><span class=titleFont>IRC Chat</span><br><br>");
 load(webIni.webRoot + '/lightirc/lightirc.ssjs');
diff --git a/web/root/ecWeb/pages/001-forum.ssjs b/web/root/ecWeb/pages/001-forum.ssjs
index 4767c2970935c0a273f714759e14ba02b692265b..c98a79dfc173fcaa6fb0527b5353cac58d201870 100644
--- a/web/root/ecWeb/pages/001-forum.ssjs
+++ b/web/root/ecWeb/pages/001-forum.ssjs
@@ -7,14 +7,14 @@ load(webIni.webRoot + '/lib/forumLib.ssjs');
 //openPage("Message Forum");
 
 if(!http_request.query.hasOwnProperty('action')) {
-	print('<span class=titleFont>Message Forum</span><br /><br />');
+	print('<span class=titleFont>Message Forum</span><br><br>');
 	printBoards();
 } else if(http_request.query.action.toString() == 'viewSubBoard' && http_request.query.hasOwnProperty('subBoard')) {
-	print('<span class=titleFont>Message Forum: Sub-Board View</span><br />');
+	print('<span class=titleFont>Message Forum: Sub-Board View</span><br>');
 	printSubBoard(http_request.query.subBoard.toString(), 0, false, 0);
 } else if(http_request.query.action.toString() == 'newMessageScan' && user.alias != webIni.guestUser) {
-	print('<span class=titleFont>Message Forum: New Message Scan</span><br />');
+	print('<span class=titleFont>Message Forum: New Message Scan</span><br>');
 	newMessageScan();
 }
 
-//closePage();
\ No newline at end of file
+//closePage();
diff --git a/web/root/ecWeb/pages/002-ssjs.ssjs b/web/root/ecWeb/pages/002-ssjs.ssjs
index 3eb50a39804bd92a1a2a3136f20a37753d90a0a6..28883782ca5a35747dc024c2613ddf4dadd397a8 100644
--- a/web/root/ecWeb/pages/002-ssjs.ssjs
+++ b/web/root/ecWeb/pages/002-ssjs.ssjs
@@ -1,3 +1,3 @@
 // SSJS file
 
-print("You can use a server-side javascript file as a static page.<br /><br />Make the first line of the file a comment - it will be used as the title of the page.<br /><br />This file is saved at ~pages/002-ssjs.ssjs.  Please delete it once you've read and understood it.");
\ No newline at end of file
+print("You can use a server-side javascript file as a static page.<br><br>Make the first line of the file a comment - it will be used as the title of the page.<br><br>This file is saved at ~pages/002-ssjs.ssjs.  Please delete it once you've read and understood it.");
diff --git a/web/root/ecWeb/pages/003-html.html b/web/root/ecWeb/pages/003-html.html
index 13e3154cce43d5360ebb8acd8b12c2187c86a820..ddb54d78d210db3c4a4e54828461e1c7e87511c1 100644
--- a/web/root/ecWeb/pages/003-html.html
+++ b/web/root/ecWeb/pages/003-html.html
@@ -1,7 +1,7 @@
 <!-- HTML document -->
 
 You can use an <b>HTML</b> file as a <i>static page</i>.
-<br /><br />
+<br><br>
 Make the first line of the file a comment - the text within the &lt;!-- comment --&gt; tag will be used as the title of the page.
-<br /><br />
+<br><br>
 This file is saved at ~pages/003-html.html.  Please delete it once you've read and understood it.
diff --git a/web/root/ecWeb/sidebar/000-pages.ssjs b/web/root/ecWeb/sidebar/000-pages.ssjs
index 1cb4f49af3364dff90b66dc48792b9ad068b7628..b93997a61c4cf2cb72df1e00aec02922c61a1caf 100644
--- a/web/root/ecWeb/sidebar/000-pages.ssjs
+++ b/web/root/ecWeb/sidebar/000-pages.ssjs
@@ -11,11 +11,11 @@ for(var g in e) {
 		var i = h.readAll();
 		h.close();
 		if(file_isdir(e[g])) continue;
-		else if(file_getext(e[g]).toUpperCase() == ".JS" || file_getext(e[g]).toUpperCase() == ".SSJS") print("<a class='link' href=./pages.ssjs?page=" + file_getname(e[g]) + ">" + i[0].replace(/\/\//g, "") + "</a>");
-		else if(file_getext(e[g]).toUpperCase() == ".HTML") print("<a class='link' href=./pages.ssjs?page=" + file_getname(e[g]) + ">" + i[0].replace(/[\<\!\-+|\-+\>]/g, "") + "</a>");
-		else if(file_getext(e[g]).toUpperCase() == ".TXT") print("<a class='link' href=./pages.ssjs?page=" + file_getname(e[g]) + ">" + i[0] + "</a>");
+		else if(file_getext(e[g]).toUpperCase() == ".JS" || file_getext(e[g]).toUpperCase() == ".SSJS") print('<a class="link" href="./pages.ssjs?page=' + file_getname(e[g]) + '">' + i[0].replace(/\/\//g, "") + "</a>");
+		else if(file_getext(e[g]).toUpperCase() == ".HTML") print('<a class="link" href="./pages.ssjs?page=' + file_getname(e[g]) + '">' + i[0].replace(/[\<\!\-+|\-+\>]/g, "") + "</a>");
+		else if(file_getext(e[g]).toUpperCase() == ".TXT") print('<a class="link" href="./pages.ssjs?page=' + file_getname(e[g]) + '">' + i[0] + "</a>");
 		else continue;
-		print("<br />");
+		print("<br>");
 	}
 }
 
diff --git a/web/root/ecWeb/sidebar/001-login.ssjs b/web/root/ecWeb/sidebar/001-login.ssjs
index 5f8bf030199c08f14cd7fc0f9caa4728d4058c53..a6042bb328ef797bd25e05137583fa2aed1c9e3a 100644
--- a/web/root/ecWeb/sidebar/001-login.ssjs
+++ b/web/root/ecWeb/sidebar/001-login.ssjs
@@ -5,18 +5,18 @@
    list of functions for logged-in users. */
 
 if(user.alias.toUpperCase() != webIni.guestUser.toUpperCase()) {
-	print("You are logged in as <b>" + user.alias + "</b><br />");
-	print("<script language=javascript type=text/javascript>document.write('<a class=link href=./?logout=true&callback=' + location.pathname + location.search + '>Log out</a>');</script><br />");
-	print("<br /><a class=link href=./pages.ssjs?page=" + webIni.forumPage + "&action=newMessageScan>Scan for new messages</a>");
-	print("<br /><a class=link href=./pages.ssjs?page=" + webIni.forumPage + "&action=viewSubBoard&subBoard=mail>Check email</a>");
+	print("You are logged in as <b>" + user.alias + "</b><br>");
+	print('<script type="text/javascript">document.write(\'<a class=link href=./?logout=true&amp;callback=\' + location.pathname + location.search + \'>Log out</a>\');</script><br>');
+	print('<br><a class="link" href="./pages.ssjs?page=' + webIni.forumPage + '&amp;action=newMessageScan">Scan for new messages</a>');
+	print('<br><a class="link" href="./pages.ssjs?page=' + webIni.forumPage + '&amp;action=viewSubBoard&amp;subBoard=mail">Check email</a>');
 } else {
-	print("<form action=./ method=post>");
-	print("Username:<br /><input type=text name=username class=standardFont /><br /><br />");
-	print("Password:<br /><input type=password name=password class=standardFont /><br /><br />");
-	print("<script language=javascript type=text/javascript>document.write('<input type=hidden name=callback value=' + window.location + ' />');</script>");
-	print("<input type=submit value='Log in' />");
-	print("</form>");
-	print("<a class=link href=./newUser.ssjs>Register</a>");
-	if(http_request.query.hasOwnProperty('loginfail')) print("<br /><i>Invalid username or password</i>");
+	print('<form action="./" method="post"><div>');
+	print('Username:<br><input type="text" name="username" class="standardFont"><br><br>');
+	print('Password:<br><input type="password" name="password" class="standardFont"><br><br>');
+	print('<script type="text/javascript">document.write(\'<input type=hidden name=callback value=\' + window.location + \'>\');</script>');
+	print('<input type="submit" value="Log in">');
+	print("</div></form>");
+	print('<a class="link" href="./newUser.ssjs">Register</a>');
+	if(http_request.query.hasOwnProperty('loginfail')) print("<br><i>Invalid username or password</i>");
 }
 
diff --git a/web/root/ecWeb/sidebar/002-whosOnline.ssjs b/web/root/ecWeb/sidebar/002-whosOnline.ssjs
index a9853585a4b4cb91c11d42fef8d516320183ddf1..54ba80fc0fe82ff31fa6c58c1f8c57a6ca2e2361 100644
--- a/web/root/ecWeb/sidebar/002-whosOnline.ssjs
+++ b/web/root/ecWeb/sidebar/002-whosOnline.ssjs
@@ -10,23 +10,23 @@ load("nodedefs.js");
 if(http_request.query.hasOwnProperty("action") && http_request.query.action.toString() == "show") {
 
 	print("<b>Who's online</b><br><br>");
-	print("<table border=0 cellpadding=0 cellspacing=0 class='standardColor standardFont'>");
+	print('<table border=0 cellpadding=0 cellspacing=0 class="standardColor standardFont">');
 	for(n = 0; n < system.node_list.length; n++) {
 		print("<tr><td>Node " + (n + 1) + ":&nbsp;</td>");
 		if(system.node_list[n].status == 3) {
-			print("<td>" + system.username(system.node_list[n].useron) + "</td></tr><tr><td>&nbsp;</td><td style=font-style:italic;>" + NodeAction[system.node_list[n].action] + "</td></tr>");
+			print("<td>" + system.username(system.node_list[n].useron) + '</td></tr><tr><td>&nbsp;</td><td style="font-style:italic;">' + NodeAction[system.node_list[n].action] + "</td></tr>");
 		} else if(system.node_list[n].status == 4) {
-			print("<td style=font-style:italic;>" + NodeStatus[0] + "</td></tr>"); // Pretend to be WFC if in use but quiet. Edit here if you'd like to display quiet nodes differently.
+			print('<td style="font-style:italic;">' + NodeStatus[0] + "</td></tr>"); // Pretend to be WFC if in use but quiet. Edit here if you'd like to display quiet nodes differently.
 		} else {
-			print("<td style=font-style:italic;>" + NodeStatus[system.node_list[n].status] + "</td></tr>");
+			print('<td style="font-style:italic;">' + NodeStatus[system.node_list[n].status] + "</td></tr>");
 		}
 	}
 	print("</table>");
 
 } else {
 
-	print("<div id='whosonline'></div>");
-	print("<script type='text/javascript'>");
+	print('<div id="whosonline"></div>');
+	print('<script type="text/javascript">');
 	print("function xhrwo() {");
 	print("\tvar XMLReq = new XMLHttpRequest();");
 	print("\tXMLReq.open('GET', './sidebar/002-whosOnline.ssjs?action=show', true);");
diff --git a/web/root/ecWeb/sidebar/003-systemStats.ssjs b/web/root/ecWeb/sidebar/003-systemStats.ssjs
index 9a4aaee96e69d6270d7200c82bbe9c41ca20a906..f9bfd4f71265d92d81c9eee19bab2ad91a74a9b4 100644
--- a/web/root/ecWeb/sidebar/003-systemStats.ssjs
+++ b/web/root/ecWeb/sidebar/003-systemStats.ssjs
@@ -4,7 +4,7 @@
 /* A basic sidebar widget to display selected system statistics. Nothing
    special, more of an example of something you can do with the sidebar. */
    
-print("<table border=0 cellpadding=0 cellspacing=0 class='standardColor standardFont'>");
+print('<table border=0 cellpadding=0 cellspacing=0 class="standardColor standardFont">');
 print("<tr><td>Sysop:</td><td>&nbsp;" + system.operator + "</td></tr>");
 print("<tr><td>Location:</td><td>&nbsp;" + system.location + "</td></tr>");
 print("<tr><td>Users:</td><td>&nbsp;" + system.stats.total_users + "</td></tr>");
@@ -17,4 +17,4 @@ print("<tr><td>U/L today:</td><td>&nbsp;" + system.stats.files_uploaded_today +
 print("<tr><td>D/L today:</td><td>&nbsp;" + system.stats.bytes_downloaded_today + " (" + system.stats.bytes_downloaded_today + " bytes)</td></tr>");
 print("<tr><td>Messages:</td><td>&nbsp;" + system.stats.total_messages + "</td></tr>");
 print("<tr><td>Posts today:</td><td>&nbsp;" + system.stats.messages_posted_today + "</td></tr>");
-print("</table>");
\ No newline at end of file
+print("</table>");
diff --git a/web/root/ecWeb/themes/blacktastic/layout.ssjs b/web/root/ecWeb/themes/blacktastic/layout.ssjs
index 0b4f689680d125075d47433c66a0af2719ee6353..9153098cd7d58775bbc1a8412473e92abebdc27d 100644
--- a/web/root/ecWeb/themes/blacktastic/layout.ssjs
+++ b/web/root/ecWeb/themes/blacktastic/layout.ssjs
@@ -1,33 +1,35 @@
 function openPage(pageTitle) {
 	// Print the initial HTML tags
+	print('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">');
 	print("<html>");
 	print("<head>");
-	print("<link rel=stylesheet type=text/css href=" + eval(webIni.webUrl) + "/themes/" + webIni.theme + "/style.css />");
+	print('<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >');
+	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('<script type="text/javascript" src="' + eval(webIni.webUrl) + '/lib/clientLib.js"></script>');
 	print("</head>");
-	print("<body class='standardFont backdropColor'>");
-	print("<center>");
+	print('<body class="standardFont backdropColor">');
+	print('<div style="text-align: center">');
 
 	// Open the container
-	print("<div id='container' class='standardBorder standardColor'>");
+	print('<div id="container" class="standardBorder standardColor">');
 
 	// Draw the header
-	print("<div id='header' class='standardBorder titleFont'>");
-	print("<div class='standardMargin'>");
+	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 :|
+	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) {
 		if(file_isdir(d[f])) continue;
-		print("<div class='sidebarBox standardBorder standardPadding underMargin'>");
+		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]);
@@ -44,8 +46,8 @@ function openPage(pageTitle) {
 	print("</div>");
 	
 	// Main content box opens here
-	print("<div id='content'>");
-	print("<div class='standardMargin'>");
+	print('<div id="content">');
+	print('<div class="standardMargin">');
 }
 
 function closePage() {
@@ -54,8 +56,8 @@ function closePage() {
 	// Close the main content box
 
 	// Draw the footer
-	print("<div id='footer' class='standardBorder'>");
-	print("<div class='standardMargin'>");
+	print('<div id="footer" class="standardBorder">');
+	print('<div class="standardMargin">');
 	print(eval(webIni.footerText));
 	print("</div>");
 	print("</div>");
@@ -64,7 +66,7 @@ function closePage() {
 	// Close the container
 
 	// Close out the remaining HTML
-	print("</center>");
+	print("</div>");
 	print("</body>");
 	print("</html>");
 }
diff --git a/web/root/ecWeb/themes/blocktastic-r/layout.ssjs b/web/root/ecWeb/themes/blocktastic-r/layout.ssjs
index 0b4f689680d125075d47433c66a0af2719ee6353..9153098cd7d58775bbc1a8412473e92abebdc27d 100644
--- a/web/root/ecWeb/themes/blocktastic-r/layout.ssjs
+++ b/web/root/ecWeb/themes/blocktastic-r/layout.ssjs
@@ -1,33 +1,35 @@
 function openPage(pageTitle) {
 	// Print the initial HTML tags
+	print('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">');
 	print("<html>");
 	print("<head>");
-	print("<link rel=stylesheet type=text/css href=" + eval(webIni.webUrl) + "/themes/" + webIni.theme + "/style.css />");
+	print('<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >');
+	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('<script type="text/javascript" src="' + eval(webIni.webUrl) + '/lib/clientLib.js"></script>');
 	print("</head>");
-	print("<body class='standardFont backdropColor'>");
-	print("<center>");
+	print('<body class="standardFont backdropColor">');
+	print('<div style="text-align: center">');
 
 	// Open the container
-	print("<div id='container' class='standardBorder standardColor'>");
+	print('<div id="container" class="standardBorder standardColor">');
 
 	// Draw the header
-	print("<div id='header' class='standardBorder titleFont'>");
-	print("<div class='standardMargin'>");
+	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 :|
+	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) {
 		if(file_isdir(d[f])) continue;
-		print("<div class='sidebarBox standardBorder standardPadding underMargin'>");
+		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]);
@@ -44,8 +46,8 @@ function openPage(pageTitle) {
 	print("</div>");
 	
 	// Main content box opens here
-	print("<div id='content'>");
-	print("<div class='standardMargin'>");
+	print('<div id="content">');
+	print('<div class="standardMargin">');
 }
 
 function closePage() {
@@ -54,8 +56,8 @@ function closePage() {
 	// Close the main content box
 
 	// Draw the footer
-	print("<div id='footer' class='standardBorder'>");
-	print("<div class='standardMargin'>");
+	print('<div id="footer" class="standardBorder">');
+	print('<div class="standardMargin">');
 	print(eval(webIni.footerText));
 	print("</div>");
 	print("</div>");
@@ -64,7 +66,7 @@ function closePage() {
 	// Close the container
 
 	// Close out the remaining HTML
-	print("</center>");
+	print("</div>");
 	print("</body>");
 	print("</html>");
 }
diff --git a/web/root/ecWeb/themes/blocktastic/layout.ssjs b/web/root/ecWeb/themes/blocktastic/layout.ssjs
index 0b4f689680d125075d47433c66a0af2719ee6353..9153098cd7d58775bbc1a8412473e92abebdc27d 100644
--- a/web/root/ecWeb/themes/blocktastic/layout.ssjs
+++ b/web/root/ecWeb/themes/blocktastic/layout.ssjs
@@ -1,33 +1,35 @@
 function openPage(pageTitle) {
 	// Print the initial HTML tags
+	print('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">');
 	print("<html>");
 	print("<head>");
-	print("<link rel=stylesheet type=text/css href=" + eval(webIni.webUrl) + "/themes/" + webIni.theme + "/style.css />");
+	print('<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >');
+	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('<script type="text/javascript" src="' + eval(webIni.webUrl) + '/lib/clientLib.js"></script>');
 	print("</head>");
-	print("<body class='standardFont backdropColor'>");
-	print("<center>");
+	print('<body class="standardFont backdropColor">');
+	print('<div style="text-align: center">');
 
 	// Open the container
-	print("<div id='container' class='standardBorder standardColor'>");
+	print('<div id="container" class="standardBorder standardColor">');
 
 	// Draw the header
-	print("<div id='header' class='standardBorder titleFont'>");
-	print("<div class='standardMargin'>");
+	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 :|
+	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) {
 		if(file_isdir(d[f])) continue;
-		print("<div class='sidebarBox standardBorder standardPadding underMargin'>");
+		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]);
@@ -44,8 +46,8 @@ function openPage(pageTitle) {
 	print("</div>");
 	
 	// Main content box opens here
-	print("<div id='content'>");
-	print("<div class='standardMargin'>");
+	print('<div id="content">');
+	print('<div class="standardMargin">');
 }
 
 function closePage() {
@@ -54,8 +56,8 @@ function closePage() {
 	// Close the main content box
 
 	// Draw the footer
-	print("<div id='footer' class='standardBorder'>");
-	print("<div class='standardMargin'>");
+	print('<div id="footer" class="standardBorder">');
+	print('<div class="standardMargin">');
 	print(eval(webIni.footerText));
 	print("</div>");
 	print("</div>");
@@ -64,7 +66,7 @@ function closePage() {
 	// Close the container
 
 	// Close out the remaining HTML
-	print("</center>");
+	print("</div>");
 	print("</body>");
 	print("</html>");
 }
diff --git a/web/root/ecWeb/themes/hotdogstand/layout.ssjs b/web/root/ecWeb/themes/hotdogstand/layout.ssjs
index 0b4f689680d125075d47433c66a0af2719ee6353..9153098cd7d58775bbc1a8412473e92abebdc27d 100644
--- a/web/root/ecWeb/themes/hotdogstand/layout.ssjs
+++ b/web/root/ecWeb/themes/hotdogstand/layout.ssjs
@@ -1,33 +1,35 @@
 function openPage(pageTitle) {
 	// Print the initial HTML tags
+	print('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">');
 	print("<html>");
 	print("<head>");
-	print("<link rel=stylesheet type=text/css href=" + eval(webIni.webUrl) + "/themes/" + webIni.theme + "/style.css />");
+	print('<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >');
+	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('<script type="text/javascript" src="' + eval(webIni.webUrl) + '/lib/clientLib.js"></script>');
 	print("</head>");
-	print("<body class='standardFont backdropColor'>");
-	print("<center>");
+	print('<body class="standardFont backdropColor">');
+	print('<div style="text-align: center">');
 
 	// Open the container
-	print("<div id='container' class='standardBorder standardColor'>");
+	print('<div id="container" class="standardBorder standardColor">');
 
 	// Draw the header
-	print("<div id='header' class='standardBorder titleFont'>");
-	print("<div class='standardMargin'>");
+	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 :|
+	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) {
 		if(file_isdir(d[f])) continue;
-		print("<div class='sidebarBox standardBorder standardPadding underMargin'>");
+		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]);
@@ -44,8 +46,8 @@ function openPage(pageTitle) {
 	print("</div>");
 	
 	// Main content box opens here
-	print("<div id='content'>");
-	print("<div class='standardMargin'>");
+	print('<div id="content">');
+	print('<div class="standardMargin">');
 }
 
 function closePage() {
@@ -54,8 +56,8 @@ function closePage() {
 	// Close the main content box
 
 	// Draw the footer
-	print("<div id='footer' class='standardBorder'>");
-	print("<div class='standardMargin'>");
+	print('<div id="footer" class="standardBorder">');
+	print('<div class="standardMargin">');
 	print(eval(webIni.footerText));
 	print("</div>");
 	print("</div>");
@@ -64,7 +66,7 @@ function closePage() {
 	// Close the container
 
 	// Close out the remaining HTML
-	print("</center>");
+	print("</div>");
 	print("</body>");
 	print("</html>");
 }
diff --git a/web/root/ecWeb/themes/shitenade/layout.ssjs b/web/root/ecWeb/themes/shitenade/layout.ssjs
index 0b4f689680d125075d47433c66a0af2719ee6353..9153098cd7d58775bbc1a8412473e92abebdc27d 100644
--- a/web/root/ecWeb/themes/shitenade/layout.ssjs
+++ b/web/root/ecWeb/themes/shitenade/layout.ssjs
@@ -1,33 +1,35 @@
 function openPage(pageTitle) {
 	// Print the initial HTML tags
+	print('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">');
 	print("<html>");
 	print("<head>");
-	print("<link rel=stylesheet type=text/css href=" + eval(webIni.webUrl) + "/themes/" + webIni.theme + "/style.css />");
+	print('<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >');
+	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('<script type="text/javascript" src="' + eval(webIni.webUrl) + '/lib/clientLib.js"></script>');
 	print("</head>");
-	print("<body class='standardFont backdropColor'>");
-	print("<center>");
+	print('<body class="standardFont backdropColor">');
+	print('<div style="text-align: center">');
 
 	// Open the container
-	print("<div id='container' class='standardBorder standardColor'>");
+	print('<div id="container" class="standardBorder standardColor">');
 
 	// Draw the header
-	print("<div id='header' class='standardBorder titleFont'>");
-	print("<div class='standardMargin'>");
+	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 :|
+	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) {
 		if(file_isdir(d[f])) continue;
-		print("<div class='sidebarBox standardBorder standardPadding underMargin'>");
+		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]);
@@ -44,8 +46,8 @@ function openPage(pageTitle) {
 	print("</div>");
 	
 	// Main content box opens here
-	print("<div id='content'>");
-	print("<div class='standardMargin'>");
+	print('<div id="content">');
+	print('<div class="standardMargin">');
 }
 
 function closePage() {
@@ -54,8 +56,8 @@ function closePage() {
 	// Close the main content box
 
 	// Draw the footer
-	print("<div id='footer' class='standardBorder'>");
-	print("<div class='standardMargin'>");
+	print('<div id="footer" class="standardBorder">');
+	print('<div class="standardMargin">');
 	print(eval(webIni.footerText));
 	print("</div>");
 	print("</div>");
@@ -64,7 +66,7 @@ function closePage() {
 	// Close the container
 
 	// Close out the remaining HTML
-	print("</center>");
+	print("</div>");
 	print("</body>");
 	print("</html>");
 }
diff --git a/web/root/ecWeb/themes/stocktastic-r/layout.ssjs b/web/root/ecWeb/themes/stocktastic-r/layout.ssjs
index 0b4f689680d125075d47433c66a0af2719ee6353..9153098cd7d58775bbc1a8412473e92abebdc27d 100644
--- a/web/root/ecWeb/themes/stocktastic-r/layout.ssjs
+++ b/web/root/ecWeb/themes/stocktastic-r/layout.ssjs
@@ -1,33 +1,35 @@
 function openPage(pageTitle) {
 	// Print the initial HTML tags
+	print('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">');
 	print("<html>");
 	print("<head>");
-	print("<link rel=stylesheet type=text/css href=" + eval(webIni.webUrl) + "/themes/" + webIni.theme + "/style.css />");
+	print('<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >');
+	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('<script type="text/javascript" src="' + eval(webIni.webUrl) + '/lib/clientLib.js"></script>');
 	print("</head>");
-	print("<body class='standardFont backdropColor'>");
-	print("<center>");
+	print('<body class="standardFont backdropColor">');
+	print('<div style="text-align: center">');
 
 	// Open the container
-	print("<div id='container' class='standardBorder standardColor'>");
+	print('<div id="container" class="standardBorder standardColor">');
 
 	// Draw the header
-	print("<div id='header' class='standardBorder titleFont'>");
-	print("<div class='standardMargin'>");
+	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 :|
+	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) {
 		if(file_isdir(d[f])) continue;
-		print("<div class='sidebarBox standardBorder standardPadding underMargin'>");
+		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]);
@@ -44,8 +46,8 @@ function openPage(pageTitle) {
 	print("</div>");
 	
 	// Main content box opens here
-	print("<div id='content'>");
-	print("<div class='standardMargin'>");
+	print('<div id="content">');
+	print('<div class="standardMargin">');
 }
 
 function closePage() {
@@ -54,8 +56,8 @@ function closePage() {
 	// Close the main content box
 
 	// Draw the footer
-	print("<div id='footer' class='standardBorder'>");
-	print("<div class='standardMargin'>");
+	print('<div id="footer" class="standardBorder">');
+	print('<div class="standardMargin">');
 	print(eval(webIni.footerText));
 	print("</div>");
 	print("</div>");
@@ -64,7 +66,7 @@ function closePage() {
 	// Close the container
 
 	// Close out the remaining HTML
-	print("</center>");
+	print("</div>");
 	print("</body>");
 	print("</html>");
 }
diff --git a/web/root/ecWeb/themes/stocktastic/layout.ssjs b/web/root/ecWeb/themes/stocktastic/layout.ssjs
index 0b4f689680d125075d47433c66a0af2719ee6353..9153098cd7d58775bbc1a8412473e92abebdc27d 100644
--- a/web/root/ecWeb/themes/stocktastic/layout.ssjs
+++ b/web/root/ecWeb/themes/stocktastic/layout.ssjs
@@ -1,33 +1,35 @@
 function openPage(pageTitle) {
 	// Print the initial HTML tags
+	print('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">');
 	print("<html>");
 	print("<head>");
-	print("<link rel=stylesheet type=text/css href=" + eval(webIni.webUrl) + "/themes/" + webIni.theme + "/style.css />");
+	print('<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >');
+	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('<script type="text/javascript" src="' + eval(webIni.webUrl) + '/lib/clientLib.js"></script>');
 	print("</head>");
-	print("<body class='standardFont backdropColor'>");
-	print("<center>");
+	print('<body class="standardFont backdropColor">');
+	print('<div style="text-align: center">');
 
 	// Open the container
-	print("<div id='container' class='standardBorder standardColor'>");
+	print('<div id="container" class="standardBorder standardColor">');
 
 	// Draw the header
-	print("<div id='header' class='standardBorder titleFont'>");
-	print("<div class='standardMargin'>");
+	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 :|
+	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) {
 		if(file_isdir(d[f])) continue;
-		print("<div class='sidebarBox standardBorder standardPadding underMargin'>");
+		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]);
@@ -44,8 +46,8 @@ function openPage(pageTitle) {
 	print("</div>");
 	
 	// Main content box opens here
-	print("<div id='content'>");
-	print("<div class='standardMargin'>");
+	print('<div id="content">');
+	print('<div class="standardMargin">');
 }
 
 function closePage() {
@@ -54,8 +56,8 @@ function closePage() {
 	// Close the main content box
 
 	// Draw the footer
-	print("<div id='footer' class='standardBorder'>");
-	print("<div class='standardMargin'>");
+	print('<div id="footer" class="standardBorder">');
+	print('<div class="standardMargin">');
 	print(eval(webIni.footerText));
 	print("</div>");
 	print("</div>");
@@ -64,7 +66,7 @@ function closePage() {
 	// Close the container
 
 	// Close out the remaining HTML
-	print("</center>");
+	print("</div>");
 	print("</body>");
 	print("</html>");
 }