diff -Naur stormtask/stormtask.admin.inc stormtaskNew/stormtask.admin.inc
--- stormtask/stormtask.admin.inc	2009-04-16 21:15:29.000000000 +0200
+++ stormtaskNew/stormtask.admin.inc	2009-06-29 14:01:00.000000000 +0200
@@ -83,7 +83,78 @@
   }
 
   $taskstree = _stormtask_get_tree($project->nid, 0, -1, NULL, $where, $args);
+
+
+  // Display link to jsgantt library only if library is installed.
+  $o_gantt ="";
+  $jsgant_dir = variable_get('stormtask_jsgantt_location', 'sites/all/libraries/jsgantt');
+
+  $dispOpt=variable_get('stormtask_jsgantt_options', array());
+  if ($dispOpt['ShowStartDate']){$dispOpt['ShowStartDate']=1;}
+  if ($dispOpt['ShowEndDate']){$dispOpt['ShowEndDate']=1;}
+  if ($dispOpt['ShowDur']){$dispOpt['ShowDur']=1;}
+
+  if(variable_get('stormtask_enable_ganttchart',0) && file_exists($jsgant_dir .'/jsgantt.js')) {
+
+    drupal_add_js($jsgant_dir."/jsgantt.js");
+    drupal_add_css($jsgant_dir."/jsgantt.css");
+
+    //version w/o xml file
+      $pMile = 0;
+      $pRes = "";
+      $pComp = 50;
+      $pGroup = 0;
+      $pParent = 0;
+      $pOpen = 1;
+      $js = "";
+      $pDepend = 0;
+      $pParent = 0;
+
+
+      foreach($taskstree as $task ) {
+	$pID = $task->nid;
+	$pName = $task->title;
+	$pCaption = $pName;
+	$pLink = base_path()."node/".$task->nid;
+	$pStart = date("n/j/Y",$task->datebegin);
+	$pEnd = date("n/j/Y",$task->dateend);
+	$pColor = variable_get('stormtask_jsgantt_color', '00CCFF'); //$task->taskstatus;
+	$pDepend = $task->parents[0];
+// 	$pParent = $task->parents[0];
+
+	$js .= "g.AddTaskItem(new JSGantt.TaskItem(".$pID.",'".$pName."','".$pStart."','".$pEnd."','".$pColor."','".$pLink."',".$pMile.",'".$pRes."',".$pComp.",".$pGroup.",".$pParent.",".$pOpen.",".$pDepend.",'".$pCaption."'));\n";
+      }
+
+      $o_gantt .="<div style='position:relative' class='gantt' id='GanttChartDIV'></div>
+    <script>
+      // here's all the html code neccessary to display the chart object
+      // Future idea would be to allow XML file name to be passed in and chart tasks built from file.
+      var g = new JSGantt.GanttChart('g',document.getElementById('GanttChartDIV'), 'day');
+	    g.setShowRes(0); // Show/Hide Responsible (0/1)
+	    g.setShowComp(0); // Show/Hide % Complete(0/1)
+	    g.setShowDur('".$dispOpt['ShowDur']."'); // Show/Hide Duration (0/1)
+	    g.setShowStartDate('".$dispOpt['ShowStartDate']."'); // Show/Hide Start Date(0/1)
+	    g.setShowEndDate('".$dispOpt['ShowEndDate']."'); // Show/Hide End Date(0/1)
+//	    g.setFormatArr('day','week','month') 
+      g.setCaptionType('Resource');  // Set to Show Caption (None,Caption,Resource,Duration,Complete)
+      if( g ) {
+// Parameters (pID, pName, pStart, pEnd, pColor, pLink, pMile, pRes,  pComp, pGroup, pParent, pOpen)
+".$js."
+
+// use the XML file parser 
+//	    JSGantt.parseXML('http://localhost/services/sites/default/files/project.xml',g)
+
+	g.Draw();	
+	g.DrawDependencies();
+      }
+      else
+      {
+	alert('not defined');
+      }
+    </script>";
+  }
   $o .= drupal_get_form('stormtask_tasks_form', $header, $taskstree, $project);
+  $o .= $o_gantt;
   return $o;
 }
 
diff -Naur stormtask/stormtask.module stormtaskNew/stormtask.module
--- stormtask/stormtask.module	2009-06-08 16:01:54.000000000 +0200
+++ stormtaskNew/stormtask.module	2009-06-29 14:04:06.000000000 +0200
@@ -185,9 +185,73 @@
     'type' => MENU_NORMAL_ITEM,
     'file' => 'stormtask.admin.inc',
   );
+
+  $items['admin/storm/tasks'] = array(
+    'title' => t('Storm Tasks'),
+    'description' => t('Storm Tasks Administration Page'),
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('stormtask_admin_settings'),
+    'access arguments' => array('access administration pages'),
+    'type' => MENU_LOCAL_TASK,
+  );
+
   return $items;
 }
 
+
+function stormtask_admin_settings() {
+  $form = array();
+  
+  $form['stormtask_enable_ganttchart'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Enable Gantt Charts (experimental feature)'),
+    '#default_value' => variable_get('stormtask_enable_ganttchart', False),
+    '#description' => t('First get jsgantt.zip from http://jsgantt.com and put jsgantt.js andf jsgantt.css in directory   <i>sites/all/libraries/jsgantt</i> then enable this checkbox.'),
+  );
+
+  $form['stormtask_jsgantt_location'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Location of jsgantt library'),
+    '#default_value' => variable_get('stormtask_jsgantt_location', t('sites/all/libraries/jsgantt')),
+    '#description' => t('The directory that contains the jsgantt library ( sites/all/libraries/jsgantt is recommended )'),
+    '#size' => 50,
+    '#after_build' => array('jsgantt_check_directory'),
+  );
+
+
+  $form['stormtask_jsgantt_options'] = array(
+    '#type' => 'checkboxes',
+    '#title' => t('Chart display options'),
+    '#default_value' => variable_get('stormtask_jsgantt_options', array('ShowStartDate','ShowEndDate','ShowDur')),
+    '#options' => array(
+      'ShowStartDate' => t('Show Start Date'),
+      'ShowEndDate' => t('Show End Date'),
+      'ShowDur' => t('Show Duration'),
+    ),
+    '#description' => t('Choose display options for gantt chart.'),
+  );
+
+
+  $form['stormtask_jsgantt_color'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Gantt chart color'),
+    '#default_value' => variable_get('stormtask_jsgantt_color', '00CCFF'),
+    '#description' => t('Enter color for gant chart bars.'),
+    '#size' => 6,
+  );
+
+  return system_settings_form($form);
+}
+
+function jsgantt_check_directory($form_element) {
+  $file = $form_element['#value']."/jsgantt.js";
+  if (!file_exists($file)){
+     form_set_error($form_element['#name'], t('The file %file does not exist.', array('%file' => $file)));
+  }
+  return $form_element;
+}
+
+
 function stormtask_theme() {
   return array(
     'stormtask_list' => array(
