Index: checkbox_validate.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/checkbox_validate/checkbox_validate.module,v
retrieving revision 1.1
diff -u -p -r1.1 checkbox_validate.module
--- checkbox_validate.module	25 May 2008 00:02:17 -0000	1.1
+++ checkbox_validate.module	12 Apr 2010 09:33:46 -0000
@@ -1,53 +1,69 @@
 <?php
 // $Id: checkbox_validate.module,v 1.1 2008/05/25 00:02:17 MegaGrunt Exp $
 
+/**
+ * Implementation of hook_form_alter().
+ */
 function checkbox_validate_form_alter(&$form, $form_state, $form_id) {
   $form = checkbox_validate_recurse($form);
-  return; 
+  return;
+}
+
+/**
+ * Implementation of hook_theme().
+ */
+function checkbox_validate_theme() {
+  return array(
+    'checkbox_validate_required' => array(
+      'arguments' => array(),
+    ),
+  );
 }
 
 function checkbox_validate_recurse($form_item) {
   if (!is_array($form_item)) return;
-
   while (list($key, $value) = each($form_item)) {
-
     if (strpos($key, '#') === 0) {
-
-      if ($form_item['#type'] == 'checkbox' && $form_item['#required'] == TRUE) {
-         
+      if (($form_item['#type'] == 'checkbox' || $form_item['#type'] == 'optionwidgets_onoff') && $form_item['#required'] == TRUE) {
         $form_item['#element_validate'] = array('checkbox_validate_validation');
-        $form_item['#pre_render'][] = 'checkbox_validate_add_required_symbol'; 
-        //$form_item['#title'] .= ' <span class="form-required" title="This field is required.">*</span>';
+        $form_item['#pre_render'][] = 'checkbox_validate_add_required_symbol';
         return $form_item;
       }
-      
     }
     else {
-
       $form_item[$key] = checkbox_validate_recurse($value, $key);
     }
-    
   }
-
   return $form_item;
-}     
+}
 
-// add required symbol here in this pre_render function 
-// so it doresn't display on error messages
-function checkbox_validate_add_required_symbol($form) { 
-	$form['#title'] .= ' <span class="form-required" title="' . t('This field is required.') . '">*</span>';
+/**
+ * Add required symbol here in this pre_render function
+ * so it doesn't display on error messages.
+ *
+ */
+function checkbox_validate_add_required_symbol($form) {
+	$output = ' <span class="form-required" title="'. t('This field is required.') .'">*</span>';
+	switch ($form['#type']) {
+		case 'checkbox':
+	    $form['#title'] .= $output;
+	    break;
+	  case 'optionwidgets_onoff':
+	    $form['value']['#title'] .= $output;
+	    break;
+	}
 	return $form;
 }
 
-function checkbox_validate_validation($element) { 
-  if (empty($element['#value'])) form_error($element, t('!title field is required.', array('!title' => filter_xss_admin(($element['#title'])))));
+function checkbox_validate_validation($element) {
+	// Optionwidgets values are strings stored in
+	// $element['#value']['value'].
+	// If this checkbox is not checked, the default value
+	// is stored as a string in a numerically keyed array
+	// $element['#value']['value'].
+  if (empty($element['#value']) || is_array($element['#value']['value'])) {
+	  form_error($element, t('!title field is required.', array('!title' => filter_xss_admin(($element['#title'])))));
+	}
   return;
 }
 
-function checkbox_validate_theme() {
-  return array(
-    'checkbox_validate_required' => array(
-      'arguments' => array(),
-    ),
-  );
-}
\ No newline at end of file
