diff --git a/xCAT-web-exp/contents.js b/xCAT-web-exp/contents.js
new file mode 100644
index 000000000..0f0a4cf69
--- /dev/null
+++ b/xCAT-web-exp/contents.js
@@ -0,0 +1,4 @@
+$(document).ready(function(){
+ $("#alltabs > ul").tabs({spinner: ''});
+ $("#nodetabs > ul").tabs({spinner: ''});
+});
diff --git a/xCAT-web-exp/eventlog.html b/xCAT-web-exp/eventlog.html
new file mode 100644
index 000000000..17a8d7509
--- /dev/null
+++ b/xCAT-web-exp/eventlog.html
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/xCAT-web-exp/index.html b/xCAT-web-exp/index.html
index 530e9270a..2ac293b27 100644
--- a/xCAT-web-exp/index.html
+++ b/xCAT-web-exp/index.html
@@ -2,177 +2,51 @@
xCAT WebUI
-
-
+
+
-
+
+
+
- Noderange:
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/xCAT-web-exp/inventory.html b/xCAT-web-exp/inventory.html
new file mode 100644
index 000000000..7af638beb
--- /dev/null
+++ b/xCAT-web-exp/inventory.html
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/xCAT-web-exp/noderangetree.js b/xCAT-web-exp/noderangetree.js
new file mode 100644
index 000000000..65c0826ec
--- /dev/null
+++ b/xCAT-web-exp/noderangetree.js
@@ -0,0 +1,30 @@
+var noderange="";
+function updatenoderange() {
+ myselection=nrtree.selected_arr;
+ noderange="";
+ for (node in myselection) {
+ noderange+=myselection[node][0].id;
+ }
+ noderange=noderange.substring(1);
+}
+
+$(document).ready(function() {
+
+ nrtree = new tree_component(); // -Tree begin
+ nrtree.init($("#nrtree"),{
+ rules: {
+ multiple: "Ctrl"
+ },
+ ui: {
+ animation: 250
+ },
+ callback : {
+ onchange : updatenoderange
+ },
+ data : {
+ type : "json",
+ async : "true",
+ url: "noderangesource.php"
+ }
+ }); //Tree finish
+});
diff --git a/xCAT-web-exp/tables.html b/xCAT-web-exp/tables.html
new file mode 100644
index 000000000..f95a8a8f1
--- /dev/null
+++ b/xCAT-web-exp/tables.html
@@ -0,0 +1 @@
+This would be some sort of table oriented pane I suppose...
diff --git a/xCAT-web-exp/vitals.html b/xCAT-web-exp/vitals.html
new file mode 100644
index 000000000..e5e2bd20f
--- /dev/null
+++ b/xCAT-web-exp/vitals.html
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/xCAT-web-exp/xcatauth.js b/xCAT-web-exp/xcatauth.js
new file mode 100644
index 000000000..ea95e5f25
--- /dev/null
+++ b/xCAT-web-exp/xcatauth.js
@@ -0,0 +1,86 @@
+/* xCAT WebUI authentication handling functions/setup */
+/* IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html */
+function openlogdialog (data, textstatus) { //open the log in dialog if not logged in
+ if (data.authenticated == "no") {
+ logdialog.dialog("open");
+ }
+}
+
+function onlogin (data, textstatus) {
+ $("#password").val(""); //clear the password field regardless of what happens
+ if (data.authenticated == "yes") {
+ $("#logstatus").text("Logged in successfully");
+ nrtree.refresh(); // Fix tree potentiall broken through attempts to operate without auth
+ logdialog.dialog("close");
+ } else {
+ $("#logstatus").text("Authentication failure");
+ $("#logstatus").css("color","#ff0000");
+ }
+}
+
+function logout () {
+ $.post("log.php",{logout:1})
+ $("#logstatus").html("");
+ logdialog.dialog("open");
+}
+
+function authenticate() {
+ $("#logstatus").css("color","#000000");
+ $("#logstatus").html('Authenticating...');
+ var passwd=$("#password").val();
+ $.post("log.php",{
+ username: $("#username").val(),
+ password: passwd
+ },onlogin,"json");
+}
+
+$(document).ready(function() {
+ logdialog=$("#logdialog").dialog({
+ modal: true,
+ closeOnEscape: false,
+ closebutton: false,
+ overlay: {
+ backgroundColor: "#000",
+ opacity: 1
+
+ },
+ height: 200,
+ width: 350,
+ autoOpen: false,
+ buttons: {
+ "Log In": authenticate
+ },
+ open: function(type, dialog) {
+ if (document.location.protocol == "http:") {
+ $("#logstatus").html("Unencrypted Session!");
+ $("#logstatus").css("color","#ff0000");
+ }
+ if ($("#username").val() == "") {
+ $("#username").focus();
+ } else {
+ $("#password").focus();
+ }
+ },
+ });
+
+ $("#username").keydown(function(event) { //When 'enter' is hit while in username, advance to password
+ if (event.keyCode==13) {
+ $("#password").focus();
+ }
+ });
+ $("#password").keydown(function(event) { //Submit authentication if enter is pressed in password field
+ if (event.keyCode==13) {
+ authenticate();
+ }
+ });
+
+ $("#login").click(function(event) { //Also authenticate when 'log in' button is activated
+ authenticate();
+ });
+
+ $("#logout").click(function(event) { //Bind the button with logout id to our logout function
+ logout();
+ });
+
+ $.post("log.php",{},openlogdialog,"json"); //Determine if authentication dialog is currently needed on load
+});
diff --git a/xCAT-web-exp/xcatwebui.css b/xCAT-web-exp/xcatwebui.css
new file mode 100644
index 000000000..5b2432b53
--- /dev/null
+++ b/xCAT-web-exp/xcatwebui.css
@@ -0,0 +1,68 @@
+span.logstatus {
+ margin-left: 5.5em;
+}
+label {
+ text-align: right;
+ width: 5em;
+ float: left;
+ margin-right: 0.5em;
+ display: block;
+}
+div#header {
+ border-bottom: 1px solid #d3d3d3;
+ vertical-align: middle;
+ top:0;
+ left:0;
+ width:100%;
+ height:1.8em;
+ z-index:2;
+}
+
+#nodetabs {
+ float: left;
+}
+#nodearea {
+ float: left;
+ right: 0;
+}
+#nodepane: {
+ float: left;
+ clear: left;
+}
+#nrtree {
+ float: left;
+ clear: left;
+ border-right: 1px solid #d3d3d3;
+ border-top: 1px solid #d3d3d3;
+ height:100%;
+ width:9.5em;
+}
+#logout {
+ position:absolute;
+ top:0;
+ right:0;
+ margin-left:1em;
+ text-align: center;
+ vertical-align: top;
+}
+.xcatbutton button {
+ margin: .5em .5em .5em 8px;
+ color: #555555;
+ background: #e6e6e6 url(images/e6e6e6_40x100_textures_02_glass_75.png) 0 50% repeat-x;
+ font-size: 0.7em;
+ border: 1px solid #d3d3d3;
+ cursor: pointer;
+ padding: .2em .6em .3em .6em;
+ line-height: 1.4em;
+}
+.xcatbutton button:hover {
+ color: #212121;
+ background: #dadada url(images/dadada_40x100_textures_02_glass_75.png) 0 50% repeat-x;
+ border: 1px solid #999999;
+}
+.xcatbutton button:active {
+ color: #222222;
+ background: #ffffff url(images/ffffff_40x100_textures_02_glass_65.png) 0 50% repeat-x;
+ border: 1px solid #dddddd;
+}
+