diff -urpN ../mollio-HEAD/README.txt ./README.txt
--- ../mollio-HEAD/README.txt	2006-06-23 15:22:50.000000000 -0600
+++ ./README.txt	2007-07-03 09:05:05.000000000 -0600
@@ -18,6 +18,8 @@ M4V 1L6
 
 http://www.standardinteractive.ca/
 
+Port to 5.x author: Mike Lee <mikelee3@gmail.com>
+
 This program is free software; you can redistribute it and/or modify it
 under the terms of the GNU General Public License as published by the
 Free Software Foundation; either version 2 of the License, or (at your
@@ -34,8 +36,35 @@ with this program; if not, write to the 
 
 ========================================================================
 
+Drupal Mollio Version 5.x Configuration
+
 How to configure the top navigation:
-- Put the primary links block into the header region
-- Set all sub-menus to expanded
+- Go to Administer -> Site building -> Menus -> Settings
+- Choose the menu you would like for the dropdown as the Menu 
+    containing primary links.
+- Set all sub-menus to expanded.
+
+The secondary links are not used.
+
+========================================================================
+
+UPDATES, BUGS, AND WORKAROUNDS:
 
+Updates: 
+1. Ported to Drupal Version 5.x
+2. Updated the pager so that it renders more cleanly.
+3. Updated the Primary Links so that they can have up to 4 levels of links.
+4. Fixed the layout so that the footer bar appears below all columns.
+5. Formatted CSS code so that it complies with the Drupal style guide.
+
+Known Workarounds:
+1. The resizable textareas are misaligned in IE for Drupal 5.1 until
+the textarea.js is patched a la http://drupal.org/node/101305. Please apply
+this patch attachment textarea-patch-5.txt if your textareas don't center
+properly over the grippies.
+
+Known Bugs:
+1. If you add your home page to the main navigation bar, it won't turn 
+red like the rest of the links when it's active. 
+2. There are several (major) layout problems remaining with IE6.
 
diff -urpN ../mollio-HEAD/box.tpl.php ./box.tpl.php
--- ../mollio-HEAD/box.tpl.php	2006-03-20 08:26:17.000000000 -0700
+++ ./box.tpl.php	2007-07-02 10:58:06.000000000 -0600
@@ -1,7 +1,7 @@
 <?php /* $Id: box.tpl.php,v 1.1 2006/03/20 15:26:17 rkerr Exp $ */ ?>
-<div class="box">
+<div>
   <?php if ($title): ?>
-  <h2><?php print $title; ?></h2>
+  <h1><?php print $title; ?></h1>
   <?php endif; ?>
   <?php print $content; ?>
 </div>
diff -urpN ../mollio-HEAD/common.js ./common.js
--- ../mollio-HEAD/common.js	2006-03-20 08:26:17.000000000 -0700
+++ ./common.js	2007-07-03 10:17:35.000000000 -0600
@@ -1,21 +1,34 @@
-/* $Id: common.js,v 1.1 2006/03/20 15:26:17 rkerr Exp $ */
-/**
- * son of suckerfish menu script from:
- * http://www.htmldog.com/articles/suckerfish/dropdowns/
- */
-sfHover = function() {
-  var sfEls = document.getElementById("nav").getElementsByTagName("LI");
-  for (var i = 0; i < sfEls.length; i++) {
-    sfEls[i].onmouseover = function() {
+/* IE Hover Fix taken from 
+http://homepage.mac.com/igstudio/design/ulsmenus/vertical-uls-iframe.html
+*/
+ieHover = function() {
+  var ieULs = document.getElementById('nav').getElementsByTagName('ul');
+
+  /** IE script to cover <select> elements with <iframe>s **/
+  for (j=0; j<ieULs.length; j++) {
+    
+    ieULs[j].innerHTML = ('<iframe src="about:blank" scrolling="no" frameborder="0"></iframe>' + ieULs[j].innerHTML);
+
+    var ieMat = ieULs[j].firstChild;
+
+    ieMat.style.width     = ieULs[j].offsetWidth + "px";
+    ieMat.style.height    = ieULs[j].offsetHeight + "px";  
+    ieULs[j].style.zIndex = "99";
+  }
+
+  /** IE script to change class on mouseover **/
+  var ieLIs = document.getElementById('nav').getElementsByTagName('li');
+  for (var i=0; i<ieLIs.length; i++) if (ieLIs[i]) {
+
+    ieLIs[i].onmouseover=function() {
       this.className += " sfhover";
-      this.style.zIndex = 200; /* this line added to force flyout to be above relatively positioned stuff in IE */
     }
-    sfEls[i].onmouseout = function() {
-      this.className = this.className.replace(new RegExp(" sfhover\\b"), "");
+
+    ieLIs[i].onmouseout=function() {
+      this.className = this.className.replace(' sfhover', '');
     }
   }
 }
 
-if (window.attachEvent) {
-  window.attachEvent("onload", sfHover);
-}
+if (window.attachEvent) window.attachEvent('onload', ieHover);
+/** end **/
diff -urpN ../mollio-HEAD/ie6_or_less.css ./ie6_or_less.css
--- ../mollio-HEAD/ie6_or_less.css	2006-06-23 15:22:50.000000000 -0600
+++ ./ie6_or_less.css	2007-07-03 18:50:32.000000000 -0600
@@ -1,12 +1,13 @@
 /* $Id: ie6_or_less.css,v 1.2 2006/06/23 21:22:50 rkerr Exp $ */
-#header {width:100%}
 
-.menu a {width:143px}
-
-.search-results li dl {display:inline}
+.search-results li dl {
+  display:inline;
+}
 
 /* 
 I've added position:relative to these items below to fix the IE Peakaboo bug. 
 more about it here: http://www.positioniseverything.net/explorer/peekaboo.html 
 */
-ol.code, .featurebox, #content ul, #sidebar ul {position:relative}
+ol.code, .featurebox, #content ul, #sidebar ul, #utility-inner {
+  position:relative;
+}
Binary files ../mollio-HEAD/images/body_bg.gif and ./images/body_bg.gif differ
Binary files ../mollio-HEAD/images/footer_bar.gif and ./images/footer_bar.gif differ
diff -urpN ../mollio-HEAD/node.tpl.php ./node.tpl.php
--- ../mollio-HEAD/node.tpl.php	2006-07-17 12:34:22.000000000 -0600
+++ ./node.tpl.php	2007-07-03 08:09:02.000000000 -0600
@@ -1,5 +1,5 @@
 <?php /* $Id: node.tpl.php,v 1.4 2006/07/17 18:34:22 rkerr Exp $ */ ?>
-<div id="node-<?php print $node->nid; ?>" class="node<?php print (!$page && $sticky) ? " featurebox" : ""; ?>">
+<div id="node-<?php print $node->nid; ?>" class="node<?php print (!$page && $sticky) ? " featurebox" : ""; ?> clear-block">
   <?php if (!$page && $title): ?>
   <h2>
     <?php if ($submitted): ?>
diff -urpN ../mollio-HEAD/page.tpl.php ./page.tpl.php
--- ../mollio-HEAD/page.tpl.php	2006-07-17 12:34:22.000000000 -0600
+++ ./page.tpl.php	2007-07-04 14:05:31.000000000 -0600
@@ -26,11 +26,17 @@ switch ($layout) {
 <!--[if lte IE 6]>
 <link rel="stylesheet" type="text/css" href="<?php print base_path() . $directory; ?>/ie6_or_less.css" />
 <![endif]-->
+<?php print $scripts; ?>
+<!--[if lte IE 6]>
 <script type="text/javascript" src="<?php print base_path() . $directory; ?>/common.js"></script>
+<![endif]-->
 </head>
+
 <body id="<?php print $mollio_layout; ?>">
-<div id="wrap">
-  <div id="header">
+
+<div id="wrapper">
+  <div id="header" class="clear-block">
+
     <?php if ($site_name): ?>
     <div id="site-name">
       <?php print $site_name; ?>
@@ -40,29 +46,29 @@ switch ($layout) {
     </div>
     <?php endif; ?>
 
-    <?php if ($search_box): ?>
-    <div id="search">
-      <form id="search_theme_form" class="search" action="" method="post">
-        <input type="hidden" name="edit[form_id]" id="edit-form_id" value="search_theme_form"  />
-        <div class="container-inline">
-          <label for="edit-search_theme_form_keys"><?php print t('Search:'); ?></label>
-          <input class="form-text" type="text" size="15" value="" name="edit[search_theme_form_keys]" id="edit-search_theme_form_keys" />
-          <input class="form-submit" type="submit" name="op" value="<?php print t('Go'); ?>" /><br />
-        </div>
-      </form>
-    </div>
+    <?php print $search_box; ?>
+
+    <?php if ($logo): ?>
+    <div id="poweredby"><a href="<?php print base_path(); ?>" title="<?php print t('Home'); ?>"><img src="<?php print $logo; ?>" alt="" /></a></div>
+    <?php endif; ?>
+
+    <?php if ($primary_links): ?>
+    <?php print theme('menu_tree', variable_get('menu_primary_menu',0), TRUE); ?>
+    <?php else: ?>
+    <ul id="nav"></ul>
     <?php endif; ?>
 
     <?php print $header; ?>
   </div>
 
-  <div id="content-wrap">
-    <?php if ($sidebar_left): ?>
-    <div id="utility"><?php print $sidebar_left; ?></div>
-    <?php endif; ?>
+  <div id="container">
 
+    <div id="content-wrap">
     <div id="content">
+
+      <?php if ($is_front == FALSE): ?>
       <div id="breadcrumb"><?php print $breadcrumb . $title; ?></div>
+      <?php endif; ?>
 
       <?php if ($is_front && $mission): ?>
       <div class="featurebox"><?php print $mission; ?></div>
@@ -84,17 +90,31 @@ switch ($layout) {
 
       <div id="footer"><?php print $footer_message; ?></div>
     </div>
+    </div>
 
     <?php if ($sidebar_right): ?>
-    <div id="sidebar"><?php print $sidebar_right; ?></div>
+    <div id="sidebar">
+    <div id="sidebar-inner">
+    <?php print $sidebar_right; ?>
+    </div>
+    </div>
     <?php endif; ?>
 
-    <?php if ($logo): ?>
-    <div id="poweredby"><a href="<?php print base_path(); ?>" title="<?php print t('Home'); ?>"><img src="<?php print $logo; ?>" alt="" /></a></div>
+    <?php if ($sidebar_left): ?>
+    <div id="utility">
+    <div id="utility-inner">
+    <?php print $sidebar_left; ?>
+    </div>
+    </div>
     <?php endif; ?>
+
+  </div>
+
+  <div id="footbar-wrapper">
+  <div id="footbar"></div>
   </div>
-</div>
 
 <?php print $closure; ?>
+</div>
 </body>
 </html>
diff -urpN ../mollio-HEAD/style.css ./style.css
--- ../mollio-HEAD/style.css	2006-06-23 15:22:50.000000000 -0600
+++ ./style.css	2007-07-04 14:04:22.000000000 -0600
@@ -1,310 +1,1007 @@
 /* $Id: style.css,v 1.2 2006/06/23 21:22:50 rkerr Exp $ */
 
-/* drupal.css overrides */
-.block ul { margin: 0; padding: 0; }
-
-div.menu { padding: 0; }
-div.menu ul { list-style: none; border: none; text-align: left; }
-div.menu li a { width: auto; text-decoration: none; }
-li.expanded { list-style-type: none; list-style-image: none; padding: 0; margin: 0; }
-li.collapsed { list-style-type: none; list-style-image: none; padding: 0; margin: 0; }
-li.leaf { list-style-type: none; list-style-image: none; padding: 0; margin: 0; }
-li a.active { color: #069; }
-
-.item-list .icon { color: #555; float: right; padding-left: 0.25em; clear: right; }
-.item-list .icon a { color: #000; text-decoration: none; }
-.item-list .icon a:hover { color: #000; text-decoration: none; }
-.item-list .title { font-weight: bold; }
-.item-list ul { margin: 0; padding: 0; }
-.item-list ul li { margin: 0; padding: 0; list-style: none; list-style-image: none; }
-
-.calendar .row-week td a { display: block; }
-.calendar .row-week td a:hover { color: #069; background-color: #fff; }
-.calendar a { text-decoration: none; }
-.calendar a:hover { text-decoration: none; }
-.calendar table { border-collapse: collapse; width: 100%; border: 1px solid #000; }
-.calendar td, .calendar th { text-align: center; border: 1px solid #000; padding: 1px; margin: 0; font-size: 0.8em; }
-.calendar td.day-blank { border: 0; }
-
-ul.primary li { background-image: none; margin-left: 0; padding-left: 0; line-height: 1em; }
-ul.secondary li { background-image: none; margin-left: 0; padding-left: 0; line-height: 1em; }
-
-.messages { color: #e17000; }
-.help { color: #999; }
-
-.node-form .admin .authored, .node-form .admin .options, .node-form .admin .extra { float: none; margin-right: 2em; margin-bottom: 1em; }
-.node-form .form-text { display: inline; width: auto; }
-.node-form .standard { clear: none; }
-.node-form textarea { display: inline; width: auto; }
+.item-list .icon { 
+  color: #555;
+  float: right;
+  padding-left: 0.25em;
+  clear: right;
+}
+.item-list .icon a {
+  color: #000;
+  text-decoration: none;
+}
+.item-list .icon a:hover {
+  color: #000;
+  text-decoration: none;
+}
+.item-list .title {
+  font-weight: bold;
+}
+.item-list ul {
+  margin: 0;
+  padding: 0;
+}
+.item-list ul li {
+  margin: 0;
+  padding: 0;
+  list-style: none;
+  list-style-image: none;
+}
+.tabs li {
+  background: none;
+}
 
 /* THE BIG GUYS */
-* {margin:0;padding:0}
-body {padding: 0 0 20px;background: #fff url("images/body_bg.gif") repeat-x 0 100%;color:#333;font:83%/1.5 arial,tahoma,verdana,sans-serif}
+* {
+  margin:0;
+  padding:0;
+}
+body {
+  color:#333;
+  font:83%/1.5 arial,tahoma,verdana,sans-serif;
+  /* min-width: 800px; 
+  max-width: 1200px; */
+}
 
 /* LINKS */
-a,a:link,a:link,a:link,a:hover {background:transparent;text-decoration:underline;cursor:pointer}
-a:link {color:#c00}
-a:visited {color:#999}
-a:hover,a:active {color:#069}
-
-/* FORMS */
-form {margin: 0 0 1.5em}
-input {font-family: arial,tahoma,verdana,sans-serif;margin: 2px 0}
-fieldset {border: none}
-label {display:block;padding: 5px 0}
-label br {clear:left}
+a, a:link, a:link, a:link, a:hover {
+  background:transparent;
+  text-decoration:underline;
+  cursor:pointer;
+} 
+a:link {
+  color:#c00;
+}
+a:visited {
+  color:#999;
+}  
+a:hover, a:active {
+  color:#069;
+} 
 
 /* FORMS - general classes */
-input.form-submit {padding: 1px 3px;background:#666;color:#fff;font-weight:bold;font-size:96%}
-
-/* FORMS - f-wrap-1 - simple form, headings on left, form elements on right */
-#content form {width:100%;padding: .5em 0;background: #f6f6f6 url("images/featurebox_bg.gif") no-repeat 100% 100%;border-top: 1px solid #d7d7d7;position:relative}
-#content form fieldset {width:auto;margin: 0 1em}
-#content form h3 {margin:0 0 .6em;font: bold 155% arial;color:#c00}
-#content form label {clear:left;float:left;width:100%;border-top: 1px solid #fff}
-
-/* hide from IE mac \*/
-#content form label {float:none}
-/* end hiding from IE5 mac */
-
-/* width:15em; */
-#content form label input, #content form label textarea, #content form label select {float:left;margin-left:10px}
-
-#content form label b {float:left;width:8em;line-height: 1.7;display:block;position:relative}
-#content form label b .req {color:#c00;font-size:150%;font-weight:normal;position:absolute;top:-.1em;line-height:1;left:-.4em;width:.3em;height:.3em}
-#content form div.req {color:#666;font-size:96%;font-weight:normal;position:absolute;top:.4em;right:.4em;left:auto;width:13em;text-align:right}
-#content form div.req b {color:#c00;font-size:140%}
-/*
-#content form label select {width: 15.5em}
-#content form label textarea.f-comments {width: 20em}
-*/
-#content form div.form-submit-wrap {padding: 5px 0 5px 8em}
-#content form input.form-submit {margin: 0 0 0 10px}
-
-#content form fieldset.f-checkbox-wrap, #content form fieldset.f-radio-wrap {float:left;width:32em;border:none;margin:0;padding-bottom:.7em}
-#content form fieldset.f-checkbox-wrap b, #content form fieldset.f-radio-wrap b {float:left;width:8em;line-height: 1.7;display:block;position:relative;padding-top:.3em}
-#content form fieldset.f-checkbox-wrap fieldset, #content form fieldset.f-radio-wrap fieldset {float:left;width:13em;margin: 3px 0 0 10px}
-#content form fieldset.f-checkbox-wrap label, form.f-wrap-1 fieldset.f-radio-wrap label {float:left;width:13em;border:none;margin:0;padding:2px 0;margin-right:-3px}
-#content form label input.f-checkbox, form.f-wrap-1 label input.f-radio {width:auto;float:none;margin:0;padding:0}
-
-#content form label span.errormsg {position:absolute;top:0;right:-10em;left:auto;display:block;width:16em;background: transparent url(images/errormsg_bg.gif) no-repeat 0 0}
-#content form label span.errormsg b {padding: 10px 0;margin: 0 10px 0 30px;color:#B30800;font-weight:bold;display:block;width:auto;float:none;line-height:1.3}
-
+input.form-submit {
+  padding: 1px 3px;
+  background:#666;
+  color:#fff;
+  font-weight:bold;
+  font-size:96%;
+}
+fieldset {
+  border: 1px solid #ccc;
+}
+	
 /* TYPOGRAPHY */
-p, ul, ol {margin: 0 0 1.5em}
-h1, h2, h3, h4, h5, h6 {letter-spacing: -1px;font-family: arial,verdana,sans-serif;margin: 1.2em 0 .3em;color:#000;border-bottom: 1px solid #eee;padding-bottom: .1em}
-h1 {font-size: 196%;margin-top:.6em}
-h2 {font-size: 136%}
-h3 {font-size: 126%}
-h4 {font-size: 116%}
-h5 {font-size: 106%}
-h6 {font-size: 96%}
-.highlight {color:#E17000}
-.subdued {color:#999}
-.error {color:#c00;font-weight:bold}
-.success {color:#390;font-weight:bold}
-.caption {color:#999;font-size:11px}
-.date {font: bold 82% arial;color:#bbb;display:block;letter-spacing: 1px}
-small {font-size:11px}
+p, ul, ol {
+  margin: 0 0 1.5em;
+}
+h1, h2, h3, h4, h5, h6 {
+  letter-spacing: -1px;
+  font-family: arial,verdana,sans-serif;
+  margin: 1.2em 0 .3em;
+  color:#000;
+  border-bottom: 1px solid #eee;
+  padding-bottom: .1em;
+}
+h1 {
+  font-size: 196%;
+  margin-top:.6em;
+}
+h2 {
+  font-size: 136%;
+}
+h3 {
+  font-size: 126%;
+}
+h4 {
+  font-size: 116%;
+}
+h5 {
+  font-size: 106%;
+}
+h6 {
+  font-size: 96%;
+}
+.highlight {
+  color:#E17000;
+}
+.subdued {
+  color:#999;
+}
+.error {
+  color:#c00;
+  font-weight:bold;
+}
+.success {
+  color:#390;
+  font-weight:bold;
+}
+.caption {
+  color:#999;
+  font-size:11px;
+}
+.date {
+  font: bold 82% arial;
+  color:#bbb;
+  display:block;
+  letter-spacing: 1px;
+}
+small {
+  font-size:11px
+}
 
 /* LISTS */
-ul, .item-list ul {margin: .3em 0 1.5em 0;list-style-type:none}
-ul.related {margin-top: -1em}
-ol {margin: .5em .5em 1.5em}
-ol li {margin-left: 1.4em;padding-left: 0;background: none; list-style-type: decimal}
-li, .item-list ul li {line-height: 1.4em;padding-left: 25px;background: transparent url("images/sprites.gif") no-repeat 0 0}
-li.doc {background-position: 3px -500px}
-ul.nomarker li {background:none;padding-left:0}
-
-dl {margin: 0 0 1em 0}
-dt {font-weight:bold;margin-top: 1.3em}
-dl dl {margin: 0 0 1.5em 30px}
+ul, .item-list ul {
+  margin: .3em 0 1.5em 0;
+  list-style-type:none;
+}
+ul.related {
+  margin-top: -1em;
+}
+
+ol {
+  margin: .5em .5em 1.5em;
+}
+ol li {
+  margin-left: 1.4em;
+  padding-left: 0;
+  background: none;
+  list-style-type: decimal;
+}
+li, .item-list ul li {
+  line-height: 1.4em;
+  padding-left: 25px;
+  background: transparent url("images/sprites.gif") no-repeat 0 0;
+}
+li.doc {
+  background-position: 3px -500px;
+}
+ul.nomarker li {
+  background:none;
+  padding-left:0;
+}
+li.expanded, li.collapsed {
+   list-style-image: none;
+   list-style-type: none;
+}
+
+dl {
+  margin: 0 0 1em 0;
+}
+dt {
+  font-weight:bold;
+  margin-top: 1.3em;
+}
+dl dl {
+  margin: 0 0 1.5em 30px;
+}
 
 /* GENERAL */
-img {border:none} 
-hr {margin: 1em 0;background:#f2f2f2;height:1px;color:#f2f2f2;border:none;clear:both}
-.clear {clear:both;position:relative;font-size:0px;height:0px;line-height:0px} 
+img {
+  border:none;
+} 
+hr {
+  margin: 1em 0;
+  background:#f2f2f2;
+  height:1px;
+  color:#f2f2f2;
+  border:none;
+  clear:both;
+}
+.clear {
+  clear:both;
+  position:relative;
+  font-size:0px;
+  height:0px;
+  line-height:0px;
+}
 
 /* LAYOUT - HEADER */
-#header {background: #666 url("images/sprites.gif") repeat-x 0 100%;margin: 0 0 25px;padding: 0 0 8px}
-
-#header #site-name {font: 265% arial;letter-spacing: -.05em;margin:0 0 0 40px;padding:3px 0;color:#ccc;border:none}
-
+#header {
+  position: relative;
+  background: #666 url("images/sprites.gif") repeat-x 0 100%;
+  margin-top: 0px;
+  padding: 0 0 8px;
+  z-index: 100;      /* For IE Nav Bar to be above other content */
+}
+#header #site-name {
+  font: 265% arial;
+  letter-spacing: -.05em;
+  margin: 0 0 0 40px;
+  padding: 3px 0;
+  color: #ccc;
+  border: none;
+}
+#header #site-name .site-slogan {
+  font: 75% arial;
+}
+	
 /* NAV - top horizontal nav */
-#nav, #nav ul {padding: 0;margin: 0;list-style: none}
-#nav {font-weight:bold;height:2.09em;font: bold 96% arial;margin: 0 105px 0 40px}
-#nav li {position:relative;background: #999;float: left;width: auto;display:block;margin: 0;border-bottom: 3px solid #666;border-right: 3px solid #252525;padding:0}
-#nav a, #nav a:link, #nav a:visited, #nav a:hover, #nav a:active {text-decoration:none;cursor:pointer;color:#fff;display: block;padding: 4px 10px 2px}
-#nav a:hover {color:#000}
-
-#nav li ul {border-left: 1px solid #c00;background: #f6f6f6 url("images/featurebox_bg.gif") no-repeat 100% 100%;width:15.8em;font-size:90%;margin-top:3px;position: absolute;font-weight:normal;left: -999em}
-#nav li:hover ul, #nav li.sfhover ul {left: 0;z-index:99999}
-
-#nav li li {background:none;float:none;border:none;border: 1px solid #999;border-top:1px solid #fff;border-right:none;border-left:none;padding-left:0}
-#nav li li.last {border-bottom:none}
-#nav li li a, #nav li li a:link, #nav li li a:visited, #nav li li a:hover {color:#000;padding: 3px 10px 2px;width:14em}
-#nav li li a:hover {color:#fff;background:#c00}
-
-#nav li.active {background: #c00;border-bottom: 3px solid #c00}
-#nav li.active ul {border:none;background: #c00 url("images/featurebox2_bg.gif") no-repeat 100% 100%}
-#nav li.active a:link, #nav li.active a:visited, #nav li.active a:hover, #nav li.active a:active {}
-#nav li.active a:hover {color:#000}
-
-#nav li.active li {border:none;border-top: 1px solid #c15c5c;border-bottom: 1px solid #870000}
-#nav li.active li.last {border-bottom: none}
-#nav li.active li a:link, #nav li.active li a:visited, #nav li.active li a:hover, #nav li.active li a:active {color:#fff}
-#nav li.active li a:hover {background: #666 url("images/sprites.gif") repeat-x 0 99%;color:#fff}
-
-#nav li.active li.active a:link, #nav li.active li.active a:visited, #nav li.active li.active a:hover, #nav li.active li.active a:active {color:#fff;font-weight:bold;background: #666 url("images/sprites.gif") repeat-x 0 99%}
+#nav, #nav ul {
+  padding: 0;
+  margin: 0;
+  line-height: 1;
+  list-style: none;
+  list-style-image: none;
+}
+#nav {
+  font-weight:bold;
+  height:1.9em;
+  font: bold 96% arial;
+  margin: 0 105px 0 40px;
+}
+#nav a, #nav a:link, #nav a:visited, #nav a:hover, #nav a:active {
+  text-decoration:none;
+  cursor:pointer;
+  color:#fff;
+  display: block;
+  padding: 4px 10px 2px;
+}
+#nav li {
+  position:relative;
+  background: #999;
+  float: left;
+  width: 10em;
+  margin: 0;
+  border-bottom: 3px solid #666;
+  border-right: 3px solid #252525;
+  padding:0;
+  list-style-image: none;
+}
+#nav a:hover {
+  color:#000;
+}
+	
+#nav li ul {
+  border-left: 1px solid #c00;
+  background: #f6f6f6 url("images/featurebox_bg.gif") no-repeat 100% 100%;
+  width: 15.8em;
+  font-size: 90%;
+  margin-top: 3px;
+  position: absolute;
+  font-weight: normal;
+  left: -999em;
+  z-index: 99999;
+}
+#nav li ul ul {
+  margin: -1.9em 0 0 15em;
+  font-size:100%;
+}
+#nav li:hover ul, #nav li.sfhover ul {
+  left: auto;
+  z-index: 99999;
+}
+	
+#nav li li {
+  background: none;
+  float: none;
+  border: none;
+  border: 1px solid #999;
+  border-top: 1px solid #fff;
+  border-right: none;
+  border-left: none;
+  padding-left: 0;
+}
+#nav li li.last {
+  border-bottom: none;
+}
+#nav li li a, #nav li li a:link, #nav li li a:visited, #nav li li a:hover {
+  color:#000;
+  padding: 3px 10px 2px;
+  width:14em;
+}
+#nav li li a:hover {
+  color:#fff;
+  background:#c00;
+}
+
+#nav li.leaf {
+  list-style-type: none;
+}
+	
+#nav li.active {
+  background: #c00;
+  border-bottom: 3px solid #c00;
+}
+#nav li.active ul,
+#nav li.active li.active ul,
+#nav li.active li.active li.active ul {
+  border: none;
+  background: #c00 url("images/featurebox2_bg.gif") no-repeat 100% 100%;
+}
+
+#nav li.active a:hover {
+  color: #000;
+}
+	
+#nav li.active li {
+  border: none;
+  border-top: 1px solid #c15c5c;
+  border-bottom: 1px solid #870000;
+}
+#nav li.active li.last {
+  border-bottom: none;
+}
+#nav li.active li a:link,
+#nav li.active li a:visited,
+#nav li.active li a:hover,
+#nav li.active li a:active {
+  color: #fff;
+}
+#nav li.active li a:hover {
+  background: #666 url("images/sprites.gif") repeat-x 0 99%;
+  color: #fff;
+}
+	
+#nav li.active li.active a:link,
+#nav li.active li.active a:visited,
+#nav li.active li.active a:hover,
+#nav li.active li.active a:active {
+  color: #fff;
+  font-weight: bold;
+  background: #666 url("images/sprites.gif") repeat-x 0 99%
+}
+
+#nav li.active li.active li a:link,
+#nav li.active li.active li a:visited,
+#nav li.active li.active li a:hover,
+#nav li.active li.active li a:active {
+  font-weight: normal;
+  background: none;
+}
+
+#nav li.active li.active li a:hover {
+  background: #666 url("images/sprites.gif") repeat-x 0 99%;
+  color: #fff;
+}
+
+/* THE FOLLOWING RULE IS FOR IE7 from http://www.builtfromsource.com/2006/10/23/a-fix-for-suckerfish-dropdowns-in-ie-7/ */
+#nav li:hover, #nav li.hover {
+  position: static;
+}
+
+#nav li.active li.active li.active a:link,
+#nav li.active li.active li.active a:visited,
+#nav li.active li.active li.active a:hover,
+#nav li.active li.active li.active a:active {
+  color: #fff;
+  font-weight: bold;
+  background: #666 url("images/sprites.gif") repeat-x 0 99%
+}
+
+#nav li.active li.active li.active li a:link,
+#nav li.active li.active li.active li a:visited,
+#nav li.active li.active li.active li a:hover,
+#nav li.active li.active li.active li a:active {
+  font-weight: normal;
+  background: none;
+}
+
+#nav li.active li.active li.active li a:hover {
+  background: #666 url("images/sprites.gif") repeat-x 0 99%;
+  color: #fff;
+}
+
+#nav li.active li.active li.active li.active a:link,
+#nav li.active li.active li.active li.active a:visited,
+#nav li.active li.active li.active li.active a:hover,
+#nav li.active li.active li.active li.active a:active {
+  color: #fff;
+  font-weight: bold;
+  background: #666 url("images/sprites.gif") repeat-x 0 99%
+}
+
+/* LOWER LEVEL DROPDOWN MENUS */
+#nav li:hover ul ul,
+#nav li:hover ul ul ul,
+#nav li:hover ul ul ul ul,
+#nav li.sfhover ul ul,
+#nav li.sfhover ul ul ul,
+#nav li.sfhover ul ul ul ul {
+  left: -999em;
+}
+#nav li:hover ul,
+#nav li li:hover ul,
+#nav li li li:hover ul,
+#nav li li li li:hover ul,
+#nav li.sfhover ul,
+#nav li li.sfhover ul,
+#nav li li li.sfhover ul,
+#nav li li li li.sfhover ul {
+  left: auto;
+}
+
+/** Support for the "iehover-fix.js" **/
+#nav iframe {
+position: absolute;
+left: 0;
+top: 0;
+z-index: -1;
+filter: progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0);
+}
+/** end **/
 
 /* hide from IE mac \*/
