Index: trunk/bin/module_maker/skel/adm_list.ihtml
===================================================================
--- trunk/bin/module_maker/skel/adm_list.ihtml	(revision 719)
+++ trunk/bin/module_maker/skel/adm_list.ihtml	(revision 720)
@@ -32,8 +32,8 @@
     <?php for ($i = 0; $i <= $page->last_item - $page->first_item && $page->total_items > 0; $i++) { ?>
     <tr>
-        <td class="sc-padleft sc-nowrap"><a title="<?php printf(_("Edit %s"), oTxt($list[$i]['__///__'])) ?>" href="<?php echo $app->oHREF($_SERVER['PHP_SELF'] . '?op=edit&%PRIMARY_KEY%=' . $list[$i]['%PRIMARY_KEY%']); ?>"><img src="/admin/i/pen.gif" alt="Edit" width="12" height="12" border="0" /></a></td>
-        <td class="sc-padleft sc-nowrap"><a title="<?php printf(_("Versions of %s"), oTxt($list[$i]['__///__'])) ?>" href="<?php echo $app->oHREF('/admin/versions.php?record_table=%DB_TBL%&record_key=%PRIMARY_KEY%&boomerang=true&record_val=' . $list[$i]['%PRIMARY_KEY%']); ?>"><img src="/admin/i/multiple.png" alt="" width="12" height="12" border="0" /></a></td>
+        <td class="sc-padleft sc-nowrap"><a title="<?php printf(_("Edit %s"), oTxt($list[$i]['__///__'])) ?>" href="<?php echo $app->oHREF($_SERVER['PHP_SELF'] . '?op=edit&%PRIMARY_KEY%=' . $list[$i]['%PRIMARY_KEY%']); ?>"><i class="fa fa-pencil-square-o fa-fw"></i></a></td>
+        <td class="sc-padleft sc-nowrap"><a title="<?php printf(_("Versions of %s"), oTxt($list[$i]['__///__'])) ?>" href="<?php echo $app->oHREF('/admin/versions.php?record_table=%DB_TBL%&record_key=%PRIMARY_KEY%&boomerang=true&record_val=' . $list[$i]['%PRIMARY_KEY%']); ?>"><i class="fa fa-clone fa-fw"></a></td>
 %ADM_LIST_ROWS%
-        <td class="sc-padleft sc-nowrap" align="right"><a title="<?php printf(_("Delete %s"), oTxt($list[$i]['__///__'])) ?>" href="<?php echo $app->oHREF($_SERVER['PHP_SELF'] . "?op=del&%PRIMARY_KEY%=" . $list[$i]['%PRIMARY_KEY%']); ?>" onclick="javascript:return confirm('<?php printf(_("Are you sure you want to delete the record %s? This action is permanent and cannot be undone."), oTxt($list[$i]['__///__'])) ?>');"><img src="/admin/i/trash.gif" alt="Delete" width="10" height="10" border="0" /></a></td>
+        <td class="sc-padleft sc-nowrap" align="right"><a title="<?php printf(_("Delete %s"), oTxt($list[$i]['__///__'])) ?>" href="<?php echo $app->oHREF($_SERVER['PHP_SELF'] . "?op=del&%PRIMARY_KEY%=" . $list[$i]['%PRIMARY_KEY%']); ?>" onclick="javascript:return confirm('<?php printf(_("Are you sure you want to delete the record %s? This action is permanent and cannot be undone."), oTxt($list[$i]['__///__'])) ?>');"><i class="fa fa-trash fa-fw"></i></a></td>
     </tr>
     <?php } ?>
