Index: /trunk/application.properties
===================================================================
--- /trunk/application.properties	(revision 138)
+++ /trunk/application.properties	(revision 139)
@@ -1,5 +1,6 @@
 #utf-8
-#Thu Sep 17 12:53:38 EST 2009
+#Sun Sep 20 20:21:33 EST 2009
 plugins.acegi=0.5.1
+plugins.navigation=1.1
 app.version=
 plugins.class-diagram=0.3
Index: /trunk/grails-app/conf/Config.groovy
===================================================================
--- /trunk/grails-app/conf/Config.groovy	(revision 138)
+++ /trunk/grails-app/conf/Config.groovy	(revision 139)
@@ -68,6 +68,73 @@
 }
 
+//log4j.logger.org.springframework.security='off,stdout'
 
+/** Navigation plugin menu.
+   * The top level titles are taken from i18n message bundles.
+   * Subitems i18n message bundles are not currently resolving with this plugin.
+   */
+navigation.nav = [
+    [order:10, controller:'appCore', title:'home', action:'start',
+        subItems: [
+            [order:10, controller:'appCore', title:'Start', action:'start', isVisible: { true }],
+            [order:20, controller:'appCore', title:'Manager', action:'manager', isVisible: { authenticateService.ifAllGranted('ROLE_Manager') }],
+            [order:30, controller:'appCore', title:'Admin', action:'appAdmin', isVisible: { authenticateService.ifAllGranted('ROLE_AppAdmin') }],
+            [order:90, controller:'appCore', title:'Timeout', action:'changeSessionTimeout', isVisible: { params.action == 'changeSessionTimeout' }],
+            [order:91, controller:'appCore', title:'Password', action:'changePassword', isVisible: { params.action == 'changePassword' }],
+        ]
+    ],
+    [order:20, controller:'taskDetailed', title:'tasks', action:'search',
+        subItems: [
+            [order:10, controller:'taskDetailed', title:'Search', action:'search', isVisible: { true }],
+            [order:20, controller:'taskDetailed', title:'Create', action:'create', isVisible: { true }],
+            [order:90, controller:'taskDetailed', title:'Show', action:'show', isVisible: { params.action == 'show' }],
+            [order:91, controller:'taskDetailed', title:'Edit', action:'edit', isVisible: { params.action == 'edit' }]
+        ]
+    ],
+    [order:30, controller:'inventoryItemDetailed', title:'inventory', action:'search',
+        subItems: [
+            [order:10, controller:'inventoryItemDetailed', title:'Search', action:'search', isVisible: { true }],
+            [order:20, controller:'inventoryItemDetailed', title:'Create', action:'create', isVisible: { true }],
+            [order:90, controller:'inventoryItemDetailed', title:'Show', action:'show', isVisible: { params.action == 'show' }],
+            [order:91, controller:'inventoryItemDetailed', title:'Edit', action:'edit', isVisible: { params.action == 'edit' }]
+        ]
+    ],
+    [order:40, controller:'assetDetailed', title:'assets', action:'search',
+        subItems: [
+            [order:10, controller:'assetDetailed', title:'Search', action:'search', isVisible: { true }],
+            [order:20, controller:'assetDetailed', title:'Create', action:'create', isVisible: { true }],
+            [order:90, controller:'assetDetailed', title:'Show', action:'show', isVisible: { params.action == 'show' }],
+            [order:91, controller:'assetDetailed', title:'Edit', action:'edit', isVisible: { params.action == 'edit' }]
+        ]
+    ]
+]
 
-
-//log4j.logger.org.springframework.security='off,stdout'
+/** Class-diagram plugin overrides.
+  * 
+  */
+classDiagram {
+    associations {
+        arrows {
+            // See http://www.graphviz.org/doc/info/arrows.html for available arrowheads and their visual appearance 
+            references = "open"
+            belongsTo = "odiamond"
+            embedded = "diamond"
+            inherits = "onormal"
+            none = "none"
+        }
+        decorators {
+            // plain text to be shown on edge ends
+            hasOne = "1"
+            hasMany = "*"
+            none = ""
+        }
+    }
+    skins {
+        classicSpacey {
+            name = " Classic Spacey"
+            graphStyle = [bgcolor:"none", mclimit:100, nodesep:'1.5 equally', ranksep:'2 equally' ]
+            nodeStyle = [style:"rounded,filled", color:"blue", fillcolor:"azure2", fontname:"Verdana", fontsize:18]
+            edgeStyle = [color:"gray40", fontname:"Verdana", fontsize:18, labelfontsize:20, labeldistance:3.5]
+        }
+    }
+}
Index: /trunk/grails-app/conf/SecurityConfig.groovy
===================================================================
--- /trunk/grails-app/conf/SecurityConfig.groovy	(revision 138)
+++ /trunk/grails-app/conf/SecurityConfig.groovy	(revision 139)
@@ -40,6 +40,8 @@
     '/js/**': ['IS_AUTHENTICATED_ANONYMOUSLY'],
     '/plugins/help-balloons-1.2/**': ['IS_AUTHENTICATED_FULLY'],
-     '/plugins/richui-0.6/**': ['IS_AUTHENTICATED_FULLY'],
-     '/plugins/class-diagram-0.3/**': ['IS_AUTHENTICATED_FULLY'],
+    '/plugins/richui-0.6/**': ['IS_AUTHENTICATED_FULLY'],
+    '/plugins/navigation-1.1/**': ['IS_AUTHENTICATED_FULLY'],
+    '/plugins/class-diagram-0.3/**': ['IS_AUTHENTICATED_FULLY'],
+    '/classDiagram*': ['IS_AUTHENTICATED_FULLY'],
     '/classDiagram/**': ['IS_AUTHENTICATED_FULLY'],
     '/login*': ['IS_AUTHENTICATED_ANONYMOUSLY'],
Index: /trunk/grails-app/controllers/AppCoreController.groovy
===================================================================
--- /trunk/grails-app/controllers/AppCoreController.groovy	(revision 138)
+++ /trunk/grails-app/controllers/AppCoreController.groovy	(revision 139)
@@ -5,9 +5,14 @@
     def authenticateService
 
-    def index = { redirect(action:home,params:params) }
+    def index = { redirect(action:start,params:params) }
 
     // the delete, save and update actions only accept POST requests
     //def allowedMethods = [delete:'POST', save:'POST', update:'POST']
 
+    /**
+    * This is where we arrive after login.
+    *  Attach the welcome flash message and redirect to where ever we want the user to start.
+    * e.g. redirect(controller:"taskDetailed", action:"search")
+    */
     def welcome = {
         def personInstance = Person.get(authenticateService.userDomain().id)
@@ -16,14 +21,8 @@
         def sess = getSession()
         sess.setMaxInactiveInterval(personInstance.sessionTimeout)
-        redirect(action:home)
+        redirect(action:start)
     }
 