-#nav li {width:auto}
+#nav li {
+  width: auto;
+}
 /* end hiding from IE5 mac */
-
+	
 /* SEARCH */
-#search {color:#fff;font-weight:bold;position:absolute;top:10px;right:110px}
-#search form {margin:0}
-#search input {width:8em;margin: 0 0 -1px;height:1.2em}
-#search label {padding:5px 0 0;display:inline}
-#search input.form-submit {width:auto;font-size:81%;margin:0 0 -.15em;height:1.95em}
+#search-theme-form {
+  color: #fff;
+  font-weight: bold;
+  position: absolute;
+  top: 10px;
+  right: 100px;
+  left: auto;
+  width: 15em;
+}
+#search-theme-form {
+  margin:0;
+  background: none;
+  border: none;
+}
+#search input {
+  width: 8em;
+  margin: 0;
+  height: 1.2em;
+}
+#search label {
+  padding: 5px 0 0;
+  display: inline;
+}
+#search .form-submit {
+  width: auto;
+  font-size: 81%;
+  margin: 0 0 -.15em;
+  height: 2em;
+}
 
 /* POWERED BY - mollio logo in this case */
-#poweredby {width:96px;height:63px;position:absolute;top:-102px;right:0}
-
-/* LAYOUT - main body of page */
-#wrap {min-width:770px;max-width:1200px;margin: 0 auto;position:relative}
-#content-wrap {position:relative;width:100%}
-#utility {position:absolute;top:0;left:25px;width:165px;border-top: 5px solid #999;padding-bottom: 40px}
-#sidebar {position:absolute;top:0;right:25px;width:20%;border-top: 5px solid #999;padding-top: 1px;padding-bottom: 40px}
-
-#content {margin: 0 50px}
-#content #breadcrumb {margin-top:-5px;font-size:93%;font-weight:bold}
-#content #breadcrumb a:link, #content #breadcrumb a:visited {text-decoration:none}
-#content #breadcrumb a:hover, #content #breadcrumb a:active {text-decoration:underline}
-
-.featurebox {color:#333;padding: 15px 20px 20px;border-top: 1px solid #d7d7d7;margin: 0 0 1.5em;background: #f6f6f6 url("images/featurebox_bg.gif") no-repeat 100% 100%}
-.featurebox p, .featurebox h1, .featurebox h2, .featurebox h3, .featurebox h4, .featurebox h5, .featurebox h6 {margin: 0 0 .3em;border-bottom: 1px solid #c00;color:#c00}
-.featurebox p {border:none;margin: 0 0 1em;color:#444}
-.featurebox a {font-weight:bold}
-
-.thumbnail {margin: 0 0 0 10px;position:relative;z-index:9999;border: 1px solid #eee;float:right;width:100px;padding:5px;background:#fff}
-.thumbnail img {border: 1px solid #000}
-
-.pagination {background: #f2f2f2;color:#666;padding: 4px 2px 4px 7px;border: 1px solid #ddd;margin: 0 0 1.5em;}
-.pagination p {position:relative;text-align:right}
-.pagination p a:link, .pagination p a:visited, .pagination p a:hover, .pagination p a:active {text-decoration:none;background:#fff;padding:2px 5px;border: 1px solid #ccc}
-.pagination p a:hover {background:#c00;color:#fff}
-.pagination p span {text-decoration:none;background:#fff;padding:2px 5px;border: 1px solid #ccc;color:#ccc}
-.pagination * {margin:0}
-.pagination h4 {margin-top:-1.45em;padding:0;border:none}
-
-.search-results {margin: 0 0 1.5em;font-size:92%}
-.search-results dt, .search-results dl {margin: 0}
-.search-results dt {font: bold 85% arial;padding: 3px 0}
-.search-results dd {padding: 0 0 1em;margin:0 0 0 1.2em;font: bold 145% arial}
-.search-results dd dd {font: normal 73% arial}
-.search-results dd dl {margin:0}
-.search-results dd {line-height:1.3}
-.search-results dd.filetype, .search-results dd.date {color:#999;display:inline;padding-right:.5em}
-
-/* TABLES */
-#content table {border: 2px solid #900;border-collapse:collapse;width:100%}
-#content table td {background: #fff url("images/sprites.gif") repeat-x 0 -1600px;padding:3px;border: 1px solid #fff}
-#content table th {text-align:left;border: 1px solid #fff}
-#content table thead th {color:#fff;font-size:145%;background: #900 url("images/sprites.gif") repeat-x 0 -1300px;padding: 10px 6px}
-#content table tbody th {color:#fff;font-size:115%;background: #88b8db url("images/sprites.gif") repeat-x 0 -1400px;padding: 6px}
-#content table tbody th.sub {font-size:100%;color:#000;background: #efefef url("images/sprites.gif") repeat-x 0 -1500px;padding: 6px}
-
-/* TABLES - calendar */
-.calendar table {width:200px;font-size:92%}
-.calendar td {text-align:center;border: 1px solid #ddd}
-.calendar th {text-align:center}
-.calendar thead th {padding: 3px 2px}
-.calendar tbody th {padding: 2px}
-.calendar tbody th.sub {padding: 2px}
-
-/* 'MORE' LINK - provides an accessible alternative to just using 'more' as a link at the end of paragraphs */
-.links a:link, .links a:visited, .links a:hover, .links a:active {background: transparent url("images/sprites.gif") no-repeat 5px -500px;padding-left:21px}
-.links a:hover {background: transparent url("images/sprites.gif") 5px -400px}
-.links a span {position:absolute;left:-9999px;width:900px}
-
-/* CODE - formatting for code inserted into body - more here: http://dizque.lacalabaza.net/temp/lipt/ */
-ol.code {font-family: monospace;position:relative}
-ol.code li {color: #666;margin-bottom: 1px}
-ol.code code {color: #000;display: block}
-ol.code .cmt {color: #4077d2}
-li.tab0 code {padding-left: 4em}
-li.tab1 code {padding-left: 8em}
-li.tab2 code {padding-left: 12em}
-li.tab3 code {padding-left: 16em}
-li.tab4 code {padding-left: 20em}
-li.tab5 code {padding-left: 24em}
-ol.code li  {background: #f3f3f3 url("images/td_bg.gif") no-repeat 100% 100%}
-p.note {margin: 1em;border: 1px solid #ddd;background: #f0f0f0;padding: 1em}
-
+#poweredby {
+  position: absolute;
+  width: 96px;
+  height: 63px;
+  top: 10px;
+  right: 10px;
+}
+
+/* LAYOUT OF MAIN PAGE
+ * Used the flexi-floats layouts available 
+ * at http://www.tanfa.co.uk/css/layouts/flexi_floats/ 
+ */
+* {
+  margin: 0;
+  padding: 0;
+}
+
+body {
+  text-align: center; 
+  min-width: 700px;
+}
+
+/* wrapper holds left faux column tab */
+/* nn6/7 will put content out of scrollable reach if auto is used unless the min-width is on body */
+#wrapper { 
+  text-align: left;
+  width: 100%;
+  margin: 0 auto; 
+}
+
+#footbar {
+  clear: both; 
+  width: 100%;
+  padding: 1px 0;
+}
+
+#container {/* right faux column tab */
+  background: #fff url(images/content_wrap_bg.gif) repeat-y 60px 0;
+  /* background: url(sidebar.gif) repeat-y 100% 0; */
+  float: left;
+  width: 100%;
+  margin-top: 25px;
+}
+
+
+#container:after {
+  /* this is for NN6 to clear floats */
+  content: "."; 
+  display: block; 
+  height: 0px;
+  clear: both; 
+  visibility: hidden;
+}
+
+#content {
+  margin: 0 270px 0 220px;
+  padding: 0 25px 0 50px;                  /* ADDED */
+}
+
+#content-wrap {
+  float:left;
+  width: 100%; 
+  margin: 0 -95% 0 0;
+}
+
+#utility {
+  float:left;
+  width: 195px;
+  margin: 0 0 0 -5%;
+  padding: 0 25px 25px 25px;                /* ADDED */
+}
+
+#utility h4 {
+  margin: 1px 0 0.3em 0;
+  border-top: 1px solid #ccc;
+  border-bottom: 1px solid #ccc;
+}
+
+#sidebar {
+  float:right;
+  width: 270px;
+  margin: 0;
+}
+
+#utility-inner {
+  border-top: 5px solid #999;
+}
+
+/************* IE Mac CSS Only  works for Win too **************/
+* html div#content-wrap {
+  margin: 0 -100% 0 0;
+}
+* html div#utility {
+  margin: 0;
+}
+
+div h3, div p {
+  margin: 1em 0;
+  padding: 0 20px; 
+}
+
+#sidebar-inner {
+  margin: 0 25px 25px 25px;
+  border-top: 5px solid #999;
+  padding-top: 1px;
+}
+
+/* LAYOUT TYPE A */
+#type-a #content {
+  margin: 0 0 0 0;
+}
+#type-a #container {
+  background: none;
+}
 /* LAYOUT TYPE B */
