--- checkall.js	2009-05-05 14:19:30.000000000 -0400
+++ checkall.js.NEW	2009-08-05 15:24:08.000000000 -0400
@@ -7,6 +7,7 @@ Drupal.behaviors.checkAll = function(con
 Drupal.checkAll = Drupal.checkAll || {
   strings: {
     checkAll: Drupal.t('Check all items in this group'),
+    checkToggle: Drupal.t('Toggle the values of all items in this group'),
     checkNone: Drupal.t('Uncheck all items in this group')
   }
 };
@@ -89,6 +90,13 @@ Drupal.checkAll.attachByGroup = function
       return false;
     }))
     .prepend($('<span> / </span>'))
+    .prepend($('<a href="#">'+ Drupal.t('Toggle') +'</a>').attr('title', Drupal.checkAll.strings.checkToggle).click(function() {     
+      var chkd = $('input:checked', checkBoxes);
+      $('input:not(:checked)', checkBoxes).attr('checked', true).trigger('change');
+      $(chkd).attr('checked', false).trigger('change');
+      return false;
+    }))
+    .prepend($('<span> / </span>'))
     .prepend($('<a href="#">'+ Drupal.t('Check all') +'</a>').attr('title', Drupal.checkAll.strings.checkAll).click(function() {
       $('input:checkbox', checkBoxes).attr('checked', true).trigger('change');
       return false;