-    def home = {
-    }
-
-    def options = {
-    }
-
-    def acknowledgements = {
+    def start = {
     }
 
@@ -35,5 +34,4 @@
         if (request.method == 'POST') {
             def personInstance = Person.get(authenticateService.userDomain().id)
-//             personInstance.sessionTimeout = params.sessionTimeout.toInteger()
                 personInstance.properties = params
                 if (!personInstance.hasErrors() && personInstance.save()) {
@@ -41,5 +39,5 @@
                     sess.setMaxInactiveInterval(personInstance.sessionTimeout)
                     flash.message = "Session timeout changed."
-                    redirect(action:options)
+                    redirect(action:start)
                 }
                 else {
@@ -68,5 +66,5 @@
                     //userCache.removeUserFromCache(personInstance.loginName)
                     flash.message = "Password changed successfully."
-                    redirect(action:options)
+                    redirect(action:start)
                 }
                 else {
Index: /trunk/grails-app/controllers/AssetDetailedController.groovy
===================================================================
--- /trunk/grails-app/controllers/AssetDetailedController.groovy	(revision 138)
+++ /trunk/grails-app/controllers/AssetDetailedController.groovy	(revision 139)
@@ -3,5 +3,5 @@
 class AssetDetailedController extends BaseController {
     
-    def index = { redirect(action:list,params:params) }
+    def index = { redirect(action:search,params:params) }
 
     // the delete, save and update actions only accept POST requests
@@ -13,10 +13,20 @@
     }
 
+    def search = {
+        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
+        [ assetInstanceList: Asset.list( params ), assetInstanceTotal: Asset.count() ]
+    }
+
     def show = {
+        
+        // In the case of an actionSubmit button, rewrite action name from 'index'.
+        if(params._action_Show)
+        { params.action='show' }
+        
         def assetInstance = Asset.get( params.id )
 
         if(!assetInstance) {
             flash.message = "Asset not found with id ${params.id}"
-            redirect(action:list)
+            redirect(action:search)
         }
         else { return [ assetInstance : assetInstance ] }
@@ -29,5 +39,5 @@
                 assetInstance.delete()
                 flash.message = "Asset ${params.id} deleted"
-                redirect(action:list)
+                redirect(action:search)
             }
             catch(org.springframework.dao.DataIntegrityViolationException e) {
@@ -38,14 +48,19 @@
         else {
             flash.message = "Asset not found with id ${params.id}"
-            redirect(action:list)
+            redirect(action:search)
         }
     }
 
     def edit = {
+        
+        // In the case of an actionSubmit button, rewrite action name from 'index'.
+        if(params._action_Edit)
+        { params.action='edit' }
+        
         def assetInstance = Asset.get( params.id )
 
         if(!assetInstance) {
             flash.message = "Asset not found with id ${params.id}"
-            redirect(action:list)
+            redirect(action:search)
         }
         else {
Index: /trunk/grails-app/controllers/InventoryItemDetailedController.groovy
===================================================================
--- /trunk/grails-app/controllers/InventoryItemDetailedController.groovy	(revision 138)
+++ /trunk/grails-app/controllers/InventoryItemDetailedController.groovy	(revision 139)
@@ -3,5 +3,5 @@
 class InventoryItemDetailedController extends BaseController {
     
-    def index = { redirect(action:list,params:params) }
+    def index = { redirect(action:search, params:params) }
 
     // the delete, save and update actions only accept POST requests
@@ -13,10 +13,20 @@
     }
 
+    def search = {
+        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
+        [ inventoryItemInstanceList: InventoryItem.list( params ), inventoryItemInstanceTotal: InventoryItem.count() ]
+    }
+
     def show = {
+        
+        // In the case of an actionSubmit button, rewrite action name from 'index'.
+        if(params._action_Show)
+        { params.action='show' }
+        
         def inventoryItemInstance = InventoryItem.get( params.id )
 
         if(!inventoryItemInstance) {
             flash.message = "InventoryItem not found with id ${params.id}"
-            redirect(action:list)
+            redirect(action:search)
         }
         else { return [ inventoryItemInstance : inventoryItemInstance ] }
@@ -29,5 +39,5 @@
                 inventoryItemInstance.delete()
                 flash.message = "InventoryItem ${params.id} deleted"
-                redirect(action:list)
+                redirect(action:search)
             }
             catch(org.springframework.dao.DataIntegrityViolationException e) {
@@ -38,14 +48,19 @@
         else {
             flash.message = "InventoryItem not found with id ${params.id}"
-            redirect(action:list)
+            redirect(action:search)
         }
     }
 
     def edit = {
+        
+        // In the case of an actionSubmit button, rewrite action name from 'index'.
+        if(params._action_Edit)
+        { params.action='edit' }
+        
         def inventoryItemInstance = InventoryItem.get( params.id )
 
         if(!inventoryItemInstance) {
             flash.message = "InventoryItem not found with id ${params.id}"
-            redirect(action:list)
+            redirect(action:search)
         }
         else {
Index: /trunk/grails-app/controllers/TaskDetailedController.groovy
===================================================================
--- /trunk/grails-app/controllers/TaskDetailedController.groovy	(revision 138)
+++ /trunk/grails-app/controllers/TaskDetailedController.groovy	(revision 139)
@@ -2,16 +2,12 @@
 
 class TaskDetailedController extends BaseController {
-    
-    def index = { redirect(action:list,params:params) }
+
+    def index = { 
+        println "index called"
+        redirect(action:search,params:params) 
+    }
 
     // the delete, save and update actions only accept POST requests
     static allowedMethods = [delete:'POST', save:'POST', update:'POST']
-
-//     def list = {
-//         params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
-//         def taskInstanceActives = Task.findAllByIsActive( true ).list( params )
-// //         def taskInstanceList = taskInstanceActives.list( params )
-//         return [ taskInstanceList: taskInstanceList, taskInstanceTotal: taskInstanceActives.count() ]
-//     }
 
     def list = {
@@ -20,10 +16,49 @@
     }
 
+    def search = {
+        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
+        
+        if(!params.order) {
+            params.sort = "id"
+            params.order = "desc"
+        }
+        
+        if(params.search == "ShowAll")
+        {
+            def taskInstanceActivesList = Task.findAllByIsActive(true, params)
+            def taskInstanceActivesTotal = Task.countByIsActive(true)
+            return [taskInstanceList: taskInstanceActivesList, taskInstanceTotal: taskInstanceActivesTotal]
+        }
+        if(params.search == "ShowDeleted")
+        {
+            def taskInstanceActivesList = Task.findAllByIsActive(false, params)
+            def taskInstanceActivesTotal = Task.countByIsActive(false)
+            return [taskInstanceList: taskInstanceActivesList, taskInstanceTotal: taskInstanceActivesTotal]
+        }
+        // Default:
+        def taskInstanceActivesList = Task.findAllByIsActive(true, params)
+        def taskInstanceActivesTotal = Task.countByIsActive(true)
+        [taskInstanceList: taskInstanceActivesList, taskInstanceTotal: taskInstanceActivesTotal]
+    }
+    
+    def searchShowAll = {
+        redirect(action:'search', params:[search:"ShowAll"])
+    }
+    
+    def searchShowDeleted = {
+        redirect(action:'search', params:[search:"ShowDeleted"])
+    }
+
     def show = {
+        
+        // In the case of an actionSubmit button, rewrite action name from 'index'.
+        if(params._action_Show)
+        { params.action='show' }
+
         def taskInstance = Task.get( params.id )
 
         if(!taskInstance) {
             flash.message = "Task not found with id ${params.id}"
-            redirect(action:list)
+            redirect(action:search)
         }
         else {
@@ -86,5 +121,5 @@
                 taskInstance.isActive = false
                 flash.message = "Task ${params.id} has been set to inactive."
-                redirect(action:list)
+                redirect(action:search)
             }
             catch(org.springframework.dao.DataIntegrityViolationException e) {
@@ -95,14 +130,19 @@
         else {
             flash.message = "Task not found with id ${params.id}"
-            redirect(action:list)
+            redirect(action:search)
         }
     }
 
     def edit = {
+        
+        // In the case of an actionSubmit button, rewrite action name from 'index'.
+        if(params._action_Edit)
+        { params.action='edit' }
+        
         def taskInstance = Task.get( params.id )
 
         if(!taskInstance) {
             flash.message = "Task not found with id ${params.id}"
-            redirect(action:list)
+            redirect(action:search)
         }
         else {
@@ -166,5 +206,5 @@
         if(!parentTaskInstance) {
             flash.message = "Task not found with id ${params.id}"
-            redirect(action:list)
+            redirect(action:search)
         }
         else {
Index: /trunk/grails-app/domain/Person.groovy
===================================================================
--- /trunk/grails-app/domain/Person.groovy	(revision 138)
+++ /trunk/grails-app/domain/Person.groovy	(revision 139)
@@ -15,5 +15,5 @@
 
     /* Set after login by 'welcome' action, default to 12 hours, aka "sess.setMaxInactiveInterval(seconds) */
-    Integer sessionTimeout = 720
+    Integer sessionTimeout = 43200
 
 	/** MD5 Password */
@@ -45,5 +45,5 @@
         //So we need to use pass for validation then encode it for above.
         pass(blank: false, minSize:4)
-        sessionTimeout(min:60, max:720)
+        sessionTimeout(min:60, max:43200)
 
 	}
Index: /trunk/grails-app/i18n/messages.properties
===================================================================
--- /trunk/grails-app/i18n/messages.properties	(revision 138)
+++ /trunk/grails-app/i18n/messages.properties	(revision 139)
@@ -54,3 +54,18 @@
 typeMismatch.java.math.BigInteger=Property {0} must be a valid number
 
+# Navigation plugin, see conf/Config.groovy for menu's.
+# Subitems are not currently resolving with this plugin.
+navigation.nav.home=Home
+navigation.nav.home.start=Start
+navigation.nav.home.appAdmin=Admin
+navigation.nav.home.manager=Manager
+navigation.nav.home.changeSessionTimeout=Timeout
+navigation.nav.home.changePassword=Password
 
+navigation.nav.tasks=Tasks
+navigation.nav.tasks.create=Create
+navigation.nav.tasks.search=Search
+navigation.nav.tasks.show=Show
+
+navigation.nav.inventory=Inventory
+navigation.nav.assets=Assets
Index: /trunk/grails-app/views/_about.gsp
===================================================================
--- /trunk/grails-app/views/_about.gsp	(revision 139)
+++ /trunk/grails-app/views/_about.gsp	(revision 139)
@@ -0,0 +1,102 @@
+<br />
+<br />
+<div class="dialog">
+    <table>
+        <tbody>
+            <tr><td>
+                GnuMims is a powerful but simple to use Maintenance and Inventory Management 
+                Solution with a focus on asset, task and inventory management. 
+                Also known as a computerised maintenance management system or CMMS. 
+                Initially designed with an engineering department and mid-size industrial production enviroment in mind.
+                <br />
+                <br />
+                GnuMims is a world wide community project run from 
+                <a href="http://www.gnumims.org">http://www.gnumims.org</a>
+                and released under the <a href="http://www.gnu.org/licenses/agpl.html">GNU AGPL</a> open source license.
+                <br />
+                <br />
+                The GNU AGPL requires you to make the source code available to your network users.<br />
+                So how do you do this?<br />
+                Easy, if you are running an un-modified version just leave the link to www.gnumims.org 
+                on the header image intact. This will allow your users to find the community site and 
+                with it the source code. If you are running a modified version you are welcome to 
+                use our subversion repository, ask us about a custom branch or your changes 
+                may be included in the main trunk. If you don't want to do either of those then 
+                create a link in your modified version to your modified source, either way you are required 
+                to make the source code available to your network users. 
+            </td></tr>
+        </tbody>
+    </table>
+</div>
+<br />
+<br />
+<div class="dialog">
+    <table>
+        <tbody>
+            <tr><td>
+
+            GnuMims - A web application providing a Maintenance and Inventory Management Solution.<br />
+            Copyright (C) 2008-2009 Gavin Kromhout<br />
+            Copyright (C) 2008-2009 Steven Tucker<br />
+            <br />
+            This program is free software: you can redistribute it and/or modify<br />
+            it under the terms of the GNU Affero General Public License as published by<br />
+            the Free Software Foundation, either version 3 of the License, or<br />
+            (at your option) any later version.<br />
+            <br />
+            This program is distributed in the hope that it will be useful,<br />
+            but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
+            MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the<br />
+            GNU Affero General Public License for more details.<br />
+            <br />
+            You should have received a copy of the GNU Affero General Public License<br />
+            along with this program.  If not, see <a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>
+            
+            </td></tr>
+        </tbody>
+    </table>
+</div>
+<br />
+<br />
+<div class="dialog">
+    <table>
+        <tbody>
+            <tr class="prop">
+                <td valign="top" class="name">Silk icon set acknowledgement.</td>
+                <td></td>
+                
+            </tr>
+        
+            <tr class="prop">
+                <td valign="top" class="name">Author:</td>
+                
+                <td valign="top" class="value">
+                    Mark James - <a href="http://www.famfamfam.com/lab/icons/silk/">http://www.famfamfam.com/lab/icons/silk/</a>
+                </td>
+                
+            </tr>
+        
+            <tr class="prop">
+                <td valign="top" class="name">License:</td>
+                
+                <td valign="top" class="value">
+                    <a href="http://creativecommons.org/licenses/by/3.0/">http://creativecommons.org/licenses/by/3.0/</a>
+                </td>
+                
+            </tr>
+            
+        </tbody>
+    </table>
+</div>
+<br />
+<br />
+<div class="dialog">
+    <table>
+        <tbody>
+            <tr><td>
+                The Grails web framework and the plugins used are available under 
+                their respective licenses from  <a href="http://www.grails.org">http://www.grails.org</a>                                    
+            </td></tr>
+        </tbody>
+    </table>
+</div>
Index: unk/grails-app/views/_adminmenubar.gsp
===================================================================
--- /trunk/grails-app/views/_adminmenubar.gsp	(revision 138)
+++ 	(revision )
@@ -1,27 +1,0 @@
-<g:isLoggedIn>
-    <g:ifAnyGranted role="ROLE_Manager">
-        <span class="appControlButton">
-            <g:link controller="appCore" action="manager">
-                Manager
-            </g:link>
-        </span>
-    </g:ifAnyGranted>
-    <g:ifAnyGranted role="ROLE_AppAdmin">
-        <span class="appControlButton">
-            <g:link controller="appCore" action="appAdmin">
-                AppAdmin
-            </g:link>
-        </span>
-    </g:ifAnyGranted>
-    <span class="appControlButton">
-        <g:link controller="appCore" action="options">
-                Options
-        </g:link>
-    </span>
-    <span class="appControlButton">
-        <g:link controller="logout">
-                Log out (<g:loggedInUsername/>)
-        </g:link>
-    </span>
-</g:isLoggedIn>
-
Index: unk/grails-app/views/appCore/acknowledgements.gsp
===================================================================
--- /trunk/grails-app/views/appCore/acknowledgements.gsp	(revision 138)
+++ 	(revision )
@@ -1,52 +1,0 @@
-<html>
-    <head>
-        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-        <meta name="layout" content="main" />
-        <title>Acknowledgements</title>
-    </head>
-    <body>
-        <div class="nav">
-            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
-        </div>
-        <div class="body">
-            <h1>Welcome to Acknowledgements</h1>
-            <g:if test="${flash.message}">
-                <div class="message">${flash.message}</div>
-            </g:if>
-            
-			<div class="dialog">
-				<table>
-					<tbody>
-
-					
-						<tr class="prop">
-							<td valign="top" class="name">Silk icon set:</td>
-							<td></td>
-							
-						</tr>
-					
-						<tr class="prop">
-							<td valign="top" class="name">Author:</td>
-							
-							<td valign="top" class="value">
-								Mark James - <a href="http://www.famfamfam.com/lab/icons/silk/">http://www.famfamfam.com/lab/icons/silk/</a>
-							</td>
-							
-						</tr>
-					
-						<tr class="prop">
-							<td valign="top" class="name">License:</td>
-							
-							<td valign="top" class="value">
-								<a href="http://creativecommons.org/licenses/by/3.0/">http://creativecommons.org/licenses/by/3.0/</a>
-							</td>
-							
-						</tr>
-						
-					</tbody>
-				</table>
-			</div>
-			
-        </div>
-    </body>
-</html>
Index: /trunk/grails-app/views/appCore/appAdmin.gsp
===================================================================
--- /trunk/grails-app/views/appCore/appAdmin.gsp	(revision 138)
+++ /trunk/grails-app/views/appCore/appAdmin.gsp	(revision 139)
@@ -4,8 +4,9 @@
         <meta name="layout" content="main" />
         <title>Admin</title>
+        <nav:resources override="true"/>
     </head>
     <body>
         <div class="nav">
-            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <nav:renderSubItems group="nav"/>
         </div>
         <div class="body">
Index: /trunk/grails-app/views/appCore/changePassword.gsp
===================================================================
--- /trunk/grails-app/views/appCore/changePassword.gsp	(revision 138)
+++ /trunk/grails-app/views/appCore/changePassword.gsp	(revision 139)
@@ -1,52 +1,52 @@
 <head>
-	<meta name="layout" content="main" />
-	<title>Change Password</title>
+    <meta name="layout" content="main" />
+    <title>Change Password</title>
+    <nav:resources override="true"/>
 </head>
 
 <body onload="document.changePasswordForm.pass.focus();">
-	<div class="nav">
-		<span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+    <div class="nav">
+        <nav:renderSubItems group="nav"/>
     </div>
 
-	<div class="body">
-		<h1>Change Password</h1>
-		<g:if test="${flash.message}">
-		<div class="message">${flash.message}</div>
-		</g:if>
-		<g:hasErrors bean="${personInstance}">
-		<div class="errors">
-			<g:renderErrors bean="${personInstance}" as="list" />
-		</div>
-		</g:hasErrors>
+    <div class="body">
+        <g:if test="${flash.message}">
+        <div class="message">${flash.message}</div>
+        </g:if>
+        <g:hasErrors bean="${personInstance}">
+        <div class="errors">
+            <g:renderErrors bean="${personInstance}" as="list" />
+        </div>
+        </g:hasErrors>
 
-		<g:form name="changePasswordForm" id="changePasswordForm">
-			<div class="dialog">
-				<table>
-				<tbody>
+            <g:form name="changePasswordForm" id="changePasswordForm">
+                <div class="dialog">
+                    <table>
+                        <tbody>
 
-					<tr class="prop">
-						<td valign="top" class="name"><label for="pass">Password:</label></td>
-						<td valign="top" class="value ${hasErrors(bean:personInstance,field:'pass','errors')}">
-							<input type="password" id="pass" name="pass" />
-						</td>
-					</tr>
+                        <tr class="prop">
+                            <td valign="top" class="name"><label for="pass">Password:</label></td>
+                            <td valign="top" class="value ${hasErrors(bean:personInstance,field:'pass','errors')}">
+                                <input type="password" id="pass" name="pass" />
+                            </td>
+                        </tr>
 
-                    <tr class="prop">
-                        <td valign="top" class="name"><label for="confirmPass">Confirm password:</label></td>
-                        <td valign="top" class="value">
-                            <input type="password" id="confirmPass" name="confirmPass" />
-                        </td>
-                    </tr>
+                        <tr class="prop">
+                            <td valign="top" class="name"><label for="confirmPass">Confirm password:</label></td>
+                            <td valign="top" class="value">
+                                <input type="password" id="confirmPass" name="confirmPass" />
+                            </td>
+                        </tr>
 
-				</tbody>
-				</table>
-			</div>
+                    </tbody>
+                </table>
+            </div>
 
-			<div class="buttons">
-				<span class="button"><g:actionSubmit class="save" value="Change Password" action="changePassword"/></span>
-			</div>
-		</g:form>
+            <div class="buttons">
+                <span class="button"><g:actionSubmit class="save" value="Change Password" action="changePassword"/></span>
+            </div>
+        </g:form>
 
-	</div>
+    </div>
 
 </body>
Index: /trunk/grails-app/views/appCore/changeSessionTimeout.gsp
===================================================================
--- /trunk/grails-app/views/appCore/changeSessionTimeout.gsp	(revision 138)
+++ /trunk/grails-app/views/appCore/changeSessionTimeout.gsp	(revision 139)
@@ -2,13 +2,13 @@
 	<meta name="layout" content="main" />
 	<title>Change Session Timeout</title>
+    <nav:resources override="true"/>
 </head>
 
-<body onload="document.changeSessionTimeoutForm.sessionTimeout.focus();">
-	<div class="nav">
-		<span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+<body onload="document.changeSessionTimeoutForm.sessionTimeout.focus();">        
+    <div class="nav">
+        <nav:renderSubItems group="nav"/>
     </div>
 
 	<div class="body">
-		<h1>Change Session Timeout</h1>
 		<g:if test="${flash.message}">
 		<div class="message">${flash.message}</div>
Index: unk/grails-app/views/appCore/home.gsp
===================================================================
--- /trunk/grails-app/views/appCore/home.gsp	(revision 138)
+++ 	(revision )
@@ -1,28 +1,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html;
-      charset=UTF-8"/>
-<meta name="layout" content="main" />
-<title>Home</title>
-</head>
-    <body>
-        <div class="nav">
-            <span class="menuButton"><g:link class="list" controller="taskDetailed" action="list">Tasks</g:link></span>
-            <span class="menuButton"><g:link class="list" controller="inventoryItemDetailed" action="list">Inventory</g:link></span>
-            <span class="menuButton"><g:link class="list" controller="assetDetailed" action="list">Assets</g:link></span>
-
-        </div>
-        <div class="body">
-            <h1></h1>
-            <g:if test="${flash.message}">
-                <div class="message">${flash.message}</div>
-            </g:if>
-            <g:hasErrors bean="${appCore}">
-                <div class="errors">
-                    <g:renderErrors bean="${appCore}" as="list" />
-                </div>
-            </g:hasErrors>
-            
-        </div>
-    </body>
-</html>
Index: /trunk/grails-app/views/appCore/manager.gsp
===================================================================
--- /trunk/grails-app/views/appCore/manager.gsp	(revision 138)
+++ /trunk/grails-app/views/appCore/manager.gsp	(revision 139)
@@ -4,16 +4,25 @@
         <meta name="layout" content="main" />
         <title>Admin</title>
+        <nav:resources override="true"/>
     </head>
     <body>
         <div class="nav">
-            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
-            <span class="menuButton"><g:link controller="person" action="create">New Person</g:link></span>
-            <span class="menuButton"><g:link controller="person" action="list">Person List</g:link></span>
+            <nav:renderSubItems group="nav"/>
         </div>
         <div class="body">
-            <h1>Welcome to Manager</h1>
             <g:if test="${flash.message}">
                 <div class="message">${flash.message}</div>
             </g:if>
+            <br />
+            <br />
+            <a href="${createLink(controller:'person', action:'list')}">Manage application users</a>
+            <br />
+            <br />
+            View Entity Relationship Diagram:
+            <a href="${createLink(controller:'classDiagram', action:'model', params:[outputFormat: 'pdf', skin: 'classicSpacey', showMethods: 'false', autoUpdate: 'false'])}">pdf</a>
+            and
+            <a href="${createLink(controller:'classDiagram', action:'legend', target:'_blank')}">legend</a>
+            or
+            <a href="${createLink(controller:'classDiagram', action:'show')}">interactive.</a>
         </div>
     </body>
Index: unk/grails-app/views/appCore/options.gsp
===================================================================
--- /trunk/grails-app/views/appCore/options.gsp	(revision 138)
+++ 	(revision )
@@ -1,28 +1,0 @@
-<html>
-    <head>
-        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-        <meta name="layout" content="main" />
-        <title>Options</title>
-    </head>
-    <body>
-        <div class="nav">
-            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
-        </div>
-        <div class="body">
-            <h1>Welcome to Options</h1>
-            <g:if test="${flash.message}">
-            <div class="message">${flash.message}</div>
-            </g:if>
-            <br/>
-            <div class="dialog">
-            <a href="${createLink(action:'changePassword')}">Change Password</a>
-            <br />
-            <br />
-            <a href="${createLink(action:'changeSessionTimeout')}">Change Session Timeout</a>
-            <br />
-            <br />
-            <a href="${createLink(action:'acknowledgements')}">Acknowledgements</a>
-            </div>
-        </div>
-    </body>
-</html>
Index: /trunk/grails-app/views/appCore/start.gsp
===================================================================
--- /trunk/grails-app/views/appCore/start.gsp	(revision 139)
+++ /trunk/grails-app/views/appCore/start.gsp	(revision 139)
@@ -0,0 +1,74 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<meta name="layout" content="main" />
+<title>Start</title>
+<nav:resources override="true"/>
+<resource:tabView skin="tabviewCustom" />
+</head>
+    <body>
+        <div class="nav">
+            <nav:renderSubItems group="nav"/>
+        </div>
+        <div class="body">
+            <g:if test="${flash.message}">
+                <div class="message">${flash.message}</div>
+            </g:if>
+            <g:hasErrors bean="${appCore}">
+                <div class="errors">
+                    <g:renderErrors bean="${appCore}" as="list" />
+                </div>
+            </g:hasErrors>
+
+            <richui:tabView id="tabView">
+
+                <richui:tabLabels>
+                    <richui:tabLabel selected="true" title="Quick Links" />
+                    <richui:tabLabel selected="${0}" title="Reports" />
+                    <richui:tabLabel selected="${0}" title="Options" />
+                    <richui:tabLabel selected="${0}" title="About" />
+                </richui:tabLabels>
+
+                <richui:tabContents>
+
+<!-- Tasks tab -->
+                    <richui:tabContent>
+                        <br />
+                        <br />
+                        Prepared quick links
+                        <br />
+                        <br />
+                    </richui:tabContent>
+<!-- End Tasks tab -->
+
+<!-- Reports tab -->
+                    <richui:tabContent>
+                        <br />
+                        <br />
+                        Static reports
+                    </richui:tabContent>
+<!-- End Reports tab  -->
+
+<!-- Options tab -->
+                    <richui:tabContent>
+                        <br />
+                        <br />
+                        <a href="${createLink(action:'changePassword')}">Change Password</a>
+                        <br />
+                        <br />
+                        <a href="${createLink(action:'changeSessionTimeout')}">Change Session Timeout</a>
+                    </richui:tabContent>
+<!-- End Options tab -->
+
+<!-- About tab -->
+                    <richui:tabContent>
+                        <g:render template="/about" />
+                    </richui:tabContent>
+<!-- End About tab -->
+
+                </richui:tabContents>
+            </richui:tabView>
+            
+        </div>
+    </body>
+</html>
Index: /trunk/grails-app/views/assetDetailed/create.gsp
===================================================================
--- /trunk/grails-app/views/assetDetailed/create.gsp	(revision 138)
+++ /trunk/grails-app/views/assetDetailed/create.gsp	(revision 139)
@@ -5,13 +5,12 @@
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
         <meta name="layout" content="main" />
-        <title>Create Asset</title>         
+        <title>Create Asset</title>   
+        <nav:resources override="true"/>
     </head>
     <body>
         <div class="nav">
-            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
-            <span class="menuButton"><g:link class="list" action="list">Asset List</g:link></span>
+            <nav:renderSubItems group="nav"/>
         </div>
         <div class="body">
-            <h1>Create Asset</h1>
             <g:if test="${flash.message}">
             <div class="message">${flash.message}</div>
Index: /trunk/grails-app/views/assetDetailed/edit.gsp
===================================================================
--- /trunk/grails-app/views/assetDetailed/edit.gsp	(revision 138)
+++ /trunk/grails-app/views/assetDetailed/edit.gsp	(revision 139)
@@ -6,13 +6,11 @@
         <meta name="layout" content="main" />
         <title>Edit Asset</title>
+        <nav:resources override="true"/>
     </head>
     <body>
         <div class="nav">
-            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
-            <span class="menuButton"><g:link class="list" action="list">Asset List</g:link></span>
-            <span class="menuButton"><g:link class="create" action="create">New Asset</g:link></span>
+            <nav:renderSubItems group="nav"/>
         </div>
         <div class="body">
-            <h1>Edit Asset</h1>
             <g:if test="${flash.message}">
             <div class="message">${flash.message}</div>
Index: /trunk/grails-app/views/assetDetailed/list.gsp
===================================================================
--- /trunk/grails-app/views/assetDetailed/list.gsp	(revision 138)
+++ /trunk/grails-app/views/assetDetailed/list.gsp	(revision 139)
@@ -6,12 +6,11 @@
         <meta name="layout" content="main" />
         <title>Asset List</title>
+        <nav:resources override="true"/>
     </head>
     <body>
         <div class="nav">
-            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
-            <span class="menuButton"><g:link class="create" action="create">New Asset</g:link></span>
+            <nav:renderSubItems group="nav"/>
         </div>
         <div class="body">
-            <h1>Asset List</h1>
             <g:if test="${flash.message}">
             <div class="message">${flash.message}</div>
Index: /trunk/grails-app/views/assetDetailed/search.gsp
===================================================================
--- /trunk/grails-app/views/assetDetailed/search.gsp	(revision 139)
+++ /trunk/grails-app/views/assetDetailed/search.gsp	(revision 139)
@@ -0,0 +1,67 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Asset Search</title>
+        <nav:resources override="true"/>
+    </head>
+    <body>
+        <div class="nav">
+            <nav:renderSubItems group="nav"/>
+        </div>
+        <div class="body">
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <div class="list">
+                <table>
+                    <thead>
+                        <tr>
+                        
+                   	        <g:sortableColumn property="id" title="Id" />
+
+                             <g:sortableColumn property="name" title="Name" />
+
+                             <g:sortableColumn property="assetType" title="Asset Type" />
+                        
+                   	        <g:sortableColumn property="systemSection" title="System Section" />
+
+                            <g:sortableColumn property="isActive" title="Is Active" />
+
+                            <th></th>
+                   	    
+                        </tr>
+                    </thead>
+                    <tbody>
+                    <g:each in="${assetInstanceList}" status="i" var="assetInstance">
+                        <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}" onclick='window.location = "${request.getContextPath()}/assetDetailed/show/${assetInstance.id}"'/>
+                        
+                            <td>${fieldValue(bean:assetInstance, field:'id')}</td>
+
+                            <td>${fieldValue(bean:assetInstance, field:'name')}</td>                        
+
+                            <td>${fieldValue(bean:assetInstance, field:'assetType')}</td>
+
+                            <td>${fieldValue(bean:assetInstance, field:'systemSection')}</td>
+
+                            <td>${fieldValue(bean:assetInstance, field:'isActive')}</td>
+
+                            <td>
+                                <g:link action="show" id="${assetInstance.id}">
+                                    <img  src="${createLinkTo(dir:'images/skin',file:'database_table.png')}" alt="Show" />
+                                </g:link>
+                            </td>
+                        
+                        </tr>
+                    </g:each>
+                    </tbody>
+                </table>
+            </div>
+            <div class="paginateButtons">
+                <g:paginate total="${assetInstanceTotal}" />
+            </div>
+        </div>
+    </body>
+</html>
Index: /trunk/grails-app/views/assetDetailed/show.gsp
===================================================================
--- /trunk/grails-app/views/assetDetailed/show.gsp	(revision 138)
+++ /trunk/grails-app/views/assetDetailed/show.gsp	(revision 139)
@@ -6,13 +6,11 @@
         <meta name="layout" content="main" />
         <title>Show Asset</title>
+        <nav:resources override="true"/>
     </head>
     <body>
         <div class="nav">
-            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
-            <span class="menuButton"><g:link class="list" action="list">Asset List</g:link></span>
-            <span class="menuButton"><g:link class="create" action="create">New Asset</g:link></span>
+            <nav:renderSubItems group="nav"/>
         </div>
         <div class="body">
-            <h1>Show Asset</h1>
             <g:if test="${flash.message}">
             <div class="message">${flash.message}</div>
Index: /trunk/grails-app/views/entryDetailed/edit.gsp
===================================================================
--- /trunk/grails-app/views/entryDetailed/edit.gsp	(revision 138)
+++ /trunk/grails-app/views/entryDetailed/edit.gsp	(revision 139)
@@ -78,5 +78,5 @@
                                 </td>
                                 <td valign="top" class="value">
-                                    <g:formatDate date="${entryInstance?.dateEntered}" format="EEE, dd MMM yyyy @ HH:mm"/>
+                                    <g:formatDate date="${entryInstance?.dateEntered}" format="EEE, dd-MMM-yyyy @ HH:mm"/>
                                 </td>
                             </tr> 
Index: /trunk/grails-app/views/index.gsp
===================================================================
--- /trunk/grails-app/views/index.gsp	(revision 138)
+++ /trunk/grails-app/views/index.gsp	(revision 139)
@@ -1,1 +1,1 @@
-<%response.sendRedirect(request.getContextPath()+'/appCore/home')%>
+<%response.sendRedirect(request.getContextPath()+'/appCore/')%>
Index: /trunk/grails-app/views/inventoryItemDetailed/create.gsp
===================================================================
--- /trunk/grails-app/views/inventoryItemDetailed/create.gsp	(revision 138)
+++ /trunk/grails-app/views/inventoryItemDetailed/create.gsp	(revision 139)
@@ -5,13 +5,12 @@
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
         <meta name="layout" content="main" />
-        <title>Create InventoryItem</title>         
+        <title>Create InventoryItem</title>    
+        <nav:resources override="true"/>     
     </head>
     <body>
         <div class="nav">
-            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
-            <span class="menuButton"><g:link class="list" action="list">InventoryItem List</g:link></span>
+            <nav:renderSubItems group="nav"/>
         </div>
         <div class="body">
-            <h1>Create InventoryItem</h1>
             <g:if test="${flash.message}">
             <div class="message">${flash.message}</div>
Index: /trunk/grails-app/views/inventoryItemDetailed/edit.gsp
===================================================================
--- /trunk/grails-app/views/inventoryItemDetailed/edit.gsp	(revision 138)
+++ /trunk/grails-app/views/inventoryItemDetailed/edit.gsp	(revision 139)
@@ -6,13 +6,11 @@
         <meta name="layout" content="main" />
         <title>Edit InventoryItem</title>
+        <nav:resources override="true"/>
     </head>
     <body>
         <div class="nav">
-            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
-            <span class="menuButton"><g:link class="list" action="list">InventoryItem List</g:link></span>
-            <span class="menuButton"><g:link class="create" action="create">New InventoryItem</g:link></span>
+            <nav:renderSubItems group="nav"/>
         </div>
         <div class="body">
-            <h1>Edit InventoryItem</h1>
             <g:if test="${flash.message}">
             <div class="message">${flash.message}</div>
Index: /trunk/grails-app/views/inventoryItemDetailed/list.gsp
===================================================================
--- /trunk/grails-app/views/inventoryItemDetailed/list.gsp	(revision 138)
+++ /trunk/grails-app/views/inventoryItemDetailed/list.gsp	(revision 139)
@@ -6,12 +6,11 @@
         <meta name="layout" content="main" />
         <title>InventoryItem List</title>
+        <nav:resources override="true"/>
     </head>
     <body>
         <div class="nav">
-            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
-            <span class="menuButton"><g:link class="create" action="create">New InventoryItem</g:link></span>
+            <nav:renderSubItems group="nav"/>
         </div>
         <div class="body">
-            <h1>InventoryItem List</h1>
             <g:if test="${flash.message}">
             <div class="message">${flash.message}</div>
Index: /trunk/grails-app/views/inventoryItemDetailed/search.gsp
===================================================================
--- /trunk/grails-app/views/inventoryItemDetailed/search.gsp	(revision 139)
+++ /trunk/grails-app/views/inventoryItemDetailed/search.gsp	(revision 139)
@@ -0,0 +1,72 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>InventoryItem Search</title>
+        <nav:resources override="true"/>
+        <resource:tabView skin="tabviewCustom" />
+    </head>
+    <body>
+        <div class="nav">
+            <nav:renderSubItems group="nav"/>
+        </div>
+        <div class="body">
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            Search            
+            <br />
+            <br />
+            
+            <div class="list">
+                <table>
+                    <thead>
+                        <tr>
+                        
+                   	        <g:sortableColumn property="id" title="Id" />
+                        
+                   	        <g:sortableColumn property="name" title="Name" />
+                        
+                   	        <g:sortableColumn property="description" title="Description" />
+                        
+                   	        <g:sortableColumn property="enableReorder" title="Enable Reorder" />
+                        
+                   	        <g:sortableColumn property="isActive" title="Is Active" />
+
+                            <th></th>
+                        
+                        </tr>
+                    </thead>
+                    <tbody>
+                    <g:each in="${inventoryItemInstanceList}" status="i" var="inventoryItemInstance">
+                        <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}" onclick='window.location = "${request.getContextPath()}/inventoryItemDetailed/show/${inventoryItemInstance.id}"'/>
+                        
+                            <td>${fieldValue(bean:inventoryItemInstance, field:'id')}</td>
+                        
+                            <td>${fieldValue(bean:inventoryItemInstance, field:'name')}</td>
+                        
+                            <td>${fieldValue(bean:inventoryItemInstance, field:'description')}</td>
+                        
+                            <td>${fieldValue(bean:inventoryItemInstance, field:'enableReorder')}</td>
+                        
+                            <td>${fieldValue(bean:inventoryItemInstance, field:'isActive')}</td>
+
+                            <td>
+                                <g:link action="show" id="${inventoryItemInstance.id}">
+                                    <img  src="${createLinkTo(dir:'images/skin',file:'database_table.png')}" alt="Show" />
+                                </g:link>
+                            </td>
+                        
+                        </tr>
+                    </g:each>
+                    </tbody>
+                </table>
+            </div>
+            <div class="paginateButtons">
+                <g:paginate total="${inventoryItemInstanceTotal}" />
+            </div>
+        </div>
+    </body>
+</html>
Index: /trunk/grails-app/views/inventoryItemDetailed/show.gsp
===================================================================
--- /trunk/grails-app/views/inventoryItemDetailed/show.gsp	(revision 138)
+++ /trunk/grails-app/views/inventoryItemDetailed/show.gsp	(revision 139)
@@ -6,13 +6,11 @@
         <meta name="layout" content="main" />
         <title>Show InventoryItem</title>
+        <nav:resources override="true"/>
     </head>
     <body>
         <div class="nav">
-            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
-            <span class="menuButton"><g:link class="list" action="list">InventoryItem List</g:link></span>
-            <span class="menuButton"><g:link class="create" action="create">New InventoryItem</g:link></span>
+            <nav:renderSubItems group="nav"/>
         </div>
         <div class="body">
-            <h1>Show InventoryItem</h1>
             <g:if test="${flash.message}">
             <div class="message">${flash.message}</div>
Index: /trunk/grails-app/views/layouts/main.gsp
===================================================================
--- /trunk/grails-app/views/layouts/main.gsp	(revision 138)
+++ /trunk/grails-app/views/layouts/main.gsp	(revision 139)
@@ -6,4 +6,5 @@
         <g:layoutHead />
         <g:helpBalloons/>
+        <nav:resources override="true"/>
         <g:javascript library="application" />
     </head>
@@ -21,14 +22,24 @@
                     <a href="http://www.gnumims.org" id=HeaderLink></a>
                 </div>
+                
                 <div class="appControl">
-                    <g:render template="/adminmenubar" />
+                    <g:isLoggedIn>
+                        <span class="appControlButton">
+                            <g:link controller="logout">
+                                    Log out (<g:loggedInUsername/>)
+                            </g:link>
+                        </span>
+                        <div id="menu">
+                            <nav:render group="nav"/>
+                        </div>                    
+                    </g:isLoggedIn>
                 </div>
 
-                    <g:layoutBody />
+                <g:layoutBody />
 
-            </div><!--content-->
+            </div> <!-- content -->
             <div id="bottom">
             </div>
-        </div>
+        </div> <!-- wrapper -->
     </body>	
 </html>
Index: /trunk/grails-app/views/login/auth.gsp
===================================================================
--- /trunk/grails-app/views/login/auth.gsp	(revision 138)
+++ /trunk/grails-app/views/login/auth.gsp	(revision 139)
@@ -31,4 +31,11 @@
 	width: 120px;
 }
+#login .inner .cssform input[type='submit']:link {
+}
+#login .inner .cssform input[type='submit']:visited {
+}
+#login .inner .cssform input[type='submit']:hover {
+    background:#bfdaff;
+}
 #login .inner .cssform label {
 	font-weight: bold;
@@ -56,5 +63,5 @@
 				<p>
 					<label for='j_username'>Login ID</label>
-					<input type='text' class='text_' name='j_username' id='j_username' value='user' />
+					<input type='text' class='text_' name='j_username' id='j_username' value='manager' />
 				</p>
 				<p>
Index: /trunk/grails-app/views/taskDetailed/create.gsp
===================================================================
--- /trunk/grails-app/views/taskDetailed/create.gsp	(revision 138)
+++ /trunk/grails-app/views/taskDetailed/create.gsp	(revision 139)
@@ -1,17 +1,14 @@
-
-
 <html>
     <head>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
         <meta name="layout" content="main" />
-        <title>Create Task</title>         
+        <title>Create Task</title>
+        <nav:resources override="true"/>
     </head>
     <body>
         <div class="nav">
-            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
-            <span class="menuButton"><g:link class="list" action="list">Task List</g:link></span>
+            <nav:renderSubItems group="nav"/>
         </div>
         <div class="body">
-            <h1>Create Task</h1>
             <g:if test="${flash.message}">
             <div class="message">${flash.message}</div>
Index: /trunk/grails-app/views/taskDetailed/edit.gsp
===================================================================
--- /trunk/grails-app/views/taskDetailed/edit.gsp	(revision 138)
+++ /trunk/grails-app/views/taskDetailed/edit.gsp	(revision 139)
@@ -6,13 +6,11 @@
         <meta name="layout" content="main" />
         <title>Edit Task</title>
+        <nav:resources override="true"/>
     </head>
     <body>
         <div class="nav">
-            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
-            <span class="menuButton"><g:link class="list" action="list">Task List</g:link></span>
-            <span class="menuButton"><g:link class="create" action="create">New Task</g:link></span>
+            <nav:renderSubItems group="nav"/>
         </div>
         <div class="body">
-            <h1>Edit Task</h1>
             <g:if test="${flash.message}">
             <div class="message">${flash.message}</div>
Index: /trunk/grails-app/views/taskDetailed/list.gsp
===================================================================
--- /trunk/grails-app/views/taskDetailed/list.gsp	(revision 138)
+++ /trunk/grails-app/views/taskDetailed/list.gsp	(revision 139)
@@ -4,12 +4,11 @@
         <meta name="layout" content="main" />
         <title>Task List</title>
+        <nav:resources override="true"/>
     </head>
     <body>
         <div class="nav">
-            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
-            <span class="menuButton"><g:link class="create" action="create">New Task</g:link></span>
+            <nav:renderSubItems group="nav"/>
         </div>
         <div class="body">
-            <h1>Task List</h1>
             <g:if test="${flash.message}">
                 <div class="message">${flash.message}</div>
@@ -19,19 +18,19 @@
                     <thead>
                         <tr>
-                        
-                   	        <g:sortableColumn property="id" title="Id" />
-                        
-                   	        <g:sortableColumn property="targetStartDate" title="Target Start Date" />
-                        
-                   	        <g:sortableColumn property="description" title="Description" />
-                        
-                   	        <g:sortableColumn  property="leadPerson" title="Lead Person" />
-                        
+
+                            <g:sortableColumn defaultOrder="desc" property="id" title="Id"  />
+
+                            <g:sortableColumn property="targetStartDate" title="Target Start Date" />
+
+                            <g:sortableColumn property="description" title="Description" />
+
+                            <g:sortableColumn  property="leadPerson" title="Lead Person" />
+
                             <g:sortableColumn  property="taskPriority" title="Task Priority" />
-                        
+
                             <g:sortableColumn  property="taskStatus" title="Task Status" />
 
                             <th></th>
-                   	    
+
                         </tr>
                     </thead>
@@ -41,13 +40,13 @@
 
                             <td>${fieldValue(bean:taskInstance, field:'id')}</td>
-                        
-                            <td><g:formatDate date="${taskInstance.targetStartDate}" format="EEE, dd MMM yyyy"/></td>
-                        
+
+                            <td><g:formatDate date="${taskInstance.targetStartDate}" format="EEE, dd-MMM-yyyy"/></td>
+
                             <td>${fieldValue(bean:taskInstance, field:'description')}</td>
-                        
+
                             <td>${fieldValue(bean:taskInstance, field:'leadPerson')}</td>
-                        
+
                             <td>${fieldValue(bean:taskInstance, field:'taskPriority')}</td>
-                        
+
                             <td>${fieldValue(bean:taskInstance, field:'taskStatus')}</td>
 
@@ -57,5 +56,5 @@
                                 </g:link>
                             </td>
-                        
+
                         </tr>
                     </g:each>
Index: /trunk/grails-app/views/taskDetailed/listSubTasks.gsp
===================================================================
--- /trunk/grails-app/views/taskDetailed/listSubTasks.gsp	(revision 138)
+++ /trunk/grails-app/views/taskDetailed/listSubTasks.gsp	(revision 139)
@@ -4,9 +4,9 @@
         <meta name="layout" content="main" />
         <title>Task List</title>
+        <nav:resources override="true"/>
     </head>
     <body>
         <div class="nav">
-            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
-            <span class="menuButton"><g:link class="create" action="create">New Task</g:link></span>
+            <nav:renderSubItems group="nav"/>
         </div>
         <div class="body">
@@ -43,5 +43,5 @@
                             <td>${fieldValue(bean:taskInstance, field:'id')}</td>
                         
-                            <td><g:formatDate date="${taskInstance.targetStartDate}" format="EEE, dd MMM yyyy"/></td>
+                            <td><g:formatDate date="${taskInstance.targetStartDate}" format="EEE, dd-MMM-yyyy"/></td>
                         
                             <td>${fieldValue(bean:taskInstance, field:'description')}</td>
Index: /trunk/grails-app/views/taskDetailed/search.gsp
===================================================================
--- /trunk/grails-app/views/taskDetailed/search.gsp	(revision 139)
+++ /trunk/grails-app/views/taskDetailed/search.gsp	(revision 139)
@@ -0,0 +1,124 @@
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Task Search</title>
+        <nav:resources override="true"/>
+        <resource:tabView skin="tabviewCustom" />
+    </head>
+    <body>
+        <div class="nav">
+            <nav:renderSubItems group="nav"/>
+        </div>
+        
+        <div class="body">
+            <g:if test="${flash.message}">
+                <div class="message">${flash.message}</div>
+            </g:if>
+            <g:hasErrors bean="${appCore}">
+                <div class="errors">
+                    <g:renderErrors bean="${appCore}" as="list" />
+                </div>
+            </g:hasErrors>
+
+            <richui:tabView id="tabView">
+
+                <richui:tabLabels>
+                    <richui:tabLabel selected="true" title="Quick" />
+                    <richui:tabLabel selected="${0}" title="Basic" />
+                    <richui:tabLabel selected="${0}" title="Advanced" />
+                </richui:tabLabels>
+
+                <richui:tabContents>
+
+<!-- Quick tab -->
+                    <richui:tabContent>
+                        <br />
+                        <br />
+                        <g:form controller="taskDetailed">
+                            Task ID:
+                            <input type="text" name="id" value="${taskInstance?.id}" />
+                            <span class="button"><g:actionSubmit class="show" value="Show" /></span>
+                        </g:form>
+                        <br />
+                        <br />
+                        Show:
+                        <g:link action="searchShowAll">Active</g:link>
+                        /
+                        <g:link action="searchShowDeleted">Inactive</g:link>
+                    </richui:tabContent>
+<!-- End Quick tab -->
+
+<!-- Basic tab -->
+                    <richui:tabContent>
+                        <br />
+                        <br />
+
+                    </richui:tabContent>
+<!-- End Basic tab  -->
+
+<!-- Advanced tab -->
+                    <richui:tabContent>
+                        <br />
+                        <br />
+                    </richui:tabContent>
+<!-- End Advanced tab -->
+
+                </richui:tabContents>
+            </richui:tabView>
+            
+            <div class="list">
+                <table>
+                    <thead>
+                        <tr>
+                        
+                   	        <g:sortableColumn property="id" title="Id" />
+                        
+                   	        <g:sortableColumn property="targetStartDate" title="Target Start Date" />
+                        
+                   	        <g:sortableColumn property="description" title="Description" />
+                        
+                   	        <g:sortableColumn  property="leadPerson" title="Lead Person" />
+                        
+                            <g:sortableColumn  property="taskPriority" title="Task Priority" />
+                        
+                            <g:sortableColumn  property="taskStatus" title="Task Status" />
+
+                            <th></th>
+                   	    
+                        </tr>
+                    </thead>
+                    <tbody>
+                    <g:each in="${taskInstanceList}" status="i" var="taskInstance">
+                    <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}" onclick='window.location = "${request.getContextPath()}/taskDetailed/show/${taskInstance.id}"'/>
+
+                            <td>${fieldValue(bean:taskInstance, field:'id')}</td>
+                        
+                            <td><g:formatDate date="${taskInstance.targetStartDate}" format="EEE, dd-MMM-yyyy"/></td>
+                        
+                            <td>${fieldValue(bean:taskInstance, field:'description')}</td>
+                        
+                            <td>${fieldValue(bean:taskInstance, field:'leadPerson')}</td>
+                        
+                            <td>${fieldValue(bean:taskInstance, field:'taskPriority')}</td>
+                        
+                            <td>${fieldValue(bean:taskInstance, field:'taskStatus')}</td>
+
+                            <td>
+                                <g:link action="show" id="${taskInstance.id}">
+                                    <img  src="${createLinkTo(dir:'images/skin',file:'database_go.png')}" alt="Show" />
+                                </g:link>
+                            </td>
+                        
+                        </tr>
+                    </g:each>
+                    </tbody>
+                </table>
+            </div>
+            <div class="paginateButtons">
+                <g:paginate total="${taskInstanceTotal}" />
+            </div>
+            
+        </div> <!-- end body div -->
+    </body>
+</html>
Index: /trunk/grails-app/views/taskDetailed/show.gsp
===================================================================
--- /trunk/grails-app/views/taskDetailed/show.gsp	(revision 138)
+++ /trunk/grails-app/views/taskDetailed/show.gsp	(revision 139)
@@ -4,11 +4,10 @@
         <meta name="layout" content="main" />
         <title>Show Task</title>
+        <nav:resources override="true"/>
         <resource:tabView skin="tabviewCustom" />
     </head>
     <body>
         <div class="nav">
-            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
-            <span class="menuButton"><g:link class="list" action="list">Task List</g:link></span>
-            <span class="menuButton"><g:link class="create" action="create">New Task</g:link></span>
+            <nav:renderSubItems group="nav"/>
         </div>
         <div class="body">
@@ -66,5 +65,5 @@
                                         <td valign="top" class="name">Target Start Date:</td>
                                         
-                                        <td valign="top" class="value"><g:formatDate date="${taskInstance.targetStartDate}" format="EEE, dd MMM yyyy"/></td>
+                                        <td valign="top" class="value"><g:formatDate date="${taskInstance.targetStartDate}" format="EEE, dd-MMM-yyyy"/></td>
                                         
                                     </tr>
@@ -73,5 +72,5 @@
                                         <td valign="top" class="name">Target Completion Date:</td>
                                         
-                                        <td valign="top" class="value"><g:formatDate date="${taskInstance.targetCompletionDate}" format="EEE, dd MMM yyyy"/></td>
+                                        <td valign="top" class="value"><g:formatDate date="${taskInstance.targetCompletionDate}" format="EEE, dd-MMM-yyyy"/></td>
                                         
                                     </tr>
@@ -189,5 +188,5 @@
                                         
                                             <td style="width:65%">${entry.comment}</td>
-                                            <td><g:formatDate date="${entry.dateDone}" format="EEE, dd MMM yyyy"/></td>
+                                            <td><g:formatDate date="${entry.dateDone}" format="EEE, dd-MMM-yyyy"/></td>
                                             <td>${entry.durationHour}:${entry.durationMinute}</td>
                                             <td>${entry.enteredBy}</td>
@@ -228,5 +227,5 @@
             
                                             <td width="65%">${entry.comment}</td>
-                                            <td><g:formatDate date="${entry.dateDone}" format="EEE, dd MMM yyyy"/></td>
+                                            <td><g:formatDate date="${entry.dateDone}" format="EEE, dd-MMM-yyyy"/></td>
                                             <td>${entry.durationHour}:${entry.durationMinute}</td>
                                             <td>${entry.enteredBy}</td>
@@ -393,5 +392,5 @@
 											
 											<td valign="top" class="value">
-												<g:formatDate date="${taskRecurringScheduleInstance.startDate}" format="EEE, dd MMM yyyy"/>
+												<g:formatDate date="${taskRecurringScheduleInstance.startDate}" format="EEE, dd-MMM-yyyy"/>
 											</td>
                             
@@ -434,5 +433,5 @@
 											                         
 											<td valign="top" class="value">
-												<g:formatDate date="${taskRecurringScheduleInstance.nextTargetStartDate}" format="EEE, dd MMM yyyy"/>
+												<g:formatDate date="${taskRecurringScheduleInstance.nextTargetStartDate}" format="EEE, dd-MMM-yyyy"/>
 											</td>
 											
@@ -443,5 +442,5 @@
                                                                      
                                             <td valign="top" class="value">
-                                                <g:formatDate date="${taskRecurringScheduleInstance.nextTargetCompletionDate}" format="EEE, dd MMM yyyy"/>
+                                                <g:formatDate date="${taskRecurringScheduleInstance.nextTargetCompletionDate}" format="EEE, dd-MMM-yyyy"/>
                                             </td>
                                             
@@ -452,5 +451,5 @@
                                             
                                             <td valign="top" class="value">
-                                                <g:formatDate date="${taskRecurringScheduleInstance.nextGenerationDate}" format="EEE, dd MMM yyyy"/>
+                                                <g:formatDate date="${taskRecurringScheduleInstance.nextGenerationDate}" format="EEE, dd-MMM-yyyy"/>
                                             </td>
                                         </tr>
@@ -460,5 +459,5 @@
 											                            
 											<td valign="top" class="value">
-												<g:formatDate date="${taskRecurringScheduleInstance.lastGeneratedDate}" format="EEE, dd MMM yyyy"/>
+												<g:formatDate date="${taskRecurringScheduleInstance.lastGeneratedDate}" format="EEE, dd-MMM-yyyy"/>
 											</td>
 											
@@ -524,5 +523,5 @@
 											<td>${fieldValue(bean:subTaskInstance, field:'id')}</td>
 											
-											<td><g:formatDate date="${subTaskInstance.targetStartDate}" format="EEE, dd MMM yyyy"/></td>
+											<td><g:formatDate date="${subTaskInstance.targetStartDate}" format="EEE, dd-MMM-yyyy"/></td>
 											
 											<td>${subTaskInstance.description}</td>
Index: /trunk/grails-app/views/taskRecurringScheduleDetailed/show.gsp
===================================================================
--- /trunk/grails-app/views/taskRecurringScheduleDetailed/show.gsp	(revision 138)
+++ /trunk/grails-app/views/taskRecurringScheduleDetailed/show.gsp	(revision 139)
@@ -42,5 +42,5 @@
                             
                             <td valign="top" class="value">
-                                <g:formatDate date="${taskRecurringScheduleInstance.startDate}" format="EEE, dd MMM yyyy"/>
+                                <g:formatDate date="${taskRecurringScheduleInstance.startDate}" format="EEE, dd-MMM-yyyy"/>
                             </td>
                         </tr>
@@ -87,5 +87,5 @@
                             
                             <td valign="top" class="value">
-								<g:formatDate date="${taskRecurringScheduleInstance.nextTargetStartDate}" format="EEE, dd MMM yyyy"/>
+								<g:formatDate date="${taskRecurringScheduleInstance.nextTargetStartDate}" format="EEE, dd-MMM-yyyy"/>
 							</td>
                             
@@ -96,5 +96,5 @@
                             
                             <td valign="top" class="value">
-                                <g:formatDate date="${taskRecurringScheduleInstance.nextTargetCompletionDate}" format="EEE, dd MMM yyyy"/>
+                                <g:formatDate date="${taskRecurringScheduleInstance.nextTargetCompletionDate}" format="EEE, dd-MMM-yyyy"/>
                             </td>
                             
@@ -105,5 +105,5 @@
                             
                             <td valign="top" class="value">
-                                <g:formatDate date="${taskRecurringScheduleInstance.nextGenerationDate}" format="EEE, dd MMM yyyy"/>
+                                <g:formatDate date="${taskRecurringScheduleInstance.nextGenerationDate}" format="EEE, dd-MMM-yyyy"/>
                             </td>
                         </tr>
@@ -113,5 +113,5 @@
                             
                             <td valign="top" class="value">
-                           		<g:formatDate date="${taskRecurringScheduleInstance.lastGeneratedDate}" format="EEE, dd MMM yyyy"/>
+                           		<g:formatDate date="${taskRecurringScheduleInstance.lastGeneratedDate}" format="EEE, dd-MMM-yyyy"/>
 							</td>
                         </tr>
Index: /trunk/web-app/css/main.css
===================================================================
--- /trunk/web-app/css/main.css	(revision 138)
+++ /trunk/web-app/css/main.css	(revision 139)
@@ -44,4 +44,5 @@
   width: 980px;
   height: 160px;
+  /*border: 1px solid;*/
 }
 #HeaderLink{
@@ -49,4 +50,9 @@
   width: 650px;
   height: 160px;
+}
+
+/* Navigation plugin, top level. */
+#menu {
+    float: left;
 }
 
@@ -83,7 +89,7 @@
 }
 textarea {
-	width: 450px;
-	height: 150px;
-	vertical-align: top;
+    width: 450px;
+    height: 150px;
+    vertical-align: top;
 }
 