-#type-b #content-wrap {background: transparent url("images/content_wrap_bg.gif") repeat-y 30px 0}
-#type-b #content {margin: 0 23px 0 235px}
-
-/* LAYOUT TYPE C */
-#type-c #content-wrap {background: transparent url("images/content_wrap_bg.gif") repeat-y 30px 0}
-#type-c #content {margin: 0 25% 0 235px}
-
+#type-b #content {
+  margin: 0 0 0 220px;
+}
 /* LAYOUT TYPE D */
-#type-d #content {margin: 0 25% 0 50px}
+#type-d #content {
+  margin: 0 270px 0 0;
+}
+#type-d #container {
+  background: none;
+}
+/* LAYOUT TYPE F */
+#type-f #content-wrap {
+  background: transparent url("images/content_wrap_e_bg.gif") repeat-y 100% 0;
+}
+#type-f #content-wrap {
+  margin: 0 235px 0 25%;
+}
+#type-f #utility {
+  left: auto;
+  right: 25px;
+}
+#type-f #sidebar {
+  right: auto;
+  left: 25px;
+}
+
+/* CONTENT FORMATTING */
+
+#content #breadcrumb {
+  margin-top: -5px;
+  font-size: 93%;
+  font-weight: bold;
+}
+#content #breadcrumb a:link, #content #breadcrumb a:visited {
+  text-decoration: none;
+}
+#content #breadcrumb a:hover, #content #breadcrumb a:active {
+  text-decoration: underline;
+}
+
+.column {
+  position: relative;
+  float: left;
+}
+	
+.featurebox {
+  color: #333;
+  padding: 15px 20px 20px;
+  border-top: 1px solid #d7d7d7;
+  margin: 0 0 1.5em;
+  background: #f6f6f6 url("images/featurebox_bg.gif") no-repeat 100% 100%;
+}
+.featurebox p,
+.featurebox h1,
+.featurebox h2,
+.featurebox h3,
+.featurebox h4,
+.featurebox h5,
+.featurebox h6 {
+  margin: 0 0 .3em;
+  border-bottom: 1px solid #c00;
+  color: #c00;
+}
+.featurebox p {
+  border: none;
+  margin: 0 0 1em;
+  color: #444;
+}
+.featurebox a {
+  font-weight: bold;
+}
+.thumbnail {
+  margin: 0 0 0 10px;
+  position: relative;
+  z-index: 9999;
+  border: 1px solid #eee;
+  float: right;
+  width: 100px;
+  padding: 5px;
+  background: #fff;
+}
+.thumbnail img {
+  border: 1px solid #000;
+}
+.pager {
+  position: relative;
+  background: #f2f2f2;
+  color: #666;
+  padding: 4px 2px 4px 7px;
+  border: 1px solid #ddd;
+  height: 1.5em;
+  margin: 0 0 1.5em;
+}
+.pager p {
+  float: right;
+  font-weight: bold;
+}
+.pager p a:link, .pager p a:visited, .pager p a:hover, .pager p a:active {
+  text-decoration: none;
+  background: #fff;
+  padding: 2px 5px;
+  border: 1px solid #ccc;
+  color:#c00;
+}
+.pager p a:hover {
+  color: #fff;
+  background: #c00;
+}
+.pager p .pager-list {
+  font-weight: normal;
+}
+.pager p strong.pager-current {
+  text-decoration: none;
+  background: #fff;
+  padding: 2px 5px;
+  border: 1px solid #ccc;
+  font-weight:normal;
+}
+.pager * {
+  margin: 0px 0.20em 0px 0.20em;
+}
+.pager h4 {
+  float: left;
+  padding: 0;
+  border: none;
+  /* text-align: left; */
+}
+#resultslist-wrap {
+  margin: 0 0 1.5em;
+  font-size: 92%;
+}
+#resultslist-wrap dt, #resultslist-wrap dl {
+  margin: 0;
+}
+#resultslist-wrap dt {
+  font: bold 85% arial;
+  padding: 3px 0;
+}
+#resultslist-wrap li {
+  padding: 0 0 1em;
+  margin: 0 0 0 1.2em;
+  font: bold 145% arial;
+}
+#resultslist-wrap li dd {
+  font: normal 73% arial;
+}
+#resultslist-wrap li dl {
+  margin: 0;
+}
+#resultslist-wrap dd {
+  line-height: 1.3;
+}
+#resultslist-wrap dd.filetype, #resultslist-wrap dd.date {
+  color: #999;
+  display: inline;
+  padding-right: .5em
+}
+	
+/* TABLES */
+table {
+  border: 2px solid #900;
+  border-collapse: collapse;
+  width: 100%
+}
+table td {
+  background: #fff url("images/sprites.gif") repeat-x 0 -1600px;
+  padding: 3px;
+  border: 1px solid #fff;
+}
+table th {
+  text-align: left;
+  border: 1px solid #fff
+}
+table thead th {
+  color: #fff;
+  font-size: 120%;
+  background: #900 url("images/sprites.gif") repeat-x 0 -1300px;
+  padding: 10px 6px;
+}
+table tbody th {
+  color: #fff;
+  font-size: 115%;
+  background: #88b8db url("images/sprites.gif") repeat-x 0 -1400px;
+  padding: 6px;
+}
+table tbody th.sub {
+  font-size: 100%;
+  color: #000;
+  background: #efefef url("images/sprites.gif") repeat-x 0 -1500px;
+  padding: 6px;
+}
 
