--- ctm.orig/ctm.module	2011-10-17 23:48:43.000000000 +0200
+++ ctm.module	2011-11-02 10:14:48.000000000 +0100
@@ -21,6 +21,15 @@
       '#default_value' => $default_values,
       '#options' => $options,
       );  
+
+    // Menu expand behaviour settings
+    $form['menu_settings']['menu_expand'] = array(
+      '#type' => 'checkboxes',
+      '#title' => t('Menu expand behaviour'),
+      '#default_value' => $default_values,
+      '#options' => array('expand_by_default' => t('Expand new menu items by default')),
+    );  
+
     $form['#submit'][] = 'ctm_node_type_form_submit';
   }
   // Menu Settings for Node Edit (Form)
@@ -51,10 +60,40 @@
 }
 
 /**
+ * Implementation of hook_nodeapi().
+ */
+function ctm_nodeapi(&$node, $op) {
+  switch ($op) {
+    case 'update':
+    case 'insert':
+      if (isset($node->menu)) {
+        $item = &$node->menu;
+        if (empty($item['delete']) && trim($item['link_title'])) {
+          $item['link_title'] = trim($item['link_title']);
+          $item['link_path'] = "node/$node->nid";
+          if (!$item['customized']) {
+            $item['options']['attributes']['title'] = trim($node->title);
+          }
+          
+          $menu_settings = variable_get($node->type.'_menu_settings', NULL);
+          if ($menu_settings && $menu_settings['expand_by_default']) {
+            $item['expanded'] = 1;
+          }
+          
+          if (!menu_link_save($item)) {
+            drupal_set_message(t('There was an error saving the menu link.'), 'error');
+          }
+        }
+      }
+      break;
+  }
+}
+
+/**
  *  Content Type Form Submit - Save Menu Settings for Content Type. 
  */
 function ctm_node_type_form_submit(&$form, $form_state) {
-  $menu_settings = array_filter($form_state['values']['menu']);
+  $menu_settings = array_merge(array_filter($form_state['values']['menu']), array_filter($form_state['values']['menu_expand']));
   if ($menu_settings) {
      variable_set($form_state['values']['type'].'_menu_settings', $menu_settings);
   } else {
