diff --git a/templates/includes/header-embed.php b/templates/includes/header-embed.php
index 4b2b3b4e6c835df7900fa541a19f8d4254dd4226..874932502189dfb268b7fbdc6d7cfeb11e16568f 100644
--- a/templates/includes/header-embed.php
+++ b/templates/includes/header-embed.php
@@ -10,7 +10,7 @@ if(array_key_exists('header', $this->data)) {
 }
 ?></title>
 
-	<link rel="stylesheet" type="text/css" href="/<?php echo $this->data['baseurlpath']; ?>assets/css/src/old-default.css" />
+	<link rel="stylesheet" type="text/css" href="/<?php echo $this->data['baseurlpath']; ?>resources/default.css" />
 	<meta name="robots" content="noindex, nofollow" />
 
 <?php
diff --git a/templates/includes/header.php b/templates/includes/header.php
index 44972398d7e64ddd6360eaaa7438bfae96dd84db..f95e6c62dbc70cc1d2440bf4b50612d0307337d3 100644
--- a/templates/includes/header.php
+++ b/templates/includes/header.php
@@ -53,7 +53,7 @@ if(array_key_exists('header', $this->data)) {
 }
 ?></title>
 
-	<link rel="stylesheet" type="text/css" href="/<?php echo $this->data['baseurlpath']; ?>assets/css/src/old-default.css" />
+	<link rel="stylesheet" type="text/css" href="/<?php echo $this->data['baseurlpath']; ?>resources/default.css" />
 	<link rel="icon" type="image/icon" href="/<?php echo $this->data['baseurlpath']; ?>resources/icons/favicon.ico" />
 
 <?php