@@ -97,17 +103,35 @@
 }
 
-/* Login/out and Admin*/
+/* Login/out and Admin */
 
 .appcontrol {
-    text-align: right;
-    padding: 5px 160px 5px 5px
-}
-
-.appcontrolButton {
-    font-size: 14px;
-    padding: 5px 5px;
-}
-
-/* NAVIGATION MENU */
+    width: 980px;
+    height: 2em;
+/*     text-align: right; */
+/*     padding: 0px 160px 70px 5px; */
+/*     padding: 0.5em 0px 0.5em 0px; */
+    /*border: 1px solid blue;*/
+    /*border-style: solid solid solid solid;*/
+    /*overflow: hidden;*/ /* Clearing floats */
+}
+
+.appcontrolButton a {
+    padding: 0.3em 165px 0em 5px;
+/*   width: 980px; */
+    float: right;
+    font-size: 14px;
+/*     padding: 0.5em 5px ; */
+    text-decoration: none;
+    display: block;
+    /*overflow: hidden;*/ /* Clearing floats */
+}
+
+.appcontrolButton a:hover {
+    color: red;
+    margin: 0.2em 0 0 0;
+    /*padding: 0.8em 5px;*/
+}
+
+/* ORIGINAL NAVIGATION MENU */
 
 .nav {
@@ -116,16 +140,9 @@
     /*border: 1px solid #ccc;
     border-style: solid none solid none;*/
-    padding: 15px 0px 0px 0px;
+    padding: 10px 0px 0px 0px;
     width: 980px;
     height: 40px;
-}
-
-/*.nav a{
-    background: url("../images/linkPanel.png") no-repeat top;
-    display: inline-block;
-    width: 140px;
-    height: 40px;
-    text-decoration: none;
-}*/
+    /*border: 1px solid;*/
+}
 
 .menuButton {
@@ -375,2 +392,106 @@
   height: 100px;
 }
