
function toggleCollection(box, Collection) {
   var frm = box.form;
   var pattern = "CatalogID[" + Collection + "]";
   var strlen = pattern.length;

   var CatalogBox;
   for(var i = 0; i < frm.elements.length; i++) {
      CatalogBox = frm.elements[i];
      if ((CatalogBox.type == "checkbox") && (CatalogBox.name.substr(0, strlen) == pattern)) {
         CatalogBox.checked = box.checked;
      }
   }
}

function toggleSingle(box, Collection) {
   var frm = box.form;
   var pattern;
   var strlen;
   var number_of_boxes = 0;
   var number_of_checked = 0;
   
   // Count number of boxes and number of checked boxes.
   //
   var CatalogBox;
   pattern = "CatalogID[" + Collection + "]";
   strlen = pattern.length;
   for(var i = 0; i < frm.elements.length; i++) {
      CatalogBox = frm.elements[i];
      if ((CatalogBox.type == "checkbox") && (CatalogBox.name.substr(0, strlen) == pattern)) {
         number_of_boxes++;
         number_of_checked += CatalogBox.checked;
      }
   }
   
   // Find the Collection box (group box) and check/uncheck it depending
   // on if all other boxes are checked or not.
   //
   var CollectionBox;
   pattern = "Collection[" + Collection + "]";
   strlen = pattern.length;
   for(var i = 0; i < frm.elements.length; i++) {
      CollectionBox = frm.elements[i];
      if ((CollectionBox.type == "checkbox") && (CollectionBox.name.substr(0, strlen) == pattern)) {
         CollectionBox.checked = (number_of_boxes == number_of_checked);
      }
   }
}
