--- ./nice_menus.css	2006-08-11 09:16:28.000000000 -0500
+++ ./nice_menus.css	2007-03-29 15:54:51.000000000 -0500
@@ -86,6 +86,25 @@ ul.nice-menu:after {
   visibility: hidden;
 }
 
+/* [IE6] Invisible iframe to fix z-index bug when menu hovers over <select> fields*/
+
+li.menuparent ul {
+	overflow: visible !important;
+	overflow: hidden;
+}
+
+li.menuparent ul iframe {
+	display:none;
+	display/**/:block;
+	position:absolute;
+	top:0;
+	left:0;
+	z-index:-1;
+	filter:mask();
+	width:400px;
+	height:400px;
+}
+
 /* Show submenus when over their parents */
 ul.nice-menu li:hover ul,
 ul.nice-menu li.menuparent li:hover ul,
@@ -218,4 +237,4 @@ ul.nice-menu-down li li.over{
 
 ul.nice-menu-down ul li {
   clear: both;
-}
\ No newline at end of file
+}
--- ./nice_menus.info	1969-12-31 18:00:00.000000000 -0600
+++ ./nice_menus.info	2007-03-29 15:45:55.000000000 -0500
@@ -0,0 +1,5 @@
+; $Id: $
+name = Nice Menus
+description = Make drop down css/javascript menus for site navigation and admin menus
+version = "5.x-1.x-dev"
+project = "nice_menus"
--- ./nice_menus.js	2006-08-06 05:16:20.000000000 -0500
+++ ./nice_menus.js	2007-03-29 15:45:55.000000000 -0500
@@ -1,42 +1,18 @@
-// $Id: nice_menus.js,v 1.1.2.2 2006/08/06 10:16:20 jakeg Exp $
-
-// We only do the javascript in IE.
-// TODO: because we now only include the js file for IE, is this 'if' redundant?
-if (document.all) {
-
-  function IEHoverPseudo() {
-
-    var ulNodes = getElementsByClass("nice-menu");
-    var j = 0;
-    var liNodes = null;
-
-    for (var i = 0; i < ulNodes.length; i++) { 
-      liNodes = ulNodes[i].getElementsByTagName("li");
-      for (j = 0; j < liNodes.length; j++) {
-        if (hasClass(liNodes[j], 'menuparent')) {
-          liNodes[j].onmouseover=function() { addClass(this, 'over'); }
-          liNodes[j].onmouseout=function() { removeClass(this, 'over'); }
-        }
-      }
-    }
-  }
-
-  function getElementsByClass(searchClass,node,tag) {
-	  var classElements = new Array();
-	  if (node == null) node = document;
-	  if (tag == null) tag = '*';
-	  var els = node.getElementsByTagName(tag);
-	  var elsLen = els.length;
-	  var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
-	  for (i = 0, j = 0; i < elsLen; i++) {
-		  if (pattern.test(els[i].className)) {
-			  classElements[j] = els[i];
-			  j++;
-		  }
-	  }
-	  return classElements;
-  }
-
-  // This is the Drupal method of adding a function to the BODY onload event.  (See misc/drupal.js)
-  addLoadEvent(IEHoverPseudo);
-}
\ No newline at end of file
+// $Id: nice_menus.js,v 1.1.2.2 2006/08/06 10:16:20 jakeg Exp $
+
+// We only do the javascript in IE.
+// TODO: because we now only include the js file for IE, is this 'if' redundant?
+if (document.all) {
+  function IEHoverPseudo() {
+    $("ul.nice-menu li.menuparent").hover(function(){
+        $(this).addClass("over").find("> ul").slideDown("fast");
+      },function(){
+        $(this).removeClass("over").find("> ul").slideUp("fast");
+      }
+    );
+  }
+
+  // This is the jquery method of adding a function to the BODY onload event.  (See jquery.com)
+  $(document).ready(function(){ IEHoverPseudo() });
+}
+
--- ./nice_menus.module	2006-08-11 09:16:28.000000000 -0500
+++ ./nice_menus.module	2007-03-29 15:47:36.000000000 -0500
@@ -13,7 +13,7 @@ function nice_menus_help($section) {
       $output = t('Make drop down css/javascript menus for site navigation and admin menus');
       break;
     case 'admin/settings/nice_menus':
-      $output = t('<p>This is a simple module that enables the site to have drop down css/javascript menus for site navigation and admin navigation.</p><p>Remember to activate and configure the menus in %link</p>', array('%link' => l('admin/block', 'admin/block')));
+      $output = t('<p>This is a simple module that enables the site to have drop down css/javascript menus for site navigation and admin navigation.</p>', array('!link' => l('admin/build/block', 'admin/build/block')));
       break;
   }
   return $output;