+
+ /* Navigation Plugin Override */
+.navigation {
+    padding: 0px 0px 0px 165px;
+    list-style-type: none;
+    clear: both;
+    font-size: 14px;
+    overflow: hidden; /* Clearing floats */
+}
+
+.navigation li {
+    float: left;
+    /*border: 0px*/
+    /* border: 1px solid #888; */
+     /*border-left-color: #bbb;*/  /* Highlight border-color */
+}
+
+.navigation li.navigation_first {
+     /*border-left-color: #888; */
+}
+
+.navigation li.navigation_active {
+     /*border-left-color: #555;*/  /* Highlight border-color of active item */
+}
+
+.navigation li a {
+    /* color: #fff; */
+    /* background-color: #aaa; */
+    padding: 0.3em 0.75em;
+    display: block;
+    text-decoration: none;
+}
+
+.navigation li a:hover {
+    color: red;
+    /* background-color: #999; */
+/*     font-weight: normal; */
+/*     font-size: 14px; */
+    margin: 0.2em 0 0 0;
+    /*cursor: default;*/
+}
+
+.navigation li.navigation_active a {
+    /* background-color: #555; */
+/*    color: #fff;*/
+    color: #006dba;
+    /*color: black;*/
+    font-weight: bold;
+    font-size: 17px;
+    margin: 0 0 0 0;
+    /*cursor: default;*/
+}
+
+.navigation li.navigation_active a:hover {
+    color: #006dba;
+    font-weight: bold;
+    font-size: 17px;
+    margin: 0 0 0 0;
+    /*background-color: #555;*/
+}
+
+/* Sub navigation */
+.subnavigation {
+    /*padding: 0px 0px 0px 165px;*/
+    padding: 0px 0px 0px 220px;
+    list-style-type: none;
+    clear: both;
+    overflow: hidden; /* Clearing floats */
+}
+.subnavigation li {
+    float: left;
+    /* background-color: #555; */
+    padding: 0em 0.75em;
+    border-width: 0px 0;
+}
+.subnavigation li a {
+    color: #006dba;
+    font-weight: bold;
+    font-size: 17px;
+    display: block;
+    /*padding: 0px 0;*/
+    /* border-color: #555; */
+    border-style: solid;
+    border-width: 0px 0;
+    text-decoration: none;
+    /*margin: 0 0 0 0;*/
+    /*cursor: default;*/
+}
+
+.subnavigation li a:visited {
+    color: #006dba;
+}
+
+.subnavigation li a:hover {
+    /*color: red;*/
+    /*border-color: black;*/ 
+    border-width: 1px 0;
+}
+.subnavigation li.subnavigation_active a {
+    /*color: #e0e0e0; */
+    /*cursor: default;*/
+    /*border-color: #e0e0e0;*/
+    border-width: 1px 0;
+}
Index: /trunk/web-app/css/tabviewCustom.css
===================================================================
--- /trunk/web-app/css/tabviewCustom.css	(revision 138)
+++ /trunk/web-app/css/tabviewCustom.css	(revision 139)
@@ -187,5 +187,5 @@
 .yui-skin-sam .yui-navset .yui-nav a:focus{/*hover background*/
 /*     background:#bfdaff url("../images/skin/sprite.png") repeat-x left -1300px;  */
-    background:#bfdaff
+    background:#bfdaff;
     outline:0;
 }
