Index: office_hours.theme.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/office_hours/Attic/office_hours.theme.inc,v
retrieving revision 1.1.2.7
diff -u -r1.1.2.7 office_hours.theme.inc
--- office_hours.theme.inc	2 Aug 2010 11:20:21 -0000	1.1.2.7
+++ office_hours.theme.inc	21 Jan 2011 23:43:12 -0000
@@ -96,13 +96,41 @@
       $group_map[$day_name][$group_id] = $group_id;
     }
   }
+    
+	$newgroup = array();
+	$i = -1;
+	$prev_id = '';
+    foreach ($groups as $group_id => $group) {
+	  $current_id = implode('::', $group['days']);
+	  
+	  if ($current_id == $prev_id || empty($prev_id)) {
+	    $i++;
+	  }
+	  else {
+	    $i = 0;
+	  }
+	  
+      $newgroup[$current_id]['hours'][$i]['strhrs'] = $group['hours'][0]['strhrs'];
+      $newgroup[$current_id]['hours'][$i]['endhrs'] = $group['hours'][0]['endhrs'];
+	  foreach ($group['days'] as $group_day => $day) {
+		$newgroup[$current_id]['days'][$group_day] = $day;
+	  }
+		
+	  $prev_id = $current_id;
+    }
 
   // Process groups
-  foreach ($groups as $group_id => &$group) {
+  /*foreach ($groups as $group_id => &$group) {
     // set combined days label
     _office_hours_set_group_label($group);
   }
-  unset($group);
+  unset($group);*/
+  
+  foreach ($newgroup as $group_id2 => &$group2) {
+    // set combined days label
+    _office_hours_set_group_label($group2);
+  }
+  unset($group2);
 
 
   // adjust translation weekday array for first day of week
@@ -113,7 +141,7 @@
   $days_rendered = array();
 
   // output with ordered weekdays to render groups in order
-  foreach ($weekdays as $day_num => $day_name) {
+  /*foreach ($weekdays as $day_num => $day_name) {
     if (!isset($days_rendered[$day_name]) && isset($group_map[$day_name])) {
       foreach ($group_map[$day_name] as $group_id) {
         if ($show_closed || $group_id != 'closed') {
@@ -126,6 +154,25 @@
         }
       }
     }
+  }*/
+  
+  foreach($newgroup as $day_range) {
+	foreach($day_range['hours'] as $hrs_range) {
+	  if (empty($hrs_range['strhrs']) and empty($hrs_range['endhrs'])) {
+	    if ($show_closed) {
+	      $range = t('closed');
+		}
+		else {
+		  continue 2;
+		}
+	  }
+	  else {
+	    $range .= $hrs_range['strhrs'].' - '.$hrs_range['endhrs'].', ';
+	  }
+	}
+	
+	$output .= $day_range['label'].': ' . trim($range,', ') . '<br />';
+	$range = '';
   }
 
   return $output;

