--- menutrails.module	2009-02-02 23:50:15.000000000 +0800
+++ menutrails.module.new	2009-06-26 21:38:54.296508000 +0800
@@ -157,6 +157,16 @@ function menutrails_node_location($node)
       }
     }
   }
+  // Node reference support.
+  if (module_exists('nodereference')) {
+    $node_ref_trails = variable_get('menutrails_node_references', array());
+    foreach ($node_ref_trails as $key => $value) {
+      if (isset($node->$key)) {
+        $node_reference = $node->$key;
+        $href = 'node/'. $node_reference[0]['nid'];
+      }
+    }
+  }
   if (isset($href)) {
     $item['href'] = $href;
     return $item;
@@ -247,6 +257,14 @@ function menutrails_menutrails_settings(
   $node_trails = variable_get('menutrails_node_types', array());
   $vocabs = module_exists('taxonomy') ? taxonomy_get_vocabularies() : array();
   $term_trails = variable_get('menutrails_terms', array());
+  $fields = module_exists('nodereference') ? content_fields() : array();
+  $node_ref_trails = variable_get('menutrails_node_references', array());
+  $node_references = array();
+  foreach ($fields as $key => $value) {
+    if ($value['type'] == 'nodereference') {
+      $node_references[$key] = $value;
+    }
+  }
   $form['menutrails_node_types'] = array(
     '#tree' => TRUE,
     '#type' => 'fieldset',
@@ -328,6 +346,23 @@ function menutrails_menutrails_settings(
       '#description' => t('If a specific group node has an assigned menu item, use this as the trail for nodes which have that group as an audience. If present, this will override all other group settings.'),
     );
   }
+  // Node references support.
+  if (module_exists('nodereference')) {
+    $form['menutrails_node_references'] = array(
+      '#tree' => TRUE,
+      '#type' => 'fieldset',
+      '#collapsible' => TRUE,
+      '#collapsed' => TRUE,
+      '#title' => t('Node types'),
+      '#description' => t('Settings for nodes with node reference fields: these override node, taxonomy and organic groups settings'),
+    );
+    foreach ($node_references as $key => $value) {
+      $form['menutrails_node_references'][$key] = array('#type' => 'checkbox',
+        '#title' => t('Use %field_name', array('%field_name' => $value['field_name'])),
+        '#default_value' => isset($node_ref_trails[$key]) ? $node_ref_trails[$key] : NULL,
+      );
+    }
+  }
   return $form;
 }
 
