Index: modules/quicktags/quicktags.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/quicktags/quicktags.module,v
retrieving revision 1.19
diff -u -r1.19 quicktags.module
--- modules/quicktags/quicktags.module	10 Oct 2006 15:48:44 -0000	1.19
+++ modules/quicktags/quicktags.module	11 Oct 2006 13:56:18 -0000
@@ -116,13 +116,8 @@
   $stylesheet =  $path .'/quicktags.css';
   drupal_set_html_head(theme_stylesheet_import(base_path() . $stylesheet));
 
-  //Add the static file
-  $javascript = $path .'/quicktags.js';
-  drupal_add_js($javascript);
-
-  //Add the dynamically generated file
-  drupal_add_js('?q=quicktags');
-  //using cache = FALSE might seem a good option, but this breaks on the menu.
+  //Add javascript
+  module_invoke_all('quicktags', 'js', '');
 
   $cols = ($element['#cols'] ? ' cols="'. $element['#cols'] .'"' : '');
   $class[] = ($element['#attributes']['class'] ? $element['#attributes']['class'] : 'form-textarea');
@@ -142,7 +137,25 @@
   return theme('form_element', $element['#title'], $html, $element['#description'], $element['#id'], $element['#required'], form_get_error($element));
 }
 
-
+/**
+ * Implementation of hook_quicktags().
+ */
+function quicktags_quicktags($op, $items) {
+  switch ($op) {
+    case 'insert':
+      $items = quicktags_quicktags_insert();
+      break;
+    case 'js':
+      //Add the static file
+      drupal_add_js(drupal_get_path('module','quicktags') .'/quicktags.js');
+      //Add the dynamically generated file
+      drupal_add_js('?q=quicktags');
+      //using cache = FALSE might seem a good option, but this breaks on the menu.
+      break;
+  }
+  
+  return $items;
+}
 
 /* array(id, display, tagStart, tagEnd, access, open, location)
  * id;         // used to name the toolbar button
@@ -207,8 +220,8 @@
 function quicktags_javascript() {
   $output = '';
   $items = array();
-  $items = module_invoke_all('quicktags_insert');
-  $items = array_merge($items, module_invoke_all('quicktags_alter', $items));
+  $items = module_invoke_all('quicktags', 'insert', '');
+  $items = array_merge($items, module_invoke_all('quicktags', 'alter', $items));
 
   $js = quicktags_javascript_prepare($items);
 
