Index: /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Statistics/3.3/App_Code/ChartHelper.cshtml
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Statistics/3.3/App_Code/ChartHelper.cshtml	(revision 11058)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Statistics/3.3/App_Code/ChartHelper.cshtml	(revision 11059)
@@ -202,5 +202,5 @@
           //Re-enables the error display if any of the tasks on the page have Ids matching
           //those of errors
-          $(".errorTask").each(function() { 
+          $(".errorTask","#" + "@(container)").each(function() { 
             if($(this).html()==result[i].Key) {
               $("#@(container)" + result[i].Key).css("color","red");
@@ -267,5 +267,12 @@
           series.barWidth = undefined; 
         });
-        window["@(destinationTag)Plot" + i].replot({ resetAxes: true });
+        if($("#@(destinationTag)Plot" + i).css("display") == "none") {
+          ResizeOpenClose($("#@(destinationTag)Plot" + i).siblings(".collapse"));
+          window["@(destinationTag)Plot" + i].replot({ resetAxes: true });
+          ResizeOpenClose($("#@(destinationTag)Plot" + i).siblings(".collapse"));
+        }
+        else {
+          window["@(destinationTag)Plot" + i].replot({ resetAxes: true });
+        }
       }
     }
@@ -409,5 +416,5 @@
 }
 
