--- event.module	2009-03-11 13:53:12.000000000 -0400
+++ event-new.module	2009-03-11 13:53:05.000000000 -0400
@@ -2146,19 +2146,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,
         );
@@ -2220,6 +2227,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;
@@ -2268,6 +2290,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']);
+  }
 }
 
 /**
@@ -2287,8 +2314,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,
@@ -3363,14 +3390,35 @@ function event_schema_alter(&$schema) {
   );
 }
 
-/**
-* Implementation of hook_views_api().
+/*
+ * 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_views_api() {
-  return array(
-    'api' => 2,
-    'path' => drupal_get_path('module', 'event'),
-  );
+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'];
 }
 
 
