Index: ad.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/ad/ad.module,v
retrieving revision 1.2.2.29.2.83.2.16.2.36
diff -u -F '^f' -r1.2.2.29.2.83.2.16.2.36 ad.module
--- ad.module	23 Nov 2009 06:40:02 -0000	1.2.2.29.2.83.2.16.2.36
+++ ad.module	28 Nov 2009 20:19:15 -0000
@@ -934,7 +934,9 @@ function ad_nodeapi(&$node, $op, $teaser
         }
         $activated = $node->adstatus == 'active' ? time() : 0;
         $node->autoactivate = isset($node->autoactivate) ? trim($node->autoactivate) : 0;
+        $node->autoactivate = (is_numeric($node->autoactivate)) ? $node->autoactivate : strtotime($node->autoactivate);
         $node->autoexpire = isset($node->autoexpire) ? trim($node->autoexpire) : 0;
+        $node->autoexpire = (is_numeric($node->autoexpire)) ? $node->autoexpire : strtotime($node->autoexpire);
         if (!isset($node->maxviews)) {
           $node->maxviews = 0;
         }
@@ -950,7 +952,9 @@ function ad_nodeapi(&$node, $op, $teaser
       if (isset($node->adtype)) {
         $ad = db_fetch_object(db_query('SELECT * FROM {ads} WHERE aid = %d', $node->nid));
         $node->autoactivate = isset($node->autoactivate) ? trim($node->autoactivate) : 0;
+        $node->autoactivate = (is_numeric($node->autoactivate)) ? $node->autoactivate : strtotime($node->autoactivate);
         $node->autoexpire = isset($node->autoexpire) ? trim($node->autoexpire) : 0;
+        $node->autoexpire = (is_numeric($node->autoexpire)) ? $node->autoexpire : strtotime($node->autoexpire);
         // Ad must be in approved state to be able to autoactivate it.
         if ($node->adstatus != 'approved' && $node->autoactivate) {
           if ($node->adstatus == 'active') {
@@ -986,7 +990,28 @@ function ad_nodeapi(&$node, $op, $teaser
           ad_statistics_increment($node->nid, $node->adstatus);
         }
         // Update ads table with new information.
-        db_query("UPDATE {ads} SET uid = %d, adstatus = '%s', adtype = '%s', redirect = '%s', autoactivate = %d, autoexpire = %d, activated = %d, maxviews = %d, maxclicks = %d, expired = %d WHERE aid = %d", $node->uid, $node->adstatus, $node->adtype, url('ad/redirect/'. $node->nid, array('absolute' => TRUE)), $node->autoactivate ? strtotime($node->autoactivate) : '', $node->autoexpire ? strtotime($node->autoexpire) : '', isset($activated) ? $activated : 0, isset($node->maxviews) ? (int)$node->maxviews : 0, isset($node->maxclicks) ? (int)$node->maxclicks : 0, isset($expired) ? $expired : 0, $node->nid);
+        db_query("UPDATE {ads}
+                  SET uid = %d,
+                      adstatus = '%s',
+                      adtype = '%s',
+                      redirect = '%s',
+                      autoactivate = %d,
+                      autoexpire = %d,
+                      activated = %d,
+                      maxviews = %d,
+                      maxclicks = %d,
+                      expired = %d
+                  WHERE aid = %d",
+                  $node->uid,
+                  $node->adstatus,
+                  $node->adtype,
+                  url('ad/redirect/'. $node->nid, array('absolute' => TRUE)),
+                  $node->autoactivate,
+                  $node->autoexpire,
+                  isset($activated) ? $activated : 0,
+                  isset($node->maxviews) ? (int)$node->maxviews : 0,
+                  isset($node->maxclicks) ? (int)$node->maxclicks : 0,
+                  isset($expired) ? $expired : 0, $node->nid);
         ad_statistics_increment($node->nid, 'update');
       }
       break;
@@ -1015,14 +1040,14 @@ function ad_nodeapi(&$node, $op, $teaser
     case 'validate':
       $autoactivate = isset($node->autoactivate) ? trim($node->autoactivate) : '';
       if (!empty($autoactivate)) {
-        $timestamp = strtotime($autoactivate);
+        $timestamp = (is_numeric($autoactivate)) ? $autoactivate : strtotime($autoactivate);
         if ($timestamp <= 0) {
           form_set_error('autoactivate', 'Please select a valid time to automatically active this ad.');
         }
       }
       $autoexpire = isset($node->autoexpire) ? trim($node->autoexpire) : '';
       if (!empty($autoexpire)) {
-        $timestamp = strtotime($autoexpire);
+        $timestamp = (is_numeric($autoexpire)) ? $autoexpire : strtotime($autoexpire);
         if ($timestamp <= 0) {
           form_set_error('autoexpire', 'Please select a valid time to automatically expire this ad.');
         }
