Index: modules/field/modules/text/text.js
===================================================================
RCS file: modules/field/modules/text/text.js
diff -N modules/field/modules/text/text.js
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/field/modules/text/text.js	17 Aug 2009 19:36:18 -0000
@@ -0,0 +1,41 @@
+// $Id$
+
+(function ($) {
+
+/**
+ * Auto-hide summary textarea if empty and show hide and unhide links.
+ */
+Drupal.behaviors.textTextareaSummary = {
+  attach: function (context, settings) {
+    $('textarea.text-textarea-summary:not(.text-textarea-summary-processed)', context).addClass('text-textarea-summary-processed').each(function () {
+      var $fieldset = $(this).closest('fieldset');
+      var $summary = $fieldset.find('div.text-summary-wrapper');
+      var $summaryLabel = $summary.find('div.form-item-textarea label');
+      var $full = $fieldset.find('div.text-full-wrapper');
+      var $fullLabel = $full.find('div.form-item-textarea label');
+
+      // Setup the edit/hide summary link.
+      var $link = $('<span class="field-edit-link">(<a class="link-edit-summary" href="#">' + Drupal.t('Hide summary') + '</a>)</span>').toggle(
+        function () {
+          $summary.hide();
+          $(this).find('a').html(Drupal.t('Edit summary')).end().appendTo($fullLabel);
+          return false;
+        },
+        function () {
+          $summary.show();
+          $(this).find('a').html(Drupal.t('Hide summary')).end().appendTo($summaryLabel);
+          return false;
+        }
+      ).appendTo($summaryLabel);
+
+      // If no summary is set, hide the summary field.
+      if ($(this).val() == '') {
+        $link.click();
+      }
+      return;
+    });
+  }
+};
+
+})(jQuery);
+
Index: modules/field/modules/text/text.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/field/modules/text/text.module,v
retrieving revision 1.17
diff -u -p -r1.17 text.module
--- modules/field/modules/text/text.module	4 Aug 2009 06:38:56 -0000	1.17
+++ modules/field/modules/text/text.module	17 Aug 2009 17:19:56 -0000
@@ -664,6 +664,10 @@ function text_textarea_with_summary_proc
     '#description' => t('Leave blank to use trimmed value of full text as the summary.'),
     '#required' => $element['#required'],
     '#display' => $display,
+    '#attached_js' => array(drupal_get_path('module', 'text') . '/text.js'), 
+    '#attributes' => array('class' => array('text-textarea-summary')),
+    '#prefix' => '<div class="text-summary-wrapper">',
+    '#suffix' => '</div>',
   );
 
   $field_key = $element['#columns'][0];
@@ -676,6 +680,9 @@ function text_textarea_with_summary_proc
     '#description' => $element['#description'],
     '#required' => $element['#required'],
     '#required' => $instance['required'],
+    '#attributes' => array('class' => array('text-full-textarea')),
+    '#prefix' => '<div class="text-full-wrapper">',
+    '#suffix' => '</div>',
   );
 
   if (!empty($instance['settings']['text_processing'])) {