diff --git a/www/assets/css/src/old-default.css b/www/assets/css/src/old-default.css
deleted file mode 100644
index c182cfd89747ab852c50f3c6eff1da58916717a8..0000000000000000000000000000000000000000
--- a/www/assets/css/src/old-default.css
+++ /dev/null
@@ -1,475 +0,0 @@
-/* these styles are in the head of this page because this is a unique page */
-
-/* THE BIG GUYS */
-* {
-    margin: 0;
-    padding: 0;
-}
-
-body {
-    text-align: center;
-    padding: 10px 0;
-    background: #1c1c1c;
-    /*	background-image: url(icons/ssplogo-fish.png);
-        background-repeat: no-repeat; */
-    color: #333;
-    font: 83%/1.5 arial,tahoma,verdana,sans-serif;
-}
-
-.body-embed {
-    padding: 0;
-    background: #ffffff;
-    font: 83%/1.5 arial,tahoma,verdana,sans-serif;
-}
-
-img {
-    border: none;
-    display: block;
-}
-
-hr {
-    margin: 1em 0;
-    background: #eee;
-    height: 1px;
-    color: #eee;
-    border: none;
-    clear: both;
-}
-
-/* LINKS */
-a, a:link, a:link, a:link, a:hover {
-
-    text-decoration: none;
-    color: #777;
-    border-bottom: 1px dotted #ccc;
-    font-weight: normal;
-}
-
-
-a:link, a:visited {
-    text-decoration: none;
-    color: #777;
-    border-bottom: 1px dotted #ccc;
-    font-weight: normal;
-}
-.ui-tabs-nav a {
-    border: none ! important;
-    text-decoration: none;
-}
-a:visited {
-    color: #999;
-}
-
-a:hover, a:active {
-    color: #069;
-    text-decoration: none;
-    color: #333;
-    border-bottom: 1px solid #333;
-}
-
-#header a {
-    color: #fff;
-    text-decoration: none;
-}
-
-/* LISTS */
-ul {
-    margin: .3em 0 1.5em 2em;
-}
-
-ul.related {
-    margin-top: -1em;
-}
-
-li {
-    margin-left: 2em;
-}
-
-dt {
-    font-weight: bold;
-}
-
-#wrap {
-    background: #fff;
-
-    border: 1px solid #fff;
-    position: relative;
-    text-align: left;
-
-    margin: 20px 75px 2em 75px;
-    max-width: 950px;
-}
-
-#languagebar {
-    padding-left: 10px;
-    padding-right: 10px;
-}
-#languagebar a:link, #languagebar a:visited {
-    text-decoration: none;
-    color: #777;
-    border-bottom: 1px dotted #ccc;
-    font-weight: normal;
-}
-#languagebar a:hover {
-    text-decoration: none;
-    color: #333;
-    border-bottom: 1px solid #333;
-
-}
-
-#header {
-    background: #666 url('../../rsc/header-bkg.png') repeat-x 0 100%;
-    margin: 0px;
-    padding: 0 0 8px;
-}
-
-#header h1 {
-    color: #fff;
-    font-size: 145%;
-    padding: 20px 20px 12px;
-}
-
-
-#content, #footer {
-    padding: 0 20px;
-}
-
-/* TYPOGRAPHY */
-p, ul, ol {
-    margin: 0 0 1.5em;
-}
-
-h1, h2, h3, h4, h5, h6 {
-    letter-spacing: -1px;
-    font-family: arial,verdana,sans-serif;
-    margin: 1.2em 0 .3em;
-    color: #000;
-    border-bottom: 1px solid #eee;
-    padding-bottom: .1em;
-}
-
-h1 {
-    font-size: 196%;
-    margin-top: 0;
-    border: none;
-}
-
-h2 {
-    font-size: 136%;
-}
-
-h3 {
-    font-size: 126%;
-}
-
-h4 {
-    font-size: 116%;
-    font-weight: bold;
-}
-
-h5 {
-    font-size: 106%;
-}
-
-h6 {
-    font-size: 96%;
-}
-
-input {
-    border: 1px solid #ddd;
-    border-radius: 3px;
-    padding: 5px;
-    line-height: 1.5em;
-}
-
-h1 a {
-    text-decoration: none;
-    border: none ! important;
-    color: white;
-}
-
-h1 a:hover {
-    border-bottom: 1px dotted #eee;
-}
-
-#content {
-    margin-top: 2em;
-}
-
-.old {
-    text-decoration: line-through;
-}
-
-dl dt {
-    color: #333;
-}
-
-dl dd {
-    color: #666;
-    margin-left: 3em;
-    /*	font-family: monospace; */
-}
-
-.efieldlist {
-    padding: .4em;
-    margin: .8em;
-    border-top: 1px solid #e6e6e6;
-    border-left: 1px solid #e6e6e6;
-}
-
-.efieldlist.warning {
-    background-color: #922;
-    border: 1px solid #333;
-    color: white;
-}
-
-.efieldlist.warning h5 {
-    color: white;
-}
-
-.efieldlist h5 {
-    font-weight: bold;
-    color: #200;
-    margin: .3em;
-}
-
-.trackidtext {
-    border: 1px dashed #aaa;
-    background: #eaeaea;
-    padding: .6em;
-    margin: .4em;
-}
-
-.trackidtext .trackid {
-    border: 1px solid #ccc;
-    background: #eee;
-    margin: .4em;
-    padding: .4em;
-    font-family: monospace;
-    font-size: large;
-}
-
-div.caution {
-    background-color:  #FF9;
-    background-image: url('icons/experience/gtk-dialog-warning.48x48.png');
-    background-repeat: no-repeat;
-    border: thin solid #444;
-    padding: .2em .2em .2em 60px;
-    margin: 1em 0px 1em 0px;
-}
-
-th.rowtitle {
-    text-align: left;
-}
-.enablebox table {
-    border: 1px solid #eee;
-
-    margin-left: 1em;
-}
-.enablebox.mini table {
-    float: right;
-}
-.enablebox tr td {
-    padding: .5px 1em 1px .5em;
-    margin: 0px;
-}
-.enablebox {
-    font-size: 85%;
-}
-.enablebox tr.enabled td {
-    background: #eee;
-}
-.enablebox tr.disabled td {
-    background: #ccc;
-}
-
-.metadatabox {
-    overflow: scroll;
-    border: 1px solid #eee;
-    padding: 0.5em;
-    border-radius: 3px;
-}
-div.preferredidp {
-    border: 1px dashed #ccc;
-    background: #eee;
-    padding: 2px 2em 2px 2em;
-}
-
-table.modules {
-    border-collapse: collapse;
-}
-table.modules tr td {
-    border-bottom: 1px solid #ddd;
-}
-table.modules tr.even td {
-    background: #f0f0f0;
-}
-
-/* Attribute presentation in example page */
-table.attributes {
-    width: 100%;
-    margin: 0px;
-    border: 1px solid #bbb;
-    border-collapse: collapse;
-}
-
-table.attributes td.attrname {
-    text-align: right;
-}
-
-table.attributes tr.even td {
-    background: #eee;
-}
-
-table.attributes tr td {
-    border-bottom: 1px solid #bbb;
-    border-left: 0px;
-    border-right: 0px;
-    background: #fff;
-    padding-top: 5px;
-    padding-left: 1em;
-    padding-right: 1em;
-
-    vertical-align: top;
-}
-
-.attrvalue {
-    word-break: break-all;
-    word-wrap: break-word;
-}
-
-table#table_with_attributes tr:last-child td {
-    border-bottom: none;
-}
-
-fieldset.fancyfieldset {
-    margin: 2em 1em 1em 0px;
-    border: 1px solid #bbb;
-}
-fieldset.fancyfieldset legend {
-    margin-left: 2em;
-    padding: 3px 2em 3px 2em;
-    border: 1px solid #bbb;
-}
-
-div#confirmation input {
-    margin-top: .5em;
-    margin-bottom: .5em;
-}
-div#confirmation {
-    border: 1px solid #aaa;
-    background: #eee;
-    padding: .6em 1em .1em 1em;
-}
-
-caption {
-    display: none;
-}
-
-/* Left-to-Right CSS for RTL (Right to Left Support) */
-.float-r {
-    float: right;
-}
-.float-l {
-    float: left;
-}
-
-#mobile_remember_username, #mobile_remember_me {
-    display: none;
-}
-
-@media handheld, only screen and (max-width: 480px), only screen and (max-device-width: 480px) {
-    #header, #languagebar, #footer, .erroricon, .loginicon, .logintext,
-    #regular_remember_username, #regular_remember_me {
-        display: none;
-    }
-    body {
-        font-size: 20px;
-    }
-    #wrap {
-        margin: 0;
-    }
-    h1,h2,h3,h4 {
-        font-size: 110%;
-    }
-
-    #content {
-        margin-bottom: 10px;
-        padding: 0;
-        padding-left: 5px;
-    }
-    input[type="text"], input[type="password"] {
-        height: 1.5em;
-        font-size: 1em;
-    }
-    .youareadmin {
-        font-size: 50%;
-    }
-    #mobilesubmit, #mobile_remember_username, #mobile_remember_me {
-        display: table-row;
-    }
-}
-
-.btn, .btnaddonright {
-    color: #000000;
-    border: 1px solid #eee;
-    border-radius: 3px;
-    background-color: #eee;
-    background-image: linear-gradient(#fcfcfc, #eee);
-    text-align: center;
-    padding: 5px;
-    cursor: hand;
-}
-
-.btn:hover, .btnaddonright:hover {
-    border-color: #ccc;
-    background-color: #ddd;
-    background-image: linear-gradient(#eee, #ddd);
-
-}
-
-.btn img,
-.btnaddonright img {
-    max-height: 15px;
-    max-width: 15px;
-}
-
-.topright {
-    position: absolute;
-    right: 2em;
-}
-
-.input-group {
-    display: table;
-}
-
-.input-group pre {
-    background: white;
-    position: relative;
-    width: 100%;
-    vertical-align: middle;
-    border: 1px solid #eee;
-    padding: 0.5em;
-    display: table-cell;
-}
-
-.input-group .btnaddonright {
-    position: relative;
-    display: inline-block;
-    border-bottom-left-radius: 0;
-    border-bottom-right-radius: 3px;
-    border-top-left-radius: 0;
-    border-top-right-radius: 3px;
-    border-left: none;
-}
-
-.input-group .btnaddonright:hover {
-    border-left: 1px solid #ccc;
-}
-
-.input-group .input-left {
-    border-bottom-left-radius: 3px;
-    border-bottom-right-radius: 0;
-    border-top-left-radius: 3px;
-    border-top-right-radius: 0;
-}
diff --git a/www/resources/clipboard.min.js b/www/resources/clipboard.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..69731a4d2976d7f7a415cf83a5106e303068a548
--- /dev/null
+++ b/www/resources/clipboard.min.js
@@ -0,0 +1,7 @@
+/*!
+ * clipboard.js v1.5.1
+ * https://zenorocha.github.io/clipboard.js
+ *
+ * Licensed MIT © Zeno Rocha
+ */
+!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Clipboard=t()}}(function(){var t,e,n;return function t(e,n,r){function o(a,c){if(!n[a]){if(!e[a]){var s="function"==typeof require&&require;if(!c&&s)return s(a,!0);if(i)return i(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var l=n[a]={exports:{}};e[a][0].call(l.exports,function(t){var n=e[a][1][t];return o(n?n:t)},l,l.exports,t,e,n,r)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(t,e,n){var r=t("matches-selector");e.exports=function(t,e,n){for(var o=n?t:t.parentNode;o&&o!==document;){if(r(o,e))return o;o=o.parentNode}}},{"matches-selector":2}],2:[function(t,e,n){function r(t,e){if(i)return i.call(t,e);for(var n=t.parentNode.querySelectorAll(e),r=0;r<n.length;++r)if(n[r]==t)return!0;return!1}var o=Element.prototype,i=o.matchesSelector||o.webkitMatchesSelector||o.mozMatchesSelector||o.msMatchesSelector||o.oMatchesSelector;e.exports=r},{}],3:[function(t,e,n){function r(t,e,n,r){var i=o.apply(this,arguments);return t.addEventListener(n,i),{destroy:function(){t.removeEventListener(n,i)}}}function o(t,e,n,r){return function(n){var o=i(n.target,e,!0);o&&(Object.defineProperty(n,"target",{value:o}),r.call(t,n))}}var i=t("closest");e.exports=r},{closest:1}],4:[function(t,e,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.function=function(t){var e=Object.prototype.toString.call(t);return"[object Function]"===e}},{}],5:[function(t,e,n){function r(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!c.string(e))throw new TypeError("Second argument must be a String");if(!c.function(n))throw new TypeError("Third argument must be a Function");if(c.node(t))return o(t,e,n);if(c.nodeList(t))return i(t,e,n);if(c.string(t))return a(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function o(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}function i(t,e,n){return Array.prototype.forEach.call(t,function(t){t.addEventListener(e,n)}),{destroy:function(){Array.prototype.forEach.call(t,function(t){t.removeEventListener(e,n)})}}}function a(t,e,n){return s(document.body,t,e,n)}var c=t("./is"),s=t("delegate");e.exports=r},{"./is":4,delegate:3}],6:[function(t,e,n){function r(t){var e;if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName)t.select(),e=t.value;else{var n=window.getSelection(),r=document.createRange();r.selectNodeContents(t),n.removeAllRanges(),n.addRange(r),e=n.toString()}return e}e.exports=r},{}],7:[function(t,e,n){function r(){}r.prototype={on:function(t,e,n){var r=this.e||(this.e={});return(r[t]||(r[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){function r(){o.off(t,r),e.apply(n,arguments)}var o=this;return r._=e,this.on(t,r,n)},emit:function(t){var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),r=0,o=n.length;for(r;o>r;r++)n[r].fn.apply(n[r].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),r=n[t],o=[];if(r&&e)for(var i=0,a=r.length;a>i;i++)r[i].fn!==e&&r[i].fn._!==e&&o.push(r[i]);return o.length?n[t]=o:delete n[t],this}},e.exports=r},{}],8:[function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}n.__esModule=!0;var i=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),a=t("select"),c=r(a),s=function(){function t(e){o(this,t),this.resolveOptions(e),this.initSelection()}return t.prototype.resolveOptions=function t(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.action=e.action,this.emitter=e.emitter,this.target=e.target,this.text=e.text,this.trigger=e.trigger,this.selectedText=""},t.prototype.initSelection=function t(){if(this.text&&this.target)throw new Error('Multiple attributes declared, use either "target" or "text"');if(this.text)this.selectFake();else{if(!this.target)throw new Error('Missing required attributes, use either "target" or "text"');this.selectTarget()}},t.prototype.selectFake=function t(){var e=this;this.removeFake(),this.fakeHandler=document.body.addEventListener("click",function(){return e.removeFake()}),this.fakeElem=document.createElement("textarea"),this.fakeElem.style.position="absolute",this.fakeElem.style.left="-9999px",this.fakeElem.style.top=(window.pageYOffset||document.documentElement.scrollTop)+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,document.body.appendChild(this.fakeElem),this.selectedText=c.default(this.fakeElem),this.copyText()},t.prototype.removeFake=function t(){this.fakeHandler&&(document.body.removeEventListener("click"),this.fakeHandler=null),this.fakeElem&&(document.body.removeChild(this.fakeElem),this.fakeElem=null)},t.prototype.selectTarget=function t(){this.selectedText=c.default(this.target),this.copyText()},t.prototype.copyText=function t(){var e=void 0;try{e=document.execCommand(this.action)}catch(n){e=!1}this.handleResult(e)},t.prototype.handleResult=function t(e){e?this.emitter.emit("success",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)}):this.emitter.emit("error",{action:this.action,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})},t.prototype.clearSelection=function t(){this.target&&this.target.blur(),window.getSelection().removeAllRanges()},t.prototype.destroy=function t(){this.removeFake()},i(t,[{key:"action",set:function t(){var e=arguments.length<=0||void 0===arguments[0]?"copy":arguments[0];if(this._action=e,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function t(){return this._action}},{key:"target",set:function t(e){if(void 0!==e){if(!e||"object"!=typeof e||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');this._target=e}},get:function t(){return this._target}}]),t}();n.default=s,e.exports=n.default},{select:6}],9:[function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function a(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}n.__esModule=!0;var c=t("./clipboard-action"),s=r(c),u=t("tiny-emitter"),l=r(u),f=t("good-listener"),d=r(f),h=function(t){function e(n,r){o(this,e),t.call(this),this.resolveOptions(r),this.listenClick(n)}return i(e,t),e.prototype.resolveOptions=function t(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText},e.prototype.listenClick=function t(e){var n=this;this.listener=d.default(e,"click",function(t){return n.onClick(t)})},e.prototype.onClick=function t(e){this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new s.default({action:this.action(e.target),target:this.target(e.target),text:this.text(e.target),trigger:e.target,emitter:this})},e.prototype.defaultAction=function t(e){return a("action",e)},e.prototype.defaultTarget=function t(e){var n=a("target",e);return n?document.querySelector(n):void 0},e.prototype.defaultText=function t(e){return a("text",e)},e.prototype.destroy=function t(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)},e}(l.default);n.default=h,e.exports=n.default},{"./clipboard-action":8,"good-listener":5,"tiny-emitter":7}]},{},[9])(9)});
\ No newline at end of file
diff --git a/www/resources/default-rtl.css b/www/resources/default-rtl.css
new file mode 100644
index 0000000000000000000000000000000000000000..0113f82f1059079f5ec98d560e8843968ed850b4
--- /dev/null
+++ b/www/resources/default-rtl.css
@@ -0,0 +1,70 @@
+/* these styles are in the head of this page because this is a unique page */
+
+/* THE BIG GUYS */
+html {
+	direction: rtl;
+}
+
+/* LISTS */
+ul {
+	margin: .3em 2em 1.5em 0;
+}
+
+li {
+	margin-right: 2em;
+}
+
+#wrap {
+	text-align: right;
+}
+
+/* TYPOGRAPHY */
+dl dd {
+	margin-right: 3em;
+}
+
+.efieldlist {
+	border-right: 1px solid #e6e6e6;
+}
+
+div.caution {
+	padding: .2em 60px .2em .2em;
+	background-position: right;
+}
+
+th.rowtitle {
+        text-align: right;
+}
+.enablebox table {
+	margin-right: 1em;
+}
+.enablebox.mini table {
+	float: left;
+}
+.enablebox tr td {
+	padding: .5px .5em 1px 1em;
+}
+
+/* Attribute presentation in example page */
+table.attributes td.attrname {
+	text-align: left;
+}
+
+fieldset.fancyfieldset {
+	margin: 2em 0px 1em 1em;
+}
+fieldset.fancyfieldset legend {
+	margin-right: 2em;
+}
+
+.ui-tabs .ui-tabs-nav li { 
+	float: right; 
+}
+
+/* Reverse Float Left <-> Right */
+.float-r {
+	float: left;
+}
+.float-l {
+	float: right;
+}
diff --git a/www/resources/default.css b/www/resources/default.css
new file mode 100644
index 0000000000000000000000000000000000000000..3c0371bb5cffa5add05af9b70e4fa132be57d426
--- /dev/null
+++ b/www/resources/default.css
@@ -0,0 +1,475 @@
+/* these styles are in the head of this page because this is a unique page */
+
+/* THE BIG GUYS */
+* {
+	margin: 0;
+	padding: 0;
+}
+
+body {
+	text-align: center;
+	padding: 10px 0;
+	background: #1c1c1c;
+/*	background-image: url(icons/ssplogo-fish.png);
+	background-repeat: no-repeat; */
+	color: #333;
+	font: 83%/1.5 arial,tahoma,verdana,sans-serif;
+}
+
+.body-embed {
+	padding: 0;
+	background: #ffffff;
+	font: 83%/1.5 arial,tahoma,verdana,sans-serif;
+}
+
+img {
+	border: none;
+	display: block;
+}
+
+hr {
+	margin: 1em 0;
+	background: #eee;
+	height: 1px;
+	color: #eee;
+	border: none;
+	clear: both;
+}
+
+/* LINKS */
+a, a:link, a:link, a:link, a:hover {
+
+	text-decoration: none;
+	color: #777;
+	border-bottom: 1px dotted #ccc;
+	font-weight: normal;
+}
+
+
+a:link, a:visited {
+	text-decoration: none;
+	color: #777;
+	border-bottom: 1px dotted #ccc;
+	font-weight: normal;
+}
+.ui-tabs-nav a {
+	border: none ! important;
+	text-decoration: none;
+}
+a:visited {
+	color: #999;
+}
+
+a:hover, a:active {
+	color: #069;
+	text-decoration: none;
+	color: #333;
+	border-bottom: 1px solid #333;
+}
+
+#header a {
+	color: #fff;
+	text-decoration: none;
+}
+
+/* LISTS */
+ul {
+	margin: .3em 0 1.5em 2em;
+}
+
+ul.related {
+	margin-top: -1em;
+}
+
+li {
+	margin-left: 2em;
+}
+
+dt {
+	font-weight: bold;
+}
+
+#wrap {
+	background: #fff;
+
+	border: 1px solid #fff;
+	position: relative;
+	text-align: left;
+
+	margin: 20px 75px 2em 75px;
+	max-width: 950px;
+}
+
+#languagebar {
+	padding-left: 10px;
+	padding-right: 10px;
+}
+#languagebar a:link, #languagebar a:visited {
+	text-decoration: none;
+	color: #777;
+	border-bottom: 1px dotted #ccc;
+	font-weight: normal;
+}
+#languagebar a:hover {
+	text-decoration: none;
+	color: #333;
+	border-bottom: 1px solid #333;
+
+}
+
+#header {
+	background: #666 url("header-bkg.png") repeat-x 0 100%;
+	margin: 0px;
+	padding: 0 0 8px;
+}
+
+#header h1 {
+	color: #fff;
+	font-size: 145%;
+	padding: 20px 20px 12px;
+}
+
+
+#content, #footer {
+	padding: 0 20px;
+}
+
+/* TYPOGRAPHY */
+p, ul, ol {
+	margin: 0 0 1.5em;
+}
+
+h1, h2, h3, h4, h5, h6 {
+	letter-spacing: -1px;
+	font-family: arial,verdana,sans-serif;
+	margin: 1.2em 0 .3em;
+	color: #000;
+	border-bottom: 1px solid #eee;
+	padding-bottom: .1em;
+}
+
+h1 {
+	font-size: 196%;
+	margin-top: 0;
+	border: none;
+}
+
+h2 {
+	font-size: 136%;
+}
+
+h3 {
+	font-size: 126%;
+}
+
+h4 {
+	font-size: 116%;
+	font-weight: bold;
+}
+
+h5 {
+	font-size: 106%;
+}
+
+h6 {
+	font-size: 96%;
+}
+
+input {
+	border: 1px solid #ddd;
+	border-radius: 3px;
+	padding: 5px;
+	line-height: 1.5em;
+}
+
+h1 a {
+	text-decoration: none;
+	border: none ! important;
+	color: white;
+}
+
+h1 a:hover {
+	border-bottom: 1px dotted #eee;
+}
+
+#content {
+	margin-top: 2em;
+}
+
+.old {
+	text-decoration: line-through;
+}
+
+dl dt {
+	color: #333;
+}
+
+dl dd {
+	color: #666;
+	margin-left: 3em;
+/*	font-family: monospace; */
+}
+
+.efieldlist {
+	padding: .4em;
+	margin: .8em;
+	border-top: 1px solid #e6e6e6;
+	border-left: 1px solid #e6e6e6;
+}
+
+.efieldlist.warning {
+	background-color: #922;
+	border: 1px solid #333;
+	color: white;
+}
+
+.efieldlist.warning h5 {
+	color: white;
+}
+
+.efieldlist h5 {
+	font-weight: bold;
+	color: #200;
+	margin: .3em;
+}
+
+.trackidtext {
+	border: 1px dashed #aaa;
+	background: #eaeaea;
+	padding: .6em;
+	margin: .4em;
+}
+
+.trackidtext .trackid {
+	border: 1px solid #ccc;
+	background: #eee;
+	margin: .4em;
+	padding: .4em;
+	font-family: monospace;
+	font-size: large;
+}
+
+div.caution {
+	background-color:  #FF9;
+	background-image: url('icons/experience/gtk-dialog-warning.48x48.png');
+	background-repeat: no-repeat;
+	border: thin solid #444;
+	padding: .2em .2em .2em 60px;
+	margin: 1em 0px 1em 0px;
+}
+
+th.rowtitle {
+        text-align: left;
+}
+.enablebox table {
+	border: 1px solid #eee;
+
+	margin-left: 1em;
+}
+.enablebox.mini table {
+	float: right;
+}
+.enablebox tr td {
+	padding: .5px 1em 1px .5em;
+	margin: 0px;
+}
+.enablebox {
+	font-size: 85%;
+}
+.enablebox tr.enabled td {
+	background: #eee;
+}
+.enablebox tr.disabled td {
+	background: #ccc;
+}
+
+.metadatabox {
+	overflow: scroll;
+	border: 1px solid #eee;
+	padding: 0.5em;
+	border-radius: 3px;
+}
+div.preferredidp {
+	border: 1px dashed #ccc;
+	background: #eee;
+	padding: 2px 2em 2px 2em;
+}
+
+table.modules {
+	border-collapse: collapse;
+}
+table.modules tr td {
+	border-bottom: 1px solid #ddd;
+}
+table.modules tr.even td {
+	background: #f0f0f0;
+}
+
+/* Attribute presentation in example page */
+table.attributes {
+	width: 100%;
+	margin: 0px;
+	border: 1px solid #bbb;
+	border-collapse: collapse;
+}
+
+table.attributes td.attrname {
+	text-align: right;
+}
+
+table.attributes tr.even td {
+	background: #eee;
+}
+
+table.attributes tr td {
+	border-bottom: 1px solid #bbb;
+	border-left: 0px;
+	border-right: 0px;
+	background: #fff;
+	padding-top: 5px;
+	padding-left: 1em;
+	padding-right: 1em;
+
+	vertical-align: top;
+}
+
+.attrvalue {
+	word-break: break-all;
+	word-wrap: break-word;
+}
+
+table#table_with_attributes tr:last-child td {
+	border-bottom: none;
+}
+
+fieldset.fancyfieldset {
+	margin: 2em 1em 1em 0px;
+	border: 1px solid #bbb;
+}
+fieldset.fancyfieldset legend {
+	margin-left: 2em;
+	padding: 3px 2em 3px 2em;
+	border: 1px solid #bbb;
+}
+
+div#confirmation input {
+	margin-top: .5em;
+	margin-bottom: .5em;
+}
+div#confirmation {
+	border: 1px solid #aaa;
+	background: #eee;
+	padding: .6em 1em .1em 1em;
+}
+
+caption {
+	display: none;
+}
+
+/* Left-to-Right CSS for RTL (Right to Left Support) */
+.float-r {
+	float: right;
+}
+.float-l {
+	float: left;
+}
+
+#mobile_remember_username, #mobile_remember_me {
+	display: none;
+}
+
+@media handheld, only screen and (max-width: 480px), only screen and (max-device-width: 480px) {
+	#header, #languagebar, #footer, .erroricon, .loginicon, .logintext,
+	#regular_remember_username, #regular_remember_me {
+		display: none;
+	}
+	body {
+		font-size: 20px;
+	}
+	#wrap {
+		margin: 0;
+	}
+	h1,h2,h3,h4 {
+		font-size: 110%;
+	}
+
+	#content {
+		margin-bottom: 10px;
+		padding: 0;
+		padding-left: 5px;
+	}
+	input[type="text"], input[type="password"] {
+		height: 1.5em;
+		font-size: 1em;
+	}
+	.youareadmin {
+		font-size: 50%;
+	}
+	#mobilesubmit, #mobile_remember_username, #mobile_remember_me {
+		display: table-row;
+	}
+}
+
+.btn, .btnaddonright {
+	color: #000000;
+	border: 1px solid #eee;
+	border-radius: 3px;
+	background-color: #eee;
+	background-image: linear-gradient(#fcfcfc, #eee);
+	text-align: center;
+	padding: 5px;
+	cursor: hand;
+}
+
+.btn:hover, .btnaddonright:hover {
+	border-color: #ccc;
+	background-color: #ddd;
+	background-image: linear-gradient(#eee, #ddd);
+
+}
+
+.btn img,
+.btnaddonright img {
+	max-height: 15px;
+	max-width: 15px;
+}
+
+.topright {
+	position: absolute;
+	right: 2em;
+}
+
+.input-group {
+	display: table;
+}
+
+.input-group pre {
+	background: white;
+	position: relative;
+	width: 100%;
+	vertical-align: middle;
+	border: 1px solid #eee;
+	padding: 0.5em;
+	display: table-cell;
+}
+
+.input-group .btnaddonright {
+	position: relative;
+	display: inline-block;
+	border-bottom-left-radius: 0;
+	border-bottom-right-radius: 3px;
+	border-top-left-radius: 0;
+	border-top-right-radius: 3px;
+	border-left: none;
+}
+
+.input-group .btnaddonright:hover {
+	border-left: 1px solid #ccc;
+}
+
+.input-group .input-left {
+	border-bottom-left-radius: 3px;
+	border-bottom-right-radius: 0;
+	border-top-left-radius: 3px;
+	border-top-right-radius: 0;
+}
diff --git a/www/assets/rsc/header-bkg.png b/www/resources/header-bkg.png
similarity index 100%
rename from www/assets/rsc/header-bkg.png
rename to www/resources/header-bkg.png
diff --git a/www/resources/script.js b/www/resources/script.js
new file mode 100644
index 0000000000000000000000000000000000000000..3adf1b1f88e7573cc37c8dad40769a5e5fac264b
--- /dev/null
+++ b/www/resources/script.js
@@ -0,0 +1,41 @@
+/**
+ * Set focus to the element with the given id.
+ *
+ * @param id  The id of the element which should receive focus.
+ */
+function SimpleSAML_focus(id) {
+  element = document.getElementById(id);
+  if(element != null) {
+    element.focus();
+  }
+}
+
+
+/**
+ * Show the given DOM element.
+ *
+ * @param id  The id of the element which should be shown.
+ */
+function SimpleSAML_show(id) {
+  element = document.getElementById(id);
+  if (element == null) {
+    return;
+  }
+
+  element.style.display = 'block';
+}
+
+
+/**
+ * Hide the given DOM element.
+ *
+ * @param id  The id of the element which should be hidden.
+ */
+function SimpleSAML_hide(id) {
+  element = document.getElementById(id);
+  if (element == null) {
+    return;
+  }
+
+  element.style.display = 'none';
+}