--- event.module	2008-12-30 18:54:03.000000000 -0500
+++ event-new.module	2009-03-11 14:12:43.000000000 -0400
@@ -2145,19 +2145,26 @@ function event_form_alter(&$form, $form_
       if (variable_get('date_default_timezone_id', 0) === 0) {
         drupal_set_message(t('Please <a href="!url">select the default timezone</a> for your website before creating events.', array('!url' => url('admin/settings/date-time'))), 'error');
       }
+      // for popup, set #type to date_popup, and #default_value to YYYY-MM-DD HH:MM:SS
       $form['event']['start_exploded'] = array(
-        '#type' => 'event',
+	'#type' => module_exists('date_popup') ? 'date_popup' : 'event',
         '#title' => t('Start date'),
-        '#default_value' => isset($node->event['start_exploded']) ? $node->event['start_exploded'] : _event_user_time(),
+	'#default_value' => isset($node->event['start_exploded']) ?
+           (module_exists('date_popup') ? $node->event['start_exploded']['date'] . " " . $node->event['start_exploded']['time']
+             : $node->event['start_exploded'] ) 
+	  : (module_exists('date_popup') ? _event_popup_default_timestring(_event_user_time()) :  _event_user_time()),
         '#weight' => -15,
         );
 
       // This needs to be validated only if has_end_date checked
       // So we'll do that manually in the form validation function
       $form['event']['end_exploded'] = array(
-        '#type' => 'event',
+	'#type' => module_exists('date_popup') ? 'date_popup' : 'event',
         '#title' => t('End date'),
-        '#default_value' => isset($node->event['end_exploded']) ? $node->event['end_exploded'] : _event_user_time(),
+	'#default_value' => isset($node->event['start_exploded']) ?
+             (module_exists('date_popup') ? $node->event['end_exploded']['date'] . " " . $node->event['end_exploded']['time']
+                : $node->event['end_exploded'])
+             : (module_exists('date_popup') ? _event_popup_default_timestring(_event_user_time()) :  _event_user_time()),
         '#weight' => -13,
         '#skip_validate' => TRUE,
         );
@@ -2219,6 +2226,21 @@ function event_form_alter(&$form, $form_
  * Special validate handler for the node form
  */
 function event_form_validate($form, &$form_state) {
+  //  If date_popup in use, set start_exploded and end_exploded  month,day,year,hour,minute,second
+  if (module_exists('date_popup')) {
+    $start_time_array = event_explode_date($form_state['values']['event']['start_exploded']);
+    $form_item['#parents'] = array('event', 'start_exploded');
+    form_set_value($form_item, $start_time_array , $form_state);
+    $form['event']['start_exploded']['#value'] = $start_time_array;
+
+    if ($form_state['values']['event']['has_end_date']) {
+      $form_item['#parents'] = array('event', 'end_exploded');
+      $end_time_array = event_explode_date($form_state['values']['event']['end_exploded']);
+      form_set_value($form_item, $end_time_array , $form_state);
+      $form['event']['end_exploded']['#value'] = $end_time_array;
+    }
+  }
+
   // If an end date is specified, it needs to be validated.
   if ($form_state['values']['event']['has_end_date']) {
     $form['event']['end_exploded']['#skip_validate'] = FALSE;
@@ -2267,6 +2289,11 @@ function event_pre_render(&$node) {
   if (!isset($node->event['end_utc'])) {
     $node->event['end_utc'] = event_date_later($node->event['end_exploded'], -1 * variable_get('date_default_timezone', 0), 'seconds');
   }
+  // if date_popup in use, set the date and time
+  if (module_exists('date_popup')) {
+    $node->event['start_exploded'] = _event_popup_date($node->event['start_exploded']);
+    $node->event['end_exploded'] = _event_popup_date($node->event['end_exploded']);
+  }
 }
 
 /**
@@ -2286,8 +2313,8 @@ function event_nodeapi(&$node, $op, $tea
         return array('event' => array(
                        'start'              => $object->event_start,
                        'end'                => $object->event_end,
-                       'start_exploded'     => event_explode_date($object->event_start),
-                       'end_exploded'       => event_explode_date($object->event_end),
+                       'start_exploded'     => module_exists('date_popup') ? _event_popup_date(event_explode_date($object->event_start)) : event_explode_date($object->event_start),
+                       'end_exploded'     => module_exists('date_popup') ? _event_popup_date(event_explode_date($object->event_end)) : event_explode_date($object->event_end),
                        'start_orig'         => $object->event_start,
                        'end_orig'           => $object->event_end,
                        'timezone'           => $object->timezone,
@@ -3362,3 +3389,35 @@ function event_schema_alter(&$schema) {
   );
 }
 
+/*
+ * Format event time array as popup time array 
+ *
+ * @param $time array (month,day,year,hour,minute,second)
+ *
+ * @return an array containing the popup time (date, time)
+*/
+function _event_popup_date($time) {
+	  $popup_time['date'] = 
+		$time['year'] . "-" . 
+		$time['month'] . "-" .	
+		$time['day'] ;	
+	  $popup_time['time'] = 
+		$time['hour'] . ":" .	
+		$time['minute'] . ":" .	
+		$time['second'] ;	
+	return $popup_time;
+}
+
+/*
+ * Format event time array as string YYYY-MM-DD HH:MM:SS 
+ *
+ * @param $time array (month,day,year,hour,minute,second)
+ *
+ * @return a string
+ */
+function _event_popup_default_timestring($time){
+   return $time['year'] . '-' . $time['month'] . '-' . $time['day'] .
+	' ' . $time['hour'] . ':' . $time['minute'] . ':' . $time['second'];
+}
+
+