Index: trunk/css/reset.inc.css
===================================================================
--- trunk/css/reset.inc.css	(revision 719)
+++ trunk/css/reset.inc.css	(revision 720)
@@ -1,45 +1,30 @@
-/* http://meyerweb.com/eric/tools/css/reset/
-   v2.0 | 20110126
-   License: none (public domain)
-*/
-
-html, body, div, span, applet, object, iframe,
-h1, h2, h3, h4, h5, h6, p, blockquote, pre,
-a, abbr, acronym, address, big, cite, code,
-del, dfn, em, img, ins, kbd, q, s, samp,
-small, strike, strong, sub, sup, tt, var,
-b, u, i, center,
-dl, dt, dd, ol, ul, li,
-fieldset, form, label, legend,
-table, caption, tbody, tfoot, thead, tr, th, td,
-article, aside, canvas, details, embed,
-figure, figcaption, footer, header, hgroup,
-menu, nav, output, ruby, section, summary,
-time, mark, audio, video {
-	margin: 0;
-	padding: 0;
-	border: 0;
-	font-size: 100%;
-	font: inherit;
-	vertical-align: baseline;
+/* https://github.com/hankchizljaw/modern-css-reset */
+*,*::before,*::after {
+    box-sizing: border-box
 }
-/* HTML5 display-role reset for older browsers */
-article, aside, details, figcaption, figure,
-footer, header, hgroup, menu, nav, section {
-	display: block;
+ul[class],ol[class] {
+    padding: 0
+}
+body,h1,h2,h3,h4,p,ul[class],ol[class],figure,blockquote,dl,dd {
+    margin: 0
 }
 body {
-	line-height: 1;
+    /* min-height: 100vh; */
+    scroll-behavior: smooth;
+    text-rendering: optimizeSpeed;
+    line-height: 1.4
 }
-ol, ul {
-	list-style: none;
+ul[class],ol[class] {
+    list-style: none
 }
-blockquote, q {
-	quotes: none;
+a:not([class]) {
+    text-decoration-skip-ink: auto
 }
-blockquote:before, blockquote:after,
-q:before, q:after {
-	content: '';
-	content: none;
+img:not([class]) {
+    max-width: 100%;
+    display: block
+}
+article>*+* {
+    margin-top: 1em
 }
 table {
@@ -47,2 +32,13 @@
 	border-spacing: 0;
 }
+input,button,textarea,select {
+    font: inherit
+}
+@media(prefers-reduced-motion:reduce) {
+* {
+    animation-duration: .01ms !important;
+    animation-iteration-count: 1 !important;
+    transition-duration: .01ms !important;
+    scroll-behavior: auto !important
+}
+}
Index: trunk/lib/App.inc.php
===================================================================
--- trunk/lib/App.inc.php	(revision 719)
+++ trunk/lib/App.inc.php	(revision 720)
@@ -302,5 +302,9 @@
 
                     case 'session_use_cookies':
-                        ini_set('session.use_cookies', $val);
+                        if (session_status() !== PHP_SESSION_ACTIVE) {
+                            ini_set('session.use_cookies', $val);
+                        } else {
+                            $this->logMsg('Unable to set session_use_cookies; session is already active', LOG_NOTICE, __FILE__, __LINE__);
+                        }
                         return true;
 
Index: trunk/services/templates/versions_list.ihtml
===================================================================
--- trunk/services/templates/versions_list.ihtml	(revision 719)
+++ trunk/services/templates/versions_list.ihtml	(revision 720)
@@ -8,12 +8,12 @@
         <?php $app->printHiddenSession() ?>
         <div class="row">
-            <div class="large-12 columns">
+            <div class="small-12 columns">
                 <table>
                     <thead>
                         <tr>
                             <th></th>
-                            <th><?php echo _("ID"); ?></th>
-                            <th><?php echo _("Date"); ?></th>
-                            <th><?php echo _("By"); ?></th>
+                            <th class="sc-padleft"><?php echo _("ID"); ?></th>
+                            <th class="sc-padleft"><?php echo _("Date"); ?></th>
+                            <th class="sc-padleft"><?php echo _("By"); ?></th>
                         </tr>
                     </thead>
@@ -48,5 +48,9 @@
                     </tbody>
                 </table>
-                <div class="sc-help"><?php printf(_("When there are more than %s versions, those over %s days old are deleted."), $version->getParam('min_qty'), $version->getParam('min_days')); ?></div>
+                <p class="sc-help"><?php printf(_("When there are more than %s versions, those over %s days old are deleted."), $version->getParam('min_qty'), $version->getParam('min_days')); ?></p>
+            </div>
+        </div>
+        <div class="row">
+            <div class="small-12 columns">
                 <?php
                 // Buttons.
Index: trunk/tests/AppTest.php
===================================================================
--- trunk/tests/AppTest.php	(revision 719)
+++ trunk/tests/AppTest.php	(revision 720)
@@ -54,5 +54,5 @@
     {
         $thisapp =& App::getInstance();
-        $this->assertTrue(serialize($thisapp) === serialize($this->App), 'Objects do not match across instantiations.');
+        $this->assertTrue($thisapp === $this->App, 'Objects do not match across instantiations.');
     }
 
@@ -80,7 +80,5 @@
         $this->App->stop();
         $this->App->start();
-
         $this->assertEquals(ini_get('error_reporting'), E_ALL, 'Error reporting not set to E_ALL.');
-        $this->assertTrue($this->App->db->dbh && is_resource($this->App->db->dbh), 'DB handler not a resource');
         $this->assertTrue(isset($_SESSION), '$_SESSION is not set.');
         $_SESSION['sess_test_value'] = 'okay';
@@ -115,5 +113,5 @@
         $app =& App::getInstance();
         ob_start();
-        $this->test_raisemsg();  //had to add this line for phpunit ver. 3.7 ///
+        $this->test_raisemsg();  //had to add this line for phpunit ver. 3.7
         $app->printraisedmessages();
         $result = ob_get_clean();
@@ -137,5 +135,5 @@
     {
         $app =& App::getInstance();
-        $_GET['arg1'] = 'A';
+        $_REQUEST['arg1'] = 'A';
         $result = $app->ohref('/some/url.php', array('arg1'), true);
         $this->assertContains(session_name(), $result, 'SSID not found in URL.');
Index: trunk/tests/FormValidatorTest.php
===================================================================
--- trunk/tests/FormValidatorTest.php	(revision 719)
+++ trunk/tests/FormValidatorTest.php	(revision 720)
@@ -4,5 +4,5 @@
  * For details visit the project site: <http://trac.strangecode.com/codebase/>
  * Copyright 2001-2012 Strangecode, LLC
- * 
+ *
  * This file is part of The Strangecode Codebase.
  *
@@ -11,10 +11,10 @@
  * Free Software Foundation, either version 3 of the License, or (at your option)
  * any later version.
- * 
+ *
  * The Strangecode Codebase is distributed in the hope that it will be useful, but
  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  * details.
- * 
+ *
  * You should have received a copy of the GNU General Public License along with
  * The Strangecode Codebase. If not, see <http://www.gnu.org/licenses/>.
@@ -97,24 +97,24 @@
     {
         // This should not generate any error.
-        $_POST['some_field'] = 'a non empty string';
+        $_REQUEST['some_field'] = 'a non empty string';
+        $this->FormValidator->notEmpty('some_field', _("Error message"));
+        $this->assertFalse($this->FormValidator->anyerrors());
+
+        // This one is an error!
+        $_REQUEST['some_field'] = '';
         $this->FormValidator->isempty('some_field', _("Error message"));
-        $this->assertFalse($this->FormValidator->anyerrors());
-        
-        // This one is an error!
-        $_POST['some_field'] = '';
+        $this->assertTrue($this->FormValidator->anyerrors());
+    }
+
+    function test_isempty()
+    {
+        // This should not generate any error.
+        $_REQUEST['some_field'] = 'a non empty string';
         $this->FormValidator->isempty('some_field', _("Error message"));
-        $this->assertTrue($this->FormValidator->anyerrors());
-    }
-
-    function test_isempty()
-    {
-        // This should not generate any error.
-        $_POST['some_field'] = 'a non empty string';
+        $this->assertFalse($this->FormValidator->anyerrors());
+
+        // This one is an error!
+        $_REQUEST['some_field'] = '';
         $this->FormValidator->isempty('some_field', _("Error message"));
-        $this->assertFalse($this->FormValidator->anyerrors());
-        
-        // This one is an error!
-        $_POST['some_field'] = '';
-        $this->FormValidator->isempty('some_field', _("Error message"));
         $this->assertTrue($this->FormValidator->anyerrors());
     }
@@ -123,10 +123,10 @@
     {
         // This should not generate any error.
-        $_POST['some_field'] = 'this is a string';
+        $_REQUEST['some_field'] = 'this is a string';
         $this->FormValidator->isstring('some_field', _("Error message"));
         $this->assertFalse($this->FormValidator->anyerrors());
-        
-        // This one is an error!
-        $_POST['some_field'] = 12.3248; // not a string.
+
+        // This one is an error!
+        $_REQUEST['some_field'] = 12.3248; // not a string.
         $this->FormValidator->isstring('some_field', _("Error message"));
         $this->assertTrue($this->FormValidator->anyerrors());
@@ -136,10 +136,10 @@
     {
         // This should not generate any error.
-        $_POST['some_field'] = '1234.453';
+        $_REQUEST['some_field'] = '1234.453';
         $this->FormValidator->isnumber('some_field', _("Error message"));
         $this->assertFalse($this->FormValidator->anyerrors());
-        
-        // This one is an error!
-        $_POST['some_field'] = 'not a number';
+
+        // This one is an error!
+        $_REQUEST['some_field'] = 'not a number';
         $this->FormValidator->isnumber('some_field', _("Error message"));
         $this->assertTrue($this->FormValidator->anyerrors());
@@ -149,10 +149,10 @@
     {
         // This should not generate any error.
-        $_POST['some_field'] = '1234';
+        $_REQUEST['some_field'] = '1234';
         $this->FormValidator->isinteger('some_field', _("Error message"));
         $this->assertFalse($this->FormValidator->anyerrors());
-        
-        // This one is an error!
-        $_POST['some_field'] = '1234.1';
+
+        // This one is an error!
+        $_REQUEST['some_field'] = '1234.1';
         $this->FormValidator->isinteger('some_field', _("Error message"));
         $this->assertTrue($this->FormValidator->anyerrors());
@@ -162,10 +162,10 @@
     {
         // This should not generate any error.
-        $_POST['some_field'] = '123.1234';
+        $_REQUEST['some_field'] = '123.1234';
         $this->FormValidator->isfloat('some_field', _("Error message"));
         $this->assertFalse($this->FormValidator->anyerrors());
-        
-        // This one is an error!
-        $_POST['some_field'] = 'some falsity';
+
+        // This one is an error!
+        $_REQUEST['some_field'] = 'some falsity';
         $this->FormValidator->isfloat('some_field', _("Error message"));
         $this->assertTrue($this->FormValidator->anyerrors());
@@ -175,10 +175,10 @@
     {
         // This should not generate any error.
-        $_POST['some_field'] = array('asdf', 123);
+        $_REQUEST['some_field'] = array('asdf', 123);
         $this->FormValidator->isarray('some_field', _("Error message"));
         $this->assertFalse($this->FormValidator->anyerrors());
-        
-        // This one is an error!
-        $_POST['some_field'] = 'some falsity';
+
+        // This one is an error!
+        $_REQUEST['some_field'] = 'some falsity';
         $this->FormValidator->isarray('some_field', _("Error message"));
         $this->assertTrue($this->FormValidator->anyerrors());
@@ -188,15 +188,15 @@
     {
         // This should not generate any error.
-        $_POST['some_field'] = '1234abcd';
+        $_REQUEST['some_field'] = '1234abcd';
         $this->FormValidator->checkregex('some_field', '/\d{4}[a-d]{4}/', true, _("Error message"));
         $this->assertFalse($this->FormValidator->anyerrors());
-        
-        // This should not generate any error.
-        $_POST['some_field'] = 'no digits here';
+
+        // This should not generate any error.
+        $_REQUEST['some_field'] = 'no digits here';
         $this->FormValidator->checkregex('some_field', '/\d/', false, _("Error message"));
         $this->assertFalse($this->FormValidator->anyerrors());
-        
-        // This one is an error!
-        $_POST['some_field'] = 'oops, a d1git';
+
+        // This one is an error!
+        $_REQUEST['some_field'] = 'oops, a d1git';
         $this->FormValidator->checkregex('some_field', '/\d/', false, _("Error message"));
         $this->assertTrue($this->FormValidator->anyerrors());
@@ -206,10 +206,10 @@
     {
         // This should not generate any error.
-        $_POST['some_field'] = 'some truth';
+        $_REQUEST['some_field'] = 'some truth';
         $this->FormValidator->stringLength('some_field', 0, 255, _("Error message"));
         $this->assertFalse($this->FormValidator->anyerrors());
-        
-        // This one is an error!
-        $_POST['some_field'] = 'some falsity';
+
+        // This one is an error!
+        $_REQUEST['some_field'] = 'some falsity';
         $this->FormValidator->stringLength('some_field', 0, 4, _("Error message"));
         $this->assertTrue($this->FormValidator->anyerrors());
@@ -219,10 +219,10 @@
     {
         // This should not generate any error.
-        $_POST['some_field'] = '12';
+        $_REQUEST['some_field'] = '12';
         $this->FormValidator->numericrange('some_field', 3, 22, _("Error message"));
         $this->assertFalse($this->FormValidator->anyerrors());
-        
-        // This one is an error!
-        $_POST['some_field'] = '12';
+
+        // This one is an error!
+        $_REQUEST['some_field'] = '12';
         $this->FormValidator->numericrange('some_field', 300, 2200, _("Error message"));
         $this->assertTrue($this->FormValidator->anyerrors());
@@ -232,10 +232,10 @@
     {
         // This should not generate any error.
-        $_POST['some_field'] = 'Quinn the Kook <quinn@strangecode.com>';
+        $_REQUEST['some_field'] = 'Quinn the Kook <quinn@strangecode.com>';
         $this->FormValidator->validateemail('some_field', _("Error message"));
         $this->assertFalse($this->FormValidator->anyerrors());
-                
-        // This one is an error!
-        $_POST['some_field'] = 'quinn@kook.com.';
+
+        // This one is an error!
+        $_REQUEST['some_field'] = 'quinn@kook.com.';
         $this->FormValidator->validateemail('some_field', _("Error message"));
         $this->assertTrue($this->FormValidator->anyerrors());
@@ -245,10 +245,10 @@
     {
         // This should not generate any error.
-        $_POST['some_field'] = '+1 (530) 555-1212';
+        $_REQUEST['some_field'] = '+1 (530) 555-1212';
         $this->FormValidator->validatephone('some_field', _("Error message"));
         $this->assertFalse($this->FormValidator->anyerrors());
-        
-        // This one is an error!
-        $_POST['some_field'] = 'd321/654*9875 ';
+
+        // This one is an error!
+        $_REQUEST['some_field'] = 'd321/654*9875 ';
         $this->FormValidator->validatephone('some_field', _("Error message"));
         $this->assertTrue($this->FormValidator->anyerrors());
@@ -258,10 +258,10 @@
     {
         // This should not generate any error.
-        $_POST['some_field'] = 'next tuesday';
+        $_REQUEST['some_field'] = 'next tuesday';
         $this->FormValidator->validatestrdate('some_field', _("Error message"));
         $this->assertFalse($this->FormValidator->anyerrors());
-        
-        // This one is an error!
-        $_POST['some_field'] = 'in a galaxy far far away';
+
+        // This one is an error!
+        $_REQUEST['some_field'] = 'in a galaxy far far away';
         $this->FormValidator->validatestrdate('some_field', _("Error message"));
         $this->assertTrue($this->FormValidator->anyerrors());
@@ -271,10 +271,10 @@
     {
         // This should not generate any error.
-        $_POST['some_field'] = '2323-2005-7766-3554';
+        $_REQUEST['some_field'] = '2323-2005-7766-3554';
         $this->FormValidator->validateccnumber('some_field', null);
         $this->assertFalse($this->FormValidator->anyerrors());
-        
-        // This one is an error!
-        $_POST['some_field'] = '1234 1234 1234 1234';
+
+        // This one is an error!
+        $_REQUEST['some_field'] = '1234 1234 1234 1234';
         $this->FormValidator->validateccnumber('some_field', null);
         $this->assertTrue($this->FormValidator->anyerrors());
Index: trunk/tests/VersionTest.php
===================================================================
--- trunk/tests/VersionTest.php	(revision 719)
+++ trunk/tests/VersionTest.php	(revision 720)
@@ -111,5 +111,5 @@
     {
         $result = $this->Version->create('test_user_tbl', 'user_id', '1', 'Test User', 'First version of user');
-        $this->assertSame(1, $result);
+        $this->assertSame('1', $result);
     }
 
