Index: Dev/trunk/src/client/qed-client/model/classes/_Class.js
===================================================================
--- Dev/trunk/src/client/qed-client/model/classes/_Class.js	(revision 530)
+++ Dev/trunk/src/client/qed-client/model/classes/_Class.js	(revision 531)
@@ -64,5 +64,5 @@
         },
         _formatDate: function(date) {
-            return stamp.toISOString(date,{zulu:true,milliseconds:false});
+            return stamp.toISOString(date,{zulu:true,milliseconds:true});
         },
         _sanitize: function(obj) {
Index: Dev/trunk/src/client/qed-client/model/classes/sessions.js
===================================================================
--- Dev/trunk/src/client/qed-client/model/classes/sessions.js	(revision 531)
+++ Dev/trunk/src/client/qed-client/model/classes/sessions.js	(revision 531)
@@ -0,0 +1,24 @@
+define([
+    "./_Class",
+    "./surveys",
+    "dojo/_base/declare"
+], function(_Class, surveys, declare) {
+
+    var Sessions = declare([_Class],{
+        _collection: 'sessions',
+        _type: 'Session',
+        create: function() {
+            var obj = {
+                type: this._type
+            };
+            return obj;
+        },
+        _deserialize: function(obj) {
+        },
+        _serialize: function(obj) {
+        }
+    });
+
+    return new Sessions();
+
+});
Index: Dev/trunk/src/client/qed-client/model/widgets/SurveyRunWidget.js
===================================================================
--- Dev/trunk/src/client/qed-client/model/widgets/SurveyRunWidget.js	(revision 530)
+++ Dev/trunk/src/client/qed-client/model/widgets/SurveyRunWidget.js	(revision 531)
@@ -11,5 +11,5 @@
             var endDateBox = this.endDateBox;
             this.own(this.startDateBox.on('change', function(value){
-                endDateBox.constraints.min  = value;
+                endDateBox.constraints.min = value;
             }));
         },
@@ -24,4 +24,6 @@
                 value.respondentCanDeleteOwnResponse ? ["on"] : [];
             this.inherited(arguments);
+            this.endDateBox.constraints.min =
+                this.startDateBox.get('value');
         }
     });
Index: Dev/trunk/src/client/qed-client/pages/surveyRuns.js
===================================================================
--- Dev/trunk/src/client/qed-client/pages/surveyRuns.js	(revision 531)
+++ Dev/trunk/src/client/qed-client/pages/surveyRuns.js	(revision 531)
@@ -0,0 +1,79 @@
+define([
+    "../app/Page",
+    "../app/Router",
+    "../model/classes/surveyRuns",
+    "../widgets/LineWithActionsWidget",
+    "dojo/_base/array",
+    "dojo/_base/declare",
+    "dojo/_base/lang",
+    "dojo/when",
+    "dojo/text!./templates/surveyRuns.html"
+], function(Page, Router, surveyRuns, LineWithActionsWidget, array, declare, lang, when, template) {
+    return declare([Page],{
+        templateString: template,
+        startup: function() {
+            if ( this._started ) { return; }
+            this.inherited(arguments);
+            this.currentTab.set('title','Current (<span class="qedLoading"></span>)');
+            this.pastTab.set('title','Past (<span class="qedLoading"></span>)');
+            this.futureTab.set('title','Future (<span class="qedLoading"></span>)');
+            this.refresh();
+        },
+        _onRunDetails: function(surveyRun) {
+            Router.go(surveyRuns.getObjectPath(surveyRun));
+        },
+        _onRunDelete: function(surveyRun) {
+            if ( !confirm("Are you sure you want to delete this survey run?") ) {
+                return;
+            }
+            surveyRuns.remove(surveyRun)
+            .then(lang.hitch(this,function(){
+                this.notify("SurveyRun successfully deleted.");
+                this.refreshRuns();
+            }),lang.hitch(this,function(err){
+                this.notify(err.error,'error');
+            }));
+        },
+        refresh: function() {
+            this.refreshGroup('current','Current');
+            this.refreshGroup('past','Past');
+            this.refreshGroup('future','Future');
+        },
+        refreshGroup: function(sub,subname) {
+            var tab = this[sub+'Tab'];
+            var container = this[sub+'Container'];
+            container.set('content','Loading <span class="qedLoading"></span> survey runs.');
+            var qs = {};
+            qs[sub] = true;
+            when(surveyRuns.query(qs),
+                 lang.hitch(this,function(surveyRuns){
+                container.set('content','');
+                tab.set('title',subname+' ('+surveyRuns.length+')');
+                array.forEach(surveyRuns,function(surveyRun){
+                    var w = new LineWithActionsWidget({
+                        title: surveyRun.title || "",
+                        actions:[{
+                            callback: lang.hitch(this,'_onRunDetails',
+                                                 surveyRun),
+                            properties: {
+                                label: 'Details',
+                                tooltip: 'Show details for this run',
+                                icon: 'Edit'
+                            }
+                        },{
+                            callback: lang.hitch(this,'_onRunDelete',
+                                                 surveyRun),
+                            properties: {
+                                label: 'Delete',
+                                tooltip: 'Delete this run',
+                                icon: 'Delete'
+                            }
+                        }]
+                    });
+                    container.addChild(w);
+                },this);
+            }));
+        }
+    });
+});
+
Index: Dev/trunk/src/client/qed-client/pages/surveys.js
===================================================================
--- Dev/trunk/src/client/qed-client/pages/surveys.js	(revision 530)
+++ Dev/trunk/src/client/qed-client/pages/surveys.js	(revision 531)
@@ -18,5 +18,4 @@
             this.draftsTab.set('title','Drafts (<span class="qedLoading"></span>)');
             this.publishedTab.set('title','Published (<span class="qedLoading"></span>)');
