Index: topics/forms_api_reference.html
===================================================================
RCS file: /cvs/drupal-contrib/contributions/docs/developer/topics/forms_api_reference.html,v
retrieving revision 1.73
diff -u -p -r1.73 forms_api_reference.html
--- topics/forms_api_reference.html	2 Jan 2008 14:49:13 -0000	1.73
+++ topics/forms_api_reference.html	5 Jan 2008 22:10:29 -0000
@@ -76,6 +76,21 @@ td {
       <td class="x"><strong>X</strong></td>  <!-- weight -->
     </tr>
     <tr>
+      <th scope="row"><a href="#ahah">#ahah</a></th>
+      <td class="x"><strong>X</strong></td>  <!-- checkbox -->
+      <td>-</td>  <!-- checkboxes -->
+      <td>-</td>  <!-- date -->
+      <td>-</td>  <!-- fieldset -->
+      <td>-</td>  <!-- file -->
+      <td class="x"><strong>X</strong></td>  <!-- password -->
+      <td class="x"><strong>X</strong></td>  <!-- radio -->
+      <td>-</td>  <!-- radios -->
+      <td class="x"><strong>X</strong></td>  <!-- select -->
+      <td class="x"><strong>X</strong></td>  <!-- textarea -->
+      <td class="x"><strong>X</strong></td>  <!-- textfield -->
+      <td>-</td>  <!-- weight -->
+    </tr>
+    <tr>
       <th scope="row"><a href="#after_build">#after_build</a></th>
       <td class="x"><strong>X</strong></td>  <!-- checkbox -->
       <td class="x"><strong>X</strong></td>  <!-- checkboxes -->
@@ -507,51 +522,7 @@ td {
       <td>-</td><!-- value -->
     </tr>
     <tr>
-      <th scope="row"><a href="#ahah_effect">#ahah_effect</a></th>
-      <td class="x"><strong>X</strong></td><!-- button -->
-      <td class="x"><strong>X</strong></td><!-- image_button -->
-      <td class="x"><strong>X</strong></td><!-- submit -->
-      <td>-</td><!-- form -->
-      <td>-</td><!-- hidden -->
-      <td>-</td><!-- markup -->
-      <td>-</td><!-- item -->
-      <td>-</td><!-- value -->
-    </tr>
-    <tr>
-      <th scope="row"><a href="#ahah_event">#ahah_event</a></th>
-      <td class="x"><strong>X</strong></td><!-- button -->
-      <td class="x"><strong>X</strong></td><!-- image_button -->
-      <td class="x"><strong>X</strong></td><!-- submit -->
-      <td>-</td><!-- form -->
-      <td>-</td><!-- hidden -->
-      <td>-</td><!-- markup -->
-      <td>-</td><!-- item -->
-      <td>-</td><!-- value -->
-    </tr>
-    <tr>
-      <th scope="row"><a href="#ahah_method">#ahah_method</a></th>
-      <td class="x"><strong>X</strong></td><!-- button -->
-      <td class="x"><strong>X</strong></td><!-- image_button -->
-      <td class="x"><strong>X</strong></td><!-- submit -->
-      <td>-</td><!-- form -->
-      <td>-</td><!-- hidden -->
-      <td>-</td><!-- markup -->
-      <td>-</td><!-- item -->
-      <td>-</td><!-- value -->
-    </tr>
-    <tr>
-      <th scope="row"><a href="#ahah_path">#ahah_path</a></th>
-      <td class="x"><strong>X</strong></td><!-- button -->
-      <td class="x"><strong>X</strong></td><!-- image_button -->
-      <td class="x"><strong>X</strong></td><!-- submit -->
-      <td>-</td><!-- form -->
-      <td>-</td><!-- hidden -->
-      <td>-</td><!-- markup -->
-      <td>-</td><!-- item -->
-      <td>-</td><!-- value -->
-    </tr>
-    <tr>
-      <th scope="row"><a href="#ahah_wrapper">#ahah_wrapper</a></th>
+      <th scope="row"><a href="#ahah">#ahah</a></th>
       <td class="x"><strong>X</strong></td><!-- button -->
       <td class="x"><strong>X</strong></td><!-- image_button -->
       <td class="x"><strong>X</strong></td><!-- submit -->
@@ -789,13 +760,14 @@ td {
         <li><a href="#name">#name</a> = 'op'</li>
         <li><a href="#button_type">#button_type</a> = 'submit'</li>
         <li><a href="#executes_submit_callback">#submit</a> = FALSE</li>
-        <li><a href="#ahah_event">#ahah_event</a> = 'submit' </li>
+        <li><a href="#ahah_event">#ahah['event']</a> = 'click' </li>
       </ul>
     </li>
     <li>
       <strong><a href="#checkbox">checkbox</a></strong>
       <ul>
         <li><a href="#return_value">#return_value</a> = 1</li>
+        <li><a href="#ahah_event">#ahah['event']</a> = 'change' </li>
       </ul>
     </li>
     <li>
@@ -829,7 +801,7 @@ td {
       <ul>
         <li><a href="#button_type">#button_type</a> = 'submit'</li>
         <li><a href="#executes_submit_callback">#submit</a> = TRUE</li>
-        <li><a href="#ahah_event">#ahah_event</a> = 'submit' </li>
+        <li><a href="#ahah_event">#ahah['event']</a> = 'click' </li>
       </ul>
     </li>
     <li>
@@ -846,11 +818,18 @@ td {
         <li><a href="#suffix">#suffix</a> = ''</li>
       </ul>
     </li>
+    <li><strong><a href="#radio">radio</a></strong></li>
+    <li style="list-style: none">
+      <ul>
+        <li><a href="#ahah_event">#ahah['event']</a> = 'change' </li>
+      </ul>
+    </li>
     <li><strong><a href="#password">password</a></strong></li>
     <li style="list-style: none">
       <ul>
         <li><a href="#size">#size</a> = 30</li>
         <li><a href="#maxlength">#maxlength</a> = 64</li>
+        <li><a href="#ahah_event">#ahah['event']</a> = 'blur' </li>
       </ul>
     </li>
     <li><strong><a href="#submit">submit</a></strong></li>
@@ -859,7 +838,7 @@ td {
         <li><a href="#name">#name</a> = 'op'</li>
         <li><a href="#button_type">#button_type</a> = 'submit'</li>
         <li><a href="#executes_submit_callback">#submit</a> = TRUE</li>
-        <li><a href="#ahah_event">#ahah_event</a> = 'submit' </li>
+        <li><a href="#ahah_event">#ahah['event']</a> = 'click' </li>
       </ul>
     </li>
     <li>
@@ -867,6 +846,7 @@ td {
       <ul>
         <li><a href="#cols">#cols</a> = 60</li>
         <li><a href="#rows">#rows</a> = 5</li>
+        <li><a href="#ahah_event">#ahah['event']</a> = 'blur' </li>
       </ul>
     </li>
     <li><strong><a href="#textfield">textfield</a></strong></li>
@@ -875,6 +855,7 @@ td {
         <li><a href="#size">#size</a> = 60</li>
         <li><a href="#maxlength">#maxlength</a> = 128</li>
         <li><a href="#autocomplete_path">#autocomplete_path</a> = FALSE</li>
+        <li><a href="#ahah_event">#ahah['event']</a> = 'blur' </li>
       </ul>
     </li>
     <li>
@@ -1159,86 +1140,58 @@ td {
   </div>
   <p>Property names without # signs causes havoc.</p>
 
-  <h3><a name="ahah_effect" id="ahah_effect"></a>#ahah_effect</h3>
-  <p><strong>Used by</strong>: <a href="#button">button</a>, <a href="#submit">submit</a></p>
-  <p><strong>Description</strong>: Specifies the effect used when adding the content from an AHAH request. </p>
-  <p><strong>Values</strong>: String. Possible values: 'none' (default), 'fade', 'slide'. If the <a href="http://interface.eyecon.ro/">interface elements library</a> is installed, any effect with the name <em>effect</em>Toggle may also be used. </p>
-
-  <h3><a name="ahah_event" id="ahah_event"></a>#ahah_event</h3>
-  <p><strong>Used by</strong>: <a href="#button">button</a>, <a href="#submit">submit</a></p>
-  <p><strong>Description</strong>: When this event occurs to this element, Drupal will perform an HTTP request in the background via Javascript. The ahah_ prefix refers to <a href="http://en.wikipedia.org/wiki/AHAH">AHAH javascript replacement</a> (Asychronous HTML and HTTP), a relative of AJAX. AHAH is both the easiest and straight forward form of javascript page replacement. In a nutshell an AHAH request follows these steps:</p>
+  <h3><a name="ahah" id="ahah"></a>#ahah</h3>
+  <p><strong>Used by</strong>: <a href="#button">button</a>, <a href="#image_button">image button</a>, <a href="#submit">submit</a>,
+<a href="#checkbox">checkbox</a>,  <a href="#password">password</a>, <a href="#radio">radio</a>,  <a href="#select">select</a>,  <a href="#textarea">textarea</a>, <a href="#textfield">textfield</a>  
+  </p>
+  <p>An array of elements whose values control the behavior of the element with resepct to the defualt AHAH javascript methods.</p>
+  <p>The #ahah name refers to <a href="http://en.wikipedia.org/wiki/AHAH">AHAH javascript replacement</a> (Asychronous HTML and HTTP), a relative of AJAX. AHAH is both the easiest and straight forward form of javascript page replacement. In a nutshell an AHAH request follows these steps:</p>
   <ol>
     <li>Drupal builds a form element with a set of #ahah properties set. The misc/ahah.js file is included on the page automatically. </li>
-    <li>ahah.js finds all the form elements on the page that have an <a href="#ahah_path">#ahah_path</a> set and adds an event handler for the <a href="#ahah_event">#ahah_event</a> set on that form element.</li>
-    <li>When the <a href="#ahah_event">#ahah_event</a> occurs on the element (such as 'submit'), the AHAH request is made to the Drupal path of the element's <a href="#ahah_path">#ahah_path</a>.<br />
+    <li>ahah.js finds all the form elements on the page that have an <a href="#ahah_path">#ahah['path']</a> set and adds an event handler for the <a href="#ahah_event">#ahah['event']</a> set on that form element.</li>
+    <li>When the <a href="#ahah_event">#ahah['event']</a> occurs on the element (such as 'submit'), the AHAH request is made to the Drupal path of the element's <a href="#ahah_path">#ahah['path']</a>.<br />
     </li>
     <li>Drupal generates HTML in a second request in the background. The result is returned to the original page containing the form element.</li>
-    <li>ahah.js gets the result and inserts the returned HTML into the <a href="#ahah_wrapper">#ahah_wrapper</a>. Depending on the <a href="#ahah_method">#ahah_method</a>, the result may affect the wrapper in different ways. </li>
-  </ol>
-  <p><strong>Values</strong>: String. Possible values: 'submit'. Defaults for #ahah_event are set per form element type. See <a href="#element_default_values">default element values </a>. </p>
-  <p><strong>Usage example</strong> (<a href="http://api.drupal.org/api/HEAD/file/modules/upload/upload.module">upload.module</a>):</p>
-  <div class="codeblock"><code>
-    <p><font color="#000000"><font color="#0000bb">&lt;?php<br>$form</font><font color="#007700">[</font><font color="#dd0000">'new'</font><font color="#007700">][</font><font color="#dd0000">'attach'</font><font color="#007700">] = array(<br>&nbsp; </font><font color="#dd0000">'#type' </font><font color="#007700">=&gt; </font><font color="#dd0000">'submit'</font><font color="#007700">,<br>&nbsp; </font><font color="#dd0000">'#value' </font><font color="#007700">=&gt; </font><font color="#0000bb">t</font><font color="#007700">(</font><font color="#dd0000">'Attach'</font><font color="#007700">),<br>&nbsp; </font><font color="#dd0000">'#name' </font><font color="#007700">=&gt; </font><font color="#dd0000">'attach'</font><font color="#007700">,<br>&nbsp; </font><font color="#dd0000">'#ahah_path' </font><font color="#007700">=&gt; </font><font color="#dd0000">'upload/js'</font><font color="#007700">,<br>&nbsp; </font><font color="#dd0000">'#ahah_wrapper' </font><font color="#007700">=&gt; </font><font color="#dd0000">'attach-wrapper'</font><font color="#007700">,<br>&nbsp; </font><font color="#dd0000">'#submit' </font><font color="#007700">=&gt; array(),<br>);<br></font><font color="#0000bb">?&gt;</font></font></p>
-</code></div>
-  <p>Note that #ahah_event is not specified explicitly. Although it can be manually set, usually the <a href="#element_default_values">default value </a> will be sufficient.</p>
+    <li>ahah.js gets the result and inserts the returned HTML into the <a href="#ahah_wrapper">#ahah['wrapper']</a>. Depending on the <a href="#ahah_method">#ahah['method']</a>, the result may affect the wrapper in different ways. </li>
+  </ol>  
+  <h3><a name="ahah_effect" id="ahah_effect"></a>#ahah['effect']</h3>
 
-  <h3><a name="ahah_method" id="ahah_method"></a>#ahah_method</h3>
-  <p><strong>Used by</strong>: <a href="#button">button</a>, <a href="#submit">submit</a></p>
+  <p><strong>Description</strong>: Specifies the effect used when adding the content from an AHAH request. </p>
+  <p><strong>Values</strong>: String. Possible values: 'none' (default), 'fade', 'slide'. If the <a href="http://interface.eyecon.ro/">interface elements library</a> is installed, any effect with the name <em>effect</em>Toggle may also be used. </p>
+   <p><strong>Usage example</strong> (<a href="http://api.drupal.org/api/file/modules/poll/poll.module/">poll.module</a>):</p>
+
+    <p><div class="codeblock"><code><span style="color: #000000"><span style="color: #0000BB">&nbsp; $form</span><span style="color: #007700">[</span><span style="color: #DD0000">'choice_wrapper'</span><span style="color: #007700">][</span><span style="color: #DD0000">'poll_more'</span><span style="color: #007700">] = array(<br />&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'#type' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'submit'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'#value' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">t</span><span style="color: #007700">(</span><span style="color: #DD0000">'More choices'</span><span style="color: #007700">),<br />&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'#description' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">t</span><span style="color: #007700">(</span><span style="color: #DD0000">"If the amount of boxes above isn't enough, click here to add more choices."</span><span style="color: #007700">),<br />&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'#weight' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">1</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'#submit' </span><span style="color: #007700">=&gt; array(</span><span style="color: #DD0000">'poll_more_choices_submit'</span><span style="color: #007700">), </span><span style="color: #FF8000">// If no javascript action.<br />&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'#ahah' </span><span style="color: #007700">=&gt; array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'path' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'poll/js'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'wrapper' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'poll-choices'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'method' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'replace'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'effect' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'fade'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp; ),<br /></span></span></code></div></p>
+
+   <h3><a name="ahah_event" id="ahah_event"></a>#ahah['event']</h3>
+
+  <p><strong>Description</strong>: When this event occurs to this element, Drupal will perform an HTTP request in the background via Javascript.</p>
+
+  <p><strong>Values</strong>: String. Possible values: 'click', 'blur', 'change'. Defaults for #ahah['event'] are set per form element type. See <a href="#element_default_values">default element values </a>. </p>
+
+  <p>Note that #ahah['event'] is not specified explicitly. Although it can be manually set, usually the <a href="#element_default_values">default value </a> will be sufficient.</p>
+
+  <h3><a name="ahah_method" id="ahah_method"></a>#ahah['method']</h3>
   <p><strong>Description</strong>: Modify the behavior of the returned HTML from an AHAH request when inserting into the <a href="#ahah_wrapper">#ahah_wrapper</a>. If not set, the returned HTML will replace the contents of the wrapper element, but it's also possible to use any of the available <a href="http://docs.jquery.com/DOM/Manipulation">jQuery operations for DOM manipulation</a>. </p>
   <p><strong>Values</strong>: String. Possible values: 'replace' (default), 'after', 'append', 'before', 'prepend'.</p>
 
-  <h3><a name="ahah_path" id="ahah_path"></a>#ahah_path</h3>
+  <h3><a name="ahah_path" id="ahah_path"></a>#ahah['path']</h3>
   <p><strong>Used by</strong>: <a href="#button">button</a>, <a href="#submit">submit</a></p>
-  <p><strong>Description</strong>: If set, this property triggers AHAH behaviors on a form element. This is the Drupal menu path to a callback function which will generate HTML and return the string of HTML to Drupal. The result will be placed in the div specified in <a href="#ahah_wrapper">#ahah_wrapper</a>. </p>
+  <p><strong>Description</strong>: If set, this property triggers AHAH behaviors on a form element. This is the Drupal menu path to a callback function which will generate HTML and return the string of HTML to Drupal. The result will be placed in the div specified in <a href="#ahah_wrapper">#ahah['wrapper']</a>. </p>
   <p><strong>Values</strong>: String containing a Drupal menu path.</p>
-  <p><strong>Usage example</strong> (<a href="http://api.drupal.org/api/HEAD/file/modules/upload/upload.module">upload.module</a>):</p>
-  <div class="codeblock"><code><font color="#000000"><font color="#0000bb">&lt;?php<br />
-    </font><font color="#ff8000">/**<br />
-      * Implementation of hook_menu().<br />
-      */<br />
-      </font><font color="#007700">function </font><font color="#0000bb">upload_menu</font><font color="#007700">() {<br />
-        &nbsp; </font><font color="#0000bb">$items</font><font color="#007700">[</font><font color="#dd0000">'upload/js'</font><font color="#007700">] = array(<br />
-          &nbsp;&nbsp;&nbsp; </font><font color="#dd0000">'page callback' </font><font color="#007700">=&gt; </font><font color="#dd0000">'upload_js'</font><font color="#007700">,<br />
-            &nbsp;&nbsp;&nbsp; </font><font color="#dd0000">'access arguments' </font><font color="#007700">=&gt; array(</font><font color="#dd0000">'upload files'</font><font color="#007700">),<br />
-              &nbsp;&nbsp;&nbsp; </font><font color="#dd0000">'type' </font><font color="#007700">=&gt; </font><font color="#0000bb">MENU_CALLBACK</font><font color="#007700">,<br />
-                &nbsp; ); </font></font></code>
-      <p><code><font color="#000000"><font color="#007700">&nbsp; ...</font></font></code></p>
-    <p><code><font color="#000000"><font color="#007700">&nbsp; return </font><font color="#0000bb">$items</font><font color="#007700">;<br />
-      }</font></font></code></p>
-    <p><code><font color="#000000"><font color="#007700"> Â Â ...</font></font></code></p>
-    <p><code><font color="#000000"><font color="#007700">&nbsp; </font><font color="#0000bb">$form</font><font color="#007700">[</font><font color="#dd0000">'new'</font><font color="#007700">][</font><font color="#dd0000">'attach'</font><font color="#007700">] = array(<br />
-      &nbsp;&nbsp;&nbsp; </font><font color="#dd0000">'#type' </font><font color="#007700">=&gt; </font><font color="#dd0000">'submit'</font><font color="#007700">,<br />
-        &nbsp;&nbsp;&nbsp; </font><font color="#dd0000">'#value' </font><font color="#007700">=&gt; </font><font color="#0000bb">t</font><font color="#007700">(</font><font color="#dd0000">'Attach'</font><font color="#007700">),<br />
-          &nbsp;&nbsp;&nbsp; </font><font color="#dd0000">'#name' </font><font color="#007700">=&gt; </font><font color="#dd0000">'attach'</font><font color="#007700">,<br />
-            &nbsp;&nbsp;&nbsp; </font><font color="#dd0000">'#ahah_path' </font><font color="#007700">=&gt; </font><font color="#dd0000">'upload/js'</font><font color="#007700">,<br />
-              &nbsp;&nbsp;&nbsp; </font><font color="#dd0000">'#ahah_wrapper' </font><font color="#007700">=&gt; </font><font color="#dd0000">'attach-wrapper'</font><font color="#007700">,<br />
-                &nbsp;&nbsp;&nbsp; </font><font color="#dd0000">'#submit' </font><font color="#007700">=&gt; array(),<br />
-                  &nbsp; );<br />
-                </font><font color="#0000bb">?&gt;</font></font></code></p>
+  <p><strong>Usage example</strong> (<a href="http://api.drupal.org/api/file/modules/upload/upload.module">upload.module</a>):</p>
+
+   <p><div class="codeblock"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/**<br />* Implementation of hook_menu().<br />*/<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">upload_menu</span><span style="color: #007700">() {<br />&nbsp; </span><span style="color: #0000BB">$items</span><span style="color: #007700">[</span><span style="color: #DD0000">'upload/js'</span><span style="color: #007700">] = array(<br />&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'page callback' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'upload_js'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'access arguments' </span><span style="color: #007700">=&gt; array(</span><span style="color: #DD0000">'upload files'</span><span style="color: #007700">),<br />&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'type' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">MENU_CALLBACK</span><span style="color: #007700">,<br />&nbsp; );<br />&nbsp; ...<br />&nbsp; return </span><span style="color: #0000BB">$items</span><span style="color: #007700">;<br />}<br /><br />...<br /><br />function </span><span style="color: #0000BB">_upload_form</span><span style="color: #007700">(</span><span style="color: #0000BB">$node</span><span style="color: #007700">) {<br />&nbsp; ...<br />&nbsp;&nbsp;&nbsp; </span><span style="color: #0000BB">$form</span><span style="color: #007700">[</span><span style="color: #DD0000">'new'</span><span style="color: #007700">][</span><span style="color: #DD0000">'attach'</span><span style="color: #007700">] = array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'#type' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'submit'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'#value' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">t</span><span style="color: #007700">(</span><span style="color: #DD0000">'Attach'</span><span style="color: #007700">),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'#name' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'attach'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'#ahah' </span><span style="color: #007700">=&gt; array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'path' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'upload/js'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'wrapper' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'attach-wrapper'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'progress' </span><span style="color: #007700">=&gt; array(</span><span style="color: #DD0000">'type' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'bar'</span><span style="color: #007700">, </span><span style="color: #DD0000">'message' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">t</span><span style="color: #007700">(</span><span style="color: #DD0000">'Please wait...'</span><span style="color: #007700">)),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'#submit' </span><span style="color: #007700">=&gt; array(</span><span style="color: #DD0000">'node_form_submit_build_node'</span><span style="color: #007700">),<br />&nbsp;&nbsp;&nbsp; );<br />&nbsp; ...<br />return </span><span style="color: #0000BB">$form</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div></p>
+
   </div>
-  <p>#ahah_path is set to 'upload/js', which has a menu item defined in the same module. Then the menu hook will call the 'upload_js' function which generates HTML and returns it to original page.</p>
+  <p>#ahah['path'] is set to 'upload/js', which has a menu item defined in the same module. Then the menu hook will call the 'upload_js' function which generates HTML and returns it to original page.</p>
 
-  <h3><a name="ahah_wrapper" id="ahah_wrapper"></a>#ahah_wrapper</h3>
-  <p><strong>Used by</strong>: <a href="#button">button</a>, <a href="#submit">submit</a></p>
+  <h3><a name="ahah_wrapper" id="ahah_wrapper"></a>#ahah['wrapper']</h3>
   <p><strong>Description</strong>: This property defines the HTML id attribute of an element on the page will server as the destination for HTML returned by an AHAH request. Usually, a div element is used as the wrapper, as it provides the most flexibility for placement of elements before, after, or inside of it's HTML tags. This property  is required for using AHAH requests in on a form element.</p>
   <p><strong>Values</strong>: String containg a valid id attribute of an HTML element on the same page.</p>
-  <p><strong>Usage example</strong> (<a href="http://api.drupal.org/api/HEAD/file/modules/upload/upload.module">upload.module</a>):</p>
-  <div class="codeblock"><code><font color="#000000"><font color="#0000bb">&lt;?php<br />
-    &nbsp; $form</font><font color="#007700">[</font><font color="#dd0000">'attachments'</font><font color="#007700">][</font><font color="#dd0000">'wrapper'</font><font color="#007700">] = array(<br />
-      &nbsp;&nbsp;&nbsp; </font><font color="#dd0000">'#prefix' </font><font color="#007700">=&gt; </font><font color="#dd0000">'&lt;div id=&quot;attach-wrapper&quot;&gt;'</font><font color="#007700">,<br />
-        &nbsp;&nbsp;&nbsp; </font><font color="#dd0000">'#suffix' </font><font color="#007700">=&gt; </font><font color="#dd0000">'&lt;/div&gt;'</font><font color="#007700">,<br />
-          &nbsp; ); </font></font></code>
-      <p><code><font color="#000000"><font color="#007700">...</font></font></code></p>
-    <p><code><font color="#000000"><font color="#007700">&nbsp; </font><font color="#0000bb">$form</font><font color="#007700">[</font><font color="#dd0000">'new'</font><font color="#007700">][</font><font color="#dd0000">'attach'</font><font color="#007700">] = array(<br />
-      &nbsp;&nbsp;&nbsp; </font><font color="#dd0000">'#type' </font><font color="#007700">=&gt; </font><font color="#dd0000">'submit'</font><font color="#007700">,<br />
-        &nbsp;&nbsp;&nbsp; </font><font color="#dd0000">'#value' </font><font color="#007700">=&gt; </font><font color="#0000bb">t</font><font color="#007700">(</font><font color="#dd0000">'Attach'</font><font color="#007700">),<br />
-          &nbsp;&nbsp;&nbsp; </font><font color="#dd0000">'#name' </font><font color="#007700">=&gt; </font><font color="#dd0000">'attach'</font><font color="#007700">,<br />
-            &nbsp;&nbsp;&nbsp; </font><font color="#dd0000">'#ahah_path' </font><font color="#007700">=&gt; </font><font color="#dd0000">'upload/js'</font><font color="#007700">,<br />
-              &nbsp;&nbsp;&nbsp; </font><font color="#dd0000">'#ahah_wrapper' </font><font color="#007700">=&gt; </font><font color="#dd0000">'attach-wrapper'</font><font color="#007700">,<br />
-                &nbsp;&nbsp;&nbsp; </font><font color="#dd0000">'#submit' </font><font color="#007700">=&gt; array(),<br />
-                  &nbsp; );<br />
-                </font><font color="#0000bb">?&gt;</font></font></code></p>
-  </div>
+  <p><strong>Usage example</strong> (<a href="http://api.drupal.org/api/file/modules/upload/upload.module">upload.module</a>):</p>
+
+  <p><div class="codeblock"><code><span style="color: #000000"><span style="color: #0000BB">&nbsp;&nbsp;&nbsp; $form</span><span style="color: #007700">[</span><span style="color: #DD0000">'new'</span><span style="color: #007700">][</span><span style="color: #DD0000">'attach'</span><span style="color: #007700">] = array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'#type' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'submit'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'#value' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">t</span><span style="color: #007700">(</span><span style="color: #DD0000">'Attach'</span><span style="color: #007700">),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'#name' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'attach'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'#ahah' </span><span style="color: #007700">=&gt; array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'path' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'upload/js'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'wrapper' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'attach-wrapper'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'progress' </span><span style="color: #007700">=&gt; array(</span><span style="color: #DD0000">'type' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'bar'</span><span style="color: #007700">, </span><span style="color: #DD0000">'message' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">t</span><span style="color: #007700">(</span><span style="color: #DD0000">'Please wait...'</span><span style="color: #007700">)),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #DD0000">'#submit' </span><span style="color: #007700">=&gt; array(</span><span style="color: #DD0000">'node_form_submit_build_node'</span><span style="color: #007700">),<br />&nbsp;&nbsp;&nbsp; );<br /></span></span></code></div></p>
+
 
   <h3><a name="attributes" id="attributes"></a>#attributes</h3>
   <p><strong>Used by</strong>: <a href="#button">button</a>, <a href="#checkbox">checkbox</a>, <a href="#checkboxes">checkboxes</a>, <a href="#date">date</a>, <a href="#fieldset">fieldset</a>, <a href="#file">file</a>, <a href="#form">form</a>, <a href="#markup">markup</a>, <a href="#password">password</a>, <a href="#radio">radio</a>, <a href="#radios">radios</a>, <a href="#select">select</a>, <a href="#submit">submit</a>, <a href="#textarea">textarea</a>, <a href="#textfield">textfield</a>, <a href="#weight">weight</a></p>