-@helper SlaveInfoChart(string destinationTag, string url, string limit, string startDate, string endDate, string userName, string functionName, string pageNumber=null, string slaveId=null) {
+@helper SlaveInfoChart(string destinationTag, string url, string limit, bool singleSlave, string startDate=null, string endDate=null, string userName=null, string functionName=null, string pageNumber=null, string slaveId=null) {
   <text>
   var GetRequest = "?limit=" + @(limit);
@@ -439,6 +446,11 @@
     var slaveChartNames = ["TotalUsedCores","TotalUsedMemory","CPUUtilization"];
 
+    var destTag = eval("@(destinationTag)");
+    if(typeof eval("@(destinationTag)") != "string") {
+      destTag = "@(destinationTag)";
+    }
+
     if(result.length == 0) {
-      $('#' + "@(destinationTag)").append(
+      $('#' + destTag).append(
         '<section class="chartContainer">' + 
           '<h1 class="title">No slave information for the specified filters!</h1>' + 
@@ -447,10 +459,13 @@
     }
     else {
-      $('#' + "@(destinationTag)").html("");
       var time = new Date();
 
-      //Checks if multipage display, if it is then trims results to
-      //the results for the page to be displayed
-      @ChartHelper.NumberPages("result",limit,destinationTag,functionName,pageNumber)
+      @if(!singleSlave) {
+        @:$('#' + destTag).html("");
+
+        //Checks if multipage display, if it is then trims results to
+        //the results for the page to be displayed
+        @ChartHelper.NumberPages("result", limit, destinationTag, functionName, pageNumber)
+      }
 
       //Globally accesible, for use when resizing, eliminates extra DB request
@@ -466,11 +481,11 @@
         var cpuSeries = [];
         cpuSeries[0] = [];
-        $('#' + "@(destinationTag)").append(
+        $('#' + destTag).append(
           '<section class="chartContainer">' + 
             '<h1 class="title" id="' + result[i][0].SlaveID + '">Slave ' + result[i][0].SlaveID + '</h1>' + 
             '<button class="collapse" onclick="CollapseSection(this)">+</button>' + 
-            '<div id="' + slaveChartNames[0] + i + '"></div>' + 
-            '<div id="' + slaveChartNames[1] + i + '"></div>' + 
-            '<div id="' + slaveChartNames[2] + i + '"></div>' + 
+            '<div id="' + slaveChartNames[0] + 'Plot' + i + '"></div>' + 
+            '<div id="' + slaveChartNames[1] + 'Plot' + i + '"></div>' + 
+            '<div id="' + slaveChartNames[2] + 'Plot' + i + '"></div>' + 
           '</section>');
         for(j = 0; j < result[i].length; j++) {
@@ -493,5 +508,5 @@
         }
         for(k = 0; k < slaveChartNames.length; k++) {
-          CollapsedByDefault(document.getElementById(slaveChartNames[k] + i));
+          CollapsedByDefault(document.getElementById(slaveChartNames[k] + "Plot" + i));
         }
       }
@@ -507,14 +522,26 @@
     if(typeof numberSlaves !== 'undefined') {
 
-    //Set chart names for use in creation below, must be set identically in
-    //ResizeSlaves
-    var slaveChartNames = ["TotalUsedCores","TotalUsedMemory","CPUUtilization"];
+      //Set chart names for use in creation below, must be set identically in
+      //SlaveInfoChart
+      var slaveChartNames = ["TotalUsedCores","TotalUsedMemory","CPUUtilization"];
 
       for(i = 0; i < numberSlaves; i++) {
-        for(j = 0; j < slaveChartNames.length; j++) {
-          $.each(window[slaveChartNames[j] + "Plot" + i].series, function(index, series) { 
-            series.barWidth = undefined; 
-          });
-          window[slaveChartNames[j] + "Plot" + i].replot({ resetAxes: true });
+        if($("#" + slaveChartNames[0] + "Plot" + i).css("display") == "none") {
+          ResizeOpenClose($("#" + slaveChartNames[0] + "Plot" + i).siblings(".collapse"));
+          for(j = 0; j < slaveChartNames.length; j++) {
+            $.each(window[slaveChartNames[j] + "Plot" + i].series, function(index, series) { 
+              series.barWidth = undefined; 
+            });
+            window[slaveChartNames[j] + "Plot" + i].replot({ resetAxes: true });
+          }
+          ResizeOpenClose($("#" + slaveChartNames[0] + "Plot" + i).siblings(".collapse"));
+        }
+        else {
+          for(j = 0; j < slaveChartNames.length; j++) {
+            $.each(window[slaveChartNames[j] + "Plot" + i].series, function(index, series) { 
+              series.barWidth = undefined; 
+            });
+            window[slaveChartNames[j] + "Plot" + i].replot({ resetAxes: true });
+          }
         }
       }
@@ -526,5 +553,5 @@
 @helper LineChartGivenSeries(string destinationTag, string chartId, string series, string title, double? minY = null, double? maxY = null, string axisYFormat = null) {
   <text>
-  window[@(destinationTag) + "Plot" + @(chartId)] = $.jqplot(@(destinationTag) + @(chartId), @series, {
+  window[@(destinationTag) + "Plot" + @(chartId)] = $.jqplot(@(destinationTag) + "Plot" + @(chartId), @series, {
     title: "@title",
     axes: {
@@ -566,5 +593,5 @@
 @helper BarChartGivenSeries(string destinationTag, string chartId, string series, string title, double? minY = null, double? maxY = null, string axisYFormat = null) {
   <text>
-  window[@(destinationTag) + "Plot" + @(chartId)] = $.jqplot(@(destinationTag) + @(chartId), @series, {
+  window[@(destinationTag) + "Plot" + @(chartId)] = $.jqplot(@(destinationTag) + "Plot" + @(chartId), @series, {
     title: "@title",
     seriesDefaults:{
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Statistics/3.3/App_Code/ExceptionHelper.cshtml
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Statistics/3.3/App_Code/ExceptionHelper.cshtml	(revision 11058)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Statistics/3.3/App_Code/ExceptionHelper.cshtml	(revision 11059)
@@ -129,5 +129,5 @@
       for(i = 0; i < result.length; i++) {
         $("#" + "@(destinationTag)").append(
-          '<section class="chartContainer">' + 
+          '<section id="' + result[i][0] + 'Container" class="chartContainer">' + 
             '<h1 class="title" id="@(destinationTag)' + result[i][0] + '">Task ' + result[i][0] + '</h1>' + 
             '<button class="collapse" onclick="CollapseSection(this)">+</button>' + 
@@ -149,5 +149,10 @@
   //Opens a sub-container with slave information
   function ShowSlaveInfo(caller) {
-    @*@ChartHelper.SlaveInfoChart("",url,limit,startDate,endDate,"null","NotApplicable","null","$(caller).html()")*@
+    if($(caller).parent().parent().children(".chartContainer").length == 0) {
+      @ChartHelper.SlaveInfoChart("caller.parentNode.parentNode.id",url,limit,true,startDate,endDate,null,null,null,"$(caller).html()")
+    }
+    else {
+      $(caller).parent().parent().children(".chartContainer").remove();
+    }
   }
   </text>
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Statistics/3.3/Content/Site.css
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Statistics/3.3/Content/Site.css	(revision 11058)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Statistics/3.3/Content/Site.css	(revision 11059)
@@ -606,22 +606,4 @@
 }
 
-/* About Page Styles */
-.aboutMain {
-  width: 96%;
-  margin: 1% 0% 1% 2%;
-}
-
-.aboutMain h2 {
-  font-size: 1.4em;
-}
-
-.aboutMain p {
-  font-size: 1.2em;
-}
-
-.aboutMain p:first-letter {
-  font-size: 1.4em;
-}
-
 #ExceptionContainer .chartContainer label {
   margin: 1% 0 1% 1%;
@@ -631,2 +613,34 @@
   display: inline-block;
 }
+
+.chartContainer .chartContainer h1 {
+  font-size: 1em;
+}
+
+.chartContainer .chartContainer button {
+  width: auto;
+}
+
+label[id$="Client"] a:hover {
+  color: #F7921D;
+  text-decoration: underline;
+  cursor: pointer;
+}
+
+/* About Page Styles */
+.aboutMain {
+  width: 96%;
+  margin: 1% 0% 1% 2%;
+}
+
+.aboutMain h2 {
+  font-size: 1.4em;
+}
+
+.aboutMain p {
+  font-size: 1.2em;
+}
+
+.aboutMain p:first-letter {
+  font-size: 1.4em;
+}
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Statistics/3.3/Scripts/CollapsingSection.js
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Statistics/3.3/Scripts/CollapsingSection.js	(revision 11058)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Statistics/3.3/Scripts/CollapsingSection.js	(revision 11059)
@@ -12,5 +12,5 @@
 });
 
-/* Because Task chart sections are created on the fly adding an event listener
+/* Because some chart sections are created on the fly adding an event listener
   was impossible. Therefore this function is hardcoded as an HTML onclick event
   for the dynamically created buttons of these sections */
@@ -18,9 +18,9 @@
   var jqCaller = $(caller);
   if (jqCaller.html() == "-") {
-    jqCaller.parent().children("canvas, div, fieldset, label").fadeOut();
+    jqCaller.parent().children("canvas, div, fieldset, label, .chartContainer").fadeOut();
     jqCaller.html("+");
   }
   else {
-    jqCaller.parent().children("canvas, div, fieldset, label").fadeIn();
+    jqCaller.parent().children("canvas, div, fieldset, label, .chartContainer").fadeIn();
     jqCaller.html("-");
   }
@@ -30,5 +30,5 @@
   section */
 function CollapsedByDefault(caller) {
-  $(caller).parent().children("canvas, div, fieldset, label").css("display","none");
+  $(caller).parent().children("canvas, div, fieldset, label, .chartContainer").hide();
 }
 
@@ -36,5 +36,19 @@
 function OpenOnError(caller) {
   var jqCaller = $(caller);
-  jqCaller.parent().children("canvas, div, fieldset, label").fadeIn();
+  jqCaller.parent().children("canvas, div, fieldset, label, .chartContainer").fadeIn();
   jqCaller.parent().children("button").html("-");
 }
+
+/* Because some chart sections are collapsed(display=none) on resize the charts will not chart
+  properly unless they are opened, them updated, then closed again. */
+function ResizeOpenClose(caller) {
+  var jqCaller = $(caller);
+  if (jqCaller.html() == "-") {
+    jqCaller.parent().children("canvas, div, fieldset, label, .chartContainer").hide();
+    jqCaller.html("+");
+  }
+  else {
+    jqCaller.parent().children("canvas, div, fieldset, label, .chartContainer").show();
+    jqCaller.html("-");
+  }
+}
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Statistics/3.3/Views/LoginRequired/Admin.cshtml
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Statistics/3.3/Views/LoginRequired/Admin.cshtml	(revision 11058)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Statistics/3.3/Views/LoginRequired/Admin.cshtml	(revision 11059)
@@ -276,5 +276,5 @@
         selectedUser = $('#SlaveUserList').val();
       }
-      @ChartHelper.SlaveInfoChart("SlavesContainer", Url.Action("SlaveInfo", "ChartData"), "limit", "startDate", "endDate", "selectedUser", "RefreshSlave", "pageNumber")
+      @ChartHelper.SlaveInfoChart("SlavesContainer", Url.Action("SlaveInfo", "ChartData"), "limit", false, "startDate", "endDate", "selectedUser", "RefreshSlave", "pageNumber")
       pageNumber = null;
     }
@@ -303,5 +303,5 @@
       @ExceptionHelper.ErrorsOnSlaves("ExceptionContainer",Url.Action("SlaveExceptions", "ExceptionData"),"limit","startDate", "endDate","selectedSlave")
     }
-    @*@ExceptionHelper.ShowSlaveInfo(Url.Action("SlaveInfo", "ChartData"),"limit","startDate","endDate")*@
+    @ExceptionHelper.ShowSlaveInfo(Url.Action("SlaveInfo", "ChartData"),"limit","startDate","endDate")
   </script>
 }