-/* LAYOUT TYPE E */
-#type-e #content-wrap {background: transparent url("images/content_wrap_e_bg.gif") repeat-y 100% 0}
-#type-e #utility {position:absolute;top:0;left:auto;right:25px;width:165px;border-top: 5px solid #999}
-#type-e #content {margin: 0 243px 0 50px}
+/* TABLES - calendar */
+.calendar {
+  width: 200px;
+  font-size: 92%;
+}
+.calendar td {
+  text-align: center;
+  border: 1px solid #ddd;
+}
+.calendar th {
+  text-align: center;
+}
+.calendar thead th {
+  padding: 3px 2px;
+}
+.calendar tbody th {
+  padding: 2px;
+}
+.calendar tbody th.sub {
+  padding: 2px;
+}
+		
+/* 'MORE' LINK - provides an accessible alternative to just 
+ * using 'more' as a link at the end of paragraphs */
+.links li {
+  background: none;
+}
+.links a:link, .links a:visited, .links a:hover, .links a:active {
+  background: transparent url("images/sprites.gif") no-repeat 5px -500px;
+  padding-left: 21px;
+}
+.links a:hover {
+  background: transparent url("images/sprites.gif") 5px -400px;
+}
+.links a span {
+  position: absolute;
+  left: -9999px;
+  width: 900px;
+}
+		
+/* CODE - formatting for code inserted into body - 
+ * more here: http://dizque.lacalabaza.net/temp/lipt/ */
+ol.code {
+  font-family: monospace;
+  position: relative;
+}
+ol.code li {
+  color: #666;
+  margin-bottom: 1px;
+}
+ol.code code {
+  color: #000;
+  display: block;
+}
+ol.code .cmt {
+  color: #4077d2;
+}
+li.tab0 code {
+  padding-left: 4em;
+}
+li.tab1 code {
+  padding-left: 8em;
+}
+li.tab2 code {
+  padding-left: 12em;
+}
+li.tab3 code {
+  padding-left: 16em;
+}
+li.tab4 code {
+  padding-left: 20em;
+}
+li.tab5 code {
+  padding-left: 24em;
+}
+ol.code li {
+  background: #f3f3f3 url("images/td_bg.gif") no-repeat 100% 100%;
+}
+p.note {
+  margin: 1em;
+  border: 1px solid #ddd;
+  background: #f0f0f0;
+  padding: 1em;
+}
 
 /* SECONDARY NAVIGATION - vertical navigation */
