--- headerimage.module.old	2008-07-26 14:13:41.000000000 +0200
+++ headerimage.module	2008-07-27 23:38:57.000000000 +0200
@@ -588,10 +588,44 @@ function headerimage_nodeapi(&$node, $op
 function headerimage_help($path, $arg) {
   switch ($path) {
     case 'admin/help#headerimage':
-      $output  = "<p>". t('Header Image module allows you to to display an image on selected pages. It can display one image on the front page, a different one on the FAQ pages and yet an other on the about us all remaining pages.') ."</p>\n";
-      $output .= "<p>". t('Visibility of each image, included in a node, can be based on node id, path, taxonomy, book, node type or PHP code. Header Image uses an arbitrary node type.') ."</p>\n";
+      // Determine the status of the installation
+      $type_is_set = count(variable_get('headerimage_node_type', array())) ? t('(DONE)') : t('(TO DO)');
+      $block_is_created = count(headerimage_get_blocks()) ? t('(DONE)') : t('(TO DO)');
+      foreach (headerimage_get_blocks() as $delta => $name) {
+        $block_has_nodes = db_result(db_query("SELECT nid FROM {headerimage} WHERE block = %d", $delta));
+        if ($block_has_nodes) break;
+      }
+      $block_has_nodes = $block_has_nodes ? t('(DONE)') : t('(TO DO)');
+      foreach (headerimage_get_blocks() as $delta => $name) {
+        $block_in_region = db_result(db_query("SELECT region FROM {blocks} WHERE module = '%s' AND theme = '%s' AND delta = %d", 'headerimage', variable_get('theme_default', 'garland'), $delta));
+        if ($block_in_region) break;
+      }
+      $block_in_region = $block_in_region ? t('(DONE)') : t('(TO DO)');
+      
+      $output  = "<p>". t('Header Image allows you to to display an image on selected pages. It can display one image at the front page, a different one at FAQ pages and yet another at all other pages.') ."</p>\n";
+      $output .= "<p>". t('Visibility of each image, included in a node, can be determined by node ID, path, taxonomy, book, node type or custom PHP code. Header Image uses an arbitrary node type.') ."</p>\n";
       $output .= "<p>". t('Multiple images (nodes) can be displayed in one block, with each image having its own conditions. Using a weight per node the order of selection can be controlled.') ."</p>\n";
-      $output .= "<p>". t('For more information please read the configuration and customization handbook <a href="@headerimage">Header Image page</a>.', array('@headerimage' => 'http://drupal.org/node/201426/')) ."</p>\n";
+      $output .= "<p>". t('<h2>Installation</h2>
+<ol>
+<li>Set up <a href="!permissions">permissions</a>.</li>
+<li>Optionally <a href="!create_node_type">create a node type</a> which will contain the header image.</li>
+<li><a href="!set_node_type">Define a node type</a> as the Header Image node type. %status_type</li>
+<li><a href="!create_header_image_block">Create a Header Image block</a>. %status_create</li>
+<li>Create Header Image nodes. Select a Header Image block and set display conditions for each node. %status_assign</li>
+<li><a href="!assign_header_image_block">Assign the Header Image block</a> to a region. %status_region</li>
+</ol>', array(
+  '!permissions' => url('admin/user/permissions'),
+  '!create_node_type' => url('admin/content/types/add'),
+  '!set_node_type' => url('admin/settings/headerimage/settings'),
+  '%status_type' => $type_is_set,
+  '!create_header_image_block' => url('admin/settings/headerimage'),
+  '%status_create' => $block_is_created,
+  '!assign_header_image_block' => url('admin/build/block'),
+  '%status_assign' => $block_has_nodes,
+  '%status_region' => $block_in_region,
+  )
+) ."</p>\n";
+      $output .= "<p>". t('For more information please read <a href="@handbook">the configuration and customization handbook</a> on Header Image.', array('@handbook' => 'http://drupal.org/node/201426/')) ."</p>\n";
       return $output;
   }
 }