@@ -22,28 +22,42 @@ function nice_menus_help($section) {
 
 // Implemention of hook_menu()
 function nice_menus_menu($may_cache) {
+
   if (!$may_cache) {
+    $items[] = array(
+      'path' => 'admin/settings/nice_menus',
+      'title' => t('Nice Menus'),
+      'description' => t('Configure Nice Menus.'),
+      'callback' => 'drupal_get_form',
+      'callback arguments' => array('nice_menus_admin_settings'),
+      'access' => user_access('administer site configuration'),
+      'type' => MENU_NORMAL_ITEM,
+    );
+    
+    
+    drupal_add_js('misc/drupal.js', 'core'); // won't add if already added, but need this *before* our js
+
     // We only want to include the JS for IE, not browsers capable of doing everything in css
-    // drupal_add_js(drupal_get_path('module', 'nice_menus').'/nice_menus.js');
-    drupal_add_js('misc/drupal.js'); // won't add if already added, but need this *before* our js
+    //Note this requires that $scripts is called before $head in page.tpl.php otherwise this won't work correctly!
     drupal_set_html_head('<!--[if lte IE 6]><script type="text/javascript" src="'. check_url(base_path() . drupal_get_path('module', 'nice_menus').'/nice_menus.js') .'"></script><![endif]-->');
 
-    theme_add_style(drupal_get_path('module', 'nice_menus').'/nice_menus.css');
+    drupal_add_css(drupal_get_path('module', 'nice_menus').'/nice_menus.css');
   }
+  return $items;
 }
 
 
 // Implementation of hook_settings()
-function nice_menus_settings() {
-  $form['nice_menus_number'] = array(
-    '#type' => 'select', 
-    '#title' => t('Number of Nice Menus'), 
+function nice_menus_admin_settings() {
+  $form['general']['nice_menus_number'] = array(
+    '#type' => 'select',
+    '#title' => t('Number of Nice Menus'),
     '#description' => t('The total number of independent nice menus (blocks) you want.'),
     '#default_value' => variable_get('nice_menus_number', '2'),
     '#options' => drupal_map_assoc(array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
   );
 
-  return $form;
+  return system_settings_form($form);
 }
 
 
@@ -61,20 +75,20 @@ function nice_menus_block($op = 'list', 
 
     case 'configure':
       $form['nice_menus_name_'. $delta] = array(
-        '#type' => 'textfield', 
-        '#title' => t('Menu Name'), 
+        '#type' => 'textfield',
+        '#title' => t('Menu Name'),
         '#default_value' => variable_get('nice_menus_name_'. $delta, 'Nice Menu ' . $delta)
       );
       $form['nice_menus_menu_'. $delta] = array(
-        '#type' => 'select', 
-        '#title' => t('Source Menu Tree'), 
+        '#type' => 'select',
+        '#title' => t('Source Menu Tree'),
         '#description' => t('The menu tree from which to show a nice menu.'),
         '#default_value' => variable_get('nice_menus_menu_'. $delta, '1'),
         '#options' => menu_parent_options(0)
       );
       $form['nice_menus_type_'. $delta] = array(
-        '#type' => 'select', 
-        '#title' => t('Menu Style'), 
+        '#type' => 'select',
+        '#title' => t('Menu Style'),
         '#description' => t('right: menu items are listed on top of each other and expand to the right <br />left: menu items are listed on top of each other and expand to the left<br />down: menu items are listed side by side and expand down'),
         '#default_value' => variable_get('nice_menus_type_'. $delta, 'right'),
         '#options' => drupal_map_assoc(array('right','left','down'))
@@ -99,7 +113,7 @@ function nice_menus_block($op = 'list', 
             $class = 'nice-menu-show-title';
           }
           $block['subject'] = '<span class="'.$class.'">'.check_plain($menu_tree['subject'] == t('Navigation') ? ($user->uid ? $user->name : t('Navigation')) : $menu_tree['subject']).'</span>';
-          
+
 
         }
       }
@@ -112,9 +126,9 @@ function nice_menus_block($op = 'list', 
 
 // Private functions below
 
-function _nice_menu_tree($pid = 1) { 
-  $menu = menu_get_menu(); 
-  $output['content'] = ''; 
+function _nice_menu_tree($pid = 1) {
+  $menu = menu_get_menu();
+  $output['content'] = '';
 
   $output['subject'] = $menu['items'][$pid]['title'];
 
@@ -124,16 +138,18 @@ function _nice_menu_tree($pid = 1) { 
       $path_class = 'menu-path-'. str_replace('/', '-', $menu['items'][$mid]['path']);
       if (count($menu['visible'][$mid]['children']) > 0) {
         $output['content'].= "<li id='menu-$mid' class='menuparent $path_class'>".menu_item_link($mid);
-        $output['content'].= "<ul>";
+        $output['content'].= "<ul><!--[if lte IE 6]><iframe></iframe><![endif]-->";
         $tmp = _nice_menu_tree($mid);
         $output['content'].= $tmp['content'];
         $output['content'].= "</ul>";
         $output['content'].= "</li>";
-      } 
+      }
       else {
         $output['content'].= "<li id='menu-$mid' class='$path_class'>".menu_item_link($mid)."</li>";
       }
     }
   }
   return $output;
-}
\ No newline at end of file
+}
+
+
