? imagemenu.js
Index: imagemenu.admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/imagemenu/imagemenu.admin.inc,v
retrieving revision 1.1.2.6
diff -u -p -r1.1.2.6 imagemenu.admin.inc
--- imagemenu.admin.inc	28 Sep 2010 21:33:00 -0000	1.1.2.6
+++ imagemenu.admin.inc	17 Nov 2010 18:18:48 -0000
@@ -516,5 +516,10 @@ function imagemenu_configure() {
     '#title' => t('Use rollover image for active menu item.'),
     '#default_value' => variable_get('imagemenu_active_state', FALSE),
   );
+  $form['imagemenu_preload_rollovers'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Preload rollover images.'),
+    '#default_value' => variable_get('imagemenu_preload_rollovers', FALSE),
+  );
   return system_settings_form($form);
 }
Index: imagemenu.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/imagemenu/imagemenu.module,v
retrieving revision 1.7.2.11
diff -u -p -r1.7.2.11 imagemenu.module
--- imagemenu.module	23 Sep 2010 08:53:16 -0000	1.7.2.11
+++ imagemenu.module	17 Nov 2010 18:18:48 -0000
@@ -434,7 +434,7 @@ function imagemenu_find_parent($pid) {
   return FALSE;
 }
 
-function imagemenu_build_output($menus, $layout) { 
+function imagemenu_build_output($menus, $layout) {
   foreach ($menus as $menu) {
     $has_children = empty($menu['link']['has_children']) ? 0 : $menu['link']['has_children'];
     if ($menu['below']) {
@@ -444,6 +444,12 @@ function imagemenu_build_output($menus, 
       $output .= theme('imagemenu_item', $menu['link'], $has_children, $mid, $layout, '');
     }
   }
+
+  // Add preloading JS function, if needed.
+  if (variable_get('imagemenu_preload_rollovers', FALSE) && !$preload_function_loaded) {
+    drupal_add_js(drupal_get_path('module', 'imagemenu') .'/imagemenu.js');
+  }
+
   return $output ? theme('imagemenu_tree', $output) : '';
 }
 
@@ -496,6 +502,14 @@ function theme_imagemenu_item($item, $ha
   else {
     $output = '<li class="delimiter"'. $listyle .'><img src="'. base_path() . $item['imagepath'] .'" />'. $menu .'</li>';
   }
+
+  // Add JS for preload this rollover image if needed.
+  if (variable_get('imagemenu_preload_rollovers', FALSE)) {
+    drupal_add_js(array('imagemenu_preloads' => array('img' . $item['mid'] . '-' . $item['pid'] => $item['mouseover'])), 'setting');
+  }
+
+
+
   return $output;
 }
 