-            this.runsTab.set('title','Runs (<span class="qedLoading"></span>)');
             this.refresh();
         },
@@ -56,24 +55,11 @@
         _onRunSurvey:function(survey){
             var surveyRun = surveyRuns.create();
-            surveyRun.title = 'Run of "' + survey.title + '" of '+(new Date().toString());
+            surveyRun.title = 'Run of "'+survey.title+'" of '+
+                              (new Date().toString());
             surveyRun.survey = survey;
             surveyRuns.save(surveyRun)
             .then(lang.hitch(this,function(surveyRun){
-                this._onRunDetails(surveyRun);
-            }),lang.hitch(this,function(err){
-                this.notify(err.error,'error');
-            }));
-        },
-        _onRunDetails: function(surveyRun) {
-            Router.go(surveyRuns.getObjectPath(surveyRun));
-        },
-        _onRunDelete: function(surveyRun) {
-            if ( !confirm("Are you sure you want to delete this survey run?") ) {
-                return;
-            }
-            surveyRuns.remove(surveyRun)
-            .then(lang.hitch(this,function(){
-                this.notify("SurveyRun successfully deleted.");
-                this.refreshRuns();
+                Router.go(surveyRuns.getObjectPath(
+                    surveyRuns.getId(surveyRun)));
             }),lang.hitch(this,function(err){
                 this.notify(err.error,'error');
@@ -83,10 +69,10 @@
             this.refreshDrafts();
             this.refreshPublished();
-            this.refreshRuns();
         },
         refreshDrafts: function() {
-            this.draftsContainer.set('content','');
+            this.draftsContainer.set('content','Loading draft surveys <span class="qedLoading"></span>');
             when(surveys.query({drafts:true}), lang.hitch(this,function(surveys) {
                 this.draftsTab.set('title','Drafts ('+surveys.length+')');
+                this.draftsContainer.set('content','');
                 array.forEach(surveys,function(survey){
                     var w = new LineWithActionsWidget({
@@ -127,6 +113,7 @@
         },
         refreshPublished: function() {
-            this.publishedContainer.set('content','');
+            this.publishedContainer.set('content','Loading published surveys <span class="qedLoading"></span>');
             when(surveys.query({published:true}), lang.hitch(this, function(surveys) {
+                this.publishedContainer.set('content','');
                 this.publishedTab.set('title','Published ('+surveys.length+')');
                 array.forEach(surveys,function(survey){
@@ -152,31 +139,4 @@
                 },this);
             }));
-        },
-        refreshRuns: function() {
-            this.runsContainer.set('content','');
-            when(surveyRuns.query(), lang.hitch(this,function(surveyRuns){
-                this.runsTab.set('title','Runs ('+surveyRuns.length+')');
-                array.forEach(surveyRuns,function(surveyRun){
-                    var w = new LineWithActionsWidget({
-                        title: surveyRun.title || "",
-                        actions:[{
-                            callback: lang.hitch(this,'_onRunDetails',surveyRun),
-                            properties: {
-                                label: 'Details',
-                                tooltip: 'Show details for this run',
-                                icon: 'Edit'
-                            }
-                        },{
-                            callback: lang.hitch(this,'_onRunDelete',surveyRun),
-                            properties: {
-                                label: 'Delete',
-                                tooltip: 'Delete this run',
-                                icon: 'Delete'
-                            }
-                        }]
-                    });
-                    this.runsContainer.addChild(w);
-                },this);
-            }));
         }
     });
Index: Dev/trunk/src/client/qed-client/pages/templates/surveyRuns.html
===================================================================
--- Dev/trunk/src/client/qed-client/pages/templates/surveyRuns.html	(revision 531)
+++ Dev/trunk/src/client/qed-client/pages/templates/surveyRuns.html	(revision 531)
@@ -0,0 +1,55 @@
+<div>
+
+    <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'top'">
+        <h2>
+            <span class="rftIcon rftIconSurvey"></span>
+            <span class="headerText">Survey Results</span>
+        </h2>
+    </div>
+
+    <div data-dojo-attach-point="tabContainer"
+         data-dojo-type="dijit/layout/TabContainer"
+         class="blue" data-dojo-props="tabPosition:'left-h',region:'center'">
+
+        <div data-dojo-type="dijit/layout/BorderContainer"
+             title="Current"
+             data-dojo-attach-point="currentTab">
+            <div data-dojo-type="dijit/layout/ContentPane"
+                 data-dojo-props="region: 'center'"
+                 data-dojo-attach-point="currentContainer">
+            </div>
+            <div data-dojo-type="dijit/layout/ContentPane"
+                 data-dojo-props="region: 'bottom'"
+                 style="height: 40px;">
+            </div>
+        </div>
+
+        <div data-dojo-type="dijit/layout/BorderContainer"
+             title="Future"
+             data-dojo-attach-point="futureTab">
+            <div data-dojo-type="dijit/layout/ContentPane"
+                 data-dojo-props="region: 'center'"
+                 data-dojo-attach-point="futureContainer">
+            </div>
+            <div data-dojo-type="dijit/layout/ContentPane"
+                 data-dojo-props="region: 'bottom'"
+                 style="height: 40px;">
+            </div>
+        </div>
+
+        <div data-dojo-type="dijit/layout/BorderContainer"
+             title="Past"
+             data-dojo-attach-point="pastTab">
+            <div data-dojo-type="dijit/layout/ContentPane"
+                 data-dojo-props="region: 'center'"
+                 data-dojo-attach-point="pastContainer">
+            </div>
+            <div data-dojo-type="dijit/layout/ContentPane"
+                 data-dojo-props="region: 'bottom'"
+                 style="height: 40px;">
+            </div>
+        </div>
+
+    </div>
+
+</div>
Index: Dev/trunk/src/client/qed-client/pages/templates/surveys.html
===================================================================
--- Dev/trunk/src/client/qed-client/pages/templates/surveys.html	(revision 530)
+++ Dev/trunk/src/client/qed-client/pages/templates/surveys.html	(revision 531)
@@ -34,16 +34,4 @@
         </div>
 
-        <div data-dojo-type="dijit/layout/BorderContainer"
-             title="Runs"
-             data-dojo-attach-point="runsTab">
-            <div data-dojo-type="dijit/layout/ContentPane"
-                 data-dojo-props="region: 'center'"
-                 data-dojo-attach-point="runsContainer">
-            </div>
-            <div data-dojo-type="dijit/layout/ContentPane"
-                 data-dojo-props="region: 'bottom'"
-                 style="height: 40px;">
-            </div>
-        </div>
     </div>
 
Index: Dev/trunk/src/client/qed-client/routes.js
===================================================================
--- Dev/trunk/src/client/qed-client/routes.js	(revision 530)
+++ Dev/trunk/src/client/qed-client/routes.js	(revision 531)
@@ -1,4 +1,5 @@
 define([
     "./model/classes/questions",
+    "./model/classes/sessions",
     "./model/classes/surveyRuns",
     "./model/classes/surveys",
@@ -9,6 +10,7 @@
     "./pages/survey",
     "./pages/surveyRun",
+    "./pages/surveyRuns",
     "./pages/surveys"
-], function(questionsClass, surveyRunsClass, surveysClass, index, previewSurvey, question, questions, survey, surveyRun, surveys) {
+], function(questionsClass, sessionsClass, surveyRunsClass, surveysClass, index, previewSurvey, question, questions, survey, surveyRun, surveyRuns, surveys) {
 
     return [
@@ -19,7 +21,8 @@
         { path: surveysClass.getCollectionPath(), constructor: surveys },
         { path: surveysClass.getObjectPath(':objectId'), constructor: survey },
+        { path: surveyRunsClass.getCollectionPath(), constructor: surveyRuns },
         { path: surveyRunsClass.getObjectPath(':objectId'), constructor: surveyRun },
-        //{ path: "/sessions", constructor: sessions },
-        //{ path: "/session/:sessionId", constructor: session },
+        //{ path: sessionsClass.getObjectPath(''), constructor: sessions },
+        //{ path: sessionsClass.getObjectPath(':objectId'), constructor: session },
         { path: surveysClass.getPreviewPath(':surveyId'), constructor: previewSurvey }
     ];
Index: Dev/trunk/src/client/qed-client/ui/templates/MainMenu.html
===================================================================
--- Dev/trunk/src/client/qed-client/ui/templates/MainMenu.html	(revision 530)
+++ Dev/trunk/src/client/qed-client/ui/templates/MainMenu.html	(revision 531)
@@ -1,16 +1,25 @@
 <div class="mainMenu">
     <div  data-dojo-type="dijit/MenuBar">
-        <div class="rftMainMenuButton" data-dojo-type="./MenuBarLink" data-dojo-props="path:'/sessions'">Sessions</div>
-        <div class="rftMainMenuButton" data-dojo-type="dijit/PopupMenuBarItem">
+        <div class="rftMainMenuButton"
+             data-dojo-type="./MenuBarLink" data-dojo-props="path:'/sessions'">Sessions</div>
+        <div class="rftMainMenuButton"
+             data-dojo-type="dijit/PopupMenuBarItem">
             <span>Content</span>
             <div data-dojo-type="dijit/DropDownMenu">
-                <div data-dojo-type="./MenuLink" class="blue bgColorHover" data-dojo-props="path:'/surveys', iconClass:'rftIcon rftIconSurvey'">Surveys</div>
-                <div data-dojo-type="./MenuLink" class="orange bgColorHover" data-dojo-props="path:'/questions', iconClass:'rftIcon rftIconQuestion'">Questions</div>
-                <div data-dojo-type="./MenuLink" class="purple bgColorHover" data-dojo-props="path:'/applications', iconClass: 'rftIcon rftIconApplication'">Applications</div>
-                <div data-dojo-type="./MenuLink" class="red bgColorHover" data-dojo-props="path:'/dashboards', iconClass: 'rftIcon rftIconDashboard'">Dashboards</div>
+                <div data-dojo-type="./MenuLink"
+                     class="blue bgColorHover"
+                     data-dojo-props="path:'/surveys', iconClass:'rftIcon rftIconSurvey'">
+                  Surveys</div>
+                <div data-dojo-type="./MenuLink"
+                     class="orange bgColorHover"
+                     data-dojo-props="path:'/questions', iconClass:'rftIcon rftIconQuestion'">
+                  Questions</div>
             </div>
         </div>
-        <div class="rftMainMenuButton" data-dojo-type="./MenuBarLink" data-dojo-props="path:'/results'">Results</div>
-        <div class="rftMainMenuButton" data-dojo-type="./SessionMenu"></div>
+        <div class="rftMainMenuButton"
+             data-dojo-type="./MenuBarLink" data-dojo-props="path:'/surveyRuns'">
+          Results</div>
+        <div class="rftMainMenuButton"
+             data-dojo-type="./SessionMenu"></div>
     </div>
 </div>