-ul.menu, ul.menu ul {position:static}
-ul.menu, ul.menu li {list-style: none;margin:0;padding:0;background:#fff}
-ul.menu {padding-top:0;border-top: 1px solid #ccc;margin-top: 1px}
-ul.menu a {line-height:1.8;padding: 5px 0 5px 23px;background: #fff url("images/sprites.gif") no-repeat 10px -695px;font: bold 86% arial;display:block}
-ul.menu a, ul.menu a:link, ul.menu a:visited, ul.menu a:hover, ul.menu a:active {text-decoration:none;cursor:pointer} 
-ul.menu a:link {color:#000} 
-ul.menu a:visited {color:#000} 
-ul.menu a:hover {color:#c00;background: #fee url("images/sprites.gif") no-repeat 10px -695px} 
-ul.menu li.active a:link, ul.menu li.active a:visited, ul.menu li.active a:hover, ul.menu li.active a:active {color:#c00} 
-ul.menu li {border-top: 1px solid #fff;border-bottom: 1px solid #ccc}
+.menu, .menu ul {
+  position: static;
+}
+.menu, .menu li {
+  list-style: none;
+  list-style-image: none;
+  margin: 0;
+  padding: 0;
+  background: #fff;
+}
+.menu {
+  padding-top: 0;
+  border-top: 1px solid #ccc;
+  margin-top: 1px;
+}
+.menu a {
+  line-height: 1.8;
+  padding: 5px 0 5px 23px;
+  background: #fff url("images/sprites.gif") no-repeat 10px -695px;
+  font: bold 86% arial;
+  display: block;
+}
+.menu a, .menu a:link, .menu a:visited, .menu a:hover, .menu a:active {
+  text-decoration: none;
+  cursor: pointer;
+}
+.menu a:link {
+  color: #000;
+}
+.menu a:visited {
+  color: #000;
+}
+.menu a:hover {
+  color: #c00;
+  background: #fee url("images/sprites.gif") no-repeat 10px -695px;
+}
+
+.menu li.active a:link,
+.menu li.active a:visited,
+.menu li.active a:hover,
+.menu li.active a:active {
+  color: #c00;
+}
+.menu li {
+  border-top: 1px solid #fff;
+  border-bottom: 1px solid #ccc;
+}
 
 /* SECONDARY NAVIGATION - 2nd TIER */
-ul.menu ul {margin: 0 0 1em 23px;padding:0}
-ul.menu li.active li a, ul.menu li.active li a:link, ul.menu li.active li a:visited {line-height:1.5;background: #fff url("images/sprites.gif") no-repeat 0 -798px;padding:0 0 0 12px;font-weight:normal;width:auto;color:#000;width:130px;display:block}
-ul.menu li.active li a:hover, ul.menu li.active li a:active {color: #c00}
-ul.menu li.active li {border: none;margin:0}
-ul.menu li.active li.active a:link, 
-ul.menu li.active li.active a:visited, 
-ul.menu li.active li.active a:hover, 
-ul.menu li.active li.active a:active {font-weight:bold}
+.menu ul {
+  margin: 0 0 1em 23px;
+  padding:0;
+}
+.menu li.expanded li a, .menu li.expanded li a:link, .menu li.expanded li a:visited {
+  line-height:1.5;
+  background: #fff url("images/sprites.gif") no-repeat 0 -798px;
+  padding:0 0 0 12px;
+  font-weight:normal;
+  width:auto;
+  color:#000;
+  width:130px;
+  display:block;
+}
+.menu li.expanded li a:hover, .menu li.expanded li a:active {
+  color: #c00;
+}
+.menu li.expanded li {
+  border: none;
+  margin:0;
+}
+	
+.menu li.active li.active a:link, 
+.menu li.active li.active a:visited, 
+.menu li.active li.active a:hover, 
+.menu li.active li.active a:active {
+  font-weight:bold;
+}
 
 /* SECONDARY NAVIGATION - 3rd TIER */
-ul.menu ul ul {margin: 0 0 1em 13px;padding:0}
-ul.menu li.active li.active li a, ul.menu li.active li.active li a:link, ul.menu li.active li.active li a:visited {width:117px}
-ul.menu li.active li.active li a:link, 
-ul.menu li.active li.active li a:visited, 
-ul.menu li.active li.active li a:hover, 
-ul.menu li.active li.active li a:active {font-weight:normal}
-ul.menu li.active li.active li.active a:link, 
-ul.menu li.active li.active li.active a:visited, 
-ul.menu li.active li.active li.active a:hover, 
-ul.menu li.active li.active li.active a:active {font-weight:bold}
+.menu ul ul {
+  margin: 0 0 1em 13px;
+  padding:0;
+}
+.menu li.active li.active li a,
+.menu li.active li.active li a:link,
+.menu li.active li.active li a:visited {
+  width:117px;
+}
+
+.menu li.active li.active li a:link, 
+.menu li.active li.active li a:visited, 
+.menu li.active li.active li a:hover, 
+.menu li.active li.active li a:active {
+  font-weight:normal;
+}
+
+.menu li.active li.active li.active a:link, 
+.menu li.active li.active li.active a:visited, 
+.menu li.active li.active li.active a:hover, 
+.menu li.active li.active li.active a:active {
+  font-weight:bold;
+}
 
 /* SECONDARY NAVIGATION - 4th TIER */
-ul.menu ul ul ul {margin: 0 0 1em 13px;padding:0}
-ul.menu li.active li.active li.active li a, ul.menu li.active li.active li.active li a:link, ul.menu li.active li.active li.active li a:visited {width:104px}
-ul.menu li.active li.active li.active li a:link, 
-ul.menu li.active li.active li.active li a:visited, 
-ul.menu li.active li.active li.active li a:hover, 
-ul.menu li.active li.active li.active li a:active {font-weight:normal}
-ul.menu li.active li.active li.active li.active a:link, 
-ul.menu li.active li.active li.active li.active a:visited, 
-ul.menu li.active li.active li.active li.active a:hover, 
-ul.menu li.active li.active li.active li.active a:active {font-weight:bold}
+.menu ul ul ul {margin: 0 0 1em 13px;padding:0}
+.menu li.active li.active li.active li a,
+.menu li.active li.active li.active li a:link,
+.menu li.active li.active li.active li a:visited {
+  width:104px;
+}
+
+.menu li.active li.active li.active li a:link, 
+.menu li.active li.active li.active li a:visited, 
+.menu li.active li.active li.active li a:hover, 
+.menu li.active li.active li.active li a:active {
+  font-weight:normal;
+}
+
+.menu li.active li.active li.active li.active a:link,
+.menu li.active li.active li.active li.active a:visited, 
+.menu li.active li.active li.active li.active a:hover, 
+.menu li.active li.active li.active li.active a:active {
+  font-weight:bold;
+}
 
 /* LAYOUT - FOOTER */
-#footer {clear:both;border-top: 1px solid #E3E8EE;padding: 10px 0 30px;font-size:86%;color:#999}
-#footer p {margin:0}
-#footer a:link {color:#999}
+#footer {
+  border-top: 1px solid #E3E8EE;
+  font-size:86%;
+  color:#999;
+}
+#footer p {
+  margin:0;
+}
+#footer a:link {
+  color:#999;
+}
+
+/* LAYOUT - FOOTBAR - BOTTOM BAR */
+#footbar {
+  clear: both;
+  margin: 0;
+  padding: 0;
+  height: 25px;
+  background: #fff url("images/footer_bar.gif") repeat-x 0 100%; 
+}
+
+/* SYSTEM.CSS OVERRIDES */
+/* This is to override the default from system.css so that lists including menus
+ * don't have extra padding */
+.block ul {
+  padding: 0pt;
+}
diff -urpN ../mollio-HEAD/template.php ./template.php
--- ../mollio-HEAD/template.php	2006-09-13 07:51:41.000000000 -0600
+++ ./template.php	2007-07-03 08:15:20.000000000 -0600
@@ -1,79 +1,6 @@
 <?php
 /* $Id: template.php,v 1.4 2006/09/13 13:51:41 rkerr Exp $ */
 
-// custom navigation links
-function mollio_nav($parent, $items = array(), $main_class = '') {
-  $i = 0;
-  $class = '';
-  $wrapper_prefix = '<li>';
-  $wrapper_suffix = '</li>';
-  $output = '';
-
-  if (count($items) > 0) {
-    $output .= "<ul>";
-    foreach ($items as $item) {
-      $class = '';
-      if ($i == 0) {
-        $class = 'first';
-      }
-      elseif ($i == count($items) - 1) {
-        $class = 'last';
-      }
-
-      if (strstr($item, 'class="active"') !== FALSE) {
-        $class .= ($class ? ' ' : '') . 'active';
-        $main_class .= ($main_class != '' ? ' ' : '') . 'active';
-        $parent = str_replace('<a href=', '<a class="active" href=', $parent);
-      }
-
-      $class = ' class="' . $class . '"';
-      $output .= '<li' . $class . '>' . $item . '</li>';
-      $i++;
-    }
-    $output .= "</ul>";
-  }
-  else {
-    if (strstr($parent, 'class="active"') !== FALSE) {
-      $main_class .= ($main_class != '' ? ' ' : '') . 'active';
-    }
-  }
-
-  $wrapper_prefix = '<li class="' . $main_class . '">';
-  $output = $wrapper_prefix . $parent . $output . $wrapper_postfix;
-  return $output;
-}
-
-// custom implementation of theme_list
-function mollio_list($items, $type = 'ul') {
-  $i = 0;
-  $class = '';
-  $output = '';
-  $type = strtolower($type);
-  if ($type != 'ol' && $type != 'dl') {
-    $type = 'ul';
-  }
-  $output .= "<$type>";
-  foreach ($items as $item) {
-    $class = '';
-    if ($i == 0) {
-      $class = 'first';
-    }
-    elseif ($i == count($items) - 1) {
-      $class = 'last';
-    }
-
-    if (strstr($item, 'class="active"') !== FALSE) {
-      $class .= ($class?' ':'') . 'active';
-    }
-
-    $class = ' class="' . $class . '"';
-    $output .= '<li' . $class . '>' . $item . '</li>';
-    $i++;
-  }
-  $output .= "</$type>";
-  return $output;
-}
-
 // custom breadcrumbs
 function mollio_breadcrumb($breadcrumb) {
   $sep = ' / ';
@@ -85,285 +12,168 @@ function mollio_breadcrumb($breadcrumb) 
   }
 }
 
-// custom menu output
-// menu_in_active_trail($mid)
-function mollio_menu_tree($pid = 1) {
-  if ($tree = menu_tree($pid)) {
-    if ($pid == variable_get('menu_primary_menu', 1)) {
-      return "<ul class=\"menu\">\n" . $tree . "</ul>\n";
-    }
-    elseif ($pid == variable_get('menu_secondary_menu', 2)) {
+/*
+function mollio_regions() {
+  return array(
+    'sidebar_left' => t('left sidebar'),
+    'sidebar_right' => t('right sidebar'),
+    'content' => t('content'),
+    'header' => t('header'),
+    'footer' => t('footer'),
+    'dropdown_menu' => t('drop down menu'),
+  );
+} 
+*/
+
+// Custom menu tree adds first and last tags, as well as 'active' tags
+// when you're in the active path. This allows you to treat these elements
+// differently.
+// Treat the main menu differently as well
+function mollio_menu_tree($pid = 1, $primary_tree = FALSE) {
+
+ // if ($tree = menu_tree($pid)) {
+  if ($tree = mollio_menu_tree_improved($pid, $primary_tree)) {
+    if (($pid == variable_get('menu_primary_menu', 1)) && $primary_tree == TRUE) {
       return "<ul id=\"nav\">\n" . $tree . "</ul>\n";
     }
-    else {
+    elseif ($primary_tree == TRUE) {
       return "<ul>\n" . $tree . "</ul>\n";
     }
+    else {
+      return "\n<ul class=\"menu\">\n" . $tree . "</ul>\n";
+    }
   }
 }
 
-function mollio_menu_item($mid, $children = '', $leaf = TRUE) {
-  $class = '';
-  $elipses = '';
-
-  if (strstr($children, 'class="active"') !== FALSE || strstr(menu_item_link($mid), 'class="active"') !== FALSE) {
-    $class = ' class="active"';
-  }
+function mollio_menu_tree_improved($pid = 1, $primary_tree) {
+  $menu = menu_get_menu();
+  $output = '';
 
-  if (!$leaf) {
-    $elipses = '...';
+  if (isset($menu['visible'][$pid]) && $menu['visible'][$pid]['children']) {
+    $num_children = count($menu['visible'][$pid]['children']);
+    for ($i=0; $i < $num_children; ++$i) {
+      $mid = $menu['visible'][$pid]['children'][$i];
+      $type = isset($menu['visible'][$mid]['type']) ? $menu['visible'][$mid]['type'] : NULL;
+      $children = isset($menu['visible'][$mid]['children']) ? $menu['visible'][$mid]['children'] : NULL;
+      // $extraclass = $i == 0 ? 'first' : ($i == $num_children-1 ? 'last' : '');
+       $extraclass = $i == $num_children-1 ? 'last' : ($i == 0 ? 'first' : '');
+      $output .= theme('menu_item', $mid, menu_in_active_trail($mid) || ($type & MENU_EXPANDED) ? theme('menu_tree', $mid, $primary_tree) : '', count($children) == 0, $extraclass);     
+    }
   }
 
-  return '<li' . $class. '>'. str_replace('</a>', "$elipses</a>", menu_item_link($mid)) . $children . "</li>\n";
+  return $output;
 }
 
-function mollio_menu_item_link($item, $link_item) {
-  $attrs = array();
-  if (isset($item['description'])) {
-    $attrs = array('title' => $item['description']);
-  }
-  return l($item['title'], $link_item['path'], $attrs);
+function mollio_menu_item($mid, $children = '', $leaf = TRUE, $extraclass = '') {
+  return '<li class="'. ($leaf ? 'leaf' : ($children ? 'expanded' : 'collapsed')) . (menu_in_active_trail($mid) ? ' active' : '') . ($extraclass ? ' ' . $extraclass : '') . '">'. menu_item_link($mid, TRUE, $extraclass) . $children ."</li>\n";
 }
 
-// custom pager output
+/**
+ * Format a query pager.
+ *
+ * Menu callbacks that display paged query results should call theme('pager') to
+ * retrieve a pager control so that users can view other results.
+ *
+ * @param $tags
+ *   An array of labels for the controls in the pager.
+ * @param $limit
+ *   The number of query results to display per page.
+ * @param $element
+ *   An optional integer to distinguish between multiple pagers on one page.
+ * @param $parameters
+ *   An associative array of query string parameters to append to the pager links.
+ * @return
+ *   An HTML string that generates the query pager.
+ *
+ * @ingroup themeable
+ */
 function mollio_pager($tags = array(), $limit = 10, $element = 0, $parameters = array()) {
-  global $pager_total;
+  global $pager_total, $pager_page_array;
   $output = '';
 
   if ($pager_total[$element] > 1) {
-    $output .= '<div class="pagination">';
-    $output .= '<p>';
-    //$output .= theme('pager_first', ($tags[0] ? $tags[0] : t('First')), $limit, $element, $parameters);
+    $output .= '<div class="pager"><p>';
+    $output .= theme('pager_first', ($tags[0] ? $tags[0] : t('First')), $limit, $element, $parameters);
     $output .= theme('pager_previous', ($tags[1] ? $tags[1] : t('Previous')), $limit, $element, 1, $parameters);
-    $output .= theme('pager_list', $limit, $element, ($tags[2] ? $tags[2] : 9 ), '', $parameters);
+    $output .= theme('pager_list', $limit, $element, ($tags[2] ? $tags[2] : 5 ), '', $parameters);
     $output .= theme('pager_next', ($tags[3] ? $tags[3] : t('Next')), $limit, $element, 1, $parameters);
     $output .= theme('pager_last', ($tags[4] ? $tags[4] : t('Last')), $limit, $element, $parameters);
-    $output .= '</p>';
 
-    $output .= '<h4>';
-    $current = intval($pager_total[$element]);
-    //$current_page = $element . ', ' . $current . '/' . $limit;
-    $current_page = floor($current / $limit) + 1;
-    $total_pages = ceil($pager_total[$element] / $limit) + 1;
-    //$output .= sprintf('%d of %d', $current_page, $total_pages);
-    $output .= $current_page . ' of ' . $total_pages;
-    $output .= '</h4>';
+    $current_page = $pager_page_array[$element] + 1;
+    $total_pages = $pager_total[$element];
+
+    $output .= '</p>';
+    $output .= "\n<h4>";
+    $output .= t('Page') . " $current_page " . t('of') . " $total_pages</h4>\n";
     $output .= '</div>';
 
     return $output;
   }
 }
 
-function mollio_pager_first($text, $limit, $element = 0, $parameters = array()) {
-  global $pager_page_array;
-  $output = '';
-  if ($pager_page_array[$element] > 0) {
-    $output = theme('pager_link', $text, pager_load_array(0, $element, $pager_page_array), $element, $parameters, array('class' => 'pager-first'));
-  }
-  return $output;
-}
-
-function mollio_pager_last($text, $limit, $element = 0, $parameters = array()) {
-  global $pager_page_array, $pager_total;
-  $output = '';
-  if ($pager_page_array[$element] < ($pager_total[$element] - 1)) {
-    $output = theme('pager_link', $text, pager_load_array($pager_total[$element] - 1, $element, $pager_page_array), $element, $parameters, array('class' => 'pager-last'));
-  }
-  return $output;
-}
-
-function mollio_pager_list($limit, $element = 0, $quantity = 5, $text = '', $parameters = array()) {
-  global $pager_page_array, $pager_total;
-
-  $output = '<span class="pager-list">';
-
-  // Calculate various markers within this pager piece:
-  $pager_middle = ceil($quantity / 2);
-  $pager_current = $pager_page_array[$element] + 1;
-  $pager_first = $pager_current - $pager_middle + 1;
-  $pager_last = $pager_current + $quantity - $pager_middle;
-  $pager_max = $pager_total[$element];
-  // End of marker calculations.
-
-  // Prepare for generation loop.
-  $i = $pager_first;
-  if ($pager_last > $pager_max) {
-    // Adjust "center" if at end of query.
-    $i = $i + ($pager_max - $pager_last);
-    $pager_last = $pager_max;
-  }
-  if ($i <= 0) {
-    // Adjust "center" if at start of query.
-    $pager_last = $pager_last + (1 - $i);
-    $i = 1;
-  }
-  // End of generation loop preparation.
-
-  // When there is more than one page, create the pager list.
-  if ($i != $pager_max) {
-    $output .= $text;
-    if ($i > 1) {
-      $output .= '<span class="pager-ellipsis">…</span>';
-    }
-
-    // Now generate the actual pager piece.
-    for (; $i <= $pager_last && $i <= $pager_max; $i++) {
-      if ($i < $pager_current) {
-        $output .= theme('pager_previous', $i, $limit, $element, ($pager_current - $i), $parameters);
-      }
-      if ($i == $pager_current) {
-        $output .= '<strong class="pager-current">'. $i .'</strong>';
-      }
-      if ($i > $pager_current) {
-        $output .= theme('pager_next', $i, $limit, $element, ($i - $pager_current), $parameters);
-      }
-    }
-
-    if ($i < $pager_max) {
-      $output .= '<span class="pager-ellipsis">…</span>';
-    }
-  }
-  $output .= '</span>';
-
-  return $output;
-}
-
-function mollio_pager_next($text, $limit, $element = 0, $interval = 1, $parameters = array()) {
-  global $pager_page_array, $pager_total;
-  $output = '';
-
-  // If we are anywhere but the last page
-  if ($pager_page_array[$element] < ($pager_total[$element] - 1)) {
-    $page_new = pager_load_array($pager_page_array[$element] + $interval, $element, $pager_page_array);
-    // If the next page is the last page, mark the link as such.
-    if ($page_new[$element] == ($pager_total[$element] - 1)) {
-      $output = theme('pager_last', $text, $limit, $element, $parameters);
-    }
-    // The next page is not the last page.
-    else {
-      $output = theme('pager_link', $text, $page_new, $element, $parameters, array('class' => 'pager-next'));
-    }
-  }
-
-  return $output;
-}
-
-function mollio_pager_previous($text, $limit, $element = 0, $interval = 1, $parameters = array()) {
-  global $pager_page_array;
-  $output = '';
-
-  // If we are anywhere but the first page
-  if ($pager_page_array[$element] > 0) {
-    $page_new = pager_load_array($pager_page_array[$element] - $interval, $element, $pager_page_array);
-
-    // If the previous page is the first page, mark the link as such.
-    if ($page_new[$element] == 0) {
-      $output = theme('pager_first', $text, $limit, $element, $parameters);
-    }
-    // The previous page is not the first page.
-    else {
-      $output = theme('pager_link', $text, $page_new, $element, $parameters, array('class' => 'pager-previous'));
-    }
-  }
-
-  return $output;
-}
-
-function mollio_pager_link($text, $page_new, $element, $parameters = array(), $attributes = array()) {
-  $page = isset($_GET['page']) ? $_GET['page'] : '';
-  if ($new_page = implode(',', pager_load_array($page_new[$element], $element, explode(',', $page)))) {
-    $parameters['page'] = $new_page;
-  }
-
-  $query = array();
-  if (count($parameters)) {
-    $query[] = drupal_query_string_encode($parameters, array());
-  }
-  $querystring = pager_get_querystring();
-  if ($querystring != '') {
-    $query[] = $querystring;
-  }
-
-  // Set each pager link title
-  if (!isset($attributes['title'])) {
-    static $titles = null;
-    if (!isset($titles)) {
-      $titles = array(
-        t('« first') => t('Go to first page'),
-        t('‹ previous') => t('Go to previous page'),
-        t('next ›') => t('Go to next page'),
-        t('last »') => t('Go to last page'),
-      );
-    }
-    if (isset($titles[$text])) {
-      $attributes['title'] = $titles[$text];
-    }
-    else if (is_numeric($text)) {
-      $attributes['title'] = t('Go to page %number', array('%number' => $text));
-    }
-  }
-
-  return '<strong>' . l($text, $_GET['q'], $attributes, count($query) ? implode('&', $query) : NULL) . '</strong>';
-}
-
-// custom form elements
-function mollio_form_element($title, $value, $description = NULL, $id = NULL, $required = FALSE, $error = FALSE) {
-  $output = '';
-  $required = $required ? '<span class="req">*</span>' : '';
-
-  if ($title) {
-    if ($id) {
-      $output .= "<label for=\"$id\"><b>$required$title:</b>";
-    }
-    else {
-      $output .= "<label><b>$required$title:</b>";
-    }
-  }
-
-  $output .= $value . "<br />\n";
-
-  if ($title) {
-    $output .= '</label>' . "\n";
-  }
-
-  if ($description) {
-    $output .= "<div class=\"description\">$description</div>\n";
-  }
 
+/**
+ * Format a single result entry of a search query. This function is normally
+ * called by theme_search_page() or hook_search_page().
+ *
+ * @param $item
+ *   A single search result as returned by hook_search(). The result should be
+ *   an array with keys "link", "title", "type", "user", "date", and "snippet".
+ *   Optionally, "extra" can be an array of extra info to show along with the
+ *   result.
+ * @param $type
+ *   The type of item found, such as "user" or "node".
+ *
+ * @ingroup themeable
+ */
+function mollio_search_item($item, $type) {
+  $output = ' <dl>';
+  $output .= ' <dt><a href="'. check_url($item['link']) .'">'. check_plain($item['title']) .'</a></dt>';
+  $info = array();
+  if ($item['type']) {
+    $info[] = $item['type'];
+  }
+  if ($item['user']) {
+    $info[] = $item['user'];
+  }
+  if ($item['date']) {
+    $info[] = format_date($item['date'], 'small');
+  }
+  if (is_array($item['extra'])) {
+    $info = array_merge($info, $item['extra']);
+  }
+
+  $output .= $item['snippet'] ? '<dd>'. $item['snippet'] . "</dd>\n" : '';
+  $output .= '<dd class="date">'. implode(' - ', $info) ."</dd>\n";
+
+  $output .= " </dl>\n";
   return $output;
 }
 
-// custom search results
-function mollio_search_item($item, $type) {
-  $output = '';
-
-  if (module_hook($type, 'search_item')) {
-    $output = module_invoke($type, 'search_item', $item);
-  }
-  else {
-    $output .= '<dd>' . "\n";
-    $output .= '  <dl>' . "\n";
-    $output .= '    <dt class="title"><a href="'. check_url($item['link']) .'">'. check_plain($item['title']) .'</a></dt>' . "\n";
-    $output .= '    <dd class="desc">' . $item['snippet'] . '</dd>' . "\n";
-    if ($item['type']) {
-      $output .= '    <dd class="filetype">' . $item['type'] . '</dd>' . "\n";
-    }
-    if ($item['date']) {
-      $output .= '    <dd class="date">' . format_date($item['date'], 'small') . '</dd>' . "\n";
-    }
-
-    $info = array();
-    if ($item['user']) {
-      $info[] = $item['user'];
-    }
-    if (is_array($item['extra'])) {
-      $info = array_merge($info, $item['extra']);
-    }
-    $output .= '    <dd>'. implode(' - ', $info) .'</dd>' . "\n";
-    $output .= '  </dl>' . "\n";
-    $output .= '</dd>' . "\n";
-  }
+/**
+ * Format the result page of a search query.
+ *
+ * Modules may implement hook_search_page() in order to override this default
+ * function to display search results. In that case it is expected they provide
+ * their own themeable functions.
+ *
+ * @param $results
+ *   All search result as returned by hook_search().
+ * @param $type
+ *   The type of item found, such as "user" or "node".
+ *
+ * @ingroup themeable
+ */
+function mollio_search_page($results, $type) {
+  $output = '<div id="resultslist-wrap">';
+
+  $output .= "<ol>\n";
+  foreach ($results as $entry) {
+    $output .= '<li>' . theme('search_item', $entry, $type) . '</li>';
+  }
+  $output .= "</ol>\n";
+  $output .= '</div>';
+  $output .= theme('pager', NULL, 10, 0);
 
   return $output;
 }
-
-?>
