kolab.org/www

Torsten Grote grote at kolabsys.com
Mon Jun 11 15:54:35 CEST 2012


 dev/null                                                                                     |binary
 kolab.org/www/drupal-6.26/sites/all/modules/date/CHANGELOG.txt                               |   36 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date.css                                    |   44 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.info                              |    6 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.install                           |   47 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.module                            |   93 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.theme                             |   47 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.views_convert.inc                 |   16 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_admin.inc                         |   62 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_content_generate.inc              |    4 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_elements.inc                      |   35 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_handler_field_multiple.inc        |   14 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_repeat.inc                        |   13 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_api.admin.inc                          |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_api.info                               |    6 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_api.install                            |   24 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_api.module                             |  261 +-
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_api_elements.inc                       |   36 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_api_formats_list.inc                   |   14 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_api_ical.inc                           |  353 +--
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_api_sql.inc                            |  107 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_locale/date_locale.info                |    6 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_locale/date_locale.module              |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4.inc                     |   68 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4.info                    |    6 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4_calc.inc                |   38 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4_lib.inc                 |   18 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4_missing_data.inc        |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4_tz_create.inc           | 1106 +++++-----
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/date_popup.info                  |    6 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/date_popup.install               |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/date_popup.js                    |    4 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/date_popup.module                |   93 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/lib/jquery.timeentry.pack.js     |    4 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat.info                |    6 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat.install             |    5 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat.module              |   14 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat_calc.inc            |   32 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat_form.inc            |   24 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_timezone/date_timezone.info            |    6 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_timezone/date_timezone.install         |   12 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_timezone/date_timezone.js              |   14 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_timezone/date_timezone.module          |   26 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_field.php                   |   72 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.change_type.inc       |   18 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.event.inc             |    6 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.info                  |    6 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.module                |    6 
 kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.wizard.inc            |   76 
 kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api.views.inc                 |   44 
 kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api.views_default.inc         |    5 
 kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api_argument_handler.inc      |   37 
 kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api_fields.inc                |   18 
 kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api_filter_handler.inc        |   64 
 kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_navigation_plugin_style.inc   |   15 
 kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_plugin_display_attachment.inc |   11 
 kolab.org/www/drupal-6.26/sites/all/modules/date/tests/date.test                             |   21 
 kolab.org/www/drupal-6.26/sites/all/modules/date/tests/date_api.test                         |   42 
 kolab.org/www/drupal-6.26/sites/all/modules/date/tests/date_repeat.test                      |   69 
 kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-navigation.tpl.php               |   24 
 kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-valarm.tpl.php                   |    7 
 kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-vcalendar.tpl.php                |    8 
 kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-vevent.tpl.php                   |    8 
 kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-views-filter-form.tpl.php        |   22 
 kolab.org/www/drupal-6.26/sites/all/modules/date/theme/theme.inc                             |   59 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/CHANGELOG.txt                              |   78 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/LICENSE.txt                                |  601 +++--
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds.info                                 |    6 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds.install                              |   21 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds.module                               |    7 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_fast_news/feeds_fast_news.info       |    6 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_fast_news/feeds_fast_news.test       |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_import/feeds_import.info             |    6 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_import/feeds_import.test             |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_news/feeds_news.info                 |    6 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_news/feeds_news.test                 |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_ui/feeds_ui.admin.inc                |   31 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_ui/feeds_ui.info                     |    6 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_ui/feeds_ui.test                     |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/includes/FeedsImporter.inc                 |   12 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/includes/FeedsSource.inc                   |    4 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/plugins/FeedsProcessor.inc                 |    4 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper.test                    |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_content.test            |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_content_taxonomy.test   |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_date.test               |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_email.test              |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_emfield.test            |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_filefield.test          |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_link.test               |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_locale.test             |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_og.test                 |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_profile.test            |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_taxonomy.test           |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_parser_sitemap.test            |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_parser_syndication.test        |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_processor_data.test            |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_processor_node.test            |   18 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_processor_term.test            |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_processor_user.test            |    2 
 kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_scheduler.test                 |    8 
 kolab.org/www/drupal-6.26/sites/all/modules/imagecache/INSTALL.txt                           |    3 
 kolab.org/www/drupal-6.26/sites/all/modules/imagecache/LICENSE.txt                           |  601 +++--
 kolab.org/www/drupal-6.26/sites/all/modules/imagecache/imagecache.info                       |    6 
 kolab.org/www/drupal-6.26/sites/all/modules/imagecache/imagecache.module                     |   19 
 kolab.org/www/drupal-6.26/sites/all/modules/imagecache/imagecache_ui.info                    |    6 
 106 files changed, 2677 insertions(+), 2166 deletions(-)

New commits:
commit 4e43ea0e126e5b41e16de7a660664e685c3a06a6
Author: Torsten Grote <grote at kolabsys.com>
Date:   Mon Jun 11 15:53:43 2012 +0200

    updated modules date, feeds and imagecache

diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/data-6.x-1.1.tar.gz.1 b/kolab.org/www/drupal-6.26/sites/all/modules/data-6.x-1.1.tar.gz.1
deleted file mode 100644
index 35719a2..0000000
Binary files a/kolab.org/www/drupal-6.26/sites/all/modules/data-6.x-1.1.tar.gz.1 and /dev/null differ
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/CHANGELOG.txt b/kolab.org/www/drupal-6.26/sites/all/modules/date/CHANGELOG.txt
index 79489fc..2748539 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/CHANGELOG.txt
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/CHANGELOG.txt
@@ -1,7 +1,39 @@
 Date Module 6.x
 =================
-Version 6.2-dev
-=================
+
+Version 6.2.8
+=============
+
+- Issue #1005968 by jcmarco, dnotes: Added Ajax for date navigation attachment views.
+- Issue #1545254, Use remember in filter only if a value exists.
+- Add a test for force_value to the code that checks the default value for the exposed filter. In some cases the relative value wasn't overriding a fixed value as it should have been doing.
+- Issue #1223956 by mikeytown2 and hyrcan, Fix undefined index in date_handler_fields().
+- Issue #1517548 by joachim, Fix incorrect documentation for date_default_timezone_name().
+- Issue #884310 by AlexisWilke, Postgres earlier than 8.3 needs different syntax in date update.
+- Issue #606658 by johnmunro and KarenS, Make sure ical import processes multi-day all-day events correctly.
+- Issue #1282538 by benjifisher, crifi, and KarenS, Make sure ical feed for all day events adds 1 day to the end date to comply with the spec.
+- Issue #1463438 by hyrcan, Fix some 5.3 notices.
+- Issue #1513396 by JoeMcGuire, Fix failing Date Popup test.
+- Clean up to eliminate PHP notices when running tests on PHP 5.3.
+- Issue #1408216 follow up, Need to be sure that NULL is the default state for the sql functions.
+- Issue #337666, Make sure the UNTIL date for repeating dates is inclusive.
+- Backport the D7 version of date_ical.ical.inc to D6 so we can keep D6 and D7 synched up more easily.
+- Issue #975320 by mvc, Add translation to jQuery date picker.
+- Issue #1408216, Remove remaining references to ->offset, which is no longer defined, nor needed. The timezone defaults should be properly set by date_views_set_timezone().
+- Issue #1408216 by technicalknockout, artkon, tangent: Fixed Events no longer appearing in calendar (regression introduced in Issue #1017866).
+- Issue #1360672, Fix limit format code to remove leftover non-ascii text as well as leftover ascii text.
+- Issue #1033856 by joachim: Fixed conflicting messages about jquery UI requirement.
+- Issue #1049992 by jjwhitney: Fixed Failed validation causes values to disappear when using popup widget.
+- Issue #436490 by kong, xjm: Fixed Add support for jQuery update to 1.3.x and jQuery UI 1.7.x.
+- Issue #1161814 by Scyther: Bad code in function date_field().
+- Issue #232954 by rho_, arlinsandbulte: Fixed text 'Empty 'To date' values will use the 'From date' values' is always visibl under the second row of selectboxes ('date - to').
+- Issue #536832 by aturetta: Fixed Date format types not translated in admin pages.
+- Issue #488078 by emmajane: Fixed Broken link.
+- Issue #1017216 by tim.plunkett, arlinsandbulte: Added custom date format without time shows 'all day'.
+- Issue #1407064 by nairb: Fixed undefined function drupal_substr_replace().
+- Issue #1162962 by mikeryan: Fixed E_STRICT notices in date_make_date().
+- Issue #554546 by master-of-magic: Fix Timezone list translation
+- Finally found why tests are failing on d.o. Some of the needed modules aren't getting set up in the test.
 
 Version 6.2.8
 =============
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date.css b/kolab.org/www/drupal-6.26/sites/all/modules/date/date.css
index b87bda1..2db7b32 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date.css
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date.css
@@ -129,27 +129,27 @@ span.date-display-separator {
   clear:both;
 }
 
-/* 	 
- ** Markup free clearing that fixes unwanted scrollbars 	 
- ** @see http://drupal.org/node/232959 	 
- */ 	 
- .date-clear-block:after { 	 
-   content: " "; 	 
-   display: block; 	 
-   height: 0; 	 
-   clear: both; 	 
-   visibility: hidden; 	 
- } 	 
- .date-clear-block { 	 
-   display: inline-block; 	 
- } 	 
- /* Hides from IE-mac \*/ 	 
- * html .date-clear-block { 	 
-   height: 1%; 	 
- } 	 
- .date-clear-block { 	 
-   display: block; 	 
- } 	 
+/*
+ ** Markup free clearing that fixes unwanted scrollbars
+ ** @see http://drupal.org/node/232959
+ */
+ .date-clear-block:after {
+   content: " ";
+   display: block;
+   height: 0;
+   clear: both;
+   visibility: hidden;
+ }
+ .date-clear-block {
+   display: inline-block;
+ }
+ /* Hides from IE-mac \*/
+ * html .date-clear-block {
+   height: 1%;
+ }
+ .date-clear-block {
+   display: block;
+ }
  /* End hide from IE-mac */
 
 .date-container .date-format-delete {
@@ -186,7 +186,7 @@ div.date-calendar-day {
   font-family: Georgia, Arial, Verdana, sans;
 }
 div.date-calendar-day span {
-  display: block;  
+  display: block;
   text-align: center;
 }
 div.date-calendar-day span.month {
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.info b/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.info
index a75a0a1..a0b8b51 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.info
@@ -5,9 +5,9 @@ dependencies[] = date_api
 dependencies[] = date_timezone
 package = Date/Time
 core = 6.x
-; Information added by drupal.org packaging script on 2012-01-11
-version = "6.x-2.8"
+; Information added by drupal.org packaging script on 2012-04-27
+version = "6.x-2.9"
 core = "6.x"
 project = "date"
-datestamp = "1326285938"
+datestamp = "1335549078"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.install b/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.install
index b07d7c5..e189efc 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.install
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.install
@@ -43,7 +43,7 @@ function date_update_last_removed() {
  * Granularity options were not saved correctly by CCK if created using checkboxes.
  * Checkboxes have been changed back to a select and we need to fix the values
  * stored in the settings.
- * 
+ *
  * The bad values would have been stored in the form
  *   array(
  *     'year' => 'year'
@@ -53,13 +53,13 @@ function date_update_last_removed() {
  *     'minute' => 0,
  *     'second' => 0,
  *   );
- * 
+ *
  * Good values would have been stored in the form
  *   array(
  *     'year' => 'year',
  *     'month' => 'month',
  *   );
- * 
+ *
  * This might or might not have gotten updated in D5.2,
  * we need to force it again in D6 just in case.
  *
@@ -162,9 +162,9 @@ function date_update_6003() {
       while ($row = db_fetch_array($result)) {
         $ret[] = update_sql("UPDATE {". $table ."} SET $column='". $row[$column] ."' WHERE nid=". $row['nid'] ." AND vid=". $row['vid']);
       }
-    }    
+    }
   }
-  return $ret;    
+  return $ret;
 }
 
 /**
@@ -181,11 +181,11 @@ function date_update_6004() {
       $settings['timezone_db'] = '';
       $settings = serialize($settings);
       db_query("UPDATE {". content_field_tablename() ."} SET global_settings='%s' WHERE field_name='%s'", $settings, $field['field_name']);
-    }    
+    }
   }
   drupal_set_message(t("The database has been updated to correct the stored timezone for fields using timezone 'none'."));
   content_clear_type_cache();
-  return $ret;    
+  return $ret;
 }
 
 function date_update_6005() {
@@ -206,16 +206,16 @@ function date_update_6005() {
   $ret = array();
 
   $new_map = array(
-    'short' => 'short', 
-    'medium' => 'medium', 
-    'long' => 'long', 
-    'time' => 'time', 
-    'time_timezone' => 'time_timezone', 
-    'iso' => 'iso', 
-    'timestamp' => 'timestamp', 
-    'ical' => 'ical', 
+    'short' => 'short',
+    'medium' => 'medium',
+    'long' => 'long',
+    'time' => 'time',
+    'time_timezone' => 'time_timezone',
+    'iso' => 'iso',
+    'timestamp' => 'timestamp',
+    'ical' => 'ical',
     'feed' => 'feed',
-  );  
+  );
 
   // Create new custom formats for each of these:
   date_install_create_format(NULL, t('Time'), 'time', date_limit_format(variable_get('date_format_short', 'm/d/Y - H:i'), array('hour', 'minute', 'second')));
@@ -242,7 +242,7 @@ function date_update_6005() {
     $new_setting = 'default_format';
 
     // Create a map of the old and new formats.
-    $map = $new_map;      
+    $map = $new_map;
 
     // If the field's long, medium, or short formats don't match the system
     // values, create custom format types for them.
@@ -293,7 +293,7 @@ function date_update_6005() {
         $map['default'] = 'short';
       }
       else {
-        // If all else fails, create a new format type 
+        // If all else fails, create a new format type
         // for the default format.
         $name = $field_name .'_default';
         date_install_create_format($field, NULL, $name, $default);
@@ -362,7 +362,7 @@ function date_update_6005() {
   }
   // Clear any caches that may have old formats in them.
   content_clear_type_cache();
-  drupal_set_message(t('Date display formats are now included with the system date and time settings. Please visit <a href="@date-time-page">the Date and time format page</a> to see the new format types.', array('@date-time-page' => base_path() .'admin/settings/date-time/formats')));
+  drupal_set_message(t('Date display formats are now included with the system date and time settings. Please visit <a href="@date-time-page">the Date and time format page</a> to see the new format types.', array('@date-time-page' => url('admin/settings/date-time/formats'))));
   return $ret;
 }
 
@@ -374,13 +374,13 @@ function date_install_create_format($field, $title, $name, $format) {
   if (empty($title)) {
     $type = str_replace($field['field_name'] .'_', '', $name);
     $field = $fields[$field['field_name']];
-    $title = $field['widget']['label'];  
+    $title = $field['widget']['label'];
   }
   variable_set('date_format_'. $name, $format);
   db_query("INSERT INTO {date_format_types} (type, title, locked) VALUES('%s', '%s', 0)", $name, $title);
   if (!db_result(db_query("SELECT dfid FROM {date_formats} WHERE format='%s' AND type='%s'", $format, $type))) {
-    db_query("INSERT INTO {date_formats} (format, type, locked) VALUES('%s', '%s', 0)", $format, 'custom'); 
-  } 
+    db_query("INSERT INTO {date_formats} (format, type, locked) VALUES('%s', '%s', 0)", $format, 'custom');
+  }
 }
 
 function date_db_integrity($name) {
@@ -453,4 +453,5 @@ function date_db_integrity($name) {
   }
   content_clear_type_cache();
   return $ret;
-}
\ No newline at end of file
+}
+
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.module b/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.module
index 6a3a019..902abe1 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.module
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.module
@@ -27,14 +27,14 @@ function date_menu() {
   }
   $items['node/%node/repeats'] = array(
     'title' => 'Repeats',
-    'page callback' => 'date_repeat_page', 
-    'page arguments' => array(1), 
-    'access callback' => 'date_repeat_node', 
+    'page callback' => 'date_repeat_page',
+    'page arguments' => array(1),
+    'access callback' => 'date_repeat_node',
     'access arguments' => array(1),
-    'type' => MENU_LOCAL_TASK, 
+    'type' => MENU_LOCAL_TASK,
   );
 
-  return $items;  
+  return $items;
 }
 
 function date_perm() {
@@ -106,7 +106,7 @@ function date_content_is_empty($item, $field) {
   if (empty($item['value'])) {
     return TRUE;
   }
-  elseif($field['todate'] == 'required' && empty($item['value2'])) {
+  elseif ($field['todate'] == 'required' && empty($item['value2'])) {
     return TRUE;
   }
   return FALSE;
@@ -269,7 +269,7 @@ function date_theme() {
       'arguments' => array('element' => NULL)),
     'date_all_day' => array(
       'arguments' => array(
-        'which' => NULL, 'date1' => NULL, 'date2' => NULL, 
+        'which' => NULL, 'date1' => NULL, 'date2' => NULL,
         'format' => NULL, 'node' => NULL, 'view' => NULL)),
     'date_all_day_label' => array(
       'arguments' => array()),
@@ -282,19 +282,19 @@ function date_theme() {
     'date' => array(
       'arguments' => array('element' => NULL)),
     'date_formatter_default' => $base + array(
-      'arguments' => array('element' => NULL), 
+      'arguments' => array('element' => NULL),
       'function' => 'theme_date_display_combination'),
     'date_formatter_format_interval' => $base + array(
-      'arguments' => array('element' => NULL), 
+      'arguments' => array('element' => NULL),
       'function' => 'theme_date_format_interval'),
     'date_formatter_format_calendar_day' => $base + array(
-      'arguments' => array('element' => NULL), 
+      'arguments' => array('element' => NULL),
       'function' => 'theme_date_format_calendar_day'),
     'date_repeat_display' => $base + array(
-      'arguments' => array('field' => NULL, 
+      'arguments' => array('field' => NULL,
       'item' => NULL, 'node' => NULL, 'dates' => NULL),
       'function' => 'theme_date_repeat_display',
-      ),  
+      ),
   );
 
   // Table isn't available first time date_theme() is called in update.php.
@@ -303,7 +303,7 @@ function date_theme() {
     if (!empty($format_types)) {
       foreach ($format_types as $type => $type_info) {
         $themes['date_formatter_' . $type] = $base + array(
-          'arguments' => array('element' => NULL), 
+          'arguments' => array('element' => NULL),
           'function' => 'theme_date_display_combination',
         );
       }
@@ -323,12 +323,12 @@ function date_theme() {
  *
  * @return array that holds the From and To date objects
  *  Each date object looks like:
- *       date [value] => array (
- *         [db] => array (  // the value stored in the database
+ *       date [value] => array(
+ *         [db] => array(  // the value stored in the database
  *           [object] => the datetime object
  *           [datetime] => 2007-02-15 20:00:00
  *         )
- *         [local] => array (  // the local representation of that value
+ *         [local] => array(  // the local representation of that value
  *           [object] => the datetime object
  *           [datetime] => 2007-02-15 14:00:00
  *           [timezone] => US/Central
@@ -382,7 +382,7 @@ function date_formatter_process($element) {
         }
         elseif ($format == 'format_calendar_day') {
            $dates[$processed]['calendar_day'] = date_format_calendar_day($date);
-        } 
+        }
         elseif ($format == 'U') {
           $dates[$processed]['formatted'] = date_format_date($date, 'custom', $format);
           $dates[$processed]['formatted_date'] = date_format_date($date, 'custom', $format);
@@ -394,7 +394,7 @@ function date_formatter_process($element) {
           $dates[$processed]['formatted_date'] = date_format_date($date, 'custom', date_limit_format($format, array('year', 'month', 'day')));
           $dates[$processed]['formatted_time'] = date_format_date($date, 'custom', date_limit_format($format, array('hour', 'minute', 'second')));
           $dates[$processed]['formatted_timezone'] = date_format_date($date, 'custom', date_limit_format($format, array('timezone')));
-        }  
+        }
       }
     }
   }
@@ -410,10 +410,10 @@ function date_formatter_process($element) {
     $all_day1 = theme('date_all_day', $field, 'date1', $date1, $date2, $format, $node);
     $all_day2 = theme('date_all_day', $field, 'date2', $date1, $date2, $format, $node);
   }
-  if ((!empty($all_day1) && $all_day1 != $dates['value']['formatted']) 
+  if ((!empty($all_day1) && $all_day1 != $dates['value']['formatted'])
   || (!empty($all_day2) && $all_day2 != $dates['value2']['formatted'])) {
     $dates['value']['formatted_time'] = theme('date_all_day_label');
-    $dates['value2']['formatted_time'] = theme('date_all_day_label'); 
+    $dates['value2']['formatted_time'] = theme('date_all_day_label');
     $dates['value']['formatted'] = $all_day1;
     $dates['value2']['formatted'] = $all_day2;
   }
@@ -483,29 +483,25 @@ function date_field($op, &$node, $field, &$items, $teaser, $page) {
     case 'load':
       return $additions;
       break;
-
     case 'validate':
       require_once('./'. drupal_get_path('module', 'date') .'/date_elements.inc');
       return _date_field_validate($op, $node, $field, $items, $teaser, $page);
       break;
-
     case 'presave':
     case 'insert':
     case 'update':
-      require_once('./'. drupal_get_path('module', 'date') .'/date_elements.inc');     
+      require_once('./'. drupal_get_path('module', 'date') .'/date_elements.inc');
       $items = $additions[$field['field_name']];
       if ($additions[$field['field_name']]) {
         $node->$field['field_name'] = $additions;
       }
       return _date_field_update($op, $node, $field, $items, $teaser, $page);
       break;
-
     case 'sanitize':
-      foreach ($items as $delta => $item) {
+      //foreach ($items as $delta => $item) {
         //$dates = date_formatter_process($field, $item, $node, $formatter);
         //$node->$field['field_name'][$delta]['dates'] = $dates;
-      }
-      break;
+      //}
   }
 }
 
@@ -600,8 +596,8 @@ function date_views_api() {
  */
 function date_prepare_node($node, $field, $type_name, $context, $options) {
 
-  // If there are options to limit multiple values, 
-  // alter the node values to match. 
+  // If there are options to limit multiple values,
+  // alter the node values to match.
   $field_name = $field['field_name'];
 
   $max_count = $options['multiple']['multiple_number'];
@@ -640,7 +636,7 @@ function date_prepare_node($node, $field, $type_name, $context, $options) {
           break;
         }
         elseif ((!empty($max_count) && is_numeric($max_count) && $count >= $max_count) ||
-        (!empty($value['value'])  && $value['value'] < $start) || 
+        (!empty($value['value'])  && $value['value'] < $start) ||
         (!empty($value['value2']) && $value['value2'] > $end)) {
           unset($node->{$field_name}[$delta]);
         }
@@ -659,22 +655,25 @@ function date_prepare_node($node, $field, $type_name, $context, $options) {
 function date_handler_fields($view) {
   $field_names = array();
   if (empty($view->date_info->date_fields)) {
+    if (empty($view->date_info)) {
+      $view->date_info = new stdClass;
+    }
     $view->date_info->date_fields = array();
   }
   foreach ($view->field as $field) {
     if ($field->definition['handler'] == 'date_handler_field_multiple') {
       $name = $field->field;
       $group = $field->options['multiple'];
-      if (substr($name, -7) == '_value2') {
-        $field_name = substr($name, 0, strlen($name) - 7);
+      if (drupal_substr($name, -7) == '_value2') {
+        $field_name = drupal_substr($name, 0, strlen($name) - 7);
       }
-      elseif (substr($name, -6) == '_value') {
-        $field_name = substr($name, 0, strlen($name) - 6);
+      elseif (drupal_substr($name, -6) == '_value') {
+        $field_name = drupal_substr($name, 0, strlen($name) - 6);
       }
       else {
         $field_name = '';
         $group = array();
-        continue; 
+        continue;
       }
       foreach ($view->date_info->date_fields as $date_field) {
         if (strstr($date_field, '.'. $field_name)) {
@@ -689,23 +688,23 @@ function date_handler_fields($view) {
   return $field_names;
 }
 
-/**                                                                            
- * Generate a DateAPI SQL handler for the given CCK date field.   
- * 
+/**
+ * Generate a DateAPI SQL handler for the given CCK date field.
+ *
  * The handler will be set up to make the correct timezone adjustments
- * for the field settings. 
- * 
+ * for the field settings.
+ *
  * @param $field
  *  - a $field array.
  * @param $compare_tz
- *  - the timezone used for comparison values in the SQL.             
+ *  - the timezone used for comparison values in the SQL.
  */
  function date_field_get_sql_handler($field, $compare_tz = NULL) {
    module_load_include('inc', 'date_api', 'date_api_sql');
 
    $db_info = content_database_info($field);
 
-   // Create a DateAPI SQL handler class for this field type.                    
+   // Create a DateAPI SQL handler class for this field type.
    $handler = new date_sql_handler();
    $handler->construct($field['type']);
 
@@ -722,9 +721,9 @@ function date_handler_fields($view) {
    }
    $handler->local_timezone = $compare_tz;
 
-  // Now that the handler is properly initialized, force the DB 
+  // Now that the handler is properly initialized, force the DB
   // to use UTC so no timezone conversions get added to things like
-  // NOW() or FROM_UNIXTIME().  
+  // NOW() or FROM_UNIXTIME().
   $handler->set_db_timezone();
 
   return $handler;
@@ -809,7 +808,7 @@ function date_content_display_form(&$form, &$form_state) {
     }
   }
   foreach ($form as $field_name => $element) {
-    if (substr($field_name, 0, 6) == 'field_') {
+    if (drupal_substr($field_name, 0, 6) == 'field_') {
       if (array_key_exists($field_name, $date_fields)) {
         $field = $date_fields[$field_name];
         foreach ($element as $context => $value) {
@@ -829,7 +828,7 @@ function date_content_display_form(&$form, &$form_state) {
 }
 
 /**
- * Store the formatter settings 
+ * Store the formatter settings
  * and reset the form back to the value CCK expects.
  */
 function date_formatter_settings_validate(&$form, &$form_state) {
@@ -856,7 +855,7 @@ function date_formatter_get_settings($field_name, $type_name, $context) {
   $options['multiple']['multiple_number'] = variable_get($value .'_multiple_number', '');
   $options['multiple']['multiple_from'] = variable_get($value .'_multiple_from', '');
   $options['multiple']['multiple_to'] = variable_get($value .'_multiple_to', '');
-  $options['fromto']['fromto'] = variable_get($value .'_fromto', 'both');  
+  $options['fromto']['fromto'] = variable_get($value .'_fromto', 'both');
   return $options;
 }
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.theme b/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.theme
index d7333b1..ddf1742 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.theme
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.theme
@@ -13,9 +13,9 @@
  * Theme from/to date combination in the view.
  *
  * Useful values:
- * 
- *   $node->date_id 
- *     If set, this will show only an individual date on a field with 
+ *
+ *   $node->date_id
+ *     If set, this will show only an individual date on a field with
  *     multiple dates. The value should be a string that contains
  *     the following values, separated with periods:
  *     - module name of the module adding the item
@@ -23,15 +23,15 @@
  *     - field name
  *     - delta value of the field to be displayed
  *     - other information the module's custom theme might need
- * 
+ *
  *     Used by the calendar module and available for other uses.
  *     example: 'date.217.field_date.3.test'
- * 
+ *
  *   $node->date_repeat_show
  *     If true, tells the theme to show all the computed values
  *     of a repeating date. If not true or not set, only the
  *     start date and the repeat rule will be displayed.
- * 
+ *
  *   $dates['format'] - the format string used on these dates
  *   $dates['value']['local']['object'] - the local date object for the From date
  *   $dates['value2']['local']['object'] - the local date object for the To date
@@ -76,7 +76,7 @@ function theme_date_display_combination($element) {
 
   // Check the formatter settings to see if the repeat rule should be
   // displayed. Show it only with the first multiple value date.
-  if (!in_array($node->nid, $repeating_ids) && module_exists('date_repeat') 
+  if (!in_array($node->nid, $repeating_ids) && module_exists('date_repeat')
   && !empty($item['rrule']) && $options['repeat']['show_repeat_rule'] == 'show') {
     require_once('./'. drupal_get_path('module', 'date') .'/date_repeat.inc');
     $output .= theme('date_repeat_display', $field, $item, $node);
@@ -96,21 +96,21 @@ function theme_date_display_combination($element) {
   }
 
   // Call the right theme for this formatter.
-  // Update the element with values that might have been altered by 
+  // Update the element with values that might have been altered by
   // date_prepare_node() and figure out which values to display.
   $dates = date_formatter_process($element);
   switch ($options['fromto']['fromto']) {
     case 'value':
       $date1 = $dates['value']['formatted'];
       $date2 = $date1;
-      break;    
+      break;
     case 'value2':
       $date2 = $dates['value2']['formatted'];
       $date1 = $date2;
       break;
     default:
       $date1 = $dates['value']['formatted'];
-      $date2 = $dates['value2']['formatted'];  
+      $date2 = $dates['value2']['formatted'];
       break;
   }
 
@@ -133,7 +133,7 @@ function theme_date_display_combination($element) {
   }
   // Same day, different times, don't repeat the date but show both From and To times.
   elseif (date_has_time($field['granularity']) && $dates['value']['formatted_date'] == $dates['value2']['formatted_date']) {
-    // Replace the original time with the from/to time in the formatted start date.  
+    // Replace the original time with the from/to time in the formatted start date.
     // Make sure that parentheses or brackets wrapping the time will be retained in the
     // final result.
     $time1 = preg_replace('`^([\(\[])`', '', $dates['value']['formatted_time']);
@@ -199,7 +199,7 @@ function theme_date_format_interval($element) {
   }
 
   // If this is not coming from Views, it is the full node.
-  // If we aren't retrieving a specific value, adjust the node values 
+  // If we aren't retrieving a specific value, adjust the node values
   // to match the formatter settings, removing values we should not see.
   if (!empty($node->content) && empty($node->date_id)) {
     $node = date_prepare_node($node, $field, $type_name, $context, $options);
@@ -252,18 +252,25 @@ function theme_date_all_day($field, $which, $date1, $date2, $format, $node, $vie
     $date2 = $date1;
   }
 
+  $suffix = '';
   if (!date_has_time($field['granularity'])) {
     $format = date_limit_format($format, array('year', 'month', 'day'));
-    return date_format_date($$which, 'custom', $format);
-  }
-
-  if ($all_day = date_field_all_day($field, $date1, $date2)) {
-    $format = date_limit_format($format, array('year', 'month', 'day'));
-    return trim(date_format_date($$which, 'custom', $format) .' '. theme('date_all_day_label'));
   }
   else {
-    return date_format_date($$which, 'custom', $format);
+    $format_granularity = date_format_order($format);
+    $format_has_time = FALSE;
+    if (in_array('hour', $format_granularity)) {
+      $format_has_time = TRUE;
+    }
+    $all_day = date_field_all_day($field, $date1, $date2);
+    if ($all_day && $format_has_time) {
+      $format = date_limit_format($format, array('year', 'month', 'day'));
+      $suffix = ' ' . theme('date_all_day_label');
+    }
   }
+
+  return trim(date_format_date($$which, 'custom', $format) . $suffix);
+
 }
 
 /**
@@ -272,4 +279,4 @@ function theme_date_all_day($field, $which, $date1, $date2, $format, $node, $vie
 function theme_date_all_day_label() {
   return '('. date_t('All day', 'datetime') .')';
 }
-/** @} End of addtogroup themeable */
\ No newline at end of file
+/** @} End of addtogroup themeable */
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.views_convert.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.views_convert.inc
index e065775..2420a72 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.views_convert.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date.views_convert.inc
@@ -29,42 +29,42 @@ function date_views_convert($display, $type, &$view, $field, $id = NULL) {
         $item = $view->get_item($display, 'filter', $id);
         switch ($date_fields[$field['field']]) {
           case 'default':
-            $field_name = substr($field['field'], 0, -14);
+            $field_name = drupal_substr($field['field'], 0, -14);
             $item['date_fields'] = array('node_data_'. $field_name .'.'. $field_name .'_value');
             $item['granularity'] = 'second';
             break;
           case 'year':
-            $field_name = substr($field['field'], 0, -11);
+            $field_name = drupal_substr($field['field'], 0, -11);
             $item['date_fields'] = array('node_data_'. $field_name .'.'. $field_name .'_value');
             $item['granularity'] = 'year';
             break;
           case 'month':
-            $field_name = substr($field['field'], 0, -12);
+            $field_name = drupal_substr($field['field'], 0, -12);
             $item['date_fields'] = array('node_data_'. $field_name .'.'. $field_name .'_value');
             $item['granularity'] = 'month';
             break;
           case 'day':
-            $field_name = substr($field['field'], 0, -10);
+            $field_name = drupal_substr($field['field'], 0, -10);
             $item['date_fields'] = array('node_data_'. $field_name .'.'. $field_name .'_value');
             $item['granularity'] = 'day';
             break;
           case 'to|default':
-            $field_name = substr($field['field'], 0, -17);
+            $field_name = drupal_substr($field['field'], 0, -17);
             $item['date_fields'] = array('node_data_'. $field_name .'.'. $field_name .'_value2');
             $item['granularity'] = 'second';
             break;
           case 'to|year':
-            $field_name = substr($field['field'], 0, -14);
+            $field_name = drupal_substr($field['field'], 0, -14);
             $item['date_fields'] = array('node_data_'. $field_name .'.'. $field_name .'_value2');
             $item['granularity'] = 'year';
             break;
           case 'to|month':
-            $field_name = substr($field['field'], 0, -15);
+            $field_name = drupal_substr($field['field'], 0, -15);
             $item['date_fields'] = array('node_data_'. $field_name .'.'. $field_name .'_value2');
             $item['granularity'] = 'month';
             break;
           case 'to|day':
-            $field_name = substr($field['field'], 0, -13);
+            $field_name = drupal_substr($field['field'], 0, -13);
             $item['date_fields'] = array('node_data_'. $field_name .'.'. $field_name .'_value2');
             $item['granularity'] = 'day';
             break;
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_admin.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_admin.inc
index 1f58511..ae2c916 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_admin.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_admin.inc
@@ -44,7 +44,7 @@ function _date_widget_settings($op, &$field) {
  * so do it in a custom function.
  */
 function date_widget_settings_validate(&$form, &$form_state) {
-  // TODO Not sure there is any limitation any more in this version. Need to check.  
+  // TODO Not sure there is any limitation any more in this version. Need to check.
   if ($form_state['values']['widget_type'] == 'date_popup') {
     // Only a limited set of formats is available for the Date Popup module
     if (!empty($form_state['values']['input_format_custom']) || !in_array($form_state['values']['input_format'], date_popup_formats())) {
@@ -255,11 +255,11 @@ function _date_field_settings($op, $field) {
       $db_info = content_database_info($field);
       $table_alias = content_views_tablename($field);
 
-      // Swap in the date multiple value handler for 
+      // Swap in the date multiple value handler for
       // CCK's regular multiple value handler.
       $data[$table_alias][$field['field_name'] .'_value']['field']['handler'] = 'date_handler_field_multiple';
 
-      // Unset the filter and argument handlers, dates can use the generic 
+      // Unset the filter and argument handlers, dates can use the generic
       // date argument and filter handlers created by the Date API.
       //unset($data[$table_alias][$field['field_name'] .'_value']['argument']);
       //unset($data[$table_alias][$field['field_name'] .'_value']['filter']);
@@ -329,7 +329,7 @@ function date_field_settings_form($field) {
   );
   // Make sure granularity is in the right format and has no empty values.
   if (!empty($field['granularity']) && is_array($field['granularity'])) {
-    $granularity = array_filter($field['granularity']);  
+    $granularity = array_filter($field['granularity']);
   }
   else {
     $granularity = array('year', 'month', 'day', 'hour', 'minute');
@@ -360,12 +360,12 @@ function date_field_settings_form($field) {
     '#multiple' => TRUE,
     '#description' => t('Set the date elements to be stored (at least a year is required).'),
     );
-  $format_types = array();  
+  $format_types = array();
   foreach (date_get_format_types('', TRUE) as $name => $info) {
     $format_types[$name] = $info['title'];
   }
   $form['default_format'] = array(
-    '#type' => 'select', 
+    '#type' => 'select',
     '#title' => t('Default Display'),
     '#default_value' => !empty($field['default_format']) ? $field['default_format'] : 'medium',
     '#options' => $format_types,
@@ -454,33 +454,33 @@ function date_example_date() {
 }
 
 /**
- * Helper function to create a field array with default values for a date 
+ * Helper function to create a field array with default values for a date
  * $field, based on field type, widget type, and timezone handling.
- * 
+ *
  * This function can be used to make it easier to create new date fields
  * in profiles or custom code.
- * 
+ *
  * @param $field_type
  *   Can be 'date', 'datestamp', or 'datetime'.
  * @param $widget_type
- *   Can be 'date_text', 'date_text_repeat', 'date_select', 
+ *   Can be 'date_text', 'date_text_repeat', 'date_select',
  *   'date_select_repeat', 'date_popup', 'date_popup_repeat'.
  * @param $tz_handling
  *   Can be 'site', 'date', 'utc', 'none', or 'user'.
  * @param $overrides
- *   An optional array of field/widget values that should 
+ *   An optional array of field/widget values that should
  *   override the normal defaults.
  */
 function date_field_default_values($field_type, $widget_type, $tz_handling, $overrides = array()) {
   module_load_include('inc', 'content', 'includes/content.crud');
   $repeat_widgets = array('date_select_repeat', 'date_text_repeat', 'date_popup_repeat');
 
-  $base_field_values = array (
+  $base_field_values = array(
     'field_name' => '',
     'type_name' => '',
     'multiple' => in_array($widget_type, $repeat_widgets) ? 1 : 0,
     'module' => 'date',
-    'granularity' => array (
+    'granularity' => array(
       'year' => 'year',
       'month' => 'month',
       'day' => 'day',
@@ -491,19 +491,19 @@ function date_field_default_values($field_type, $widget_type, $tz_handling, $ove
     'tz_handling' => $tz_handling,
     'todate' => 'optional',
     'repeat' => in_array($widget_type, $repeat_widgets) ? 1 : 0,
-    'repeat_collapsed' => 0, 
+    'repeat_collapsed' => 0,
     'default_format' => 'medium',
     );
-  $base_widget_values = array (
+  $base_widget_values = array(
     'label' => '',
     'default_value' => 'now',
-    'default_value_code' => '', 
+    'default_value_code' => '',
     'default_value2' => 'same',
-    'default_value_code2' => '', 
+    'default_value_code2' => '',
     'input_format' => date_default_format($widget_type),
-    'input_format_custom' => '', 
+    'input_format_custom' => '',
     'increment' => 1,
-    'text_parts' => array (),
+    'text_parts' => array(),
     'year_range' => '-3:+3',
     'label_position' => 'above',
     'weight' => 0,
@@ -549,7 +549,7 @@ function date_field_default_values($field_type, $widget_type, $tz_handling, $ove
     $field['widget'][$key] = $value;
   }
 
-  // Allow overrides of specific default values. 
+  // Allow overrides of specific default values.
   foreach ($overrides as $key => $value) {
     if ($key != 'widget') {
       $field[$key] = $value;
@@ -563,7 +563,7 @@ function date_field_default_values($field_type, $widget_type, $tz_handling, $ove
   // Make sure multiple gets set correctly for repeating dates.
   if ($field['repeat']) $field['multiple'] = 1;
 
-  // Reset columns and db_storage, which may need to be 
+  // Reset columns and db_storage, which may need to be
   // adjusted to the new values.
   $field['columns'] = date_columns($field);
   $field['db_storage'] = content_storage_type($field);
@@ -573,7 +573,7 @@ function date_field_default_values($field_type, $widget_type, $tz_handling, $ove
 
 /**
  * Formatter settings.
- * 
+ *
  * Form element used both in the date_handler_field_multiple Views handler
  * and on the CCK Display fields page.
  */
@@ -600,13 +600,13 @@ function _date_formatter_settings($form_state = NULL, $field, $options = array()
   $form['fromto']['fromto'] = array(
     '#type' => 'select',
     '#options' => array(
-      'both' => t('Display From and To dates'), 
-      'value' => t('Display From date only'), 
+      'both' => t('Display From and To dates'),
+      'value' => t('Display From date only'),
       'value2' => t('Display To date only'),
       ),
     '#default_value' => $default,
     '#weight' => 1,
-  );  
+  );
 
   $form['multiple'] = array(
     '#access' => $field['multiple'],
@@ -616,7 +616,7 @@ function _date_formatter_settings($form_state = NULL, $field, $options = array()
   // Make the string translatable by keeping it as a whole rather than
   // translating prefix and suffix separately.
   if (isset($options['multiple']) && isset($options['multiple']['multiple_number'])) {
-    $default = $options['multiple']['multiple_number'];    
+    $default = $options['multiple']['multiple_number'];
   }
   else {
     $default = '';
@@ -638,7 +638,7 @@ function _date_formatter_settings($form_state = NULL, $field, $options = array()
   }
 
   if (isset($options['multiple']) && isset($options['multiple']['multiple_from'])) {
-    $default = $options['multiple']['multiple_from'];    
+    $default = $options['multiple']['multiple_from'];
   }
   else {
     $default = '';
@@ -660,7 +660,7 @@ function _date_formatter_settings($form_state = NULL, $field, $options = array()
   }
 
   if (isset($options['multiple']) && isset($options['multiple']['multiple_to'])) {
-    $default = $options['multiple']['multiple_to'];    
+    $default = $options['multiple']['multiple_to'];
   }
   else {
     $default = '';
@@ -694,7 +694,7 @@ function _date_formatter_settings($form_state = NULL, $field, $options = array()
   $form['repeat']['show_repeat_rule'] = array(
     '#type' => 'select',
     '#options' => array(
-      'show' => t('Display repeat rule'), 
+      'show' => t('Display repeat rule'),
       'hide' => t('Hide repeat rule')),
     '#default_value' => $default,
   );
@@ -707,11 +707,11 @@ function _date_formatter_settings($form_state = NULL, $field, $options = array()
     $form['type_name'] = array(
       '#type' => 'value',
       '#value' => $type_name,
-      );  
+      );
     $form['context'] = array(
       '#type' => 'value',
       '#value' => $context,
-      );  
+      );
   }
   return $form;
 }
\ No newline at end of file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_content_generate.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_content_generate.inc
index 7be2ebc..4e1c6ac 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_content_generate.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_content_generate.inc
@@ -33,7 +33,7 @@ function _date_content_generate($node, $field) {
 	$start2 = drupal_clone($start);
 	$max = !empty($field['repeat']) ? 720 : 4320;
 	$max = 240;
-  date_modify($start2, '+'. mt_rand(60, $max) .' minutes');  
+  date_modify($start2, '+'. mt_rand(60, $max) .' minutes');
   date_increment_round($start2, $increment);
 
   if ($field['tz_handling'] == 'date') {
@@ -71,7 +71,7 @@ function _date_content_generate($node, $field) {
   $node_field['timezone'] = $timezone;
   $node_field['offset'] = date_offset_get($start);
   date_timezone_set($start2, timezone_open($timezone));
-  $node_field['offset2'] = date_offset_get($start2);     	 	
+  $node_field['offset2'] = date_offset_get($start2);
 
   if (!empty($field['repeat'])) {
     include_once('./'. drupal_get_path('module', 'date_repeat') .'/date_repeat_calc.inc');
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_elements.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_elements.inc
index 4cc07f2..273d8e2 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_elements.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_elements.inc
@@ -151,7 +151,7 @@ function _date_widget(&$form, &$form_state, &$field, $items, $delta = 0) {
       '#delta' => $delta,
       '#default_value' => $timezone,
       '#weight' => $field['widget']['weight'] + .2,
-      );  
+      );
   }
 
   // Add a date repeat form element, if needed.
@@ -287,7 +287,7 @@ function date_combo_process($element, $edit, &$form_state, $form) {
     '#date_label_position' => $field['widget']['label_position'],
     );
 
-  $description =  !empty($field['widget']['description']) ? t($field['widget']['description']) : ''; 
+  $description =  !empty($field['widget']['description']) ? t($field['widget']['description']) : '';
 
   // Give this element the right type, using a Date API
   // or a Date Popup element type.
@@ -295,7 +295,7 @@ function date_combo_process($element, $edit, &$form_state, $form) {
   switch ($field['widget']['type']) {
     case 'date_select':
     case 'date_select_repeat':
-      // From/to selectors with lots of parts will look better if displayed 
+      // From/to selectors with lots of parts will look better if displayed
       // on two rows instead of in a single row.
       if (!empty($field['todate']) && count($field['granularity']) > 3) {
         $element[$from_field]['#attributes'] = array('class' => 'date-clear');
@@ -303,7 +303,7 @@ function date_combo_process($element, $edit, &$form_state, $form) {
       $element[$from_field]['#type'] = 'date_select';
       break;
     case 'date_popup':
-    case 'date_popup_repeat':  
+    case 'date_popup_repeat':
       $element[$from_field]['#type'] = 'date_popup';
       break;
     default:
@@ -321,10 +321,15 @@ function date_combo_process($element, $edit, &$form_state, $form) {
     $element[$to_field] = $element[$from_field];
     $element[$to_field]['#title'] = t('To date');
     $element[$to_field]['#default_value'] = isset($element['#value'][$to_field]) ? $element['#value'][$to_field] : '';
-    $element[$to_field]['#required'] = false;
+    $element[$to_field]['#required'] = FALSE;
     $element[$to_field]['#weight'] += .1;
-    if ($field['widget']['type'] == 'date_select') {
-      $description .= ' '. t("Empty 'To date' values will use the 'From date' values.");
+    if (($field['widget']['type'] == 'date_select') && empty($description)) {
+      $description = t("Empty 'To date' values will use the 'From date' values.");
+    }
+    else {
+      if (trim($description) == "") {
+        $description = NULL;
+      }
     }
     $element['#fieldset_description'] = $description;
   }
@@ -443,10 +448,10 @@ function date_combo_validate($element, &$form_state) {
         }
       }
 
-      // If all date values were empty and a date is required, throw 
-      // an error on the first element. We don't want to create 
-      // duplicate messages on every date part, so the error will 
-      // only go on the first.  
+      // If all date values were empty and a date is required, throw
+      // an error on the first element. We don't want to create
+      // duplicate messages on every date part, so the error will
+      // only go on the first.
       if ($to_date_empty && $field['todate'] == 'required') {
         $errors[] = t('Some value must be entered in the To date.');
       }
@@ -506,9 +511,9 @@ function date_combo_validate($element, &$form_state) {
       // and we are using a date with time granularity,
       // test a roundtrip back to the original timezone to catch
       // invalid dates, like 2AM on the day that spring daylight savings
-      // time begins in the US.  
+      // time begins in the US.
       $granularity = date_format_order($element[$from_field]['#date_format']);
-      if ($timezone != $db_timezone && date_has_time($granularity)) {
+      if ($timezone != $timezone_db && date_has_time($granularity)) {
         date_timezone_set($from_date, timezone_open($timezone));
         date_timezone_set($to_date, timezone_open($timezone));
 
@@ -530,7 +535,7 @@ function date_combo_validate($element, &$form_state) {
       form_set_error($error_field, t('There are errors in @field_name value #@delta:', array('@field_name' => $field['widget']['label'], '@delta' => $delta + 1)) . theme('item_list', $errors));
     }
     else {
-      form_set_error($error_field, t('There are errors in @field_name:', array('@field_name' => $field['widget']['label'])) . theme('item_list', $errors));      
+      form_set_error($error_field, t('There are errors in @field_name:', array('@field_name' => $field['widget']['label'])) . theme('item_list', $errors));
     }
   }
 }
@@ -543,7 +548,7 @@ function date_widget_validate($element, &$form_state) {
   if (module_exists('date_repeat') && $field['repeat'] == 1) {
     module_load_include('inc', 'date', 'date_repeat');
     return _date_repeat_widget_validate($element, $form_state);
-  }  
+  }
 }
 
 /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_handler_field_multiple.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_handler_field_multiple.inc
index 570bb8a..7cec65b 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_handler_field_multiple.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_handler_field_multiple.inc
@@ -15,7 +15,7 @@ class date_handler_field_multiple extends content_handler_field_multiple {
       'contains' => array(
         'show_repeat_rule' => array('default' => ''),
       )
-    );  
+    );
     $options['multiple'] = array(
       'contains' => array(
         'group' => array('default' => TRUE),
@@ -30,7 +30,7 @@ class date_handler_field_multiple extends content_handler_field_multiple {
       )
     );
 
-    return $options;  
+    return $options;
   }
 
   /**
@@ -45,7 +45,7 @@ class date_handler_field_multiple extends content_handler_field_multiple {
     $options = $this->options;
 
     $form += date_formatter_settings($form_state, $field, $options, TRUE);
-    $form['multiple']['#weight']  = 1;   
+    $form['multiple']['#weight']  = 1;
     $form['multiple']['group'] = array(
       '#title' => t('Group multiple values'),
       '#type' => 'checkbox',
@@ -54,7 +54,7 @@ class date_handler_field_multiple extends content_handler_field_multiple {
     );
   }
 
-  function pre_render($values) {
+  function pre_render(&$values) {
 
     // If there are no values to render (displaying a summary, or query returned no results),
     // or if this is not a grouped field, do nothing specific.
@@ -91,7 +91,7 @@ class date_handler_field_multiple extends content_handler_field_multiple {
       $query_fields[] = "$alias.$attributes[column]";
     }
     // Retrieve all values, we limit them in date_prepare_node(),
-    // a function that is used both by the handler and by the 
+    // a function that is used both by the handler and by the
     // node theme to take advantage of formatter settings.
     $where = array('1');
     $query = 'SELECT '. implode(', ', $query_columns) .
@@ -116,7 +116,7 @@ class date_handler_field_multiple extends content_handler_field_multiple {
 
     // By this time $values is a pseudo node that will be passed
     // to the theme. Add view information to it.
-    $values->date_info = !empty($this->view->date_info) ? $this->view->date_info : new StdClass();
+    $values->date_info = !empty($this->view->date_info) ? $this->view->date_info : new stdClass();
     $values->date_info->date_handler_fields = date_handler_fields($this->view);
 
     // Add the formatter settings to the pseudo node.
@@ -178,7 +178,7 @@ class date_handler_field_multiple extends content_handler_field_multiple {
       }
     }
 
-    return '';    
+    return '';
 
   }
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_repeat.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_repeat.inc
index a80d83b..12607b6 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_repeat.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date/date_repeat.inc
@@ -102,7 +102,7 @@ function _date_repeat_widget_validate($element, &$form_state) {
       if (empty($item[$key])) {
         $item[$key] = '';
       }
-    }    
+    }
     $value = date_repeat_build_dates($rrule, $values, $field, $item);
     form_set_value($element, $value, $form_state);
   }
@@ -121,7 +121,6 @@ function _date_repeat_widget_validate($element, &$form_state) {
  * whichever is missing will be created when needed.
  */
 function date_repeat_build_dates($rrule = NULL, $rrule_values = NULL, $field, $item) {
-
   module_load_include('inc', 'date_api', 'date_api_ical');
   $field_name = $field['field_name'];
 
@@ -150,8 +149,10 @@ function date_repeat_build_dates($rrule = NULL, $rrule_values = NULL, $field, $i
   }
   $duration = date_difference($start, $end);
   $start_datetime = date_format($start, DATE_FORMAT_DATETIME);
-
   if (!empty($rrule_values['UNTIL']['datetime'])) {
+    if (strlen($form_values['UNTIL']['datetime']) < 11) {
+      $rrule_values['UNTIL']['datetime'] .= ' 23:59:59';
+    }
     $end = date_ical_date($rrule_values['UNTIL'], $timezone);
     $end_datetime = date_format($end, DATE_FORMAT_DATETIME);
   }
@@ -168,6 +169,9 @@ function date_repeat_build_dates($rrule = NULL, $rrule_values = NULL, $field, $i
   $parsed_exceptions = (array) $parts[1];
   $exceptions = array();
   foreach ($parsed_exceptions as $exception) {
+    if (strlen($exception['datetime']) < 11) {
+      $exception['datetime'] .= ' 00:00:00';
+    }
     $date = date_ical_date($exception, $timezone);
     $exceptions[] = date_format($date, 'Y-m-d');
   }
@@ -175,6 +179,9 @@ function date_repeat_build_dates($rrule = NULL, $rrule_values = NULL, $field, $i
   $parsed_rdates = (array) $parts[2];
   $additions = array();
   foreach ($parsed_rdates as $rdate) {
+    if (strlen($rdate['datetime']) < 11) {
+      $rdate['datetime'] .= ' 00:00:00';
+    }
     $date = date_ical_date($rdate, $timezone);
     $additions[] = date_format($date, 'Y-m-d');
   }
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api.admin.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api.admin.inc
index ebaddb5..affd619 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api.admin.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api.admin.inc
@@ -231,7 +231,7 @@ function date_api_date_format_select_field(&$form, $type, $type_info, $default,
     // then closing it below.
     '#suffix' => ($show_remove == 1 && $type_info['locked'] == 0) ? '</div>' : '</div></div>',
     '#type' => 'select',
-    '#title' => t('!type date format', array('!type' => $type_info['title'])),
+    '#title' => t('!type date format', array('!type' => t($type_info['title']))),
     '#attributes' => array('class' => 'date-format'),
     '#default_value' => (isset($choices[$default]) ? $default : 'custom'),
     '#options' => $choices,
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api.info b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api.info
index ee327a1..b0821e6 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api.info
@@ -3,9 +3,9 @@ description = A Date API that can be used by other modules.
 package = Date/Time
 core = 6.x
 
-; Information added by drupal.org packaging script on 2012-01-11
-version = "6.x-2.8"
+; Information added by drupal.org packaging script on 2012-04-27
+version = "6.x-2.9"
 core = "6.x"
 project = "date"
-datestamp = "1326285938"
+datestamp = "1335549078"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api.install b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api.install
index cf9e94b..53bc5fa 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api.install
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api.install
@@ -6,7 +6,7 @@ function date_api_set_variables() {
   // a year less than 0 would result in negative ISO and DATETIME dates,
   // like -1250-01-01T00:00:00, which probably won't make sense or work
   // correctly anywhere.
-  // 
+  //
   // The odd construct of using variable_get() instead of variable_set()
   // is so we don't accidentally write over an existing value. If
   // no value is set, variable_get() will set it.
@@ -31,7 +31,7 @@ function date_api_set_variables() {
   // Otherwise, many functions would use 'UTC' incorrectly and
   // produce unreliable and odd results. This way functions can test for a
   // value and not use this if it is empty.
-  // 
+  //
   // The odd construct of using variable_get() instead of variable_set()
   // is so we don't accidentally write over an existing value. If
   // no value is set, variable_get() will set it to NULL.
@@ -161,7 +161,7 @@ function date_api_install() {
   $ret = array();
   db_add_field($ret, "users", "timezone_name", array('type' => 'varchar', 'length' => 50, 'not null' => TRUE, 'default' => ''));
 
-  // Make sure MYSQL does not stupidly do case-insensitive 
+  // Make sure MYSQL does not stupidly do case-insensitive
   // searches and indexes on our formats.
   // @see http://pure.rednoize.com/2006/11/26/mysql-collation-matters-when-using-unique-indexes/
   // @see http://jjinux.blogspot.com/2009/03/mysql-case-sensitivity-hell.html
@@ -184,7 +184,7 @@ function date_api_enable() {
   // When module is enabled, build the list of date formats and types.  This
   // includes those provided by this module and other contrib modules.  As the
   // date_format tables are created but the schema hasn't been updated, force
-  // a refresh so we can use the schema API. 
+  // a refresh so we can use the schema API.
   drupal_get_schema('', TRUE);
   // Ensure schema has been installed - order of things gets out of sync because
   // date_api_set_variables() in date_api_install() enables the 'date_timezone'
@@ -218,7 +218,7 @@ function date_api_uninstall() {
 
   if (db_table_exists('views_display')) {
     $displays = array(
-      'date_nav', 
+      'date_nav',
     );
     db_query("DELETE FROM {views_display} WHERE display_plugin IN ('". implode("','", $displays) ."')");
     db_query("DELETE FROM {cache_views}");
@@ -302,7 +302,7 @@ function date_api_update_6001() {
   }
   if (db_table_exists('views_object_cache')) {
     db_query('DELETE FROM {views_object_cache}');
-  }    
+  }
   db_query("DELETE FROM {cache} where cid LIKE 'theme_registry%'");
   return $ret;
 }
@@ -415,7 +415,7 @@ function date_api_update_6003() {
  * The "date_format" table is missing on boxes having MySQL 5.0.67 installed.
  * There seems to be a bug in MySQL that prevents the creation of tables with
  * a name "date_format" and indexes with the name "format".
- * 
+ *
  * We rename the table and index as a workaround.
  */
 function date_api_update_6004() {
@@ -464,18 +464,18 @@ function date_api_update_6004() {
     db_drop_unique_key($ret, 'date_format', 'format');
     if (db_table_exists('date_formats')) {
       db_drop_table($ret, 'date_format');
-    } 
+    }
     else {
       db_rename_table($ret, 'date_format', 'date_formats');
       db_add_unique_key($ret, 'date_formats', 'formats', array('format', 'type'));
-    }    
+    }
   }
 
-  return $ret;  
+  return $ret;
 }
 
 /**
- * Make sure MYSQL does not stupidly do case-insensitive 
+ * Make sure MYSQL does not stupidly do case-insensitive
  * searches and indexes on our formats.
  * @see http://pure.rednoize.com/2006/11/26/mysql-collation-matters-when-using-unique-indexes/
  * @see http://jjinux.blogspot.com/2009/03/mysql-case-sensitivity-hell.html
@@ -501,7 +501,7 @@ function date_api_update_6006() {
   global $db_type;
   $ret = array();
   if ($db_type == 'pgsql' && db_table_exists('date_format_dfid_seq')) {
-    $sql = "ALTER SEQUENCE {date_format}_dfid_seq RENAME TO {date_formats}_dfid_seq";
+    $sql = "ALTER TABLE {date_format}_dfid_seq RENAME TO {date_formats}_dfid_seq";
     $ret[] = update_sql($sql);
   }
   return $ret;
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api.module b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api.module
index 047b2ce..680033d 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api.module
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api.module
@@ -43,7 +43,7 @@ define('DATE_REGEX_ICAL_DATETIME', '/(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})
 function date_api_init() {
   if (function_exists('date_default_timezone_set')) {
     date_default_timezone_set(date_default_timezone_name());
-  }  
+  }
   drupal_add_css(drupal_get_path('module', 'date_api')  .'/date.css');
 
 }
@@ -256,7 +256,7 @@ function date_week_days_abbr($required = FALSE, $refresh = TRUE, $length = 3) {
       break;
     default:
       $context = 'day_abbr';
-      break; 
+      break;
   }
   foreach (date_week_days_untranslated() as $key => $day) {
     $weekdays[$key] = date_t($day, $context);
@@ -436,10 +436,10 @@ function date_api_date_format_types() {
  */
 function date_format_patterns($strict = FALSE) {
   return array(
-    'd' => '\d{'. ($strict ? '2' : '1,2') .'}', 
-    'm' => '\d{'. ($strict ? '2' : '1,2') .'}', 
-    'h' => '\d{'. ($strict ? '2' : '1,2') .'}',      
-    'H' => '\d{'. ($strict ? '2' : '1,2') .'}',   
+    'd' => '\d{'. ($strict ? '2' : '1,2') .'}',
+    'm' => '\d{'. ($strict ? '2' : '1,2') .'}',
+    'h' => '\d{'. ($strict ? '2' : '1,2') .'}',
+    'H' => '\d{'. ($strict ? '2' : '1,2') .'}',
     'i' => '\d{'. ($strict ? '2' : '1,2') .'}',
     's' => '\d{'. ($strict ? '2' : '1,2') .'}',
     'j' => '\d{1,2}',    'N' => '\d',      'S' => '\w{2}',
@@ -465,11 +465,11 @@ function date_format_patterns($strict = FALSE) {
  */
 function date_granularity_names() {
   return array(
-    'year' => date_t('Year', 'datetime'), 
-    'month' => date_t('Month', 'datetime'), 
+    'year' => date_t('Year', 'datetime'),
+    'month' => date_t('Month', 'datetime'),
     'day' => date_t('Day', 'datetime'),
-    'hour' => date_t('Hour', 'datetime'), 
-    'minute' => date_t('Minute', 'datetime'), 
+    'hour' => date_t('Hour', 'datetime'),
+    'minute' => date_t('Minute', 'datetime'),
     'second' => date_t('Second', 'datetime'),
     );
 }
@@ -482,12 +482,12 @@ function date_granularity_sorted($granularity) {
 }
 
 /**
- * Give a granularity $precision, return an array of 
+ * Give a granularity $precision, return an array of
  * all the possible granularity elements.
  */
 function date_granularity_array_from_precision($precision) {
   $granularity_array = array('year', 'month', 'day', 'hour', 'minute', 'second');
-  switch(($precision)) {
+  switch (($precision)) {
     case 'year':
       return array_slice($granularity_array, -6);
     case 'month':
@@ -521,18 +521,18 @@ function date_granularity_format($granularity) {
   $format = 'Y-m-d H:i:s';
   switch ($granularity) {
     case 'year':
-      return substr($format, 0, 1);
+      return drupal_substr($format, 0, 1);
     case 'month':
-      return substr($format, 0, 3);
+      return drupal_substr($format, 0, 3);
     case 'day':
-      return substr($format, 0, 5);
+      return drupal_substr($format, 0, 5);
     case 'hour';
-      return substr($format, 0, 7);
+      return drupal_substr($format, 0, 7);
     case 'minute':
-      return substr($format, 0, 9);
+      return drupal_substr($format, 0, 9);
     default:
       return $format;
-  } 
+  }
 }
 
 /**
@@ -552,18 +552,18 @@ function date_timezone_names($required = FALSE, $refresh = FALSE) {
     if ($refresh || empty($cached) || empty($zonenames)) {
       $data = timezone_identifiers_list();
       asort($data);
-      // Use include instead of include once in case the function gets 
+      // Use include instead of include once in case the function gets
       // refreshed via devel or other API and is called more than once.
       if (module_exists('date_php4')) {
         include('./'. drupal_get_path('module', 'date_php4') .'/date_php4_missing_data.inc');
       }
       foreach ($data as $delta => $zone) {
-        // Because many time zones exist in PHP only for backward 
-        // compatibility reasons and should not be used, the list is 
+        // Because many time zones exist in PHP only for backward
+        // compatibility reasons and should not be used, the list is
         // filtered by a regular expression.
         if (preg_match('!^((Africa|America|Antarctica|Arctic|Asia|Atlantic|Australia|Europe|Indian|Pacific)/|UTC$)!', $zone)) {
           $zonenames[$zone] = $zone;
-        }      
+        }
       }
       // If using PHP4, filter the list down to only the timezones
       // the PHP4 wrapper has data for.
@@ -573,7 +573,7 @@ function date_timezone_names($required = FALSE, $refresh = FALSE) {
         }
       }
 
-      // If using Event, further filter the list down to only 
+      // If using Event, further filter the list down to only
       // zones that exist in the event module.
       if (module_exists('event') && db_table_exists('event_timezones')) {
         $result = db_query("SELECT name FROM {event_timezones} ORDER BY name");
@@ -592,7 +592,7 @@ function date_timezone_names($required = FALSE, $refresh = FALSE) {
       }
     }
     foreach ($zonenames as $zone) {
-      $zonenames[$zone] = t('!timezone', array('!timezone' => $zone));
+      $zonenames[$zone] = t('!timezone', array('!timezone' => t($zone)));
     }
   }
   $none = array('' => '');
@@ -619,10 +619,10 @@ function date_timezone_abbr($refresh = FALSE) {
 
 /**
  * A function to translate ambiguous short date strings.
- * 
- * Example: Pass in 'Monday', 'day_abbr' and get the translated 
+ *
+ * Example: Pass in 'Monday', 'day_abbr' and get the translated
  * abbreviation for Monday.
- * 
+ *
  * @param string $string
  * @param string $context
  * @param int $langcode
@@ -640,30 +640,30 @@ function date_t($string, $context, $langcode = NULL) {
     case 'day_name':
     case 'day_abbr':
     case 'day_abbr1':
-    case 'day_abbr2':  
+    case 'day_abbr2':
       $untranslated = array_flip(date_week_days_untranslated());
       break;
     case 'month_name':
     case 'month_abbr':
       $untranslated = array_flip(date_month_names_untranslated());
-      break;  
+      break;
     case 'ampm':
-      $untranslated = array_flip(array('am', 'pm', 'AM', 'PM'));  
+      $untranslated = array_flip(array('am', 'pm', 'AM', 'PM'));
       break;
     case 'datetime':
-      $untranslated = array_flip(array('Year', 'Month', 'Day', 'Week', 'Hour', 'Minute', 'Second', 'All Day', 'All day'));  
+      $untranslated = array_flip(array('Year', 'Month', 'Day', 'Week', 'Hour', 'Minute', 'Second', 'All Day', 'All day'));
       break;
     case 'datetime_plural':
-      $untranslated = array_flip(array('Years', 'Months', 'Days', 'Weeks', 'Hours', 'Minutes', 'Seconds'));  
+      $untranslated = array_flip(array('Years', 'Months', 'Days', 'Weeks', 'Hours', 'Minutes', 'Seconds'));
       break;
     case 'date_order':
-      $untranslated = array_flip(array('Every', 'First', 'Second', 'Third', 'Fourth', 'Fifth'));  
+      $untranslated = array_flip(array('Every', 'First', 'Second', 'Third', 'Fourth', 'Fifth'));
       break;
     case 'date_order_reverse':
-      $untranslated = array_flip(array('', 'Last', 'Next to last', 'Third from last', 'Fourth from last', 'Fifth from last'));  
+      $untranslated = array_flip(array('', 'Last', 'Next to last', 'Third from last', 'Fourth from last', 'Fifth from last'));
       break;
     case 'date_nav':
-      $untranslated = array_flip(array('Prev', 'Next', 'Today'));  
+      $untranslated = array_flip(array('Prev', 'Next', 'Today'));
       break;
   }
   $pos = $untranslated[$string];
@@ -672,7 +672,7 @@ function date_t($string, $context, $langcode = NULL) {
 
 /**
  * Construct translation arrays from pipe-delimited strings.
- * 
+ *
  * Combining these strings into a single t() gives them the context needed
  * for better translation.
  */
@@ -735,7 +735,7 @@ function date_format_date($date, $type = 'medium', $format = '', $langcode = NUL
     default:
       $format = variable_get('date_format_medium', 'D, m/d/Y - H:i');
   }
-  $max = strlen($format);
+  $max = drupal_strlen($format);
   $datestring = '';
   for ($i = 0; $i < $max; $i++) {
     $c = $format[$i];
@@ -750,15 +750,15 @@ function date_format_date($date, $type = 'medium', $format = '', $langcode = NUL
         break;
       case 'F':
         $datestring .= date_t(date_format($date, 'F'), 'month_name', $langcode);
-        break;  
+        break;
       case 'M':
         $datestring .= date_t(date_format($date, 'F'), 'month_abbr', $langcode);
-        break;  
+        break;
       case 'A':
       case 'a':
         $datestring .= date_t(date_format($date, $c), 'ampm', $langcode);
-        break;  
-      // The timezone name translations can use t().  
+        break;
+      // The timezone name translations can use t().
       case 'e':
       case 'T':
         $datestring .= t(date_format($date, $c));
@@ -772,7 +772,7 @@ function date_format_date($date, $type = 'medium', $format = '', $langcode = NUL
         break;
       case 'Z':
         $datestring .= date_offset_get($date);
-        break;              
+        break;
       case '\\':
         $datestring .= $format[++$i];
         break;
@@ -800,14 +800,14 @@ function date_format_date($date, $type = 'medium', $format = '', $langcode = NUL
  */
 function date_format_interval($date, $granularity = 2) {
   // If no date is sent, then return nothing
-  if (empty($date)){
+  if (empty($date)) {
     return NULL;
   }
 
   $interval = time() - date_format($date, 'U');
-  if($interval > 0 ) {
+  if ($interval > 0 ) {
     return t('!time ago', array('!time' => format_interval($interval, $granularity)));
-  } 
+  }
   else {
     return format_interval(abs($interval), $granularity);
   }
@@ -863,7 +863,8 @@ function date_make_date($date, $timezone = NULL, $type = DATE_DATETIME, $granula
   }
 
   // Special handling for partial dates that don't need precision.
-  $max_granularity = array_pop(date_granularity_sorted($granularity));
+  $granularity_sorted = date_granularity_sorted($granularity);
+  $max_granularity = end($granularity_sorted);
   if (in_array($max_granularity, array('year', 'month')) || $type == DATE_ISO || $type == DATE_ARRAY) {
     if ($type == DATE_UNIX) {
       $date = date_convert($date, $type, DATE_DATETIME);
@@ -918,7 +919,7 @@ function date_default_timezone_name($check_user = TRUE) {
 /**
  * A timezone object for the default timezone.
  *
- * @return a timezone name
+ * @return a timezone object
  *   Identify the default timezone for a user, if available, otherwise the site.
  */
 function date_default_timezone($check_user = TRUE) {
@@ -949,7 +950,7 @@ function date_days_in_year($date = NULL, $type = DATE_OBJECT) {
   }
   if (!is_object($date)) {
     $date = date_convert($date, $type, DATE_OBJECT);
-  }  
+  }
   if (is_object($date)) {
     if (date_format($date, 'L')) {
       return 366;
@@ -976,7 +977,7 @@ function date_iso_weeks_in_year($date = NULL, $type = DATE_OBJECT) {
   }
   if (!is_object($date)) {
     $date = date_convert($date, $type, DATE_OBJECT);
-  }  
+  }
   if (is_object($date)) {
     date_date_set($date, date_format($date, 'Y'), 12, 28);
     return date_format($date, 'W');
@@ -1078,8 +1079,8 @@ function date_difference($date1_in, $date2_in, $measure = 'seconds', $type = DAT
           $item_diff = 12 - $item1;
           $item_diff += intval(($year_diff - 1) * 12);
           return $item_diff + $item2;
-       }
-       break;
+        }
+        break;
 
       case 'days':
         $format = 'z';
@@ -1095,8 +1096,8 @@ function date_difference($date1_in, $date2_in, $measure = 'seconds', $type = DAT
             $item_diff += date_days_in_year($date1);
           }
           return $item_diff + $item2;
-       }
-       break;
+        }
+        break;
 
       case 'weeks':
         $week_diff = date_format($date2, 'W') - date_format($date1, 'W');
@@ -1166,7 +1167,7 @@ function date_iso_week_range($week, $year) {
 
 /**
  * The number of calendar weeks in a year.
- * 
+ *
  * PHP week functions return the ISO week, not the calendar week.
  *
  * @param int $year
@@ -1180,14 +1181,14 @@ function date_weeks_in_year($year) {
 
 /**
  * The calendar week number for a date.
- * 
+ *
  * PHP week functions return the ISO week, not the calendar week.
  *
  * @param string $date, in the format Y-m-d
  * @return int calendar week number.
  */
 function date_week($date) {
-  $date = substr($date, 0, 10);
+  $date = drupal_substr($date, 0, 10);
   $parts = explode('-', $date);
   $date = date_make_date($date . ' 12:00:00', 'UTC');
 
@@ -1206,8 +1207,8 @@ function date_week($date) {
     $last_date = drupal_clone($date);
     date_modify($last_date, '-7 days');
     $week = date_format($last_date, 'W') + 1;
-  } 
-  else if ($date_year < intval($parts[0])) {
+  }
+  elseif ($date_year < intval($parts[0])) {
     $week = 0;
   }
 
@@ -1249,6 +1250,12 @@ function date_convert($date, $from_type, $to_type, $tz = 'UTC') {
   switch ($from_type) {
     case DATE_ARRAY:
       if (!is_array($date)) return NULL;
+      // Make sure all parts exist to avoid PHP notices.
+      foreach (array('month', 'day', 'hour', 'minute', 'second') as $part) {
+        if (!isset($date[$part])) {
+          $date[$part] = '';
+        }
+      }
       if (isset($date['ampm'])) {
         if ($date['ampm'] == 'pm' && $date['hour'] < 12) $date['hour'] += 12;
         if ($date['ampm'] == 'am' && $date['hour'] == 12) $date['hour'] -= 12;
@@ -1264,11 +1271,11 @@ function date_convert($date, $from_type, $to_type, $tz = 'UTC') {
         case DATE_ICAL:
           $replace = array(' ' => 'T', '-' => '', ':' => '');
           return strtr($datetime, $replace);
-        case DATE_OBJECT:    
+        case DATE_OBJECT:
           return date_create($datetime, timezone_open($tz));
         case DATE_UNIX:
           $obj = date_create($datetime, timezone_open($tz));
-          return date_format($obj, 'U');  
+          return date_format($obj, 'U');
       }
       break;
     case DATE_OBJECT:
@@ -1347,13 +1354,13 @@ function date_fuzzy_datetime($date) {
   if (empty($date['day'])) {
     $date['day'] = 1;
   }
-  foreach(array('hour', 'minute', 'second') as $part) {
+  foreach (array('hour', 'minute', 'second') as $part) {
     if (empty($date[$part])) {
       $date[$part] = 0;
     }
   }
-  $value = date_pad($date['year'], 4) .'-'. date_pad($date['month']) .'-'. 
-    date_pad($date['day']) .' '. date_pad($date['hour']) .':'. 
+  $value = date_pad($date['year'], 4) .'-'. date_pad($date['month']) .'-'.
+    date_pad($date['day']) .' '. date_pad($date['hour']) .':'.
     date_pad($date['minute']) .':'. date_pad($date['second']);
   return $value;
 }
@@ -1370,7 +1377,7 @@ function date_iso_array($date) {
     'hour' => isset($regs[5]) ? intval($regs[5]) : '',
     'minute' => isset($regs[6]) ? intval($regs[6]) : '',
     'second' => isset($regs[7]) ? intval($regs[7]) : '',
-    );       
+    );
 }
 
 /**
@@ -1426,9 +1433,9 @@ function date_part_extract($date, $part, $type = DATE_DATETIME, $tz = 'UTC') {
       return (integer) array_key_exists($part, $date) ? $date[$part] : NULL;
     case DATE_DATETIME:
     case DATE_ISO:
-      return (integer) substr($date, $positions[$part], $part == 'year' ? 4 : 2);
+      return (integer) drupal_substr($date, $positions[$part], $part == 'year' ? 4 : 2);
     case DATE_ICAL:
-      return (integer) substr($date, $ipositions[$part], $part == 'year' ? 4 : 2);
+      return (integer) drupal_substr($date, $ipositions[$part], $part == 'year' ? 4 : 2);
     case DATE_UNIX:
       // Special case when creating dates with timestamps.
       // The date_create() function will assume date is UTC value
@@ -1439,7 +1446,7 @@ function date_part_extract($date, $part, $type = DATE_DATETIME, $tz = 'UTC') {
     case DATE_OBJECT:
       return date_format($date, $formats[$part]);
   }
- }
+}
 
 /**
  *  Functions to test the validity of a date in various formats.
@@ -1470,7 +1477,7 @@ function date_is_valid($date, $type = DATE_DATETIME, $granularity = array('year'
     return TRUE;
   }
 
-  // If this is an incomplete date (year only or year and month only), 
+  // If this is an incomplete date (year only or year and month only),
   // need special handling, partial dates can have empty date parts.
   $max_granularity = $granularity;
   $max_granularity = array_pop($max_granularity);
@@ -1497,7 +1504,7 @@ function date_is_valid($date, $type = DATE_DATETIME, $granularity = array('year'
       return FALSE;
     }
   }
-  elseif(!date_valid_year($year) || !date_valid_month($month) || date_valid_day($day, $month, $year)) {
+  elseif (!date_valid_year($year) || !date_valid_month($month) || date_valid_day($day, $month, $year)) {
     // Unix and datetime are expected to have at least a year, month, and day.
     return FALSE;
   }
@@ -1511,7 +1518,7 @@ function date_valid_year($year) {
   }
   else {
     return TRUE;
-  }      
+  }
 }
 
 function date_valid_month($month) {
@@ -1581,10 +1588,10 @@ function date_has_date($granularity) {
  * @return
  *   the date with the unwanted parts reset to zeros (or ones if zeros are
  *   invalid for that date type).
-*/
+ */
 function date_limit_value($date, $granularity, $type = DATE_DATETIME) {
   if (!date_is_valid($date, $type, $granularity) || !$nongranularity = date_nongranularity($granularity)) {
-   return $date;
+    return $date;
   }
   else {
     $date = date_convert($date, $type, DATE_ARRAY);
@@ -1605,7 +1612,7 @@ function date_limit_value($date, $granularity, $type = DATE_DATETIME) {
         case 'day':
           $date['day'] = $type != DATE_ISO ? 1 : 0;
           break;
-       }
+      }
     }
     return date_convert($date, DATE_ARRAY, $type);
   }
@@ -1638,7 +1645,7 @@ function date_limit_format($format, $granularity) {
     '\.' => '.',
     '\,' => ',',
     );
-  $format = strtr($format, $replace); 
+  $format = strtr($format, $replace);
 
   // Get the 'T' out of ISO date formats that don't have
   // both date and time.
@@ -1695,10 +1702,12 @@ function date_limit_format($format, $granularity) {
   // Trim any whitespace from the result.
   $format = trim($format);
 
-  // After removing the non-desired parts of the format, test if the only 
+  // After removing the non-desired parts of the format, test if the only
   // things left are escaped, non-date, characters. If so, return nothing.
-  if (!$test = trim(preg_replace('(\\\\\w{1})', '', $format))) {
-    return '';
+  // Using S instead of w to pick up non-ASCII characters.
+  $test = trim(preg_replace('(\\\\\S{1,3})', '', $format));
+  if (empty($test)) {
+    $format = '';
   }
   return $format;
 }
@@ -1723,7 +1732,7 @@ function date_limit_format($format, $granularity) {
 function date_format_order($format) {
   $order = array();
   if (empty($format)) return $order;
-  $max = strlen($format);
+  $max = drupal_strlen($format);
   for ($i = 0; $i <= $max; $i++) {
     if (!isset($format[$i])) break;
     $c = $format[$i];
@@ -1817,7 +1826,7 @@ function date_api_theme() {
     'date_views_filter_form' => $base + array(
       'template' => 'date-views-filter-form',
       'arguments' => array('form' => NULL)),
-    'date_calendar_day' => $base + array('arguments' => array('date' => NULL)),  
+    'date_calendar_day' => $base + array('arguments' => array('date' => NULL)),
     'date_time_ago' => $base + array('arguments' => array('start_date' => NULL, 'end_date' => NULL, 'interval' => NULL)));
 }
 
@@ -2283,8 +2292,8 @@ function date_api_views_api() {
 /**
  * Implementation of hook_date_api_fields().
  * on behalf of core fields.
- * 
- * All modules that create custom fields that use the 
+ *
+ * All modules that create custom fields that use the
  * 'views_handler_field_date' handler can provide
  * additional information here about the type of
  * date they create so the date can be used by
@@ -2293,17 +2302,17 @@ function date_api_views_api() {
 function date_api_date_api_fields($field) {
   $values = array(
     // The type of date: DATE_UNIX, DATE_ISO, DATE_DATETIME.
-    'sql_type' => DATE_UNIX, 
+    'sql_type' => DATE_UNIX,
     // Timezone handling options: 'none', 'site', 'date', 'utc'.
     'tz_handling' => 'site',
     // Needed only for dates that use 'date' tz_handling.
-    'timezone_field' => '', 
+    'timezone_field' => '',
     // Needed only for dates that use 'date' tz_handling.
-    'offset_field' => '', 
-    // Array of "table.field" values for related fields that should be 
+    'offset_field' => '',
+    // Array of "table.field" values for related fields that should be
     // loaded automatically in the Views SQL.
     'related_fields' => array(),
-    // Granularity of this date field's db data. 
+    // Granularity of this date field's db data.
     'granularity' => array('year', 'month', 'day', 'hour', 'minute', 'second'),
   );
 
@@ -2318,7 +2327,7 @@ function date_api_date_api_fields($field) {
     case 'node_counter.timestamp':
     case 'accesslog.timestamp':
     case 'comments.timestamp':
-    case 'node_comment_statistics.last_comment_timestamp':  
+    case 'node_comment_statistics.last_comment_timestamp':
       return $values;
   }
 }
@@ -2337,7 +2346,7 @@ function date_api_views_clear() {
   }
   if (db_table_exists('views_object_cache')) {
     db_query('DELETE FROM {views_object_cache}');
-  }    
+  }
   db_query("DELETE FROM {cache} where cid LIKE 'theme_registry%'");
 }
 
@@ -2355,20 +2364,20 @@ function date_api_views_clear() {
  *
  * @param $name
  *   The name of the view to embed.
- * 
+ *
  * @param $display_id
- *   'calendar_1' will display the calendar page, 
+ *   'calendar_1' will display the calendar page,
  *   'calendar_block_1' will display the calendar block.
- * 
+ *
  * @param $settings
  *   an array of view settings to use to override view default values;
- * 
- *   Include a setting for 'block_identifier, the identifier to use 
- *   for this embedded view. All embedded views that use the same 
- *   identifier will move together, or provide different identifiers 
- *   to keep them independent. The identifier will be used in the url 
+ *
+ *   Include a setting for 'block_identifier, the identifier to use
+ *   for this embedded view. All embedded views that use the same
+ *   identifier will move together, or provide different identifiers
+ *   to keep them independent. The identifier will be used in the url
  *   as a querystring, like: node/27?mini=calendar/2008-10.
- * 
+ *
  * @param ...
  *   Any additional parameters will be passed as arguments.
  */
@@ -2391,14 +2400,14 @@ function date_embed_view($name, $display_id = 'default', $settings = array(), $a
 /**
  * Figure out the URL of the date view we're currently looking at,
  * adapted to various date types or specific date arguments.
- * 
+ *
  * @param $date_type
  *  - if not empty, return the url of a specific date type.
  * @param $date_arg
  *  - if not empty, return the url for a view with a specific date argument.
  * @param $force_view_url
  *  - always use the view url, even if embedded.
- * @return 
+ * @return
  *   return the requested view url.
  */
 function date_real_url($view, $date_type = NULL, $date_arg = NULL, $force_view_url = FALSE) {
@@ -2409,8 +2418,8 @@ function date_real_url($view, $date_type = NULL, $date_arg = NULL, $force_view_u
   // in numerical order. Sort the arguments to ensure the correct order.
   ksort($args);
 
-  // If there are empty arguments before the date argument, 
-  // pad them with the wildcard so the date argument will be in 
+  // If there are empty arguments before the date argument,
+  // pad them with the wildcard so the date argument will be in
   // the right position.
   if (count($args) < $pos) {
     foreach ($view->argument as $name => $argument) {
@@ -2444,20 +2453,20 @@ function date_real_url($view, $date_type = NULL, $date_arg = NULL, $force_view_u
     $args = $view->args;
   }
   // Is this an embedded or a block view?
-  if (!$force_view_url && 
+  if (!$force_view_url &&
   (!empty($view->preview) || !empty($view->date_info->block_identifier))) {
     $url = $view->get_url($args);
     $key = date_block_identifier($view);
     if (!empty($key)) {
       return url($_GET['q'], array(
-        'query' => date_querystring($view, array($key => $url)), 
+        'query' => date_querystring($view, array($key => $url)),
         'absolute' => TRUE));
     }
-  }  
+  }
   // Normal views may need querystrings appended to them
   // if they use exposed filters.
   return url($view->get_url($args), array(
-    'query' => date_querystring($view), 
+    'query' => date_querystring($view),
     'absolute' => TRUE));
 }
 
@@ -2518,7 +2527,7 @@ function date_api_form_system_date_time_settings_alter(&$form, $form_state, $for
   $formats_form = date_api_date_formats_form($form_state);
   $form['date_formats'] = $formats_form['date_formats'];
   foreach ($form['date_formats'] as $key => $value) {
-    if (substr($key, 0, 1) != '#') {
+    if (drupal_substr($key, 0, 1) != '#') {
       $form['date_formats'][$key]['#type'] = 'value';
     }
     else {
@@ -2570,9 +2579,9 @@ function date_range_valid($string) {
 }
 
 /**
- * Split a string like -3:+3 or 2001:2010 into 
+ * Split a string like -3:+3 or 2001:2010 into
  * an array of min and max years.
- * 
+ *
  * Center the range around the current year, if any, but expand it far
  * enough so it will pick up the year value in the field in case
  * the value in the field is outside the initial range.
@@ -2675,7 +2684,6 @@ function date_is_all_day($string1, $string2, $granularity = 'second', $increment
   $hour2 = $count > 3 ? intval($matches[3]) : 0;
   $min2 = $count > 4 ? intval($matches[4]) : 0;
   $sec2 = $count > 5 ? intval($matches[5]) : 0;
-
   if (empty($date1) || empty($date2)) {
     return FALSE;
   }
@@ -2688,18 +2696,29 @@ function date_is_all_day($string1, $string2, $granularity = 'second', $increment
   $tmp = date_minutes('i', TRUE, $increment);
   $max_minutes = intval(array_pop($tmp));
 
+  // See if minutes and seconds are the maximum allowed for an increment or the
+  // maximum possible (59), or 0.
   switch ($granularity) {
     case 'second':
-      $min_match = $time1 == '00:00:00' || ($hour1 == 0 && $min1 == 0 && $sec1 == 0);
-      $max_match = $time2 == '00:00:00' || ($hour2 == 23 && $min2 == $max_minutes && $sec2 == $max_seconds) || ($hour1 == 0 && $hour2 == 0 && $min1 == 0 && $min2 == 0 && $sec1 == 0 && $sec2 == 0);
+      $min_match = $time1 == '00:00:00'
+        || ($hour1 == 0 && $min1 == 0 && $sec1 == 0);
+      $max_match = $time2 == '00:00:00'
+        || ($hour2 == 23 && in_array($min2, array($max_minutes, 59)) && in_array($sec2, array($max_seconds, 59)))
+        || ($hour1 == 0 && $hour2 == 0 && $min1 == 0 && $min2 == 0 && $sec1 == 0 && $sec2 == 0);
       break;
     case 'minute':
-      $min_match = $time1 == '00:00:00' || ($hour1 == 0 && $min1 == 0);
-      $max_match = $time2 == '00:00:00' || ($hour2 == 23 && $min2 == $max_minutes) || ($hour1 == 0 && $hour2 == 0 && $min1 == 0 && $min2 == 0);
+      $min_match = $time1 == '00:00:00'
+        || ($hour1 == 0 && $min1 == 0);
+      $max_match = $time2 == '00:00:00'
+        || ($hour2 == 23 && in_array($min2, array($max_minutes, 59)))
+        || ($hour1 == 0 && $hour2 == 0 && $min1 == 0 && $min2 == 0);
       break;
     case 'hour':
-      $min_match = $time1 == '00:00:00' || ($hour1 == 0);
-      $max_match = $time2 == '00:00:00' || ($hour2 == 23) || ($hour1 == 0 && $hour2 == 0);
+      $min_match = $time1 == '00:00:00'
+        || ($hour1 == 0);
+      $max_match = $time2 == '00:00:00'
+        || ($hour2 == 23)
+        || ($hour1 == 0 && $hour2 == 0);
       break;
     default:
       $min_match = TRUE;
@@ -2751,21 +2770,21 @@ function date_increment_round(&$date, $increment) {
  * for a field by name, no matter how deeply nested it is within
  * fieldgroups or multigroups, or to find the multiple value
  * sub-elements within a field element by name (i.e. 'value' or
- * 'rrule'). You can also use this function to see if an item exists 
+ * 'rrule'). You can also use this function to see if an item exists
  * in a form (the return will be an empty array if it does not exist).
  *
  * The function returns an array of results. A field will generally
- * only exist once in a form but the function can also be used to 
+ * only exist once in a form but the function can also be used to
  * locate all the 'value' elements within a multiple value field,
  * so the result is always returned as an array of values.
  *
- * For example, for a field named field_custom,  the following will 
- * pluck out the form elements for this field from the node form, 
+ * For example, for a field named field_custom,  the following will
+ * pluck out the form elements for this field from the node form,
  * no matter how deeply it is nested within fieldgroups or fieldsets:
  *
  * $elements = content_get_nested_elements($node_form, 'field_custom');
  *
- * You can prefix the function with '&' to retrieve the element by 
+ * You can prefix the function with '&' to retrieve the element by
  * reference to alter it directly:
  *
  * $elements = &content_get_nested_elements($form, 'field_custom');
@@ -2795,7 +2814,7 @@ function &date_get_nested_elements(&$form, $field_name) {
     if ($key === $field_name) {
       $elements[] = &$form[$key];
     }
-    else if (is_array($form[$key])) {
+    elseif (is_array($form[$key])) {
       $nested_form = &$form[$key];
       if ($sub_elements = &date_get_nested_elements($nested_form, $field_name)) {
         $elements = array_merge($elements, $sub_elements);
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api_elements.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api_elements.inc
index 266a71c..02e639a 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api_elements.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api_elements.inc
@@ -116,16 +116,16 @@ function date_timezone_process($element, $edit, $form_state, $form) {
  *
  * The exact parts displayed in the field are those in #date_granularity.
  * The display of each part comes from #date_format.
- * 
+ *
  * In regular FAPI processing $element['#value'] will contain a string
  * value before the form is submitted, and an array during submission.
- * 
+ *
  * In regular FAPI processing $edit is empty until the form is submitted
  * when it will contain an array.
- * 
+ *
  * Views widget processing now receives the same values as normal FAPI
  * processing (that was not true in Views 1).
- * 
+ *
  */
 function date_text_process($element, $edit, $form_state, $form) {
   $date = NULL;
@@ -173,16 +173,16 @@ function date_text_process($element, $edit, $form_state, $form) {
  *
  * The exact parts displayed in the field are those in #date_granularity.
  * The display of each part comes from ['#date_settings']['format'].
- * 
+ *
  * In regular FAPI processing $element['#value'] will contain a string
  * value before the form is submitted, and an array during submission.
- * 
+ *
  * In regular FAPI processing $edit is empty until the form is submitted
  * when it will contain an array.
- * 
+ *
  * Views widget processing now receives the same values as normal FAPI
  * processing (that was not true in Views 1).
- * 
+ *
  */
 function date_select_process($element, $edit, $form_state, $form) {
   $date = NULL;
@@ -245,7 +245,7 @@ function date_parts_element($element, $date, $format) {
   $count = 0;
   $increment = min(intval($element['#date_increment']), 1);
   foreach ($granularity as $field) {
-    // Allow empty value as option if date is not required 
+    // Allow empty value as option if date is not required
     // or if empty value was provided as a starting point.
     $part_required = ($element['#required'] && is_object($date)) ? TRUE : FALSE;
     $part_type = in_array($field, $element['#date_text_parts']) ? 'textfield' : 'select';
@@ -362,11 +362,11 @@ function date_parts_element($element, $date, $format) {
 
 /**
  *  Validation function for date selector.
- * 
+ *
  * When used as a Views widget, the validation step always gets triggered,
  * even with no form submission. Before form submission $element['#value']
  * contains a string, after submission it contains an array.
- * 
+ *
  */
 function date_select_validate($element, &$form_state) {
   if (is_string($element['#value'])) {
@@ -374,7 +374,7 @@ function date_select_validate($element, &$form_state) {
   }
   // Strip field labels out of the results.
   foreach ($element['#value'] as $field => $field_value) {
-    if (substr($field_value, 0, 1) == '-') {
+    if (drupal_substr($field_value, 0, 1) == '-') {
       $element['#value'][$field] = '';
     }
   }
@@ -386,7 +386,7 @@ function date_select_validate($element, &$form_state) {
   if (in_array('year', $element['#granularity']) && ($element['#required'] || !empty($element['#value']['year']))) {
     if ($element['#value']['year'] < variable_get('date_min_year', 1) || $element['#value']['year'] > variable_get('date_max_year', 4000)) {
       $errors[] = t('The year must be a number between %min and %max.', array(
-        '%min' => variable_get('date_min_year', 1), '%max' => variable_get('date_max_year', 4000)));  
+        '%min' => variable_get('date_min_year', 1), '%max' => variable_get('date_max_year', 4000)));
     }
     else {
       $year = $element['#value']['year'];
@@ -469,11 +469,11 @@ function date_select_input_value($element) {
 
 /**
  *  Validation for text input.
- * 
+ *
  * When used as a Views widget, the validation step always gets triggered,
  * even with no form submission. Before form submission $element['#value']
  * contains a string, after submission it contains an array.
- * 
+ *
  */
 function date_text_validate($element, &$form_state) {
   if (is_string($element['#value'])) {
@@ -484,10 +484,10 @@ function date_text_validate($element, &$form_state) {
   $value = date_text_input_value($element);
 
   if (empty($value) && !empty($element['#required'])) {
-    form_error($element, t('A valid date is required for %title.', array('%title' => $label))); 
+    form_error($element, t('A valid date is required for %title.', array('%title' => $label)));
   }
   elseif (empty($value) && !empty($element['#value']['date'])) {
-    form_error($element, t('%title is invalid.', array('%title' => $label))); 
+    form_error($element, t('%title is invalid.', array('%title' => $label)));
   }
   elseif (!empty($value)) {
     form_set_value($element, $value, $form_state);
@@ -599,7 +599,7 @@ function date_convert_from_custom($date, $format) {
       case 'y':
         $year = $value;
         // if no century, we add the current one ("06" => "2006")
-        $final_date['year'] = str_pad($year, 4, substr(date("Y"), 0, 2), STR_PAD_LEFT);
+        $final_date['year'] = str_pad($year, 4, drupal_substr(date("Y"), 0, 2), STR_PAD_LEFT);
         break;
       case 'a':
       case 'A':
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api_formats_list.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api_formats_list.inc
index 4f0d239..ea033f9 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api_formats_list.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api_formats_list.inc
@@ -16,22 +16,22 @@ function _date_api_date_formats_list() {
   $formats[] = array(
     'type' => 'short',
     'format' => 'm/d/Y - H:i',
-    'locales' => array('en-us',),
+    'locales' => array('en-us'),
   );
   $formats[] = array(
     'type' => 'short',
     'format' => 'd/m/Y - H:i',
-    'locales' => array('en-gb', 'en-hk', 'en-ie', 'el-gr', 'es-es', 'fr-be', 'fr-fr', 'fr-lu', 'it-it', 'nl-be', 'pt-pt',),
+    'locales' => array('en-gb', 'en-hk', 'en-ie', 'el-gr', 'es-es', 'fr-be', 'fr-fr', 'fr-lu', 'it-it', 'nl-be', 'pt-pt'),
   );
   $formats[] = array(
     'type' => 'short',
     'format' => 'Y/m/d - H:i',
-    'locales' => array('en-ca', 'fr-ca', 'no-no', 'sv-se',),
+    'locales' => array('en-ca', 'fr-ca', 'no-no', 'sv-se'),
   );
   $formats[] = array(
     'type' => 'short',
     'format' => 'd.m.Y - H:i',
-    'locales' => array('de-ch', 'de-de', 'de-lu', 'fi-fi', 'fr-ch', 'is-is', 'pl-pl', 'ro-ro', 'ru-ru',),
+    'locales' => array('de-ch', 'de-de', 'de-lu', 'fi-fi', 'fr-ch', 'is-is', 'pl-pl', 'ro-ro', 'ru-ru'),
   );
   $formats[] = array(
     'type' => 'short',
@@ -88,17 +88,17 @@ function _date_api_date_formats_list() {
   $formats[] = array(
     'type' => 'medium',
     'format' => 'D, m/d/Y - H:i',
-    'locales' => array('en-us',),
+    'locales' => array('en-us'),
   );
   $formats[] = array(
     'type' => 'medium',
     'format' => 'D, d/m/Y - H:i',
-    'locales' => array('en-gb', 'en-hk', 'en-ie', 'el-gr', 'es-es', 'fr-be', 'fr-fr', 'fr-lu', 'it-it', 'nl-be', 'pt-pt',),
+    'locales' => array('en-gb', 'en-hk', 'en-ie', 'el-gr', 'es-es', 'fr-be', 'fr-fr', 'fr-lu', 'it-it', 'nl-be', 'pt-pt'),
   );
   $formats[] = array(
     'type' => 'medium',
     'format' => 'D, Y/m/d - H:i',
-    'locales' => array('en-ca', 'fr-ca', 'no-no', 'sv-se',),
+    'locales' => array('en-ca', 'fr-ca', 'no-no', 'sv-se'),
   );
   $formats[] = array(
     'type' => 'medium',
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api_ical.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api_ical.inc
index 973194f..a2b8eca 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api_ical.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api_ical.inc
@@ -1,10 +1,12 @@
 <?php
+
 /**
  * @file
  * Parse iCal data.
  *
  * This file must be included when these functions are needed.
  */
+
 /**
  * Return an array of iCalendar information from an iCalendar file.
  *
@@ -78,121 +80,124 @@
  *     )
  *   )
  *
- * @param $filename
- *   Location (local or remote) of a valid iCalendar file
- * @return array
- *   An array with all the elements from the ical
  * @todo
  *   figure out how to handle this if subgroups are nested,
  *   like a VALARM nested inside a VEVENT.
+ *
+ * @param string $filename
+ *   Location (local or remote) of a valid iCalendar file.
+ *
+ * @return array
+ *   An array with all the elements from the ical.
  */
 function date_ical_import($filename) {
   // Fetch the iCal data. If file is a URL, use drupal_http_request. fopen
   // isn't always configured to allow network connections.
   if (substr($filename, 0, 4) == 'http') {
-    // Fetch the ical data from the specified network location
+    // Fetch the ical data from the specified network location.
     $icaldatafetch = drupal_http_request($filename);
-    // Check the return result
+    // Check the return result.
     if ($icaldatafetch->error) {
       watchdog('date ical', 'HTTP Request Error importing %filename: @error', array('%filename' => $filename, '@error' => $icaldatafetch->error));
-      return false;
+      return FALSE;
     }
-    // Break the return result into one array entry per lines
+    // Break the return result into one array entry per lines.
     $icaldatafolded = explode("\n", $icaldatafetch->data);
   }
   else {
     $icaldatafolded = @file($filename, FILE_IGNORE_NEW_LINES);
     if ($icaldatafolded === FALSE) {
       watchdog('date ical', 'Failed to open file: %filename', array('%filename' => $filename));
-      return false;
+      return FALSE;
     }
   }
-  // Verify this is iCal data
+  // Verify this is iCal data.
   if (trim($icaldatafolded[0]) != 'BEGIN:VCALENDAR') {
     watchdog('date ical', 'Invalid calendar file: %filename', array('%filename' => $filename));
-    return false;
+    return FALSE;
   }
   return date_ical_parse($icaldatafolded);
 }
 
 /**
- * Return an array of iCalendar information from an iCalendar file.
+ * Returns an array of iCalendar information from an iCalendar file.
  *
  * As date_ical_import() but different param.
  *
- * @param $icaldatafolded
- *   an array of lines from an ical feed.
+ * @param array $icaldatafolded
+ *   An array of lines from an ical feed.
+ *
  * @return array
  *   An array with all the elements from the ical.
  */
 function date_ical_parse($icaldatafolded = array()) {
   $items = array();
 
-  // Verify this is iCal data
+  // Verify this is iCal data.
   if (trim($icaldatafolded[0]) != 'BEGIN:VCALENDAR') {
     watchdog('date ical', 'Invalid calendar file.');
-    return false;
+    return FALSE;
   }
 
-  // "unfold" wrapped lines
+  // "Unfold" wrapped lines.
   $icaldata = array();
   foreach ($icaldatafolded as $line) {
     $out = array();
-    // See if this looks like the beginning of a new property or value.
-    // If not, it is a continuation of the previous line.
-    // The regex is to ensure that wrapped QUOTED-PRINTABLE data
-    // is kept intact.
+    // See if this looks like the beginning of a new property or value. If not,
+    // it is a continuation of the previous line. The regex is to ensure that
+    // wrapped QUOTED-PRINTABLE data is kept intact.
     if (!preg_match('/([A-Z]+)[:;](.*)/', $line, $out)) {
-      $line = array_pop($icaldata) . ($line);
+      // Trim up to 1 leading space from wrapped line per iCalendar standard.
+      $line = array_pop($icaldata) . (ltrim(substr($line, 0, 1)) . substr($line, 1));
     }
     $icaldata[] = $line;
   }
   unset($icaldatafolded);
 
-  // Parse the iCal information
+  // Parse the iCal information.
   $parents = array();
   $subgroups = array();
   $vcal = '';
   foreach ($icaldata as $line) {
     $line = trim($line);
-    $vcal .= $line ."\n";
-    // Deal with begin/end tags separately
+    $vcal .= $line . "\n";
+    // Deal with begin/end tags separately.
     if (preg_match('/(BEGIN|END):V(\S+)/', $line, $matches)) {
       $closure = $matches[1];
-      $type = 'V'. $matches[2];
+      $type = 'V' . $matches[2];
       if ($closure == 'BEGIN') {
         array_push($parents, $type);
         array_push($subgroups, array());
       }
-      else if ($closure == 'END') {
+      elseif ($closure == 'END') {
         end($subgroups);
-        $subgroup =& $subgroups[key($subgroups)];
+        $subgroup = &$subgroups[key($subgroups)];
         switch ($type) {
           case 'VCALENDAR':
-            if (prev($subgroups) == false) {
+            if (prev($subgroups) == FALSE) {
               $items[] = array_pop($subgroups);
             }
             else {
               $parent[array_pop($parents)][] = array_pop($subgroups);
             }
             break;
-          // Add the timezones in with their index their TZID
+          // Add the timezones in with their index their TZID.
           case 'VTIMEZONE':
             $subgroup = end($subgroups);
             $id = $subgroup['TZID'];
             unset($subgroup['TZID']);
 
-            // Append this subgroup onto the one above it
+            // Append this subgroup onto the one above it.
             prev($subgroups);
-            $parent =& $subgroups[key($subgroups)];
+            $parent = &$subgroups[key($subgroups)];
 
             $parent[$type][$id] = $subgroup;
 
             array_pop($subgroups);
             array_pop($parents);
             break;
-          // Do some fun stuff with durations and all_day events
-          // and then append to parent
+          // Do some fun stuff with durations and all_day events and then append
+          // to parent.
           case 'VEVENT':
           case 'VALARM':
           case 'VTODO':
@@ -200,28 +205,43 @@ function date_ical_parse($icaldatafolded = array()) {
           case 'VVENUE':
           case 'VFREEBUSY':
           default:
-            // Can't be sure whether DTSTART is before or after DURATION,
-            // so parse DURATION at the end.
+            // Can't be sure whether DTSTART is before or after DURATION, so
+            // parse DURATION at the end.
             if (isset($subgroup['DURATION'])) {
               date_ical_parse_duration($subgroup, 'DURATION');
             }
-            // Add a top-level indication for the 'All day' condition.
-            // Leave it in the individual date components, too, so it
-            // is always available even when you are working with only
-            // a portion of the VEVENT array, like in Feed API parsers.
+            // Add a top-level indication for the 'All day' condition. Leave it
+            // in the individual date components, too, so it is always available
+            // even when you are working with only a portion of the VEVENT
+            // array, like in Feed API parsers.
             $subgroup['all_day'] = FALSE;
-            if (!empty($subgroup['DTSTART']) && (!empty($subgroup['DTSTART']['all_day']) || 
-            (empty($subgroup['DTEND']) && empty($subgroup['RRULE']) && empty($subgroup['RRULE']['COUNT'])))) {
-              // Many programs output DTEND for an all day event as the
-              // following day, reset this to the same day for internal use.
-              $subgroup['all_day'] = TRUE;
+
+            // iCal spec states 'The "DTEND" property for a "VEVENT" calendar
+            // component specifies the non-inclusive end of the event'. Adjust
+            // multi-day events to remove the extra day because the Date code
+            // assumes the end date is inclusive.
+            if (!empty($subgroup['DTEND']) && (!empty($subgroup['DTEND']['all_day']))) {
+              // Make the end date one day earlier.
+              $date = date_make_date($subgroup['DTEND']['datetime'] . ' 00:00:00', $subgroup['DTEND']['tz']);
+              date_modify($date, '-1 day');
+              $subgroup['DTEND']['datetime'] = date_format($date,  'Y-m-d');
+            }
+            // If a start datetime is defined AND there is no definition for
+            // the end datetime THEN make the end datetime equal the start
+            // datetime and if it is an all day event define the entire event
+            // as a single all day event.
+            if (!empty($subgroup['DTSTART']) &&
+               (empty($subgroup['DTEND']) && empty($subgroup['RRULE']) && empty($subgroup['RRULE']['COUNT']))) {
               $subgroup['DTEND'] = $subgroup['DTSTART'];
             }
-          // Add this element to the parent as an array under the
-          // component name
-          default:
+            // Add this element to the parent as an array under the component
+            // name.
+            if (!empty($subgroup['DTSTART']['all_day'])) {
+              $subgroup['all_day'] = TRUE;
+            }
+            // Add this element to the parent as an array under the
             prev($subgroups);
-            $parent =& $subgroups[key($subgroups)];
+            $parent = &$subgroups[key($subgroups)];
 
             $parent[$type][] = $subgroup;
 
@@ -231,14 +251,14 @@ function date_ical_parse($icaldatafolded = array()) {
         }
       }
     }
-    // Handle all other possibilities
+    // Handle all other possibilities.
     else {
-      // Grab current subgroup
+      // Grab current subgroup.
       end($subgroups);
-      $subgroup =& $subgroups[key($subgroups)];
+      $subgroup = &$subgroups[key($subgroups)];
 
       // Split up the line into nice pieces for PROPERTYNAME,
-      // PROPERTYATTRIBUTES, and PROPERTYVALUE
+      // PROPERTYATTRIBUTES, and PROPERTYVALUE.
       preg_match('/([^;:]+)(?:;([^:]*))?:(.+)/', $line, $matches);
       $name = !empty($matches[1]) ? strtoupper(trim($matches[1])) : '';
       $field = !empty($matches[2]) ? $matches[2] : '';
@@ -304,7 +324,7 @@ function date_ical_parse($icaldatafolded = array()) {
           break;
       }
 
-      // Store the result of our parsing
+      // Store the result of our parsing.
       $subgroup[$name] = $parse_result;
     }
   }
@@ -312,7 +332,7 @@ function date_ical_parse($icaldatafolded = array()) {
 }
 
 /**
- * Parse a ical date element.
+ * Parses a ical date element.
  *
  * Possible formats to parse include:
  *   PROPERTY:YYYYMMDD[T][HH][MM][SS][Z]
@@ -324,14 +344,14 @@ function date_ical_parse($icaldatafolded = array()) {
  *   The property and the colon before the date are removed in the import
  *   process above and we are left with $field and $data.
  *
- *  @param $field
- *    The text before the colon and the date, i.e.
- *    ';VALUE=DATE:', ';VALUE=DATE-TIME:', ';TZID='
- *  @param $data
- *    The date itself, after the colon, in the format YYYYMMDD[T][HH][MM][SS][Z]
- *    'Z', if supplied, means the date is in UTC.
+ * @param string $field
+ *   The text before the colon and the date, i.e.
+ *   ';VALUE=DATE:', ';VALUE=DATE-TIME:', ';TZID='
+ * @param string $data
+ *   The date itself, after the colon, in the format YYYYMMDD[T][HH][MM][SS][Z]
+ *   'Z', if supplied, means the date is in UTC.
  *
- *  @return array
+ * @return array
  *   $items array, consisting of:
  *      'datetime'   => date in YYYY-MM-DD HH:MM format, not timezone adjusted
  *      'all_day'    => whether this is an all-day event with no time
@@ -340,18 +360,19 @@ function date_ical_parse($icaldatafolded = array()) {
  *                      conversion should be done if no timezone info is
  *                      supplied
  *  @todo
- *   Another option for dates is the format PROPERTY;VALUE=PERIOD:XXXX. The period
- *   may include a duration, or a date and a duration, or two dates, so would
- *   have to be split into parts and run through date_ical_parse_date() and
- *   date_ical_parse_duration(). This is not commonly used, so ignored for now.
- *   It will take more work to figure how to support that.
+ *   Another option for dates is the format PROPERTY;VALUE=PERIOD:XXXX. The
+ *   period may include a duration, or a date and a duration, or two dates, so
+ *   would have to be split into parts and run through date_ical_parse_date()
+ *   and date_ical_parse_duration(). This is not commonly used, so ignored for
+ *   now. It will take more work to figure how to support that.
  */
 function date_ical_parse_date($field, $data) {
+
   $items = array('datetime' => '', 'all_day' => '', 'tz' => '');
   if (empty($data)) {
     return $items;
   }
-  // Make this a little more whitespace independent
+  // Make this a little more whitespace independent.
   $data = trim($data);
 
   // Turn the properties into a nice indexed array of
@@ -359,50 +380,56 @@ function date_ical_parse_date($field, $data) {
   $field_parts = preg_split('/[;:]/', $field);
   $properties = array();
   foreach ($field_parts as $part) {
-    if (strpos($part, '=') !== false) {
+    if (strpos($part, '=') !== FALSE) {
       $tmp = explode('=', $part);
       $properties[$tmp[0]] = $tmp[1];
     }
   }
 
-  // Make this a little more whitespace independent
+  // Make this a little more whitespace independent.
   $data = trim($data);
 
-  // Record if a time has been found
-  $has_time = false;
+  // Record if a time has been found.
+  $has_time = FALSE;
 
-  // If a format is specified, parse it according to that format
+  // If a format is specified, parse it according to that format.
   if (isset($properties['VALUE'])) {
     switch ($properties['VALUE']) {
       case 'DATE':
-        preg_match (DATE_REGEX_ICAL_DATE, $data, $regs);
-        $datetime = date_pad($regs[1]) .'-'. date_pad($regs[2]) .'-'. date_pad($regs[3]); // Date
+        preg_match(DATE_REGEX_ICAL_DATE, $data, $regs);
+        // Date.
+        $datetime = date_pad($regs[1]) . '-' . date_pad($regs[2]) . '-' . date_pad($regs[3]);
         break;
       case 'DATE-TIME':
-        preg_match (DATE_REGEX_ICAL_DATETIME, $data, $regs);
-        $datetime = date_pad($regs[1]) .'-'. date_pad($regs[2]) .'-'. date_pad($regs[3]); // Date
-        $datetime .= ' '. date_pad($regs[4]) .':'. date_pad($regs[5]) .':'. date_pad($regs[6]); // Time
-        $has_time = true;
+        preg_match(DATE_REGEX_ICAL_DATETIME, $data, $regs);
+        // Date.
+        $datetime = date_pad($regs[1]) . '-' . date_pad($regs[2]) . '-' . date_pad($regs[3]);
+        // Time.
+        $datetime .= ' ' . date_pad($regs[4]) . ':' . date_pad($regs[5]) . ':' . date_pad($regs[6]);
+        $has_time = TRUE;
         break;
     }
   }
-  // If no format is specified, attempt a loose match
+  // If no format is specified, attempt a loose match.
   else {
-    preg_match (DATE_REGEX_LOOSE, $data, $regs);
-    $datetime = date_pad($regs[1]) .'-'. date_pad($regs[2]) .'-'. date_pad($regs[3]); // Date
-    if (isset($regs[4])) {
-      $has_time = true;
+    preg_match(DATE_REGEX_LOOSE, $data, $regs);
+    if (!empty($regs) && count($regs) > 2) {
+      // Date.
+      $datetime = date_pad($regs[1]) . '-' . date_pad($regs[2]) . '-' . date_pad($regs[3]);
+      if (isset($regs[4])) {
         $has_time = TRUE;
+        // Time.
         $datetime .= ' ' . (!empty($regs[5]) ? date_pad($regs[5]) : '00') .
          ':' . (!empty($regs[6]) ? date_pad($regs[6]) : '00') .
-         ':' . (!empty($regs[7]) ? date_pad($regs[7]) : '00'); // Time
+         ':' . (!empty($regs[7]) ? date_pad($regs[7]) : '00');
+      }
     }
   }
 
-  // Use timezone if explicitly declared
+  // Use timezone if explicitly declared.
   if (isset($properties['TZID'])) {
     $tz = $properties['TZID'];
-    // Fix commonly used alternatives like US-Eastern which should be US/Eastern.
+    // Fix alternatives like US-Eastern which should be US/Eastern.
     $tz = str_replace('-', '/', $tz);
     // Unset invalid timezone names.
     module_load_include('install', 'date_timezone');
@@ -411,17 +438,17 @@ function date_ical_parse_date($field, $data) {
       $tz = '';
     }
   }
-  // If declared as UTC with terminating 'Z', use that timezone
-  else if (strpos($data, 'Z') !== false) {
+  // If declared as UTC with terminating 'Z', use that timezone.
+  elseif (strpos($data, 'Z') !== FALSE) {
     $tz = 'UTC';
   }
-  // Otherwise this date is floating...
+  // Otherwise this date is floating.
   else {
     $tz = '';
   }
 
   $items['datetime'] = $datetime;
-  $items['all_day'] = $has_time ? false : true;
+  $items['all_day'] = $has_time ? FALSE : TRUE;
   $items['tz'] = $tz;
   return $items;
 }
@@ -449,7 +476,7 @@ function date_ical_parse_rrule($field, $data) {
     else {
       $values = explode(',', $param[1]);
     }
-    // Different treatment for items that can have multiple values and those that cannot.
+    // Treat items differently if they have multiple or single values.
     if (in_array($param[0], array('FREQ', 'INTERVAL', 'COUNT', 'WKST'))) {
       $items[$param[0]] = $param[1];
     }
@@ -467,23 +494,24 @@ function date_ical_parse_rrule($field, $data) {
  *   an array of date value arrays.
  */
 function date_ical_parse_exceptions($field, $data) {
-  $data = str_replace($field.':', '', $data);
+  $data = str_replace($field . ':', '', $data);
   $items = array('DATA' => $data);
   $ex_dates = explode(',', $data);
   foreach ($ex_dates as $ex_date) {
     $items[] = date_ical_parse_date('', $ex_date);
   }
- return $items;
+  return $items;
 }
 
 /**
- * Parse the duration of the event.
+ * Parses the duration of the event.
+ *
  * Example:
  *  DURATION:PT1H30M
  *  DURATION:P1Y2M
  *
- *  @param $subgroup
- *   array of other values in the vevent so we can check for DTSTART
+ * @param array $subgroup
+ *   Array of other values in the vevent so we can check for DTSTART.
  */
 function date_ical_parse_duration(&$subgroup, $field = 'DURATION') {
   $items = $subgroup[$field];
@@ -505,7 +533,7 @@ function date_ical_parse_duration(&$subgroup, $field = 'DURATION') {
   $date2 = drupal_clone($date);
   foreach ($items as $item => $count) {
     if ($count > 0) {
-      date_modify($date2, '+'. $count .' '. $item);
+      date_modify($date2, '+' . $count . ' ' . $item);
     }
   }
   $format = isset($subgroup['DTSTART']['type']) && $subgroup['DTSTART']['type'] == 'DATE' ? 'Y-m-d' : 'Y-m-d H:i:s';
@@ -525,35 +553,35 @@ function date_ical_parse_text($field, $data) {
   if (strstr($field, 'QUOTED-PRINTABLE')) {
     $data = quoted_printable_decode($data);
   }
-  // Strip line breaks within element
+  // Strip line breaks within element.
   $data = str_replace(array("\r\n ", "\n ", "\r "), '', $data);
-  // Put in line breaks where encoded
+  // Put in line breaks where encoded.
   $data = str_replace(array("\\n", "\\N"), "\n", $data);
-  // Remove other escaping
+  // Remove other escaping.
   $data = stripslashes($data);
   return $data;
 }
 
 /**
  * Parse location elements.
- * 
+ *
  * Catch situations like the upcoming.org feed that uses
  * LOCATION;VENUE-UID="http://upcoming.yahoo.com/venue/104/":111 First Street...
  * or more normal LOCATION;UID=123:111 First Street...
  * Upcoming feed would have been improperly broken on the ':' in http://
  * so we paste the $field and $data back together first.
- * 
+ *
  * Use non-greedy check for ':' in case there are more of them in the address.
  */
 function date_ical_parse_location($field, $data) {
-  if (preg_match('/UID=[?"](.+)[?"][*?:](.+)/', $field .':'. $data, $matches)) {
+  if (preg_match('/UID=[?"](.+)[?"][*?:](.+)/', $field . ':' . $data, $matches)) {
     $location = array();
     $location['UID'] = $matches[1];
     $location['DESCRIPTION'] = stripslashes($matches[2]);
-    return $location;  
+    return $location;
   }
   else {
-    // Remove other escaping
+    // Remove other escaping.
     $location = stripslashes($data);
     return $location;
   }
@@ -562,14 +590,16 @@ function date_ical_parse_location($field, $data) {
 /**
  * Return a date object for the ical date, adjusted to its local timezone.
  *
- *  @param $ical_date
- *    an array of ical date information created in the ical import.
- *  @param $to_tz
- *    the timezone to convert the date's value to.
- *  @return object
- *    a timezone-adjusted date object
+ * @param array $ical_date
+ *   An array of ical date information created in the ical import.
+ * @param string $to_tz
+ *   The timezone to convert the date's value to.
+ *
+ * @return object
+ *   A timezone-adjusted date object.
  */
 function date_ical_date($ical_date, $to_tz = FALSE) {
+
   // If the ical date has no timezone, must assume it is stateless
   // so treat it as a local date.
   if (empty($ical_date['datetime'])) {
@@ -581,7 +611,11 @@ function date_ical_date($ical_date, $to_tz = FALSE) {
   else {
     $from_tz = $ical_date['tz'];
   }
+  if (strlen($ical_date['datetime']) < 11) {
+    $ical_date['datetime'] .= ' 00:00:00';
+  }
   $date = date_make_date($ical_date['datetime'], $from_tz);
+
   if ($to_tz && $ical_date['tz'] != '' && $to_tz != $ical_date['tz']) {
     date_timezone_set($date, timezone_open($to_tz));
   }
@@ -589,12 +623,12 @@ function date_ical_date($ical_date, $to_tz = FALSE) {
 }
 
 /**
- * Escape #text elements for safe iCal use
+ * Escape #text elements for safe iCal use.
  *
- * @param $text
+ * @param string $text
  *   Text to escape
  *
- * @return
+ * @return string
  *   Escaped text
  *
  */
@@ -604,9 +638,9 @@ function date_ical_escape_text($text) {
   // TODO Per #38130 the iCal specs don't want : and " escaped
   // but there was some reason for adding this in. Need to watch
   // this and see if anything breaks.
-  //$text = str_replace('"', '\"', $text);
-  //$text = str_replace(":", "\:", $text);
-  $text = preg_replace("/\\\b/","\\\\", $text);
+  // $text = str_replace('"', '\"', $text);
+  // $text = str_replace(":", "\:", $text);
+  $text = preg_replace("/\\\b/", "\\\\", $text);
   $text = str_replace(",", "\,", $text);
   $text = str_replace(";", "\;", $text);
   $text = str_replace("\n", "\\n ", $text);
@@ -616,9 +650,8 @@ function date_ical_escape_text($text) {
 /**
  * Build an iCal RULE from $form_values.
  *
- * @param $form_values
- *   an array constructed like the one created by date_ical_parse_rrule()
- *
+ * @param array $form_values
+ *   An array constructed like the one created by date_ical_parse_rrule().
  *     [RRULE] => Array (
  *       [FREQ] => Array (
  *         [0] => MONTHLY
@@ -657,85 +690,111 @@ function date_ical_escape_text($text) {
  *         [tz] => US/Eastern
  *       )
  *     )
- *
  */
 function date_api_ical_build_rrule($form_values) {
   $RRULE = '';
   if (empty($form_values) || !is_array($form_values)) {
     return $RRULE;
   }
-  //grab the RRULE data and put them into iCal RRULE format
-  $RRULE .= 'RRULE:FREQ='. (!array_key_exists('FREQ', $form_values) ? 'DAILY' : $form_values['FREQ']);
-  $RRULE .= ';INTERVAL='. (!array_key_exists('INTERVAL', $form_values) ? 1 : $form_values['INTERVAL']);
+
+  // Grab the RRULE data and put them into iCal RRULE format.
+  $RRULE .= 'RRULE:FREQ=' . (!array_key_exists('FREQ', $form_values) ? 'DAILY' : $form_values['FREQ']);
+  $RRULE .= ';INTERVAL=' . (!array_key_exists('INTERVAL', $form_values) ? 1 : $form_values['INTERVAL']);
 
   // Unset the empty 'All' values.
-  if (array_key_exists('BYDAY', $form_values)) unset($form_values['BYDAY']['']);
-  if (array_key_exists('BYMONTH', $form_values)) unset($form_values['BYMONTH']['']);
-  if (array_key_exists('BYMONTHDAY', $form_values)) unset($form_values['BYMONTHDAY']['']);
+  if (array_key_exists('BYDAY', $form_values) && is_array($form_values['BYDAY'])) {
+    unset($form_values['BYDAY']['']);
+  }
+  if (array_key_exists('BYMONTH', $form_values) && is_array($form_values['BYMONTH'])) {
+    unset($form_values['BYMONTH']['']);
+  }
+  if (array_key_exists('BYMONTHDAY', $form_values) && is_array($form_values['BYMONTHDAY'])) {
+    unset($form_values['BYMONTHDAY']['']);
+  }
 
-  if (array_key_exists('BYDAY', $form_values) && $BYDAY = implode(",", $form_values['BYDAY'])) {
-    $RRULE .= ';BYDAY='. $BYDAY;
+  if (array_key_exists('BYDAY', $form_values) && is_array($form_values['BYDAY']) && $BYDAY = implode(",", $form_values['BYDAY'])) {
+    $RRULE .= ';BYDAY=' . $BYDAY;
   }
-  if (array_key_exists('BYMONTH', $form_values) && $BYMONTH = implode(",", $form_values['BYMONTH'])) {
-    $RRULE .= ';BYMONTH='. $BYMONTH;
+  if (array_key_exists('BYMONTH', $form_values) && is_array($form_values['BYMONTH']) && $BYMONTH = implode(",", $form_values['BYMONTH'])) {
+    $RRULE .= ';BYMONTH=' . $BYMONTH;
   }
-  if (array_key_exists('BYMONTHDAY', $form_values) && $BYMONTHDAY = implode(",", $form_values['BYMONTHDAY'])) {
-    $RRULE .= ';BYMONTHDAY='. $BYMONTHDAY;
+  if (array_key_exists('BYMONTHDAY', $form_values) && is_array($form_values['BYMONTHDAY']) && $BYMONTHDAY = implode(",", $form_values['BYMONTHDAY'])) {
+    $RRULE .= ';BYMONTHDAY=' . $BYMONTHDAY;
   }
   // The UNTIL date is supposed to always be expressed in UTC.
+  // The input date values may already have been converted to a date object on a
+  // previous pass, so check for that.
   if (array_key_exists('UNTIL', $form_values) && array_key_exists('datetime', $form_values['UNTIL']) && !empty($form_values['UNTIL']['datetime'])) {
-    $until = date_ical_date($form_values['UNTIL'], 'UTC');
-    $RRULE .= ';UNTIL='. date_format($until, DATE_FORMAT_ICAL) .'Z';
+    // We only collect a date for UNTIL, but we need it to be inclusive, so
+    // force it to a full datetime element at the last second of the day.
+    if (!is_object($form_values['UNTIL']['datetime'])) {
+      if (strlen($form_values['UNTIL']['datetime']) < 11) {
+        $form_values['UNTIL']['datetime'] .= ' 23:59:59';
+        $form_values['UNTIL']['granularity'] = serialize(drupal_map_assoc(array('year', 'month', 'day', 'hour', 'minute', 'second')));
+        $form_values['UNTIL']['all_day'] = FALSE;
+      }
+      $until = date_ical_date($form_values['UNTIL'], 'UTC');
+    }
+    else {
+      $until = $form_values['UNTIL']['datetime'];
+    }
+    $RRULE .= ';UNTIL=' . date_format($until, DATE_FORMAT_ICAL) . 'Z';
   }
   // Our form doesn't allow a value for COUNT, but it may be needed by
   // modules using the API, so add it to the rule.
   if (array_key_exists('COUNT', $form_values)) {
-    $RRULE .= ';COUNT='. $form_values['COUNT'];
+    $RRULE .= ';COUNT=' . $form_values['COUNT'];
   }
 
   // iCal rules presume the week starts on Monday unless otherwise specified,
   // so we'll specify it.
   if (array_key_exists('WKST', $form_values)) {
-    $RRULE .= ';WKST='. $form_values['WKST'];
+    $RRULE .= ';WKST=' . $form_values['WKST'];
   }
   else {
-    $RRULE .= ';WKST='. date_repeat_dow2day(variable_get('date_first_day', 1));
+    $RRULE .= ';WKST=' . date_repeat_dow2day(variable_get('date_first_day', 0));
   }
 
   // Exceptions dates go last, on their own line.
+  // The input date values may already have been converted to a date
+  // object on a previous pass, so check for that.
   if (isset($form_values['EXDATE']) && is_array($form_values['EXDATE'])) {
     $ex_dates = array();
     foreach ($form_values['EXDATE'] as $value) {
-      $ex_date = date_convert($value['datetime'], DATE_DATETIME, DATE_ICAL);
-      if (!empty($ex_date)) {
-        $ex_dates[] = $ex_date;
+      if (!empty($value['datetime'])) {
+        $date = !is_object($value['datetime']) ? date_ical_date($value, 'UTC') : $value['datetime'];
+        $ex_date = !empty($date) ? date_format($date, DATE_FORMAT_ICAL) . 'Z': '';
+        if (!empty($ex_date)) {
+          $ex_dates[] = $ex_date;
+        }
       }
     }
     if (!empty($ex_dates)) {
       sort($ex_dates);
-      $RRULE .= chr(13) . chr(10) .'EXDATE:'. implode(',', $ex_dates);
+      $RRULE .= chr(13) . chr(10) . 'EXDATE:' . implode(',', $ex_dates);
     }
   }
   elseif (!empty($form_values['EXDATE'])) {
-    $RRULE .= chr(13) . chr(10) .'EXDATE:'. $form_values['EXDATE'];
+    $RRULE .= chr(13) . chr(10) . 'EXDATE:' . $form_values['EXDATE'];
   }
 
   // Exceptions dates go last, on their own line.
   if (isset($form_values['RDATE']) && is_array($form_values['RDATE'])) {
     $ex_dates = array();
     foreach ($form_values['RDATE'] as $value) {
-      $ex_date = date_convert($value['datetime'], DATE_DATETIME, DATE_ICAL);
+      $date = !is_object($value['datetime']) ? date_ical_date($value, 'UTC') : $value['datetime'];
+      $ex_date = !empty($date) ? date_format($date, DATE_FORMAT_ICAL) . 'Z': '';
       if (!empty($ex_date)) {
         $ex_dates[] = $ex_date;
       }
     }
     if (!empty($ex_dates)) {
       sort($ex_dates);
-      $RRULE .= chr(13) . chr(10) .'RDATE:'. implode(',', $ex_dates);
+      $RRULE .= chr(13) . chr(10) . 'RDATE:' . implode(',', $ex_dates);
     }
   }
   elseif (!empty($form_values['RDATE'])) {
-    $RRULE .= chr(13) . chr(10) .'RDATE:'. $form_values['RDATE'];
+    $RRULE .= chr(13) . chr(10) . 'RDATE:' . $form_values['RDATE'];
   }
 
   return $RRULE;
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api_sql.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api_sql.inc
index f8edfe0..34935f1 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api_sql.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_api_sql.inc
@@ -1,5 +1,8 @@
 <?php
-
+/**
+ * @file
+ * SQL date functions.
+ */
 /**
  *  A helper function to do cross-database concatation of date parts
  *
@@ -30,7 +33,7 @@ function date_sql_coalesce($array) {
     case ('mysqli'):
     case ('pgsql'):
       return "COALESCE(". implode(',', $array) .")";
-  }  
+  }
 }
 
 /**
@@ -105,15 +108,15 @@ class date_sql_handler {
 
   /**
    * Set the database timzone offset.
-   * 
-   * Setting the db timezone to UTC is done to ensure consistency in date 
+   *
+   * Setting the db timezone to UTC is done to ensure consistency in date
    * handling whether or not the database can do proper timezone conversion.
-   * 
+   *
    * Views filters that not exposed are cached and won't set the timezone
-   * so views date filters should add 'cacheable' => 'no' to their 
-   * definitions to ensure that the database timezone gets set properly 
+   * so views date filters should add 'cacheable' => 'no' to their
+   * definitions to ensure that the database timezone gets set properly
    * when the query is executed.
-   * 
+   *
    * @param $offset
    *   An offset value to set the database timezone to. This will only
    *   set a fixed offset, not a timezone, so any value other than
@@ -129,7 +132,7 @@ class date_sql_handler {
       elseif ($type == 'pgsql') {
         db_query("SET TIME ZONE INTERVAL '$offset' HOUR TO MINUTE");
       }
-      $already_set = true;
+      $already_set = TRUE;
     }
   }
 
@@ -160,7 +163,7 @@ class date_sql_handler {
    *   An appropriate SQL string for the db type and field type.
    */
   function sql_field($field, $offset = NULL) {
-    if (strtoupper($field) == 'NOW') {
+    if (drupal_strtoupper($field) == 'NOW') {
       // NOW() will be in UTC since that is what we set the db timezone to.
       $this->local_timezone = 'UTC';
       return $this->sql_offset('NOW()', $offset);
@@ -224,7 +227,7 @@ class date_sql_handler {
 
   /**
    * Adjust a field value by time interval.
-   * 
+   *
    * @param $field
    *   The field to be adjusted.
    * @param $direction
@@ -236,7 +239,7 @@ class date_sql_handler {
    *   like SECOND, MINUTE, DAY, HOUR.
    */
   function sql_date_math($field, $direction, $count, $granularity) {
-    $granularity = strtoupper($granularity);
+    $granularity = drupal_strtoupper($granularity);
     switch ($this->db_type) {
       case 'mysql':
       case 'mysqli':
@@ -255,28 +258,28 @@ class date_sql_handler {
           case 'SUB':
             return "($field - INTERVAL '$count $granularity')";
         }
-     }
-     return $field;
-  }  
+    }
+    return $field;
+  }
 
   /**
    * Select a date value from the database, adjusting the value
    * for the timezone.
-   * 
+   *
    * Check whether database timezone conversion is supported in
    * this system and use it if possible, otherwise use an
    * offset.
-   * 
+   *
    * @param $offset
-   *   Set a fixed offset or offset field to use for the date. 
-   *   If set, no timezone conversion will be done and the 
+   *   Set a fixed offset or offset field to use for the date.
+   *   If set, no timezone conversion will be done and the
    *   offset will be used.
    */
   function sql_tz($field, $offset = NULL) {
     // If the timezones are values they need to be quoted, but
     // if they are field names they do not.
     $db_zone   = $this->db_timezone_field ? $this->db_timezone_field : "'{$this->db_timezone}'";
-    $localzone = $this->local_timezone_field ? $this->local_timezone_field : "'{$this->local_timezone}'"; 
+    $localzone = $this->local_timezone_field ? $this->local_timezone_field : "'{$this->local_timezone}'";
 
     // If a fixed offset is required, use it.
     if ($offset !== NULL) {
@@ -364,7 +367,7 @@ class date_sql_handler {
   function sql_extract($extract_type, $field) {
     // Note there is no space after FROM to avoid db_rewrite problems
     // see http://drupal.org/node/79904.
-    switch (strtoupper($extract_type)) {
+    switch (drupal_strtoupper($extract_type)) {
     case ('DATE'):
       return $field;
     case ('YEAR'):
@@ -422,23 +425,23 @@ class date_sql_handler {
    * @param int $value
    *   The value to compare the extracted date part to, could be a
    *   field name or a date string or NOW().
-   * @return 
+   * @return
    *   SQL for the where clause for this operation.
    */
-  function sql_where_date($type, $field, $operator, $value, $adjustment = 0) {
-    $type = strtoupper($type);
-    if (strtoupper($value) == 'NOW') {
+  function sql_where_date($type, $field, $operator, $value, $adjustment = NULL) {
+    $type = drupal_strtoupper($type);
+    if (drupal_strtoupper($value) == 'NOW') {
       $value = $this->sql_field('NOW', $adjustment);
     }
     elseif ($type == 'FIELD') {
       $value = $this->sql_field($value, $adjustment);
-    }    
+    }
     elseif ($type == 'DATE') {
       $date = date_make_date($value, date_default_timezone_name(), DATE_DATETIME);
       if (!empty($adjustment)) {
         date_modify($date, $adjustment .' seconds');
       }
-      // When comparing a field to a date we can avoid doing timezone 
+      // When comparing a field to a date we can avoid doing timezone
       // conversion by altering the comparison date to the db timezone.
       // This won't work if the timezone is a field instead of a value.
       if (empty($this->db_timezone_field) && empty($this->local_timezone_field) && $this->db_timezone_field != $this->local_timezone_field) {
@@ -446,7 +449,7 @@ class date_sql_handler {
         $this->local_timezone = $this->db_timezone;
       }
       $value = "'". date_format_date($date, 'custom', DATE_FORMAT_DATETIME) ."'";
-    }    
+    }
     if ($this->local_timezone != $this->db_timezone) {
       $field = $this->sql_field($field);
     }
@@ -467,10 +470,10 @@ class date_sql_handler {
    *   The db comparison operator to use, like '='.
    * @param int $value
    *   The integer value to compare the extracted date part to.
-   * @return 
+   * @return
    *   SQL for the where clause for this operation.
    */
-  function sql_where_extract($part, $field, $operator, $value, $adjustment = 0) {
+  function sql_where_extract($part, $field, $operator, $value, $adjustment = NULL) {
     $field = $this->sql_field($field, $adjustment);
     return $this->sql_extract($part, $field) ." $operator $value";
   }
@@ -487,10 +490,10 @@ class date_sql_handler {
    * @param string $value
    *   The value to compare the extracted date part to, could be a
    *   field name or a date string or NOW().
-   * @return 
+   * @return
    *   SQL for the where clause for this operation.
    */
-  function sql_where_format($format, $field, $operator, $value, $adjustment = 0) {
+  function sql_where_format($format, $field, $operator, $value, $adjustment = NULL) {
     $field = $this->sql_field($field, $adjustment);
     return $this->sql_format($format, $field) ." $operator '$value'";
   }
@@ -522,7 +525,7 @@ class date_sql_handler {
    * Part information.
    *
    * @param $op
-   *   'min', 'max', 'format', 'sep', 'empty_now', 'empty_min', 'empty_max'. 
+   *   'min', 'max', 'format', 'sep', 'empty_now', 'empty_min', 'empty_max'.
    *   Returns all info if empty.
    * @param $part
    *   'year', 'month', 'day', 'hour', 'minute', or 'second.
@@ -544,13 +547,13 @@ class date_sql_handler {
       'hour' => ' ', 'minute' => ':', 'second' => ':');
     $info['empty_now'] = array(
       'year' => date('Y'), 'month' => date('m'), 'day' => min('28', date('d')),
-      'hour' => date('H'), 'minute' => date('i'), 'second' => date('s'));  
+      'hour' => date('H'), 'minute' => date('i'), 'second' => date('s'));
     $info['empty_min'] = array(
       'year' => '1000', 'month' => '01', 'day' => '01',
-      'hour' => '00', 'minute' => '00', 'second' => '00');  
+      'hour' => '00', 'minute' => '00', 'second' => '00');
     $info['empty_max'] = array(
       'year' => '9999', 'month' => '12', 'day' => '31',
-      'hour' => '23', 'minute' => '59', 'second' => '59');  
+      'hour' => '23', 'minute' => '59', 'second' => '59');
     if (!empty($op)) {
       if (!empty($part)) {
         return $info[$op][$part];
@@ -563,9 +566,9 @@ class date_sql_handler {
   }
 
   /**
-   * Create a complete datetime value out of an 
+   * Create a complete datetime value out of an
    * incomplete array of selected values.
-   * 
+   *
    * For example, array('year' => 2008, 'month' => 05) will fill
    * in the day, hour, minute and second with the earliest possible
    * values if type = 'min', the latest possible values if type = 'max',
@@ -592,7 +595,7 @@ class date_sql_handler {
     }
 
     $compare = array_merge($this->part_info('empty_'. $type), $selected);
-    // If this is a max date, make sure the last day of 
+    // If this is a max date, make sure the last day of
     // the month is the right one for this date.
     if ($type == 'max') {
       $compare['day'] = date_days_in_month($compare['year'], $compare['month']);
@@ -623,24 +626,24 @@ class date_sql_handler {
    */
   function part_is_valid($value, $type) {
     if ( !preg_match('/^[0-9]*$/', $value) ) {
-      return false;
+      return FALSE;
     }
     $value = intval($value);
-    if ($value <= 0) return false;
+    if ($value <= 0) return FALSE;
     switch ($type) {
       case 'year':
-        if ($value < DATE_MIN_YEAR) return false;
+        if ($value < DATE_MIN_YEAR) return FALSE;
         break;
       case 'month':
-        if ($value < 0 || $value > 12) return false;
+        if ($value < 0 || $value > 12) return FALSE;
         break;
       case 'day':
-        if ($value < 0 || $value > 31) return false;
+        if ($value < 0 || $value > 31) return FALSE;
         break;
       case 'week':
-        if ($value < 0 || $value > 53) return false;
+        if ($value < 0 || $value > 53) return FALSE;
     }
-    return true;
+    return TRUE;
   }
 
   function views_formats($granularity, $type = 'sql') {
@@ -692,7 +695,7 @@ class date_sql_handler {
 
   /**
    * Parse date parts from an ISO date argument.
-   * 
+   *
    * Based on ISO 8601 date duration and time interval standards.
    *
    * See http://en.wikipedia.org/wiki/ISO_8601#Week_dates for definitions of ISO weeks.
@@ -730,7 +733,7 @@ class date_sql_handler {
           }
           else {
             $date['week'] = $matches[3];
-          }    
+          }
         }
         if (!empty($matches[4])) $date['day'] = $matches[4];
         if (!empty($matches[5])) $date['hour'] = $matches[5];
@@ -786,8 +789,8 @@ class date_sql_handler {
       '  ' => '',
       ' ' => '',
       );
-    $prefix = in_array($item, array('hours', 'hour', 'minutes', 'minute', 'seconds', 'second')) ? 'T' : '';  
-    return $prefix . strtr($direction, $replace) . $count . strtr($item, $replace);  
+    $prefix = in_array($item, array('hours', 'hour', 'minutes', 'minute', 'seconds', 'second')) ? 'T' : '';
+    return $prefix . strtr($direction, $replace) . $count . strtr($item, $replace);
   }
 
   /**
@@ -799,7 +802,7 @@ class date_sql_handler {
     $parts = $this->arg_parts($arg);
     $date = !empty($parts[0]['date']) ? $parts[0]['date'] : (!empty($parts[1]['date']) ? $parts[1]['date'] : array());
     foreach ($date as $key => $part) {
-      $granularity = $key;    
+      $granularity = $key;
     }
     return $granularity;
   }
@@ -874,5 +877,5 @@ class date_sql_handler {
      // Intercept invalid info and fall back to the current date.
     $now = date_now();
     return array($now, $now);
- }
+  }
 }
\ No newline at end of file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_locale/date_locale.info b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_locale/date_locale.info
index aaf04c1..f7fe431 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_locale/date_locale.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_locale/date_locale.info
@@ -5,9 +5,9 @@ dependencies[] = date_api
 dependencies[] = locale
 core = 6.x
 
-; Information added by drupal.org packaging script on 2012-01-11
-version = "6.x-2.8"
+; Information added by drupal.org packaging script on 2012-04-27
+version = "6.x-2.9"
 core = "6.x"
 project = "date"
-datestamp = "1326285938"
+datestamp = "1335549078"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_locale/date_locale.module b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_locale/date_locale.module
index d5e17d8..f792755 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_locale/date_locale.module
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_locale/date_locale.module
@@ -151,7 +151,7 @@ function date_locale_format_form($form_state) {
       '#title' => t('Language'),
       '#type' => 'select',
       '#options' => $languages,
-      '#multiple' => false,
+      '#multiple' => FALSE,
     );
 
     $form['buttons']['submit'] = array(
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4.inc
index ff0b15d..a675fff 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4.inc
@@ -64,9 +64,9 @@ if (!function_exists('date_create')) {
       // Create a current date for an empty value or 'now'.
       $date_out = date_date('Y-m-d H:i:s', (time()), $timezone);
     }
-    elseif (substr($date_in, 0, 1) == '@' && is_numeric(substr($date_in, 1))) {
+    elseif (drupal_substr($date_in, 0, 1) == '@' && is_numeric(drupal_substr($date_in, 1))) {
       // An number prefixed with '@' is interpreted as a timestamp.
-      $date_out = date_date('Y-m-d H:i', substr($date_in, 1), $timezone);
+      $date_out = date_date('Y-m-d H:i', drupal_substr($date_in, 1), $timezone);
     }
     elseif (preg_match(DATE_REGEX_LOOSE, $date_in, $regs)) {
       $year = date_pad(isset($regs[1]) ? $regs[1] : 0, 4);
@@ -89,7 +89,7 @@ if (!function_exists('date_create')) {
     if (empty($date_out)) {
       return NULL;
     }
-    $date = new StdClass();
+    $date = new stdClass();
     $date->value = $date_out;
     $date->timestamp = date_datetime2timestamp($date->value, $timezone);
     $date->timezone = $timezone;
@@ -141,10 +141,10 @@ if (!function_exists('date_format')) {
               $date_string .= $days[$dow];
             }
             elseif ($c == 'D') {
-              // There is no date_week_days_abbr_untranslated(). 
+              // There is no date_week_days_abbr_untranslated().
               // This rule works for English, untranslated day names.
               $days = date_week_days_abbr();
-              $date_string .= substr($days[$dow], 0, 3);
+              $date_string .= drupal_substr($days[$dow], 0, 3);
             }
             break;
           case 'L':
@@ -189,8 +189,8 @@ if (!function_exists('date_format')) {
             $result = date_calc_gregorian_to_ISO(date_part_extract($date->value, 'day'),
               date_part_extract($date->value, 'month'),
               date_part_extract($date->value, 'year'));
-            $result = explode('-', $result);  
-            $date_string .= $result[1];  
+            $result = explode('-', $result);
+            $date_string .= $result[1];
           default:
             if (strpos('AaeDFlMTBcdGgHhIijLmNnOoPrSstUuwYyZz', $c) !== FALSE) {
               $date_string .= date_date($c, $timestamp, $date->timezone);
@@ -392,9 +392,9 @@ if (!function_exists('date_modify')) {
  *   the date that matches the phrase.
  *
  */
-  function date_modify(&$date, $change) { 
+  function date_modify(&$date, $change) {
     $cdate = $date->value;
-    $time = substr($date->value, 11, 8);
+    $time = drupal_substr($date->value, 11, 8);
 
     // We have to use strings like 'First Sunday' instead of
     // +1 Sunday to overcome a PHP5 bug (see #369020).
@@ -403,9 +403,9 @@ if (!function_exists('date_modify')) {
     $replace = array_flip(date_order());
     $change = strtr($change, $replace);
 
-    $change = trim($change);   
+    $change = trim($change);
     //Date is too old for strtotime(), or looking for custom +/- values, use date_calc instead.
-    if (substr($change, 0, 1) != '+' && substr($change, 0, 1) != '-'
+    if (drupal_substr($change, 0, 1) != '+' && drupal_substr($change, 0, 1) != '-'
     && 1971 < date_part_extract($cdate, 'year')
     && date_part_extract($cdate, 'year') < 2038) {
       $cdate = strtotime($change, strtotime($cdate .' UTC'));
@@ -423,8 +423,8 @@ if (!function_exists('date_modify')) {
       if (empty($results) || empty($item)) {
         return;
       }
-      if (substr($item, -1) == 's') {
-        $item = substr($item, 0, strlen($item) - 1);
+      if (drupal_substr($item, -1) == 's') {
+        $item = drupal_substr($item, 0, strlen($item) - 1);
       }
       // Process +/- Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday
       if (in_array($item, $days)) {
@@ -563,13 +563,13 @@ if (!function_exists('timezone_abbreviations_list')) {
  *
  * Expanded array looks like:
  * array(
- *   'cdt' => array (
- *     0 => array (
+ *   'cdt' => array(
+ *     0 => array(
  *      'dst' => true,
  *      'offset' => -18000,
  *      'timezone_id' => 'America/Chicago',
  *     ),
- *     1 => array (
+ *     1 => array(
  *      'dst' => true,
  *      'offset' => -14400,
  *      'timezone_id' => 'America/Havana',
@@ -691,7 +691,7 @@ function date_is_dst($timestamp, $timezone = NULL) {
           $dstend = strtotime("-1 sunday GMT", strtotime("12 october $year GMT"))+ 7200;
           break;
         default:
-          return false;
+          return FALSE;
       }
       break;
     case 6: // Lebanon, Kirgizstan
@@ -868,14 +868,14 @@ require_once('./'. drupal_get_path('module', 'date_php4') .'/date_php4_lib.inc')
  * @param $timezone name
  *   Use 'UTC' to avoid timezone conversion.
  */
-function date_getdate($timestamp = false, $timezone = false) {
+function date_getdate($timestamp = FALSE, $timezone = FALSE) {
   return _date_getdate($timestamp, $timezone);
 }
 
 /**
  * Like date_getdate with no GMT conversion.
  */
-function date_gmgetdate($timestamp = false) {
+function date_gmgetdate($timestamp = FALSE) {
   if (!$timestamp) return array();
   $array    = date_getdate($timestamp, 'UTC');
   $array[0] = $timestamp;
@@ -892,12 +892,12 @@ function date_gmgetdate($timestamp = false) {
  * @param $timezone name
  *   Use 'UTC' to avoid timezone conversion.
  */
-function date_date($format, $timestamp = false, $timezone = false) {
+function date_date($format, $timestamp = FALSE, $timezone = FALSE) {
   // date($format) will adjust to the server timezone, which may
-  // not be right, but we don't use it in this module anywhere and 
-  // there is no easy way to get it working right without creating 
+  // not be right, but we don't use it in this module anywhere and
+  // there is no easy way to get it working right without creating
   // circular code.
-  if ($timestamp === false) return ($is_gmt)? @gmdate($format): @date($format);
+  if ($timestamp === FALSE) return ($is_gmt)? @gmdate($format): @date($format);
   if ($timezone === FALSE) {
     $timezone = date_default_timezone_name();
   }
@@ -919,13 +919,13 @@ function date_date($format, $timestamp = false, $timezone = false) {
 /**
  * Like date_date with no GMT conversion.
  */
-function date_gmdate($format, $timestamp = false, $test = false) {
+function date_gmdate($format, $timestamp = FALSE, $test = FALSE) {
   return date_date($format, $timestamp, 'UTC', $test);
 }
 
 /**
  * Return a timestamp given a local time.
- * 
+ *
  * @param $timezone name
  *   Use 'UTC' to avoid timezone conversion.
  *
@@ -933,7 +933,7 @@ function date_gmdate($format, $timestamp = false, $test = false) {
  * lower level functions to make sure we adjust to the right timezone
  * (native 'date' functions use the server timezone).
  */
-function date_mktime($hr, $min, $sec, $mon = false, $day = false, $year = false, $timezone = false) {
+function date_mktime($hr, $min, $sec, $mon = FALSE, $day = FALSE, $year = FALSE, $timezone = FALSE) {
   if ($timezone === FALSE) {
     $timezone = date_default_timezone_name();
   }
@@ -941,7 +941,7 @@ function date_mktime($hr, $min, $sec, $mon = false, $day = false, $year = false,
   $hr = intval($hr);
   $min = intval($min);
   $sec = intval($sec);
-  if ($mon === false && $is_gmt) {
+  if ($mon === FALSE && $is_gmt) {
     return @gmmktime($hr, $min, $sec);
   }
   $mon = intval($mon) > 0 ? intval($mon) : date('n');
@@ -950,7 +950,7 @@ function date_mktime($hr, $min, $sec, $mon = false, $day = false, $year = false,
 
   // Don't use native handling for any values that could create negative
   // timestamp, Windows does not support them at all in PHP 4, and
-  // the adodb date library notes that since RedHat 7.3, negative 
+  // the adodb date library notes that since RedHat 7.3, negative
   // timestamps are not supported in glibc either.
   // Step in one year on either side of allowable 1970-2038 window
   // to be sure timezone adjustments and month and day additions
@@ -965,13 +965,13 @@ function date_mktime($hr, $min, $sec, $mon = false, $day = false, $year = false,
 /**
  * Like date_mktime with no GMT conversion.
 */
-function date_gmmktime($hr, $min, $sec, $mon = false, $day = false, $year = false) {
+function date_gmmktime($hr, $min, $sec, $mon = FALSE, $day = FALSE, $year = FALSE) {
   return date_mktime($hr, $min, $sec, $mon, $day, $year, 'UTC');
 }
 
 /**
  * Get local time zone offset from GMT.
- * 
+ *
  * @return timezone offset in seconds
  */
 function date_get_gmt_diff_ts($timestamp, $timezone = NULL) {
@@ -981,7 +981,7 @@ function date_get_gmt_diff_ts($timestamp, $timezone = NULL) {
   elseif (empty($timezone)) {
     $timezone = date_default_timezone_name();
   }
-  $date = new StdClass();
+  $date = new stdClass();
   $date->timestamp = $timestamp;
   $date->timezone = $timezone;
   return date_offset_get($date);
@@ -1033,7 +1033,7 @@ function date_dow($day, $month, $year) {
       $greg_correction = 0;
   } else
     $greg_correction = 0;
-  if($month > 2)
+  if ($month > 2)
       $month -= 2;
   else {
       $month += 10;
@@ -1049,14 +1049,14 @@ function date_dow($day, $month, $year) {
 }
 
 /**
- * Returns true for a leap year, else false. Works outside normal date range.
+ * Returns true for a leap year, else FALSE. Works outside normal date range.
  *
  * @param int  $year
  * @return boolean
  */
 function date_is_leap_year($year) {
   if ($year < 1000) {
-    return false;
+    return FALSE;
   }
   if ($year < 1582) { // pre Gregorio XIII - 1582
     return ($year % 4 == 0);
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4.info b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4.info
index 2dddb96..f3715a9 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4.info
@@ -4,9 +4,9 @@ package = Date/Time
 dependencies[] = date_api
 core = 6.x
 
-; Information added by drupal.org packaging script on 2012-01-11
-version = "6.x-2.8"
+; Information added by drupal.org packaging script on 2012-04-27
+version = "6.x-2.9"
 core = "6.x"
 project = "date"
-datestamp = "1326285938"
+datestamp = "1335549078"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4_calc.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4_calc.inc
index 3a90a3e..d60d463 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4_calc.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4_calc.inc
@@ -92,9 +92,9 @@ function date_calc_format($day, $month, $year, $format = DATE_CALC_FORMAT) {
   }
   $output = '';
   for ($strpos = 0; $strpos < strlen($format); $strpos++) {
-    $char = substr($format, $strpos, 1);
+    $char = drupal_substr($format, $strpos, 1);
     if ($char == '%') {
-      $nextchar = substr($format, $strpos + 1, 1);
+      $nextchar = drupal_substr($format, $strpos + 1, 1);
       switch ($nextchar) {
         case 'a':
           $output .= date_calc_get_weekday_abbrname($day, $month, $year);
@@ -136,7 +136,7 @@ function date_calc_format($day, $month, $year, $format = DATE_CALC_FORMAT) {
           $output .= date_calc_week_of_year($day, $month, $year);
           break;
         case 'y':
-          $output .= substr(date_pad($year, 4), 2, 2);
+          $output .= drupal_substr(date_pad($year, 4), 2, 2);
           break;
         case 'Y':
           $output .= date_pad($year, 4);
@@ -157,7 +157,7 @@ function date_calc_format($day, $month, $year, $format = DATE_CALC_FORMAT) {
 }
 
 /**
- * Returns true for valid date, false for invalid date.
+ * Returns true for valid date, FALSE for invalid date.
  * Renamed this function because we already have a similar function that
  * expects a full date as a parameter.
  *
@@ -172,12 +172,12 @@ function date_calc_format($day, $month, $year, $format = DATE_CALC_FORMAT) {
  */
 function date_calc_is_valid($day, $month, $year) {
   if ($year > variable_get('date_max_year', 4000) || $year < variable_get('date_min_year', 1)) {
-    return false;
+    return FALSE;
   }
   if (!checkdate($month, $day, $year)) {
     // Checkdate won't work on very old dates in PHP 4, need more testing.
     if (!date_gmmktime(0, 0, 0, $month, $day, $year)) {
-      return false;
+      return FALSE;
     }
   }
   return true;
@@ -197,8 +197,8 @@ function date_calc_is_valid($day, $month, $year) {
  *   The number of days since the date_calc epoch.
  */
 function date_calc_date_to_days($day, $month, $year) {
-  $century = (int)substr($year, 0, 2);
-  $year = (int)substr($year, 2, 2);
+  $century = (int)drupal_substr($year, 0, 2);
+  $year = (int)drupal_substr($year, 2, 2);
   if ($month > 2) {
     $month -= 3;
   }
@@ -569,7 +569,7 @@ function date_calc_get_month_abbrname($month, $length = 3) {
   if (empty($month)) {
     $month = date_calc_get_month();
   }
-  return drupal_substr(date_calc_get_month_fullname($month), 0, $length);
+  return drupal_drupal_substr(date_calc_get_month_fullname($month), 0, $length);
 }
 
 /**
@@ -984,7 +984,7 @@ function date_calc_next_weekday($day = 0, $month = 0, $year = 0, $format = DATE_
  *   The date in the desired format.
  */
 function date_calc_prev_day_of_week($dow, $day = 0, $month = 0, $year = 0,
-  $format = DATE_CALC_FORMAT, $on_or_before = false) {
+  $format = DATE_CALC_FORMAT, $on_or_before = FALSE) {
   if (empty($year)) {
     $year = date_calc_get_year();
   }
@@ -1030,7 +1030,7 @@ function date_calc_prev_day_of_week($dow, $day = 0, $month = 0, $year = 0,
  * @return string  the date in the desired format
  */
 function date_calc_next_day_of_week($dow, $day = 0, $month = 0, $year = 0,
-  $format = DATE_CALC_FORMAT, $on_or_after = false) {
+  $format = DATE_CALC_FORMAT, $on_or_after = FALSE) {
   if (empty($year)) {
     $year = date_calc_get_year();
   }
@@ -1149,9 +1149,9 @@ function date_calc_begin_of_prev_week($day = 0, $month = 0, $year = 0, $format =
     $day = date_calc_get_day();
   }
   $date = date_calc_days_to_date(date_calc_date_to_days($day-7, $month, $year), '%Y%m%d');
-  $prev_week_year  = intval(substr($date, 0, 4));
-  $prev_week_month = intval(substr($date, 4, 2));
-  $prev_week_day   = intval(substr($date, 6, 2));
+  $prev_week_year  = intval(drupal_substr($date, 0, 4));
+  $prev_week_month = intval(drupal_substr($date, 4, 2));
+  $prev_week_day   = intval(drupal_substr($date, 6, 2));
   return date_calc_begin_of_week($prev_week_day, $prev_week_month, $prev_week_year, $format);
 }
 
@@ -1182,9 +1182,9 @@ function date_calc_begin_of_next_week($day = 0, $month = 0, $year = 0,
     $day = date_calc_get_day();
   }
   $date = date_calc_days_to_date(date_calc_date_to_days($day + 7, $month, $year), '%Y%m%d');
-  $next_week_year  = intval(substr($date, 0, 4));
-  $next_week_month = intval(substr($date, 4, 2));
-  $next_week_day   = intval(substr($date, 6, 2));
+  $next_week_year  = intval(drupal_substr($date, 0, 4));
+  $next_week_month = intval(drupal_substr($date, 4, 2));
+  $next_week_day   = intval(drupal_substr($date, 6, 2));
   return date_calc_begin_of_week($next_week_day, $next_week_month, $next_week_year, $format);
 }
 
@@ -1402,7 +1402,7 @@ function date_calc_is_future_date($day, $month, $year) {
       }
     }
   }
-  return false;
+  return FALSE;
 }
 
 /**
@@ -1434,7 +1434,7 @@ function date_calc_is_past_date($day, $month, $year) {
       }
     }
   }
-  return false;
+  return FALSE;
 }
 
 /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4_lib.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4_lib.inc
index cbb3e74..e244a12 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4_lib.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4_lib.inc
@@ -61,7 +61,7 @@
  * @param $timezone name
  *   Use 'UTC' to avoid timezone conversion.
  */
-function _date_getdate($timestamp = false, $timezone = false) {
+function _date_getdate($timestamp = FALSE, $timezone = FALSE) {
   static $YRS;
   if ($timezone === FALSE) {
     $timezone = date_default_timezone_name();
@@ -221,7 +221,7 @@ function _date_getdate($timestamp = false, $timezone = false) {
  * @param $timezone name
  *   Use 'UTC' to avoid timezone conversion.
  */
-function _date_date($format, $timestamp = false, $timezone = false) {
+function _date_date($format, $timestamp = FALSE, $timezone = FALSE) {
   if ($timezone === FALSE) {
     $timezone = date_default_timezone_name();
   }
@@ -257,7 +257,7 @@ function _date_date($format, $timestamp = false, $timezone = false) {
       $gmt = date_get_gmt_diff_ts($timestamp, $timezone);
       $dates .= sprintf(' %s%04d', ($gmt >= 0) ? '+' : '-', abs($gmt) / 36); break;
     case 'Y': $dates .= date_pad($year, 4); break;
-    case 'y': $dates .= substr($year, strlen($year)-2, 2); break;
+    case 'y': $dates .= drupal_substr($year, strlen($year)-2, 2); break;
     // MONTH
     case 'm': if ($month<10) $dates .= '0'. $month; else $dates .= $month; break;
     case 'Q': $dates .= ($month + 3)>>2; break;
@@ -275,8 +275,8 @@ function _date_date($format, $timestamp = false, $timezone = false) {
     case 'S':
       $d10 = $day % 10;
       if ($d10 == 1) $dates .= 'st';
-      else if ($d10 == 2 && $day != 12) $dates .= 'nd';
-      else if ($d10 == 3) $dates .= 'rd';
+      elseif ($d10 == 2 && $day != 12) $dates .= 'nd';
+      elseif ($d10 == 3) $dates .= 'rd';
       else $dates .= 'th';
       break;
     // HOUR
@@ -285,7 +285,7 @@ function _date_date($format, $timestamp = false, $timezone = false) {
       break;
     case 'O':
       $gmt = date_get_gmt_diff_ts($timestamp, $timezone);
-      $dates .= sprintf('%s%04d', ($gmt<0)?'+':'-', abs($gmt)/36); 
+      $dates .= sprintf('%s%04d', ($gmt<0)?'+':'-', abs($gmt)/36);
       break;
     case 'H':
       if ($hour < 10) $dates .= '0'. $hour;
@@ -350,7 +350,7 @@ function _date_date($format, $timestamp = false, $timezone = false) {
  * @param $timezone name
  *   Use 'UTC' to avoid timezone conversion.
  */
-function _date_mktime($hr, $min, $sec, $mon = false, $day = false, $year = false, $timezone = false) {
+function _date_mktime($hr, $min, $sec, $mon = FALSE, $day = FALSE, $year = FALSE, $timezone = FALSE) {
   if ($timezone === FALSE) {
     $timezone = date_default_timezone_name();
   }
@@ -371,7 +371,7 @@ function _date_mktime($hr, $min, $sec, $mon = false, $day = false, $year = false
     $year += $y;
     $mon -= $y * 12;
   }
-  else if ($mon < 1) {
+  elseif ($mon < 1) {
     $y = ceil((1-$mon) / 12);
     $year -= $y;
     $mon += $y * 12;
@@ -432,7 +432,7 @@ function _date_mktime($hr, $min, $sec, $mon = false, $day = false, $year = false
     $_day_time = $_day_power - $_day_time;
     $ret = -( $_total_date * $_day_power + $_day_time);
     if ($ret < -12220185600) $ret += 10*86400; // if earlier than 5 Oct 1582 - gregorian correction
-    else if ($ret < -12219321600) $ret = -12219321600; // if in limbo, reset to 15 Oct 1582.
+    elseif ($ret < -12219321600) $ret = -12219321600; // if in limbo, reset to 15 Oct 1582.
   }
   return $ret;
 }
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4_missing_data.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4_missing_data.inc
index 316ce28..7171ca2 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4_missing_data.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4_missing_data.inc
@@ -2,7 +2,7 @@
 // These are timezones that exist in the date_timezone_names() array
 // that do not exist in the timezone_abbreviations_list(), so we have
 // to remove them.
-$missing_timezone_data = array (
+$missing_timezone_data = array(
   1 => 'Africa/Asmara',
   2 => 'Africa/Bujumbura',
   3 => 'Africa/Kinshasa',
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4_tz_create.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4_tz_create.inc
index 2bb4b04..f3dd193 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4_tz_create.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_php4/date_php4_tz_create.inc
@@ -10,3221 +10,3221 @@ $data = array(
         'offset' => -43200000,
         'longname' => "GMT-12:00",
         'shortname' => 'GMT-12:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Etc/GMT+11' => array(
         'offset' => -39600000,
         'longname' => "GMT-11:00",
         'shortname' => 'GMT-11:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'MIT' => array(
         'offset' => -39600000,
         'longname' => "West Samoa Time",
         'shortname' => 'WST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Apia' => array(
         'offset' => -39600000,
         'longname' => "West Samoa Time",
         'shortname' => 'WST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Midway' => array(
         'offset' => -39600000,
         'longname' => "Samoa Standard Time",
         'shortname' => 'SST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Niue' => array(
         'offset' => -39600000,
         'longname' => "Niue Time",
         'shortname' => 'NUT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Pago_Pago' => array(
         'offset' => -39600000,
         'longname' => "Samoa Standard Time",
         'shortname' => 'SST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Samoa' => array(
         'offset' => -39600000,
         'longname' => "Samoa Standard Time",
         'shortname' => 'SST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'US/Samoa' => array(
         'offset' => -39600000,
         'longname' => "Samoa Standard Time",
         'shortname' => 'SST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Adak' => array(
         'offset' => -36000000,
         'longname' => "Hawaii-Aleutian Standard Time",
         'shortname' => 'HAST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Hawaii-Aleutian Daylight Time",
         'dstshortname' => 'HADT' ),
     'America/Atka' => array(
         'offset' => -36000000,
         'longname' => "Hawaii-Aleutian Standard Time",
         'shortname' => 'HAST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Hawaii-Aleutian Daylight Time",
         'dstshortname' => 'HADT' ),
     'Etc/GMT+10' => array(
         'offset' => -36000000,
         'longname' => "GMT-10:00",
         'shortname' => 'GMT-10:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'HST' => array(
         'offset' => -36000000,
         'longname' => "Hawaii Standard Time",
         'shortname' => 'HST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Fakaofo' => array(
         'offset' => -36000000,
         'longname' => "Tokelau Time",
         'shortname' => 'TKT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Honolulu' => array(
         'offset' => -36000000,
         'longname' => "Hawaii Standard Time",
         'shortname' => 'HST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Johnston' => array(
         'offset' => -36000000,
         'longname' => "Hawaii Standard Time",
         'shortname' => 'HST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Rarotonga' => array(
         'offset' => -36000000,
         'longname' => "Cook Is. Time",
         'shortname' => 'CKT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Tahiti' => array(
         'offset' => -36000000,
         'longname' => "Tahiti Time",
         'shortname' => 'TAHT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'SystemV/HST10' => array(
         'offset' => -36000000,
         'longname' => "Hawaii Standard Time",
         'shortname' => 'HST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'US/Aleutian' => array(
         'offset' => -36000000,
         'longname' => "Hawaii-Aleutian Standard Time",
         'shortname' => 'HAST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Hawaii-Aleutian Daylight Time",
         'dstshortname' => 'HADT' ),
     'US/Hawaii' => array(
         'offset' => -36000000,
         'longname' => "Hawaii Standard Time",
         'shortname' => 'HST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Marquesas' => array(
         'offset' => -34200000,
         'longname' => "Marquesas Time",
         'shortname' => 'MART',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'AST' => array(
         'offset' => -32400000,
         'longname' => "Alaska Standard Time",
         'shortname' => 'AKST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Alaska Daylight Time",
         'dstshortname' => 'AKDT' ),
     'America/Anchorage' => array(
         'offset' => -32400000,
         'longname' => "Alaska Standard Time",
         'shortname' => 'AKST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Alaska Daylight Time",
         'dstshortname' => 'AKDT' ),
     'America/Juneau' => array(
         'offset' => -32400000,
         'longname' => "Alaska Standard Time",
         'shortname' => 'AKST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Alaska Daylight Time",
         'dstshortname' => 'AKDT' ),
     'America/Nome' => array(
         'offset' => -32400000,
         'longname' => "Alaska Standard Time",
         'shortname' => 'AKST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Alaska Daylight Time",
         'dstshortname' => 'AKDT' ),
     'America/Yakutat' => array(
         'offset' => -32400000,
         'longname' => "Alaska Standard Time",
         'shortname' => 'AKST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Alaska Daylight Time",
         'dstshortname' => 'AKDT' ),
     'Etc/GMT+9' => array(
         'offset' => -32400000,
         'longname' => "GMT-09:00",
         'shortname' => 'GMT-09:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Gambier' => array(
         'offset' => -32400000,
         'longname' => "Gambier Time",
         'shortname' => 'GAMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'SystemV/YST9' => array(
         'offset' => -32400000,
         'longname' => "Gambier Time",
         'shortname' => 'GAMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'SystemV/YST9YDT' => array(
         'offset' => -32400000,
         'longname' => "Alaska Standard Time",
         'shortname' => 'AKST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Alaska Daylight Time",
         'dstshortname' => 'AKDT' ),
     'US/Alaska' => array(
         'offset' => -32400000,
         'longname' => "Alaska Standard Time",
         'shortname' => 'AKST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Alaska Daylight Time",
         'dstshortname' => 'AKDT' ),
     'America/Dawson' => array(
         'offset' => -28800000,
         'longname' => "Pacific Standard Time",
         'shortname' => 'PST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Pacific Daylight Time",
         'dstshortname' => 'PDT' ),
     'America/Ensenada' => array(
         'offset' => -28800000,
         'longname' => "Pacific Standard Time",
         'shortname' => 'PST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Pacific Daylight Time",
         'dstshortname' => 'PDT' ),
     'America/Los_Angeles' => array(
         'offset' => -28800000,
         'longname' => "Pacific Standard Time",
         'shortname' => 'PST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Pacific Daylight Time",
         'dstshortname' => 'PDT' ),
     'America/Tijuana' => array(
         'offset' => -28800000,
         'longname' => "Pacific Standard Time",
         'shortname' => 'PST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Pacific Daylight Time",
         'dstshortname' => 'PDT' ),
     'America/Vancouver' => array(
         'offset' => -28800000,
         'longname' => "Pacific Standard Time",
         'shortname' => 'PST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Pacific Daylight Time",
         'dstshortname' => 'PDT' ),
     'America/Whitehorse' => array(
         'offset' => -28800000,
         'longname' => "Pacific Standard Time",
         'shortname' => 'PST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Pacific Daylight Time",
         'dstshortname' => 'PDT' ),
     'Canada/Pacific' => array(
         'offset' => -28800000,
         'longname' => "Pacific Standard Time",
         'shortname' => 'PST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Pacific Daylight Time",
         'dstshortname' => 'PDT' ),
     'Canada/Yukon' => array(
         'offset' => -28800000,
         'longname' => "Pacific Standard Time",
         'shortname' => 'PST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Pacific Daylight Time",
         'dstshortname' => 'PDT' ),
     'Etc/GMT+8' => array(
         'offset' => -28800000,
         'longname' => "GMT-08:00",
         'shortname' => 'GMT-08:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Mexico/BajaNorte' => array(
         'offset' => -28800000,
         'longname' => "Pacific Standard Time",
         'shortname' => 'PST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Pacific Daylight Time",
         'dstshortname' => 'PDT' ),
     'PST' => array(
         'offset' => -28800000,
         'longname' => "Pacific Standard Time",
         'shortname' => 'PST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Pacific Daylight Time",
         'dstshortname' => 'PDT' ),
     'PST8PDT' => array(
         'offset' => -28800000,
         'longname' => "Pacific Standard Time",
         'shortname' => 'PST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Pacific Daylight Time",
         'dstshortname' => 'PDT' ),
     'Pacific/Pitcairn' => array(
         'offset' => -28800000,
         'longname' => "Pitcairn Standard Time",
         'shortname' => 'PST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'SystemV/PST8' => array(
         'offset' => -28800000,
         'longname' => "Pitcairn Standard Time",
         'shortname' => 'PST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'SystemV/PST8PDT' => array(
         'offset' => -28800000,
         'longname' => "Pacific Standard Time",
         'shortname' => 'PST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Pacific Daylight Time",
         'dstshortname' => 'PDT' ),
     'US/Pacific' => array(
         'offset' => -28800000,
         'longname' => "Pacific Standard Time",
         'shortname' => 'PST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Pacific Daylight Time",
         'dstshortname' => 'PDT' ),
     'US/Pacific-New' => array(
         'offset' => -28800000,
         'longname' => "Pacific Standard Time",
         'shortname' => 'PST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Pacific Daylight Time",
         'dstshortname' => 'PDT' ),
     'America/Boise' => array(
         'offset' => -25200000,
         'longname' => "Mountain Standard Time",
         'shortname' => 'MST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Mountain Daylight Time",
         'dstshortname' => 'MDT' ),
     'America/Cambridge_Bay' => array(
         'offset' => -25200000,
         'longname' => "Mountain Standard Time",
         'shortname' => 'MST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Mountain Daylight Time",
         'dstshortname' => 'MDT' ),
     'America/Chihuahua' => array(
         'offset' => -25200000,
         'longname' => "Mountain Standard Time",
         'shortname' => 'MST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Mountain Daylight Time",
         'dstshortname' => 'MDT' ),
     'America/Dawson_Creek' => array(
         'offset' => -25200000,
         'longname' => "Mountain Standard Time",
         'shortname' => 'MST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Denver' => array(
         'offset' => -25200000,
         'longname' => "Mountain Standard Time",
         'shortname' => 'MST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Mountain Daylight Time",
         'dstshortname' => 'MDT' ),
     'America/Edmonton' => array(
         'offset' => -25200000,
         'longname' => "Mountain Standard Time",
         'shortname' => 'MST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Mountain Daylight Time",
         'dstshortname' => 'MDT' ),
     'America/Hermosillo' => array(
         'offset' => -25200000,
         'longname' => "Mountain Standard Time",
         'shortname' => 'MST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Inuvik' => array(
         'offset' => -25200000,
         'longname' => "Mountain Standard Time",
         'shortname' => 'MST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Mountain Daylight Time",
         'dstshortname' => 'MDT' ),
     'America/Mazatlan' => array(
         'offset' => -25200000,
         'longname' => "Mountain Standard Time",
         'shortname' => 'MST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Mountain Daylight Time",
         'dstshortname' => 'MDT' ),
     'America/Phoenix' => array(
         'offset' => -25200000,
         'longname' => "Mountain Standard Time",
         'shortname' => 'MST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Shiprock' => array(
         'offset' => -25200000,
         'longname' => "Mountain Standard Time",
         'shortname' => 'MST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Mountain Daylight Time",
         'dstshortname' => 'MDT' ),
     'America/Yellowknife' => array(
         'offset' => -25200000,
         'longname' => "Mountain Standard Time",
         'shortname' => 'MST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Mountain Daylight Time",
         'dstshortname' => 'MDT' ),
     'Canada/Mountain' => array(
         'offset' => -25200000,
         'longname' => "Mountain Standard Time",
         'shortname' => 'MST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Mountain Daylight Time",
         'dstshortname' => 'MDT' ),
     'Etc/GMT+7' => array(
         'offset' => -25200000,
         'longname' => "GMT-07:00",
         'shortname' => 'GMT-07:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'MST' => array(
         'offset' => -25200000,
         'longname' => "Mountain Standard Time",
         'shortname' => 'MST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Mountain Daylight Time",
         'dstshortname' => 'MDT' ),
     'MST7MDT' => array(
         'offset' => -25200000,
         'longname' => "Mountain Standard Time",
         'shortname' => 'MST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Mountain Daylight Time",
         'dstshortname' => 'MDT' ),
     'Mexico/BajaSur' => array(
         'offset' => -25200000,
         'longname' => "Mountain Standard Time",
         'shortname' => 'MST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Mountain Daylight Time",
         'dstshortname' => 'MDT' ),
     'Navajo' => array(
         'offset' => -25200000,
         'longname' => "Mountain Standard Time",
         'shortname' => 'MST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Mountain Daylight Time",
         'dstshortname' => 'MDT' ),
     'PNT' => array(
         'offset' => -25200000,
         'longname' => "Mountain Standard Time",
         'shortname' => 'MST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'SystemV/MST7' => array(
         'offset' => -25200000,
         'longname' => "Mountain Standard Time",
         'shortname' => 'MST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'SystemV/MST7MDT' => array(
         'offset' => -25200000,
         'longname' => "Mountain Standard Time",
         'shortname' => 'MST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Mountain Daylight Time",
         'dstshortname' => 'MDT' ),
     'US/Arizona' => array(
         'offset' => -25200000,
         'longname' => "Mountain Standard Time",
         'shortname' => 'MST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'US/Mountain' => array(
         'offset' => -25200000,
         'longname' => "Mountain Standard Time",
         'shortname' => 'MST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Mountain Daylight Time",
         'dstshortname' => 'MDT' ),
     'America/Belize' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Cancun' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central Daylight Time",
         'dstshortname' => 'CDT' ),
     'America/Chicago' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central Daylight Time",
         'dstshortname' => 'CDT' ),
     'America/Costa_Rica' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/El_Salvador' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Guatemala' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Managua' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Menominee' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central Daylight Time",
         'dstshortname' => 'CDT' ),
     'America/Merida' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central Daylight Time",
         'dstshortname' => 'CDT' ),
     'America/Mexico_City' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Monterrey' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central Daylight Time",
         'dstshortname' => 'CDT' ),
     'America/North_Dakota/Center' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central Daylight Time",
         'dstshortname' => 'CDT' ),
     'America/Rainy_River' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central Daylight Time",
         'dstshortname' => 'CDT' ),
     'America/Rankin_Inlet' => array(
         'offset' => -21600000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Daylight Time",
         'dstshortname' => 'EDT' ),
     'America/Regina' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Swift_Current' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Tegucigalpa' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Winnipeg' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central Daylight Time",
         'dstshortname' => 'CDT' ),
     'CST' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central Daylight Time",
         'dstshortname' => 'CDT' ),
     'CST6CDT' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central Daylight Time",
         'dstshortname' => 'CDT' ),
     'Canada/Central' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central Daylight Time",
         'dstshortname' => 'CDT' ),
     'Canada/East-Saskatchewan' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Canada/Saskatchewan' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Chile/EasterIsland' => array(
         'offset' => -21600000,
         'longname' => "Easter Is. Time",
         'shortname' => 'EAST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Easter Is. Summer Time",
         'dstshortname' => 'EASST' ),
     'Etc/GMT+6' => array(
         'offset' => -21600000,
         'longname' => "GMT-06:00",
         'shortname' => 'GMT-06:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Mexico/General' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Easter' => array(
         'offset' => -21600000,
         'longname' => "Easter Is. Time",
         'shortname' => 'EAST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Easter Is. Summer Time",
         'dstshortname' => 'EASST' ),
     'Pacific/Galapagos' => array(
         'offset' => -21600000,
         'longname' => "Galapagos Time",
         'shortname' => 'GALT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'SystemV/CST6' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'SystemV/CST6CDT' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central Daylight Time",
         'dstshortname' => 'CDT' ),
     'US/Central' => array(
         'offset' => -21600000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central Daylight Time",
         'dstshortname' => 'CDT' ),
     'America/Bogota' => array(
         'offset' => -18000000,
         'longname' => "Colombia Time",
         'shortname' => 'COT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Cayman' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Detroit' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Daylight Time",
         'dstshortname' => 'EDT' ),
     'America/Eirunepe' => array(
         'offset' => -18000000,
         'longname' => "Acre Time",
         'shortname' => 'ACT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Fort_Wayne' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Grand_Turk' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Daylight Time",
         'dstshortname' => 'EDT' ),
     'America/Guayaquil' => array(
         'offset' => -18000000,
         'longname' => "Ecuador Time",
         'shortname' => 'ECT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Havana' => array(
         'offset' => -18000000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central Daylight Time",
         'dstshortname' => 'CDT' ),
     'America/Indiana/Indianapolis' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Indiana/Knox' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Indiana/Marengo' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Indiana/Vevay' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Indianapolis' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Iqaluit' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Daylight Time",
         'dstshortname' => 'EDT' ),
     'America/Jamaica' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Kentucky/Louisville' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Daylight Time",
         'dstshortname' => 'EDT' ),
     'America/Kentucky/Monticello' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Daylight Time",
         'dstshortname' => 'EDT' ),
     'America/Knox_IN' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Lima' => array(
         'offset' => -18000000,
         'longname' => "Peru Time",
         'shortname' => 'PET',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Louisville' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Daylight Time",
         'dstshortname' => 'EDT' ),
     'America/Montreal' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Daylight Time",
         'dstshortname' => 'EDT' ),
     'America/Nassau' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Daylight Time",
         'dstshortname' => 'EDT' ),
     'America/New_York' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Daylight Time",
         'dstshortname' => 'EDT' ),
     'America/Nipigon' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Daylight Time",
         'dstshortname' => 'EDT' ),
     'America/Panama' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Pangnirtung' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Daylight Time",
         'dstshortname' => 'EDT' ),
     'America/Port-au-Prince' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Porto_Acre' => array(
         'offset' => -18000000,
         'longname' => "Acre Time",
         'shortname' => 'ACT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Rio_Branco' => array(
         'offset' => -18000000,
         'longname' => "Acre Time",
         'shortname' => 'ACT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Thunder_Bay' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Daylight Time",
         'dstshortname' => 'EDT' ),
     'Brazil/Acre' => array(
         'offset' => -18000000,
         'longname' => "Acre Time",
         'shortname' => 'ACT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Canada/Eastern' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Daylight Time",
         'dstshortname' => 'EDT' ),
     'Cuba' => array(
         'offset' => -18000000,
         'longname' => "Central Standard Time",
         'shortname' => 'CST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central Daylight Time",
         'dstshortname' => 'CDT' ),
     'EST' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Daylight Time",
         'dstshortname' => 'EDT' ),
     'EST5EDT' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Daylight Time",
         'dstshortname' => 'EDT' ),
     'Etc/GMT+5' => array(
         'offset' => -18000000,
         'longname' => "GMT-05:00",
         'shortname' => 'GMT-05:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'IET' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Jamaica' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'SystemV/EST5' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'SystemV/EST5EDT' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Daylight Time",
         'dstshortname' => 'EDT' ),
     'US/East-Indiana' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'US/Eastern' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Daylight Time",
         'dstshortname' => 'EDT' ),
     'US/Indiana-Starke' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'US/Michigan' => array(
         'offset' => -18000000,
         'longname' => "Eastern Standard Time",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Daylight Time",
         'dstshortname' => 'EDT' ),
     'America/Anguilla' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Antigua' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Aruba' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Asuncion' => array(
         'offset' => -14400000,
         'longname' => "Paraguay Time",
         'shortname' => 'PYT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Paraguay Summer Time",
         'dstshortname' => 'PYST' ),
     'America/Barbados' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Boa_Vista' => array(
         'offset' => -14400000,
         'longname' => "Amazon Standard Time",
         'shortname' => 'AMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Caracas' => array(
         'offset' => -14400000,
         'longname' => "Venezuela Time",
         'shortname' => 'VET',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Cuiaba' => array(
         'offset' => -14400000,
         'longname' => "Amazon Standard Time",
         'shortname' => 'AMT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Amazon Summer Time",
         'dstshortname' => 'AMST' ),
     'America/Curacao' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Dominica' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Glace_Bay' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Atlantic Daylight Time",
         'dstshortname' => 'ADT' ),
     'America/Goose_Bay' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Atlantic Daylight Time",
         'dstshortname' => 'ADT' ),
     'America/Grenada' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Guadeloupe' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Guyana' => array(
         'offset' => -14400000,
         'longname' => "Guyana Time",
         'shortname' => 'GYT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Halifax' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Atlantic Daylight Time",
         'dstshortname' => 'ADT' ),
     'America/La_Paz' => array(
         'offset' => -14400000,
         'longname' => "Bolivia Time",
         'shortname' => 'BOT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Manaus' => array(
         'offset' => -14400000,
         'longname' => "Amazon Standard Time",
         'shortname' => 'AMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Martinique' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Montserrat' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Port_of_Spain' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Porto_Velho' => array(
         'offset' => -14400000,
         'longname' => "Amazon Standard Time",
         'shortname' => 'AMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Puerto_Rico' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Santiago' => array(
         'offset' => -14400000,
         'longname' => "Chile Time",
         'shortname' => 'CLT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Chile Summer Time",
         'dstshortname' => 'CLST' ),
     'America/Santo_Domingo' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/St_Kitts' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/St_Lucia' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/St_Thomas' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/St_Vincent' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Thule' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Tortola' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Virgin' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Antarctica/Palmer' => array(
         'offset' => -14400000,
         'longname' => "Chile Time",
         'shortname' => 'CLT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Chile Summer Time",
         'dstshortname' => 'CLST' ),
     'Atlantic/Bermuda' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Atlantic Daylight Time",
         'dstshortname' => 'ADT' ),
     'Atlantic/Stanley' => array(
         'offset' => -14400000,
         'longname' => "Falkland Is. Time",
         'shortname' => 'FKT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Falkland Is. Summer Time",
         'dstshortname' => 'FKST' ),
     'Brazil/West' => array(
         'offset' => -14400000,
         'longname' => "Amazon Standard Time",
         'shortname' => 'AMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Canada/Atlantic' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Atlantic Daylight Time",
         'dstshortname' => 'ADT' ),
     'Chile/Continental' => array(
         'offset' => -14400000,
         'longname' => "Chile Time",
         'shortname' => 'CLT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Chile Summer Time",
         'dstshortname' => 'CLST' ),
     'Etc/GMT+4' => array(
         'offset' => -14400000,
         'longname' => "GMT-04:00",
         'shortname' => 'GMT-04:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'PRT' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'SystemV/AST4' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'SystemV/AST4ADT' => array(
         'offset' => -14400000,
         'longname' => "Atlantic Standard Time",
         'shortname' => 'AST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Atlantic Daylight Time",
         'dstshortname' => 'ADT' ),
     'America/St_Johns' => array(
         'offset' => -12600000,
         'longname' => "Newfoundland Standard Time",
         'shortname' => 'NST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Newfoundland Daylight Time",
         'dstshortname' => 'NDT' ),
     'CNT' => array(
         'offset' => -12600000,
         'longname' => "Newfoundland Standard Time",
         'shortname' => 'NST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Newfoundland Daylight Time",
         'dstshortname' => 'NDT' ),
     'Canada/Newfoundland' => array(
         'offset' => -12600000,
         'longname' => "Newfoundland Standard Time",
         'shortname' => 'NST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Newfoundland Daylight Time",
         'dstshortname' => 'NDT' ),
     'AGT' => array(
         'offset' => -10800000,
         'longname' => "Argentine Time",
         'shortname' => 'ART',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Araguaina' => array(
         'offset' => -10800000,
         'longname' => "Brazil Time",
         'shortname' => 'BRT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Brazil Summer Time",
         'dstshortname' => 'BRST' ),
     'America/Belem' => array(
         'offset' => -10800000,
         'longname' => "Brazil Time",
         'shortname' => 'BRT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Buenos_Aires' => array(
         'offset' => -10800000,
         'longname' => "Argentine Time",
         'shortname' => 'ART',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Catamarca' => array(
         'offset' => -10800000,
         'longname' => "Argentine Time",
         'shortname' => 'ART',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Cayenne' => array(
         'offset' => -10800000,
         'longname' => "French Guiana Time",
         'shortname' => 'GFT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Cordoba' => array(
         'offset' => -10800000,
         'longname' => "Argentine Time",
         'shortname' => 'ART',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Fortaleza' => array(
         'offset' => -10800000,
         'longname' => "Brazil Time",
         'shortname' => 'BRT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Brazil Summer Time",
         'dstshortname' => 'BRST' ),
     'America/Godthab' => array(
         'offset' => -10800000,
         'longname' => "Western Greenland Time",
         'shortname' => 'WGT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Western Greenland Summer Time",
         'dstshortname' => 'WGST' ),
     'America/Jujuy' => array(
         'offset' => -10800000,
         'longname' => "Argentine Time",
         'shortname' => 'ART',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Maceio' => array(
         'offset' => -10800000,
         'longname' => "Brazil Time",
         'shortname' => 'BRT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Brazil Summer Time",
         'dstshortname' => 'BRST' ),
     'America/Mendoza' => array(
         'offset' => -10800000,
         'longname' => "Argentine Time",
         'shortname' => 'ART',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Miquelon' => array(
         'offset' => -10800000,
         'longname' => "Pierre & Miquelon Standard Time",
         'shortname' => 'PMST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Pierre & Miquelon Daylight Time",
         'dstshortname' => 'PMDT' ),
     'America/Montevideo' => array(
         'offset' => -10800000,
         'longname' => "Uruguay Time",
         'shortname' => 'UYT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Paramaribo' => array(
         'offset' => -10800000,
         'longname' => "Suriname Time",
         'shortname' => 'SRT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Recife' => array(
         'offset' => -10800000,
         'longname' => "Brazil Time",
         'shortname' => 'BRT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Brazil Summer Time",
         'dstshortname' => 'BRST' ),
     'America/Rosario' => array(
         'offset' => -10800000,
         'longname' => "Argentine Time",
         'shortname' => 'ART',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Sao_Paulo' => array(
         'offset' => -10800000,
         'longname' => "Brazil Time",
         'shortname' => 'BRT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Brazil Summer Time",
         'dstshortname' => 'BRST' ),
     'BET' => array(
         'offset' => -10800000,
         'longname' => "Brazil Time",
         'shortname' => 'BRT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Brazil Summer Time",
         'dstshortname' => 'BRST' ),
     'Brazil/East' => array(
         'offset' => -10800000,
         'longname' => "Brazil Time",
         'shortname' => 'BRT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Brazil Summer Time",
         'dstshortname' => 'BRST' ),
     'Etc/GMT+3' => array(
         'offset' => -10800000,
         'longname' => "GMT-03:00",
         'shortname' => 'GMT-03:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Noronha' => array(
         'offset' => -7200000,
         'longname' => "Fernando de Noronha Time",
         'shortname' => 'FNT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Atlantic/South_Georgia' => array(
         'offset' => -7200000,
         'longname' => "South Georgia Standard Time",
         'shortname' => 'GST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Brazil/DeNoronha' => array(
         'offset' => -7200000,
         'longname' => "Fernando de Noronha Time",
         'shortname' => 'FNT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Etc/GMT+2' => array(
         'offset' => -7200000,
         'longname' => "GMT-02:00",
         'shortname' => 'GMT-02:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Scoresbysund' => array(
         'offset' => -3600000,
         'longname' => "Eastern Greenland Time",
         'shortname' => 'EGT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Greenland Summer Time",
         'dstshortname' => 'EGST' ),
     'Atlantic/Azores' => array(
         'offset' => -3600000,
         'longname' => "Azores Time",
         'shortname' => 'AZOT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Azores Summer Time",
         'dstshortname' => 'AZOST' ),
     'Atlantic/Cape_Verde' => array(
         'offset' => -3600000,
         'longname' => "Cape Verde Time",
         'shortname' => 'CVT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Etc/GMT+1' => array(
         'offset' => -3600000,
         'longname' => "GMT-01:00",
         'shortname' => 'GMT-01:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Abidjan' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Accra' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Bamako' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Banjul' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Bissau' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Casablanca' => array(
         'offset' => 0,
         'longname' => "Western European Time",
         'shortname' => 'WET',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Conakry' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Dakar' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/El_Aaiun' => array(
         'offset' => 0,
         'longname' => "Western European Time",
         'shortname' => 'WET',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Freetown' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Lome' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Monrovia' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Nouakchott' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Ouagadougou' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Sao_Tome' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Timbuktu' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'America/Danmarkshavn' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Atlantic/Canary' => array(
         'offset' => 0,
         'longname' => "Western European Time",
         'shortname' => 'WET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Western European Summer Time",
         'dstshortname' => 'WEST' ),
     'Atlantic/Faeroe' => array(
         'offset' => 0,
         'longname' => "Western European Time",
         'shortname' => 'WET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Western European Summer Time",
         'dstshortname' => 'WEST' ),
     'Atlantic/Madeira' => array(
         'offset' => 0,
         'longname' => "Western European Time",
         'shortname' => 'WET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Western European Summer Time",
         'dstshortname' => 'WEST' ),
     'Atlantic/Reykjavik' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Atlantic/St_Helena' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Eire' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Irish Summer Time",
         'dstshortname' => 'IST' ),
     'Etc/GMT' => array(
         'offset' => 0,
         'longname' => "GMT+00:00",
         'shortname' => 'GMT+00:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Etc/GMT+0' => array(
         'offset' => 0,
         'longname' => "GMT+00:00",
         'shortname' => 'GMT+00:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Etc/GMT-0' => array(
         'offset' => 0,
         'longname' => "GMT+00:00",
         'shortname' => 'GMT+00:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Etc/GMT0' => array(
         'offset' => 0,
         'longname' => "GMT+00:00",
         'shortname' => 'GMT+00:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Etc/Greenwich' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Etc/UCT' => array(
         'offset' => 0,
         'longname' => "Coordinated Universal Time",
         'shortname' => 'UTC',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Etc/UTC' => array(
         'offset' => 0,
         'longname' => "Coordinated Universal Time",
         'shortname' => 'UTC',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Etc/Universal' => array(
         'offset' => 0,
         'longname' => "Coordinated Universal Time",
         'shortname' => 'UTC',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Etc/Zulu' => array(
         'offset' => 0,
         'longname' => "Coordinated Universal Time",
         'shortname' => 'UTC',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Europe/Belfast' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "British Summer Time",
         'dstshortname' => 'BST' ),
     'Europe/Dublin' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Irish Summer Time",
         'dstshortname' => 'IST' ),
     'Europe/Lisbon' => array(
         'offset' => 0,
         'longname' => "Western European Time",
         'shortname' => 'WET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Western European Summer Time",
         'dstshortname' => 'WEST' ),
     'Europe/London' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "British Summer Time",
         'dstshortname' => 'BST' ),
     'GB' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "British Summer Time",
         'dstshortname' => 'BST' ),
     'GB-Eire' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "British Summer Time",
         'dstshortname' => 'BST' ),
     'GMT' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'GMT0' => array(
         'offset' => 0,
         'longname' => "GMT+00:00",
         'shortname' => 'GMT+00:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Greenwich' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Iceland' => array(
         'offset' => 0,
         'longname' => "Greenwich Mean Time",
         'shortname' => 'GMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Portugal' => array(
         'offset' => 0,
         'longname' => "Western European Time",
         'shortname' => 'WET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Western European Summer Time",
         'dstshortname' => 'WEST' ),
     'UCT' => array(
         'offset' => 0,
         'longname' => "Coordinated Universal Time",
         'shortname' => 'UTC',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'UTC' => array(
         'offset' => 0,
         'longname' => "Coordinated Universal Time",
         'shortname' => 'UTC',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Universal' => array(
         'offset' => 0,
         'longname' => "Coordinated Universal Time",
         'shortname' => 'UTC',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'WET' => array(
         'offset' => 0,
         'longname' => "Western European Time",
         'shortname' => 'WET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Western European Summer Time",
         'dstshortname' => 'WEST' ),
     'Zulu' => array(
         'offset' => 0,
         'longname' => "Coordinated Universal Time",
         'shortname' => 'UTC',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Algiers' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Bangui' => array(
         'offset' => 3600000,
         'longname' => "Western African Time",
         'shortname' => 'WAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Brazzaville' => array(
         'offset' => 3600000,
         'longname' => "Western African Time",
         'shortname' => 'WAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Ceuta' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Africa/Douala' => array(
         'offset' => 3600000,
         'longname' => "Western African Time",
         'shortname' => 'WAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Kinshasa' => array(
         'offset' => 3600000,
         'longname' => "Western African Time",
         'shortname' => 'WAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Lagos' => array(
         'offset' => 3600000,
         'longname' => "Western African Time",
         'shortname' => 'WAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Libreville' => array(
         'offset' => 3600000,
         'longname' => "Western African Time",
         'shortname' => 'WAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Luanda' => array(
         'offset' => 3600000,
         'longname' => "Western African Time",
         'shortname' => 'WAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Malabo' => array(
         'offset' => 3600000,
         'longname' => "Western African Time",
         'shortname' => 'WAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Ndjamena' => array(
         'offset' => 3600000,
         'longname' => "Western African Time",
         'shortname' => 'WAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Niamey' => array(
         'offset' => 3600000,
         'longname' => "Western African Time",
         'shortname' => 'WAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Porto-Novo' => array(
         'offset' => 3600000,
         'longname' => "Western African Time",
         'shortname' => 'WAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Tunis' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Windhoek' => array(
         'offset' => 3600000,
         'longname' => "Western African Time",
         'shortname' => 'WAT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Western African Summer Time",
         'dstshortname' => 'WAST' ),
     'Arctic/Longyearbyen' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Atlantic/Jan_Mayen' => array(
         'offset' => 3600000,
         'longname' => "Eastern Greenland Time",
         'shortname' => 'EGT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Greenland Summer Time",
         'dstshortname' => 'EGST' ),
     'CET' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'ECT' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Etc/GMT-1' => array(
         'offset' => 3600000,
         'longname' => "GMT+01:00",
         'shortname' => 'GMT+01:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Europe/Amsterdam' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Andorra' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Belgrade' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Berlin' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Bratislava' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Brussels' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Budapest' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Copenhagen' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Gibraltar' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Ljubljana' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Luxembourg' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Madrid' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Malta' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Monaco' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Oslo' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Paris' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Prague' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Rome' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/San_Marino' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Sarajevo' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Skopje' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Stockholm' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Tirane' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Vaduz' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Vatican' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Vienna' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Warsaw' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Zagreb' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'Europe/Zurich' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'MET' => array(
         'offset' => 3600000,
         'longname' => "Middle Europe Time",
         'shortname' => 'MET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Middle Europe Summer Time",
         'dstshortname' => 'MEST' ),
     'Poland' => array(
         'offset' => 3600000,
         'longname' => "Central European Time",
         'shortname' => 'CET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central European Summer Time",
         'dstshortname' => 'CEST' ),
     'ART' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Africa/Blantyre' => array(
         'offset' => 7200000,
         'longname' => "Central African Time",
         'shortname' => 'CAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Bujumbura' => array(
         'offset' => 7200000,
         'longname' => "Central African Time",
         'shortname' => 'CAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Cairo' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Africa/Gaborone' => array(
         'offset' => 7200000,
         'longname' => "Central African Time",
         'shortname' => 'CAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Harare' => array(
         'offset' => 7200000,
         'longname' => "Central African Time",
         'shortname' => 'CAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Johannesburg' => array(
         'offset' => 7200000,
         'longname' => "South Africa Standard Time",
         'shortname' => 'SAST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Kigali' => array(
         'offset' => 7200000,
         'longname' => "Central African Time",
         'shortname' => 'CAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Lubumbashi' => array(
         'offset' => 7200000,
         'longname' => "Central African Time",
         'shortname' => 'CAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Lusaka' => array(
         'offset' => 7200000,
         'longname' => "Central African Time",
         'shortname' => 'CAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Maputo' => array(
         'offset' => 7200000,
         'longname' => "Central African Time",
         'shortname' => 'CAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Maseru' => array(
         'offset' => 7200000,
         'longname' => "South Africa Standard Time",
         'shortname' => 'SAST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Mbabane' => array(
         'offset' => 7200000,
         'longname' => "South Africa Standard Time",
         'shortname' => 'SAST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Tripoli' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Amman' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Asia/Beirut' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Asia/Damascus' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Asia/Gaza' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Asia/Istanbul' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Asia/Jerusalem' => array(
         'offset' => 7200000,
         'longname' => "Israel Standard Time",
         'shortname' => 'IST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Israel Daylight Time",
         'dstshortname' => 'IDT' ),
     'Asia/Nicosia' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Asia/Tel_Aviv' => array(
         'offset' => 7200000,
         'longname' => "Israel Standard Time",
         'shortname' => 'IST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Israel Daylight Time",
         'dstshortname' => 'IDT' ),
     'CAT' => array(
         'offset' => 7200000,
         'longname' => "Central African Time",
         'shortname' => 'CAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'EET' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Egypt' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Etc/GMT-2' => array(
         'offset' => 7200000,
         'longname' => "GMT+02:00",
         'shortname' => 'GMT+02:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Europe/Athens' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Europe/Bucharest' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Europe/Chisinau' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Europe/Helsinki' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Europe/Istanbul' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Europe/Kaliningrad' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Europe/Kiev' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Europe/Minsk' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Europe/Nicosia' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Europe/Riga' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Europe/Simferopol' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Europe/Sofia' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Europe/Tallinn' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Europe/Tiraspol' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Europe/Uzhgorod' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Europe/Vilnius' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Europe/Zaporozhye' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Israel' => array(
         'offset' => 7200000,
         'longname' => "Israel Standard Time",
         'shortname' => 'IST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Israel Daylight Time",
         'dstshortname' => 'IDT' ),
     'Libya' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Turkey' => array(
         'offset' => 7200000,
         'longname' => "Eastern European Time",
         'shortname' => 'EET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern European Summer Time",
         'dstshortname' => 'EEST' ),
     'Africa/Addis_Ababa' => array(
         'offset' => 10800000,
         'longname' => "Eastern African Time",
         'shortname' => 'EAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Asmera' => array(
         'offset' => 10800000,
         'longname' => "Eastern African Time",
         'shortname' => 'EAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Dar_es_Salaam' => array(
         'offset' => 10800000,
         'longname' => "Eastern African Time",
         'shortname' => 'EAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Djibouti' => array(
         'offset' => 10800000,
         'longname' => "Eastern African Time",
         'shortname' => 'EAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Kampala' => array(
         'offset' => 10800000,
         'longname' => "Eastern African Time",
         'shortname' => 'EAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Khartoum' => array(
         'offset' => 10800000,
         'longname' => "Eastern African Time",
         'shortname' => 'EAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Mogadishu' => array(
         'offset' => 10800000,
         'longname' => "Eastern African Time",
         'shortname' => 'EAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Africa/Nairobi' => array(
         'offset' => 10800000,
         'longname' => "Eastern African Time",
         'shortname' => 'EAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Antarctica/Syowa' => array(
         'offset' => 10800000,
         'longname' => "Syowa Time",
         'shortname' => 'SYOT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Aden' => array(
         'offset' => 10800000,
         'longname' => "Arabia Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Baghdad' => array(
         'offset' => 10800000,
         'longname' => "Arabia Standard Time",
         'shortname' => 'AST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Arabia Daylight Time",
         'dstshortname' => 'ADT' ),
     'Asia/Bahrain' => array(
         'offset' => 10800000,
         'longname' => "Arabia Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Kuwait' => array(
         'offset' => 10800000,
         'longname' => "Arabia Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Qatar' => array(
         'offset' => 10800000,
         'longname' => "Arabia Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Riyadh' => array(
         'offset' => 10800000,
         'longname' => "Arabia Standard Time",
         'shortname' => 'AST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'EAT' => array(
         'offset' => 10800000,
         'longname' => "Eastern African Time",
         'shortname' => 'EAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Etc/GMT-3' => array(
         'offset' => 10800000,
         'longname' => "GMT+03:00",
         'shortname' => 'GMT+03:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Europe/Moscow' => array(
         'offset' => 10800000,
         'longname' => "Moscow Standard Time",
         'shortname' => 'MSK',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Moscow Daylight Time",
         'dstshortname' => 'MSD' ),
     'Indian/Antananarivo' => array(
         'offset' => 10800000,
         'longname' => "Eastern African Time",
         'shortname' => 'EAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Indian/Comoro' => array(
         'offset' => 10800000,
         'longname' => "Eastern African Time",
         'shortname' => 'EAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Indian/Mayotte' => array(
         'offset' => 10800000,
         'longname' => "Eastern African Time",
         'shortname' => 'EAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'W-SU' => array(
         'offset' => 10800000,
         'longname' => "Moscow Standard Time",
         'shortname' => 'MSK',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Moscow Daylight Time",
         'dstshortname' => 'MSD' ),
     'Asia/Riyadh87' => array(
         'offset' => 11224000,
         'longname' => "GMT+03:07",
         'shortname' => 'GMT+03:07',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Riyadh88' => array(
         'offset' => 11224000,
         'longname' => "GMT+03:07",
         'shortname' => 'GMT+03:07',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Riyadh89' => array(
         'offset' => 11224000,
         'longname' => "GMT+03:07",
         'shortname' => 'GMT+03:07',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Mideast/Riyadh87' => array(
         'offset' => 11224000,
         'longname' => "GMT+03:07",
         'shortname' => 'GMT+03:07',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Mideast/Riyadh88' => array(
         'offset' => 11224000,
         'longname' => "GMT+03:07",
         'shortname' => 'GMT+03:07',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Mideast/Riyadh89' => array(
         'offset' => 11224000,
         'longname' => "GMT+03:07",
         'shortname' => 'GMT+03:07',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Tehran' => array(
         'offset' => 12600000,
         'longname' => "Iran Time",
         'shortname' => 'IRT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Iran Sumer Time",
         'dstshortname' => 'IRST' ),
     'Iran' => array(
         'offset' => 12600000,
         'longname' => "Iran Time",
         'shortname' => 'IRT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Iran Sumer Time",
         'dstshortname' => 'IRST' ),
     'Asia/Aqtau' => array(
         'offset' => 14400000,
         'longname' => "Aqtau Time",
         'shortname' => 'AQTT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Aqtau Summer Time",
         'dstshortname' => 'AQTST' ),
     'Asia/Baku' => array(
         'offset' => 14400000,
         'longname' => "Azerbaijan Time",
         'shortname' => 'AZT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Azerbaijan Summer Time",
         'dstshortname' => 'AZST' ),
     'Asia/Dubai' => array(
         'offset' => 14400000,
         'longname' => "Gulf Standard Time",
         'shortname' => 'GST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Muscat' => array(
         'offset' => 14400000,
         'longname' => "Gulf Standard Time",
         'shortname' => 'GST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Tbilisi' => array(
         'offset' => 14400000,
         'longname' => "Georgia Time",
         'shortname' => 'GET',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Georgia Summer Time",
         'dstshortname' => 'GEST' ),
     'Asia/Yerevan' => array(
         'offset' => 14400000,
         'longname' => "Armenia Time",
         'shortname' => 'AMT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Armenia Summer Time",
         'dstshortname' => 'AMST' ),
     'Etc/GMT-4' => array(
         'offset' => 14400000,
         'longname' => "GMT+04:00",
         'shortname' => 'GMT+04:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Europe/Samara' => array(
         'offset' => 14400000,
         'longname' => "Samara Time",
         'shortname' => 'SAMT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Samara Summer Time",
         'dstshortname' => 'SAMST' ),
     'Indian/Mahe' => array(
         'offset' => 14400000,
         'longname' => "Seychelles Time",
         'shortname' => 'SCT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Indian/Mauritius' => array(
         'offset' => 14400000,
         'longname' => "Mauritius Time",
         'shortname' => 'MUT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Indian/Reunion' => array(
         'offset' => 14400000,
         'longname' => "Reunion Time",
         'shortname' => 'RET',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'NET' => array(
         'offset' => 14400000,
         'longname' => "Armenia Time",
         'shortname' => 'AMT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Armenia Summer Time",
         'dstshortname' => 'AMST' ),
     'Asia/Kabul' => array(
         'offset' => 16200000,
         'longname' => "Afghanistan Time",
         'shortname' => 'AFT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Aqtobe' => array(
         'offset' => 18000000,
         'longname' => "Aqtobe Time",
         'shortname' => 'AQTT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Aqtobe Summer Time",
         'dstshortname' => 'AQTST' ),
     'Asia/Ashgabat' => array(
         'offset' => 18000000,
         'longname' => "Turkmenistan Time",
         'shortname' => 'TMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Ashkhabad' => array(
         'offset' => 18000000,
         'longname' => "Turkmenistan Time",
         'shortname' => 'TMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Bishkek' => array(
         'offset' => 18000000,
         'longname' => "Kirgizstan Time",
         'shortname' => 'KGT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Kirgizstan Summer Time",
         'dstshortname' => 'KGST' ),
     'Asia/Dushanbe' => array(
         'offset' => 18000000,
         'longname' => "Tajikistan Time",
         'shortname' => 'TJT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Karachi' => array(
         'offset' => 18000000,
         'longname' => "Pakistan Time",
         'shortname' => 'PKT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Samarkand' => array(
         'offset' => 18000000,
         'longname' => "Turkmenistan Time",
         'shortname' => 'TMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Tashkent' => array(
         'offset' => 18000000,
         'longname' => "Uzbekistan Time",
         'shortname' => 'UZT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Yekaterinburg' => array(
         'offset' => 18000000,
         'longname' => "Yekaterinburg Time",
         'shortname' => 'YEKT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Yekaterinburg Summer Time",
         'dstshortname' => 'YEKST' ),
     'Etc/GMT-5' => array(
         'offset' => 18000000,
         'longname' => "GMT+05:00",
         'shortname' => 'GMT+05:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Indian/Kerguelen' => array(
         'offset' => 18000000,
         'longname' => "French Southern & Antarctic Lands Time",
         'shortname' => 'TFT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Indian/Maldives' => array(
         'offset' => 18000000,
         'longname' => "Maldives Time",
         'shortname' => 'MVT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'PLT' => array(
         'offset' => 18000000,
         'longname' => "Pakistan Time",
         'shortname' => 'PKT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Calcutta' => array(
         'offset' => 19800000,
         'longname' => "India Standard Time",
         'shortname' => 'IST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'IST' => array(
         'offset' => 19800000,
         'longname' => "India Standard Time",
         'shortname' => 'IST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Katmandu' => array(
         'offset' => 20700000,
         'longname' => "Nepal Time",
         'shortname' => 'NPT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Antarctica/Mawson' => array(
         'offset' => 21600000,
         'longname' => "Mawson Time",
         'shortname' => 'MAWT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Antarctica/Vostok' => array(
         'offset' => 21600000,
         'longname' => "Vostok time",
         'shortname' => 'VOST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Almaty' => array(
         'offset' => 21600000,
         'longname' => "Alma-Ata Time",
         'shortname' => 'ALMT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Alma-Ata Summer Time",
         'dstshortname' => 'ALMST' ),
     'Asia/Colombo' => array(
         'offset' => 21600000,
         'longname' => "Sri Lanka Time",
         'shortname' => 'LKT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Dacca' => array(
         'offset' => 21600000,
         'longname' => "Bangladesh Time",
         'shortname' => 'BDT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Dhaka' => array(
         'offset' => 21600000,
         'longname' => "Bangladesh Time",
         'shortname' => 'BDT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Novosibirsk' => array(
         'offset' => 21600000,
         'longname' => "Novosibirsk Time",
         'shortname' => 'NOVT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Novosibirsk Summer Time",
         'dstshortname' => 'NOVST' ),
     'Asia/Omsk' => array(
         'offset' => 21600000,
         'longname' => "Omsk Time",
         'shortname' => 'OMST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Omsk Summer Time",
         'dstshortname' => 'OMSST' ),
     'Asia/Thimbu' => array(
         'offset' => 21600000,
         'longname' => "Bhutan Time",
         'shortname' => 'BTT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Thimphu' => array(
         'offset' => 21600000,
         'longname' => "Bhutan Time",
         'shortname' => 'BTT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'BDT' => array(
         'offset' => 21600000,
         'longname' => "Bangladesh Time",
         'shortname' => 'BDT',
-        'hasdst' => true ),
+        'hasdst' => TRUE ),
     'Etc/GMT-6' => array(
         'offset' => 21600000,
         'longname' => "GMT+06:00",
         'shortname' => 'GMT+06:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Indian/Chagos' => array(
         'offset' => 21600000,
         'longname' => "Indian Ocean Territory Time",
         'shortname' => 'IOT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Rangoon' => array(
         'offset' => 23400000,
         'longname' => "Myanmar Time",
         'shortname' => 'MMT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Indian/Cocos' => array(
         'offset' => 23400000,
         'longname' => "Cocos Islands Time",
         'shortname' => 'CCT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Antarctica/Davis' => array(
         'offset' => 25200000,
         'longname' => "Davis Time",
         'shortname' => 'DAVT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Bangkok' => array(
         'offset' => 25200000,
         'longname' => "Indochina Time",
         'shortname' => 'ICT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Hovd' => array(
         'offset' => 25200000,
         'longname' => "Hovd Time",
         'shortname' => 'HOVT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Jakarta' => array(
         'offset' => 25200000,
         'longname' => "West Indonesia Time",
         'shortname' => 'WIT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Krasnoyarsk' => array(
         'offset' => 25200000,
         'longname' => "Krasnoyarsk Time",
         'shortname' => 'KRAT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Krasnoyarsk Summer Time",
         'dstshortname' => 'KRAST' ),
     'Asia/Phnom_Penh' => array(
         'offset' => 25200000,
         'longname' => "Indochina Time",
         'shortname' => 'ICT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Pontianak' => array(
         'offset' => 25200000,
         'longname' => "West Indonesia Time",
         'shortname' => 'WIT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Saigon' => array(
         'offset' => 25200000,
         'longname' => "Indochina Time",
         'shortname' => 'ICT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Vientiane' => array(
         'offset' => 25200000,
         'longname' => "Indochina Time",
         'shortname' => 'ICT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Etc/GMT-7' => array(
         'offset' => 25200000,
         'longname' => "GMT+07:00",
         'shortname' => 'GMT+07:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Indian/Christmas' => array(
         'offset' => 25200000,
         'longname' => "Christmas Island Time",
         'shortname' => 'CXT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'VST' => array(
         'offset' => 25200000,
         'longname' => "Indochina Time",
         'shortname' => 'ICT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Antarctica/Casey' => array(
         'offset' => 28800000,
         'longname' => "Western Standard Time (Australia)",
         'shortname' => 'WST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Brunei' => array(
         'offset' => 28800000,
         'longname' => "Brunei Time",
         'shortname' => 'BNT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Chongqing' => array(
         'offset' => 28800000,
         'longname' => "China Standard Time",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Chungking' => array(
         'offset' => 28800000,
         'longname' => "China Standard Time",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Harbin' => array(
         'offset' => 28800000,
         'longname' => "China Standard Time",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Hong_Kong' => array(
         'offset' => 28800000,
         'longname' => "Hong Kong Time",
         'shortname' => 'HKT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Irkutsk' => array(
         'offset' => 28800000,
         'longname' => "Irkutsk Time",
         'shortname' => 'IRKT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Irkutsk Summer Time",
         'dstshortname' => 'IRKST' ),
     'Asia/Kashgar' => array(
         'offset' => 28800000,
         'longname' => "China Standard Time",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Kuala_Lumpur' => array(
         'offset' => 28800000,
         'longname' => "Malaysia Time",
         'shortname' => 'MYT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Kuching' => array(
         'offset' => 28800000,
         'longname' => "Malaysia Time",
         'shortname' => 'MYT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Macao' => array(
         'offset' => 28800000,
         'longname' => "China Standard Time",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Manila' => array(
         'offset' => 28800000,
         'longname' => "Philippines Time",
         'shortname' => 'PHT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Shanghai' => array(
         'offset' => 28800000,
         'longname' => "China Standard Time",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Singapore' => array(
         'offset' => 28800000,
         'longname' => "Singapore Time",
         'shortname' => 'SGT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Taipei' => array(
         'offset' => 28800000,
         'longname' => "China Standard Time",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Ujung_Pandang' => array(
         'offset' => 28800000,
         'longname' => "Central Indonesia Time",
         'shortname' => 'CIT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Ulaanbaatar' => array(
         'offset' => 28800000,
         'longname' => "Ulaanbaatar Time",
         'shortname' => 'ULAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Ulan_Bator' => array(
         'offset' => 28800000,
         'longname' => "Ulaanbaatar Time",
         'shortname' => 'ULAT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Urumqi' => array(
         'offset' => 28800000,
         'longname' => "China Standard Time",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Australia/Perth' => array(
         'offset' => 28800000,
         'longname' => "Western Standard Time (Australia)",
         'shortname' => 'WST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Australia/West' => array(
         'offset' => 28800000,
         'longname' => "Western Standard Time (Australia)",
         'shortname' => 'WST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'CTT' => array(
         'offset' => 28800000,
         'longname' => "China Standard Time",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Etc/GMT-8' => array(
         'offset' => 28800000,
         'longname' => "GMT+08:00",
         'shortname' => 'GMT+08:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Hongkong' => array(
         'offset' => 28800000,
         'longname' => "Hong Kong Time",
         'shortname' => 'HKT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'PRC' => array(
         'offset' => 28800000,
         'longname' => "China Standard Time",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Singapore' => array(
         'offset' => 28800000,
         'longname' => "Singapore Time",
         'shortname' => 'SGT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Choibalsan' => array(
         'offset' => 32400000,
         'longname' => "Choibalsan Time",
         'shortname' => 'CHOT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Dili' => array(
         'offset' => 32400000,
         'longname' => "East Timor Time",
         'shortname' => 'TPT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Jayapura' => array(
         'offset' => 32400000,
         'longname' => "East Indonesia Time",
         'shortname' => 'EIT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Pyongyang' => array(
         'offset' => 32400000,
         'longname' => "Korea Standard Time",
         'shortname' => 'KST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Seoul' => array(
         'offset' => 32400000,
         'longname' => "Korea Standard Time",
         'shortname' => 'KST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Tokyo' => array(
         'offset' => 32400000,
         'longname' => "Japan Standard Time",
         'shortname' => 'JST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Yakutsk' => array(
         'offset' => 32400000,
         'longname' => "Yakutsk Time",
         'shortname' => 'YAKT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Yaktsk Summer Time",
         'dstshortname' => 'YAKST' ),
     'Etc/GMT-9' => array(
         'offset' => 32400000,
         'longname' => "GMT+09:00",
         'shortname' => 'GMT+09:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'JST' => array(
         'offset' => 32400000,
         'longname' => "Japan Standard Time",
         'shortname' => 'JST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Japan' => array(
         'offset' => 32400000,
         'longname' => "Japan Standard Time",
         'shortname' => 'JST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Palau' => array(
         'offset' => 32400000,
         'longname' => "Palau Time",
         'shortname' => 'PWT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'ROK' => array(
         'offset' => 32400000,
         'longname' => "Korea Standard Time",
         'shortname' => 'KST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'ACT' => array(
         'offset' => 34200000,
         'longname' => "Central Standard Time (Northern Territory)",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Australia/Adelaide' => array(
         'offset' => 34200000,
         'longname' => "Central Standard Time (South Australia)",
         'shortname' => 'CST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central Summer Time (South Australia)",
         'dstshortname' => 'CST' ),
     'Australia/Broken_Hill' => array(
         'offset' => 34200000,
         'longname' => "Central Standard Time (South Australia/New South Wales)",
         'shortname' => 'CST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central Summer Time (South Australia/New South Wales)",
         'dstshortname' => 'CST' ),
     'Australia/Darwin' => array(
         'offset' => 34200000,
         'longname' => "Central Standard Time (Northern Territory)",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Australia/North' => array(
         'offset' => 34200000,
         'longname' => "Central Standard Time (Northern Territory)",
         'shortname' => 'CST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Australia/South' => array(
         'offset' => 34200000,
         'longname' => "Central Standard Time (South Australia)",
         'shortname' => 'CST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central Summer Time (South Australia)",
         'dstshortname' => 'CST' ),
     'Australia/Yancowinna' => array(
         'offset' => 34200000,
         'longname' => "Central Standard Time (South Australia/New South Wales)",
         'shortname' => 'CST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Central Summer Time (South Australia/New South Wales)",
         'dstshortname' => 'CST' ),
     'AET' => array(
         'offset' => 36000000,
         'longname' => "Eastern Standard Time (New South Wales)",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Summer Time (New South Wales)",
         'dstshortname' => 'EST' ),
     'Antarctica/DumontDUrville' => array(
         'offset' => 36000000,
         'longname' => "Dumont-d'Urville Time",
         'shortname' => 'DDUT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Asia/Sakhalin' => array(
         'offset' => 36000000,
         'longname' => "Sakhalin Time",
         'shortname' => 'SAKT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Sakhalin Summer Time",
         'dstshortname' => 'SAKST' ),
     'Asia/Vladivostok' => array(
         'offset' => 36000000,
         'longname' => "Vladivostok Time",
         'shortname' => 'VLAT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Vladivostok Summer Time",
         'dstshortname' => 'VLAST' ),
     'Australia/ACT' => array(
         'offset' => 36000000,
         'longname' => "Eastern Standard Time (New South Wales)",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Summer Time (New South Wales)",
         'dstshortname' => 'EST' ),
     'Australia/Brisbane' => array(
         'offset' => 36000000,
         'longname' => "Eastern Standard Time (Queensland)",
         'shortname' => 'EST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Australia/Canberra' => array(
         'offset' => 36000000,
         'longname' => "Eastern Standard Time (New South Wales)",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Summer Time (New South Wales)",
         'dstshortname' => 'EST' ),
     'Australia/Hobart' => array(
         'offset' => 36000000,
         'longname' => "Eastern Standard Time (Tasmania)",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Summer Time (Tasmania)",
         'dstshortname' => 'EST' ),
     'Australia/Lindeman' => array(
         'offset' => 36000000,
         'longname' => "Eastern Standard Time (Queensland)",
         'shortname' => 'EST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Australia/Melbourne' => array(
         'offset' => 36000000,
         'longname' => "Eastern Standard Time (Victoria)",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Summer Time (Victoria)",
         'dstshortname' => 'EST' ),
     'Australia/NSW' => array(
         'offset' => 36000000,
         'longname' => "Eastern Standard Time (New South Wales)",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Summer Time (New South Wales)",
         'dstshortname' => 'EST' ),
     'Australia/Queensland' => array(
         'offset' => 36000000,
         'longname' => "Eastern Standard Time (Queensland)",
         'shortname' => 'EST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Australia/Sydney' => array(
         'offset' => 36000000,
         'longname' => "Eastern Standard Time (New South Wales)",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Summer Time (New South Wales)",
         'dstshortname' => 'EST' ),
     'Australia/Tasmania' => array(
         'offset' => 36000000,
         'longname' => "Eastern Standard Time (Tasmania)",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Summer Time (Tasmania)",
         'dstshortname' => 'EST' ),
     'Australia/Victoria' => array(
         'offset' => 36000000,
         'longname' => "Eastern Standard Time (Victoria)",
         'shortname' => 'EST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Eastern Summer Time (Victoria)",
         'dstshortname' => 'EST' ),
     'Etc/GMT-10' => array(
         'offset' => 36000000,
         'longname' => "GMT+10:00",
         'shortname' => 'GMT+10:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Guam' => array(
         'offset' => 36000000,
         'longname' => "Chamorro Standard Time",
         'shortname' => 'ChST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Port_Moresby' => array(
         'offset' => 36000000,
         'longname' => "Papua New Guinea Time",
         'shortname' => 'PGT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Saipan' => array(
         'offset' => 36000000,
         'longname' => "Chamorro Standard Time",
         'shortname' => 'ChST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Truk' => array(
         'offset' => 36000000,
         'longname' => "Truk Time",
         'shortname' => 'TRUT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Yap' => array(
         'offset' => 36000000,
         'longname' => "Yap Time",
         'shortname' => 'YAPT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Australia/LHI' => array(
         'offset' => 37800000,
         'longname' => "Load Howe Standard Time",
         'shortname' => 'LHST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Load Howe Summer Time",
         'dstshortname' => 'LHST' ),
     'Australia/Lord_Howe' => array(
         'offset' => 37800000,
         'longname' => "Load Howe Standard Time",
         'shortname' => 'LHST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Load Howe Summer Time",
         'dstshortname' => 'LHST' ),
     'Asia/Magadan' => array(
         'offset' => 39600000,
         'longname' => "Magadan Time",
         'shortname' => 'MAGT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Magadan Summer Time",
         'dstshortname' => 'MAGST' ),
     'Etc/GMT-11' => array(
         'offset' => 39600000,
         'longname' => "GMT+11:00",
         'shortname' => 'GMT+11:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Efate' => array(
         'offset' => 39600000,
         'longname' => "Vanuatu Time",
         'shortname' => 'VUT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Guadalcanal' => array(
         'offset' => 39600000,
         'longname' => "Solomon Is. Time",
         'shortname' => 'SBT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Kosrae' => array(
         'offset' => 39600000,
         'longname' => "Kosrae Time",
         'shortname' => 'KOST',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Noumea' => array(
         'offset' => 39600000,
         'longname' => "New Caledonia Time",
         'shortname' => 'NCT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Ponape' => array(
         'offset' => 39600000,
         'longname' => "Ponape Time",
         'shortname' => 'PONT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'SST' => array(
         'offset' => 39600000,
         'longname' => "Solomon Is. Time",
         'shortname' => 'SBT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Norfolk' => array(
         'offset' => 41400000,
         'longname' => "Norfolk Time",
         'shortname' => 'NFT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Antarctica/McMurdo' => array(
         'offset' => 43200000,
         'longname' => "New Zealand Standard Time",
         'shortname' => 'NZST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "New Zealand Daylight Time",
         'dstshortname' => 'NZDT' ),
     'Antarctica/South_Pole' => array(
         'offset' => 43200000,
         'longname' => "New Zealand Standard Time",
         'shortname' => 'NZST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "New Zealand Daylight Time",
         'dstshortname' => 'NZDT' ),
     'Asia/Anadyr' => array(
         'offset' => 43200000,
         'longname' => "Anadyr Time",
         'shortname' => 'ANAT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Anadyr Summer Time",
         'dstshortname' => 'ANAST' ),
     'Asia/Kamchatka' => array(
         'offset' => 43200000,
         'longname' => "Petropavlovsk-Kamchatski Time",
         'shortname' => 'PETT',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Petropavlovsk-Kamchatski Summer Time",
         'dstshortname' => 'PETST' ),
     'Etc/GMT-12' => array(
         'offset' => 43200000,
         'longname' => "GMT+12:00",
         'shortname' => 'GMT+12:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Kwajalein' => array(
         'offset' => 43200000,
         'longname' => "Marshall Islands Time",
         'shortname' => 'MHT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'NST' => array(
         'offset' => 43200000,
         'longname' => "New Zealand Standard Time",
         'shortname' => 'NZST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "New Zealand Daylight Time",
         'dstshortname' => 'NZDT' ),
     'NZ' => array(
         'offset' => 43200000,
         'longname' => "New Zealand Standard Time",
         'shortname' => 'NZST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "New Zealand Daylight Time",
         'dstshortname' => 'NZDT' ),
     'Pacific/Auckland' => array(
         'offset' => 43200000,
         'longname' => "New Zealand Standard Time",
         'shortname' => 'NZST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "New Zealand Daylight Time",
         'dstshortname' => 'NZDT' ),
     'Pacific/Fiji' => array(
         'offset' => 43200000,
         'longname' => "Fiji Time",
         'shortname' => 'FJT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Funafuti' => array(
         'offset' => 43200000,
         'longname' => "Tuvalu Time",
         'shortname' => 'TVT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Kwajalein' => array(
         'offset' => 43200000,
         'longname' => "Marshall Islands Time",
         'shortname' => 'MHT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Majuro' => array(
         'offset' => 43200000,
         'longname' => "Marshall Islands Time",
         'shortname' => 'MHT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Nauru' => array(
         'offset' => 43200000,
         'longname' => "Nauru Time",
         'shortname' => 'NRT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Tarawa' => array(
         'offset' => 43200000,
         'longname' => "Gilbert Is. Time",
         'shortname' => 'GILT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Wake' => array(
         'offset' => 43200000,
         'longname' => "Wake Time",
         'shortname' => 'WAKT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Wallis' => array(
         'offset' => 43200000,
         'longname' => "Wallis & Futuna Time",
         'shortname' => 'WFT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'NZ-CHAT' => array(
         'offset' => 45900000,
         'longname' => "Chatham Standard Time",
         'shortname' => 'CHAST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Chatham Daylight Time",
         'dstshortname' => 'CHADT' ),
     'Pacific/Chatham' => array(
         'offset' => 45900000,
         'longname' => "Chatham Standard Time",
         'shortname' => 'CHAST',
-        'hasdst' => true,
+        'hasdst' => TRUE,
         'dstlongname' => "Chatham Daylight Time",
         'dstshortname' => 'CHADT' ),
     'Etc/GMT-13' => array(
         'offset' => 46800000,
         'longname' => "GMT+13:00",
         'shortname' => 'GMT+13:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Enderbury' => array(
         'offset' => 46800000,
         'longname' => "Phoenix Is. Time",
         'shortname' => 'PHOT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Tongatapu' => array(
         'offset' => 46800000,
         'longname' => "Tonga Time",
         'shortname' => 'TOT',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Etc/GMT-14' => array(
         'offset' => 50400000,
         'longname' => "GMT+14:00",
         'shortname' => 'GMT+14:00',
-        'hasdst' => false ),
+        'hasdst' => FALSE ),
     'Pacific/Kiritimati' => array(
         'offset' => 50400000,
         'longname' => "Line Is. Time",
         'shortname' => 'LINT',
-        'hasdst' => false )
+        'hasdst' => FALSE )
 );
 
 $names = timezone_identifiers_list();
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/date_popup.info b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/date_popup.info
index 7d4a7e8..ef3e84a 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/date_popup.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/date_popup.info
@@ -5,9 +5,9 @@ dependencies[] = date_api
 dependencies[] = date_timezone
 package = Date/Time
 core = 6.x
-; Information added by drupal.org packaging script on 2012-01-11
-version = "6.x-2.8"
+; Information added by drupal.org packaging script on 2012-04-27
+version = "6.x-2.9"
 core = "6.x"
 project = "date"
-datestamp = "1326285938"
+datestamp = "1335549078"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/date_popup.install b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/date_popup.install
index b472390..f698200 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/date_popup.install
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/date_popup.install
@@ -13,7 +13,7 @@ function date_popup_requirements($phase) {
       if (!module_exists('jquery_ui')) {
         $requirements['date_popup_jquery_ui'] = array(
           'title' => $t('Date Popup requirements'),
-          'value' => $t('The Date Popup module needs code added by the <a href="http://drupal.org/project/jquery_ui">jQuery UI module.</a> This is not yet a requirement, but soon will be, so you are encouraged to install that module as soon as possible. In the meantime, a version of the needed code is included here.'),
+          'value' => $t('The Date Popup module needs code added by the <a href="http://drupal.org/project/jquery_ui">jQuery UI module.</a> Install that module as soon as possible.'),
           'severity' => REQUIREMENT_WARNING,
           );
       }
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/date_popup.js b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/date_popup.js
index b13b1e5..f3c808e 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/date_popup.js
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/date_popup.js
@@ -13,7 +13,7 @@ Drupal.behaviors.date_popup = function (context) {
             $(this)
               .datepicker(datePopup.settings)
               .addClass('date-popup-init')
-            $(this).click(function(){
+            $(this).click(function() {
               $(this).focus();
             });
             break;
@@ -22,7 +22,7 @@ Drupal.behaviors.date_popup = function (context) {
             $(this)
               .timeEntry(datePopup.settings)
               .addClass('date-popup-init')
-            $(this).click(function(){
+            $(this).click(function() {
               $(this).focus();
             });
             break;
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/date_popup.module b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/date_popup.module
index f219a72..3473569 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/date_popup.module
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/date_popup.module
@@ -30,6 +30,10 @@ function date_popup_load() {
   $path = drupal_get_path('module', 'date_popup');
   if (module_exists('jquery_ui')) {
     jquery_ui_add('ui.datepicker');
+    global $language;
+    if ($language->language != 'en') {
+      jquery_ui_add("i18n/ui.datepicker-{$language->language}");
+    }
   }
   if (variable_get('date_popup_timepicker', 'default') == 'default') {
     drupal_add_js($path .'/lib/jquery.timeentry.pack.js');
@@ -57,17 +61,28 @@ function date_popup_css_options() {
     return $paths;
   }
   $version = jquery_ui_get_version();
-  $jquery_ui_path = drupal_get_path('module', 'jquery_ui');
+  $jquery_ui_path = jquery_ui_get_path();
   switch ($version) {
     case '1.6':
       $paths[drupal_get_path('module', 'date_popup') .'/themes/datepicker.css'] = t('Date Popup default');
-      $paths[$jquery_ui_path .'/jquery.ui/themes/default/ui.datepicker.css'] = t('jQuery UI default');
+      $paths[$jquery_ui_path .'/themes/default/ui.datepicker.css'] = t('jQuery UI default');
       break;
     default:
       $paths[drupal_get_path('module', 'date_popup') .'/themes/datepicker.1.7.css'] = t('Date Popup default');
-      $paths[$jquery_ui_path .'/jquery.ui/themes/base/ui.datepicker.css'] = t('jQuery UI default');
+      $paths[$jquery_ui_path .'/themes/base/ui.datepicker.css'] = t('jQuery UI default');
       break;
   }
+  // Populate options array with available themes from jQuery UI.
+  // Each theme must be placed in its own subdirectory of jquery.ui/themes/,
+  // e.g., jquery.ui/themes/cupertino, jquery.ui/themes/ui-lightness, etc.
+  // All themes can be downloaded from
+  // http://jquery-ui.googlecode.com/files/jquery-ui-themes-1.7.zip
+  foreach (scandir($jquery_ui_path .'/themes/') as $dir) {
+    $full_dir_path = $jquery_ui_path .'/themes/'. $dir;
+    if (is_dir($full_dir_path) && $dir != '.' && $dir != '..' && $dir != 'base') {
+      $paths[$full_dir_path .'/ui.datepicker.css'] = t('jQuery UI @theme', array('@theme' => $dir));
+    }
+  }
   return $paths;
 }
 
@@ -76,12 +91,25 @@ function date_popup_css_options() {
  */
 function date_popup_init() {
   global $user;
-  if (!module_exists('jquery_ui') && $user->uid == 1) {
-    drupal_set_message(t('The Date Popup module now requires the <a href="@link">jQuery UI module</a> as a source for the datepicker. Please install it immediately.', array('@link' => 'http://drupal.org/project/jquery_ui')), 'error');
+  if (!module_exists('jquery_ui')) {
+    if ($user->uid == 1) {
+      drupal_set_message(t('The Date Popup module now requires the <a href="@link">jQuery UI module</a> as a source for the datepicker. Please install it immediately.', array('@link' => 'http://drupal.org/project/jquery_ui')), 'error');
+    }
     return;
   }
 
-  drupal_add_css(variable_get('date_popup_css_file', date_popup_css_default()));
+  $date_popup_css_file = variable_get('date_popup_css_file', date_popup_css_default());
+
+  // Force loading base jquery-ui.css when using date_popup default theme,
+  // otherwise the popup calendar will be displayed with no theme at all.
+  if ($date_popup_css_file == date_popup_css_default()) {
+    drupal_add_css(jquery_ui_get_path() .'/themes/base/jquery-ui.css');
+  }
+  // Otherwise, load the CSS file in the corresponding theme directory.
+  else {
+    drupal_add_css(dirname($date_popup_css_file) .'/jquery-ui.css');
+  }
+  drupal_add_css($date_popup_css_file);
 
   if (variable_get('date_popup_timepicker', 'default') == 'default') {
     drupal_add_css(drupal_get_path('module', 'date_popup')  .'/themes/jquery.timeentry.css');
@@ -122,8 +150,8 @@ function date_popup_js_settings_id($id, $func, $settings) {
     // Necessary for the datepicker to render and select dates correctly
     $defaultDate = ($parts[0] > 0 || 0 > $parts[1]) ? $parts[0] : 0;
 
-    // The 1.7 version of datepicker renders the range of year options 
-    // relative to the drawn year in the popup, and will re-render the options 
+    // The 1.7 version of datepicker renders the range of year options
+    // relative to the drawn year in the popup, and will re-render the options
     // whenever the year changes.
     if (strpos(jquery_ui_get_version(), '1.7') === 0 && ($parts[0] >= 0 || 0 >= $parts[1])) {
       $range = max($parts) - min($parts);
@@ -145,7 +173,7 @@ function date_popup_js_settings_id($id, $func, $settings) {
   }
 
 // It looks like we need the additional id_count for this to
-// work correctly when there are multiple values.  
+// work correctly when there are multiple values.
 //  $return_id = "$id-$func-popup";
   $return_id = "$id-$func-popup-". $id_count[$id]++;
   $js_settings['datePopup'][$return_id] = array(
@@ -207,16 +235,16 @@ function date_popup_elements() {
 /**
  * Javascript popup element processing.
  * Add popup attributes to $element.
- * 
+ *
  * In regular FAPI processing $element['#value'] will contain a string
  * value before the form is submitted, and an array during submission.
- * 
+ *
  * In regular FAPI processing $edit is empty until the form is submitted
  * when it will contain an array.
- * 
+ *
  * Views widget processing now receives the same values as normal FAPI
  * processing (that was not true in Views 1).
- * 
+ *
  */
 function date_popup_process($element, $edit, $form_state, $form) {
   date_popup_load();
@@ -226,8 +254,7 @@ function date_popup_process($element, $edit, $form_state, $form) {
   $granularity = date_format_order($element['#date_format']);
 
   if (!empty($edit) && is_array($edit) && !empty($edit['date'])) {
-    $input = $edit['date'] . (!empty($edit['time']) ? ' '. $edit['time'] : '');
-    $datetime = date_convert_from_custom($input, $element['#date_format']);
+    $datetime = date_popup_input_value($element);
     $date = date_make_date($datetime, $element['#date_timezone'], DATE_DATETIME, $granularity);
   }
   elseif (!empty($element['#value'])) {
@@ -272,7 +299,7 @@ function date_popup_process_date(&$element, $edit = NULL, $date = NULL) {
     'nextText' => '»',
     'currentText' => date_t('Today', 'date_nav'),
     'changeMonth' => TRUE,
-    'changeYear' => TRUE,    
+    'changeYear' => TRUE,
     'clearText' => t('Clear'),
     'closeText' => t('Close'),
     'firstDay' => intval(variable_get('date_first_day', 1)),
@@ -290,18 +317,18 @@ function date_popup_process_date(&$element, $edit = NULL, $date = NULL) {
     'yearRange' => $year_range,
     // Custom setting, will be expanded in Drupal.behaviors.date_popup()
     'fromTo' => isset($fromto),
-    );    
+    );
 
   // Create a unique id for each set of custom settings.
   $id = date_popup_js_settings_id($element['#id'], 'datepicker', $settings);
-  
+
   // Manually build this element and set the value - this will prevent corrupting
   // the parent value
   $parents = array_merge($element['#parents'], array('date'));
   $sub_element = array(
     '#type' => 'textfield',
     '#default_value' => (!empty($element['#value']['date']) || !empty($edit['date'])) && is_object($date) ? date_format_date($date, 'custom', $date_format) : '',
-    '#id' => $id,    
+    '#id' => $id,
     '#input' => FALSE,
     '#size' => !empty($element['#size']) ? $element['#size'] : 20,
     '#maxlength' => !empty($element['#maxlength']) ? $element['#maxlength'] : 30,
@@ -336,7 +363,7 @@ function date_popup_process_time(&$element, $edit = NULL, $date = NULL) {
 
   // Create a unique id for each set of custom settings.
   $id = date_popup_js_settings_id($element['#id'], 'timeEntry', $settings);
-  
+
   // Manually build this element and set the value - this will prevent corrupting
   // the parent value
   $parents = array_merge($element['#parents'], array('time'));
@@ -359,11 +386,11 @@ function date_popup_process_time(&$element, $edit = NULL, $date = NULL) {
 
 /**
  * Massage the input values back into a single date.
- * 
+ *
  * When used as a Views widget, the validation step always gets triggered,
  * even with no form submission. Before form submission $element['#value']
  * contains a string, after submission it contains an array.
- * 
+ *
  */
 function date_popup_validate($element, &$form_state) {
   if (is_string($element['#value'])) {
@@ -383,11 +410,11 @@ function date_popup_validate($element, &$form_state) {
       // Set message on both date and time to get them highlighted properly.
       $message = t('Field %field is required.', array('%field' => $label));
       if (!empty($date_granularity)) {
-        form_set_error($error_field .'][date', $message);  
+        form_set_error($error_field .'][date', $message);
         $message = ' ';
       }
       if (!empty($time_granularity)) {
-        form_set_error($error_field .'][time', $message);  
+        form_set_error($error_field .'][time', $message);
       }
     }
     form_set_value($element, NULL, $form_state);
@@ -407,11 +434,11 @@ function date_popup_validate($element, &$form_state) {
     // Set message on both date and time to get them highlighted properly.
     $message = t('Field %field is invalid.', array('%field' => $label));
     if (!empty($date_granularity)) {
-      form_set_error($error_field .'][date', $message);  
+      form_set_error($error_field .'][date', $message);
       $message = ' ';
     }
     if (!empty($time_granularity)) {
-      form_set_error($error_field .'][time', $message);  
+      form_set_error($error_field .'][time', $message);
     }
   }
   form_set_value($element, NULL, $form_state);
@@ -419,10 +446,10 @@ function date_popup_validate($element, &$form_state) {
 
 /**
  * Helper function for extracting a date value out of user input.
- * 
+ *
  * @param autocomplete
  *   Should we add a time value to complete the date if there is no time?
- *   Useful anytime the time value is optional. 
+ *   Useful anytime the time value is optional.
  */
 function date_popup_input_value($element, $auto_complete = FALSE) {
   date_popup_load();
@@ -438,7 +465,7 @@ function date_popup_input_value($element, $auto_complete = FALSE) {
   if (is_array($element['#value']) && !empty($element['#value']['date'])) {
     $date = date_convert_from_custom(trim(!empty($element['#value']['date']) ? $element['#value']['date'] : ''), $date_format);
     $time = date_convert_from_custom(trim(!empty($element['#value']['time']) ? $element['#value']['time'] : ''), $time_format);
-    $value = trim(substr($date, 0, 10) .' '. substr($time, 11, 8));
+    $value = trim(drupal_substr($date, 0, 10) .' '. drupal_substr($time, 11, 8));
   }
 
   if (date_is_valid($value, DATE_DATETIME, $granularity)) {
@@ -461,7 +488,7 @@ function date_popup_time_formats($with_seconds = FALSE) {
 
 /**
  * Format options array.
- * 
+ *
  * There are just a few options available for the earlier 'calendar'
  * version.
  */
@@ -509,8 +536,8 @@ function date_format_options() {
  * @param string $format
  *   a normal date format string, like Y-m-d
  * @return string
- *   A format string in popup format, like YMD-, for the 
- *   earlier 'calendar' version, or m/d/Y for the later 'datepicker' 
+ *   A format string in popup format, like YMD-, for the
+ *   earlier 'calendar' version, or m/d/Y for the later 'datepicker'
  *   version.
  */
 function date_popup_format_to_popup($format) {
@@ -587,7 +614,7 @@ function datepicker_format_replacements() {
 function theme_date_popup($element) {
   $output = '';
   $class = 'container-inline-date form-item';
-  // Add #date_float to allow date parts to float together on the same line. 
+  // Add #date_float to allow date parts to float together on the same line.
   if (empty($element['#date_float'])) {
     $class .= ' date-clear-block';
   }
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/lib/jquery.timeentry.pack.js b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/lib/jquery.timeentry.pack.js
index dc9d290..688a1b9 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/lib/jquery.timeentry.pack.js
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_popup/lib/jquery.timeentry.pack.js
@@ -1,7 +1,7 @@
 /* http://keith-wood.name/timeEntry.html
    Time entry for jQuery v1.4.8.
    Written by Keith Wood (kbwood{at}iinet.com.au) June 2007.
-   Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and 
-   MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses. 
+   Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) nd 
+   MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenes. 
    Please attribute the author if you use it. */
 eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(r($){r 1n(){p.Y=[];p.26=[];p.26[\'\']={1c:B,1d:\':\',1o:\'\',Z:[\'3J\',\'3K\'],2C:[\'3L\',\'3M 2D\',\'3N 2D\',\'3O\',\'3P\']};p.1B={2E:\'\',1C:B,27:[1,1,1],2F:0,2G:L,2H:v,2I:v,2J:v,2K:\'3Q.3R\',1p:[20,20,8],2L:\'\',1D:[40,40,16],2M:B,28:[3S,3T],2N:v,2O:v};$.1q(p.1B,p.26[\'\'])}7 m=\'o\';$.1q(1n.2P,{1e:\'3U\',3V:r(a){1E(p.1B,a||{});u p},2Q:r(b,c){7 d=$(b);q(d.2R(p.1e)){u}7 e={};e.1r=$.1q({},c);e.E=0;e.13=0;e.14=0;e.x=0;e.w=$(b);$.y(b,m,e);7 f=p.t(e,\'2K\');7 g=p.t(e,\'3W\');7 h=p.t(e,\'1p\');7 i=p.t(e,\'2E\');7 j=(!f?v:$(\'<15 1F="3X" 2S="3Y: 3Z-41; \'+\'29: 2T(\\\'\'+f+\'\\\') 0 0 2U-2V; \'+\'2a: \'+h[0]+\'O; 2W: \'+h[1]+\'O;\'+($.K.2X&&$.K.42<\'1.9\'?\'
  2Y-U: \'+h[0]+\'O; 2Y-43: \'+(h[1]-18)+\'O;\':\'\')+\'"></15>\'));d.44(\'<15 1F="45"></15>\').2Z(i?\'<15 1F="47">\'+i+\'</15>\':\'\').2Z(j||\'\');d.49(p.1e).17(\'2b.o\',p.2c).17(\'4a.o\',p.30).17(\'4b.o\',p.31).17(\'4c.o\',p.32).17(\'4d.o\',p.33);q($.K.2X){d.17(\'w.o\',r(a){$.o.1f(e)})}q($.K.2d){d.17(\'4e.o\',r(a){1G(r(){$.o.1f(e)},1)})}q(p.t(e,\'2G\')&&$.1H.2e){d.2e(p.34)}q(j){j.3a(p.2f).2g(p.1I).4f(p.3b).2h(p.1I).3c(p.2i)}},4g:r(a){p.2j(a,B)},4h:r(a){p.2j(a,L)},2j:r(b,c){7 d=$.y(b,m);q(!d){u}b.3d=c;q(b.2k&&b.2k.1J.1g()==\'15\'){$.o.1K(d,b.2k,(c?5:-1))}$.o.Y=$.3e($.o.Y,r(a){u(a==b?v:a)});q(c){$.o.Y.4i(b)}},1s:r(a){u $.3f(a,p.Y)>-1},4j:r(a,b,c){7 d=$.y(a,m);q(d){q(1h b==\'1L\'){7 e=b;b={};b[e]=c}7 f=p.1i(d);1E(d.1r,b||{});q(f){p.19(d,F J(0,0,0,f[0],f[1],f[2]))}}$.y(a,m,d)},4k:r(b){$w=$(b);q(!$w.2R(p.1e)){u}$w.4l(p.1e).4m(\'.o\');q($.1H.2e){$w.4n()}p.Y=$.3e(p.Y,r(a){u(a==b?v:a)});$w.4o().4p($w);$.4q(b,m)},4r:r(a,b){7 c=$.y(a,m);q(c){p.19(c,b?(1h b==\'4s\'?F J(b.2l()):b):v)}}
 ,3g:r(a){7 b=$.y(a,m);7 c=(b?p.1i(b):v);u(!c?v:F J(0,0,0,c[0],c[1],c[2]))},4t:r(a){7 b=$.y(a,m);7 c=(b?p.1i(b):v);u(!c?0:(c[0]*4u+c[1]*2m+c[2])*3h)},2c:r(a){7 b=(a.1J&&a.1J.1g()==\'w\'?a:p);q($.o.P==b||$.o.1s(b)){$.o.1M=B;u}7 c=$.y(b,m);$.o.1M=L;$.o.P=b;$.o.1j=v;7 d=$.o.t(c,\'2N\');1E(c.1r,(d?d.1N(b,[b]):{}));$.y(b,m,c);$.o.1f(c);1G(r(){$.o.1a(c)},10)},30:r(a){$.o.1j=$.o.P;$.o.P=v},31:r(b){7 c=b.1k;7 d=$.y(c,m);q(!$.o.1M){7 e=$.o.t(d,\'1d\').G+2;d.x=0;q(c.3i!=v){1O(7 f=0;f<=I.1l(1,d.V,d.D);f++){7 g=(f!=d.D?(f*e)+2:(d.D*e)+$.o.t(d,\'1o\').G+$.o.t(d,\'Z\')[0].G);d.x=f;q(c.3i<g){C}}}N q(c.1P){7 h=$(b.3j);7 i=c.1P();7 j=r(a){u{4v:2,4w:4,4x:6}[a]||a};7 k=b.3k+1t.2n.1u-(h.1Q().U+Q(j(h.1v(\'4y-U-2a\')),10))-i.2o;1O(7 f=0;f<=I.1l(1,d.V,d.D);f++){7 g=(f!=d.D?(f*e)+2:(d.D*e)+$.o.t(d,\'1o\').G+$.o.t(d,\'Z\')[0].G);i.4z();i.3l(\'2p\',g);d.x=f;q(k<i.4A){C}}}}$.y(c,m,d);$.o.1a(d);$.o.1M=B},32:r(a){q(a.2q>=48){u L}7 b=$.y(a.1k,m);2r(a.2q){A 9:u(a.4B?$.o.W(b,-1,L):$.o.W(b,+1,L));A 35:q(a.3m
 ){$.o.1R(b,\'\')}N{b.x=I.1l(1,b.V,b.D);$.o.R(b,0)}C;A 36:q(a.3m){$.o.19(b)}N{b.x=0;$.o.R(b,0)}C;A 37:$.o.W(b,-1,B);C;A 38:$.o.R(b,+1);C;A 39:$.o.W(b,+1,B);C;A 40:$.o.R(b,-1);C;A 46:$.o.1R(b,\'\');C}u B},33:r(a){7 b=4C.4D(a.3n==4E?a.2q:a.3n);q(b<\' \'){u L}7 c=$.y(a.1k,m);$.o.3o(c,b);u B},34:r(a,b){q($.o.1s(a.1k)){u}b=($.K.3p?-b/I.1S(b):($.K.2s?b/I.1S(b):b));7 c=$.y(a.1k,m);c.w.2b();q(!c.w.T()){$.o.1f(c)}$.o.R(c,b);a.4F()},3b:r(b){7 c=$.o.1b(b);7 d=$.y($.o.1m(c),m);7 e=$.o.t(d,\'2L\');q(e){d.1T=L;7 f=$(c).1Q();7 g=v;$(c).3q().2t(r(){7 a=$(p);q(a.1v(\'1w\')==\'4G\'||a.1v(\'1w\')==\'3r\'){g=a.1Q()}u!g});7 h=$.o.t(d,\'1p\');7 i=$.o.t(d,\'1D\');$(\'<3s 1F="4H" 2S="1w: 3r; U: \'+(f.U-(i[0]-h[0])/2-(g?g.U:0))+\'O; 1x: \'+(f.1x-(i[1]-h[1])/2-(g?g.1x:0))+\'O; 2a: \'+i[0]+\'O; 2W: \'+i[1]+\'O; 29: 4I 2T(\'+e+\') 2U-2V 2u 2u; z-4J: 10;"></3s>\').3a($.o.2f).2g($.o.1I).2h($.o.3t).3c($.o.2i).4K(c)}},1m:r(a){u $(a).4L(\'.\'+$.o.1e)[0]},2i:r(a){7 b=$.o.1b(a);7 c=$.y($.o.1m(b),m);b.4M=$.o.t(
 c,\'2C\')[$.o.2v(c,a)]},2f:r(a){7 b=$.o.1b(a);7 c=$.o.1m(b);q($.o.1s(c)){u}q(c==$.o.1j){$.o.P=c;$.o.1j=v}7 d=$.y(c,m);$.o.2c(c);7 e=$.o.2v(d,a);$.o.1K(d,b,e);$.o.2w(d,e);$.o.X=v;$.o.1U=L;7 f=$.o.t(d,\'28\');q(e>=3&&f[0]){$.o.X=1G(r(){$.o.2x(d,e)},f[0]);$(b).3u(\'2h\',$.o.2y).3u(\'2g\',$.o.2y)}},2w:r(a,b){q(!a.w.T()){$.o.1f(a)}2r(b){A 0:p.19(a);C;A 1:p.W(a,-1,B);C;A 2:p.W(a,+1,B);C;A 3:p.R(a,+1);C;A 4:p.R(a,-1);C}},2x:r(a,b){q(!$.o.X){u}$.o.P=$.o.1j;p.2w(a,b);p.X=1G(r(){$.o.2x(a,b)},p.t(a,\'28\')[1])},2y:r(a){4N($.o.X);$.o.X=v},3t:r(a){$.o.X=v;7 b=$.o.1b(a);7 c=$.o.1m(b);7 d=$.y(c,m);$(b).4O();d.1T=B},1I:r(a){$.o.X=v;7 b=$.o.1b(a);7 c=$.o.1m(b);7 d=$.y(c,m);q(!$.o.1s(c)){$.o.1K(d,b,-1)}q($.o.1U){$.o.P=$.o.1j}q($.o.P&&$.o.1U){$.o.1a(d)}$.o.1U=B},1b:r(a){u a.1k||a.3j},2v:r(a,b){7 c=p.1b(b);7 d=($.K.3p||$.K.2s?$.o.3v(c):$(c).1Q());7 e=($.K.2s?$.o.3w(c):[1t.2n.1u||1t.3x.1u,1t.2n.1V||1t.3x.1V]);7 f=p.t(a,\'2M\');7 g=(f?3y:b.3k+e[0]-d.U-($.K.2d?2:0));7 h=b.4P+e[1]-d.1x-($.K.2d?2:0)
 ;7 i=p.t(a,(a.1T?\'1D\':\'1p\'));7 j=(f?3y:i[0]-1-g);7 k=i[1]-1-h;q(i[2]>0&&I.1S(g-j)<=i[2]&&I.1S(h-k)<=i[2]){u 0}7 l=I.3z(g,h,j,k);u(l==g?1:(l==j?2:(l==h?3:4)))},1K:r(a,b,c){$(b).1v(\'29-1w\',\'-\'+((c+1)*p.t(a,(a.1T?\'1D\':\'1p\'))[0])+\'O 2u\')},3v:r(a){7 b=1W=0;q(a.3A){b=a.2o;1W=a.3B;2z(a=a.3A){7 c=b;b+=a.2o;q(b<0){b=c}1W+=a.3B}}u{U:b,1x:1W}},3w:r(a){7 b=B;$(a).3q().2t(r(){b|=$(p).1v(\'1w\')==\'4Q\'});q(b){u[0,0]}7 c=a.1u;7 d=a.1V;2z(a=a.4R){c+=a.1u||0;d+=a.1V||0}u[c,d]},t:r(a,b){u(a.1r[b]!=v?a.1r[b]:$.o.1B[b])},1f:r(a){7 b=p.1i(a);7 c=p.t(a,\'1C\');q(b){a.E=b[0];a.13=b[1];a.14=b[2]}N{7 d=p.1y(a);a.E=d[0];a.13=d[1];a.14=(c?d[2]:0)}a.V=(c?2:-1);a.D=(p.t(a,\'1c\')?-1:(c?3:2));a.1X=\'\';a.x=I.1l(0,I.3z(I.1l(1,a.V,a.D),p.t(a,\'2F\')));q(a.w.T()!=\'\'){p.2A(a)}},1i:r(a,b){b=b||a.w.T();7 c=p.t(a,\'1d\');7 d=b.4S(c);q(c==\'\'&&b!=\'\'){d[0]=b.1z(0,2);d[1]=b.1z(2,4);d[2]=b.1z(4,6)}7 e=p.t(a,\'Z\');7 f=p.t(a,\'1c\');q(d.G>=2){7 g=!f&&(b.3C(e[0])>-1);7 h=!f&&(b.3C(e[1])>-1);7 i=Q(
 d[0],10);i=(2B(i)?0:i);i=((g||h)&&i==12?0:i)+(h?12:0);7 j=Q(d[1],10);j=(2B(j)?0:j);7 k=(d.G>=3?Q(d[2],10):0);k=(2B(k)||!p.t(a,\'1C\')?0:k);u p.1y(a,[i,j,k])}u v},1y:r(a,b){7 c=(b!=v);q(!c){7 d=p.1A(a,p.t(a,\'2H\'))||F J();b=[d.1Y(),d.1Z(),d.21()]}7 e=B;7 f=p.t(a,\'27\');1O(7 i=0;i<f.G;i++){q(e){b[i]=0}N q(f[i]>1){b[i]=I.4T(b[i]/f[i])*f[i];e=L}}u b},2A:r(a){7 b=p.t(a,\'1c\');7 c=p.t(a,\'1d\');7 d=(p.22(b?a.E:((a.E+11)%12)+1)+c+p.22(a.13)+(p.t(a,\'1C\')?c+p.22(a.14):\'\')+(b?\'\':p.t(a,\'1o\')+p.t(a,\'Z\')[(a.E<12?0:1)]));p.1R(a,d);p.1a(a)},1a:r(a){7 b=a.w[0];q(a.w.4U(\':4V\')||$.o.P!=b){u}7 c=p.t(a,\'1d\');7 d=c.G+2;7 e=(a.x!=a.D?(a.x*d):(a.D*d)-c.G+p.t(a,\'1o\').G);7 f=e+(a.x!=a.D?2:p.t(a,\'Z\')[0].G);q(b.3D){b.3D(e,f)}N q(b.1P){7 g=b.1P();g.4W(\'2p\',e);g.3l(\'2p\',f-a.w.T().G);g.4X()}q(!b.3d){b.2b()}},22:r(a){u(a<10?\'0\':\'\')+a},1R:r(a,b){q(b!=a.w.T()){a.w.T(b).4Y(\'4Z\')}},W:r(a,b,c){7 d=(a.w.T()==\'\'||a.x==(b==-1?0:I.1l(1,a.V,a.D)));q(!d){a.x+=b}p.1a(a);a.1X=\'\';$.y(
 a.w[0],m,a);u(d&&c)},R:r(a,b){q(a.w.T()==\'\'){b=0}7 c=p.t(a,\'27\');p.19(a,F J(0,0,0,a.E+(a.x==0?b*c[0]:0)+(a.x==a.D?b*12:0),a.13+(a.x==1?b*c[1]:0),a.14+(a.x==a.V?b*c[2]:0)))},19:r(a,b){b=p.1A(a,b);7 c=p.1y(a,b?[b.1Y(),b.1Z(),b.21()]:v);b=F J(0,0,0,c[0],c[1],c[2]);7 b=p.25(b);7 d=p.25(p.1A(a,p.t(a,\'2I\')));7 e=p.25(p.1A(a,p.t(a,\'2J\')));b=(d&&b<d?d:(e&&b>e?e:b));7 f=p.t(a,\'2O\');q(f){b=f.1N(a.w[0],[p.3g(a.w[0]),b,d,e])}a.E=b.1Y();a.13=b.1Z();a.14=b.21();p.2A(a);$.y(a.w[0],m,a)},25:r(a){q(!a){u v}a.50(51);a.52(0);a.53(0);u a},1A:r(i,j){7 k=r(a){7 b=F J();b.54(b.2l()+a*3h);u b};7 l=r(a){7 b=$.o.1i(i,a);7 c=F J();7 d=(b?b[0]:c.1Y());7 e=(b?b[1]:c.1Z());7 f=(b?b[2]:c.21());q(!b){7 g=/([+-]?[0-9]+)\\s*(s|S|m|M|h|H)?/g;7 h=g.3E(a);2z(h){2r(h[2]||\'s\'){A\'s\':A\'S\':f+=Q(h[1],10);C;A\'m\':A\'M\':e+=Q(h[1],10);C;A\'h\':A\'H\':d+=Q(h[1],10);C}h=g.3E(a)}}c=F J(0,0,10,d,e,f,0);q(/^!/.55(a)){q(c.3F()>10){c=F J(0,0,10,23,59,59)}N q(c.3F()<10){c=F J(0,0,10,0,0,0)}}u c};u(j?(1h j==\'1
 L\'?l(j):(1h j==\'56\'?k(j):j)):v)},3o:r(a,b){q(b==p.t(a,\'1d\')){p.W(a,+1,B)}N q(b>=\'0\'&&b<=\'9\'){7 c=Q(b,10);7 d=Q(a.1X+b,10);7 e=p.t(a,\'1c\');7 f=(a.x!=0?a.E:(e?(d<24?d:c):(d>=1&&d<=12?d:(c>0?c:a.E))%12+(a.E>=12?12:0)));7 g=(a.x!=1?a.13:(d<2m?d:c));7 h=(a.x!=a.V?a.14:(d<2m?d:c));7 i=p.1y(a,[f,g,h]);p.19(a,F J(0,0,0,i[0],i[1],i[2]));a.1X=b}N q(!p.t(a,\'1c\')){b=b.1g();7 j=p.t(a,\'Z\');q((b==j[0].1z(0,1).1g()&&a.E>=12)||(b==j[1].1z(0,1).1g()&&a.E<12)){7 k=a.x;a.x=a.D;p.R(a,+1);a.x=k;p.1a(a)}}}});r 1E(a,b){$.1q(a,b);1O(7 c 57 b){q(b[c]==v){a[c]=v}}u a}7 n=[\'58\',\'2l\',\'5a\'];$.1H.o=r(c){7 d=5b.2P.5c.5d(5e,1);q(1h c==\'1L\'&&$.3f(c,n)>-1){u $.o[\'3G\'+c+\'1n\'].1N($.o,[p[0]].3H(d))}u p.2t(r(){7 a=p.1J.1g();q(a==\'w\'){q(1h c==\'1L\'){$.o[\'3G\'+c+\'1n\'].1N($.o,[p].3H(d))}N{7 b=($.1H.3I?$(p).3I():{});$.o.2Q(p,$.1q(b,c))}}})};$.o=F 1n()})(5f);',62,326,'|||||||var|||||||||||||||||timeEntry|this|if|function||_get|return|null|input|_field|data||case|false|break|_ampmField|
 _selectedHour|new|length||Math|Date|browser|true||else|px|_lastInput|parseInt|_adjustField||val|left|_secondField|_changeField|_timer|_disabledInputs|ampmNames||||_selectedMinute|_selectedSecond|span||bind||_setTime|_showField|_getSpinnerTarget|show24Hours|separator|markerClassName|_parseTime|toLowerCase|typeof|_extractTime|_blurredInput|target|max|_getInput|TimeEntry|ampmPrefix|spinnerSize|extend|options|_isDisabledTimeEntry|document|scrollLeft|css|position|top|_constrainTime|substring|_determineTime|_defaults|showSeconds|spinnerBigSize|extendRemove|class|setTimeout|fn|_endSpinner|nodeName|_changeSpinner|string|_focussed|apply|for|createTextRange|offset|_setValue|abs|_expanded|_handlingSpinner|scrollTop|curTop|_lastChr|getHours|getMinutes||getSeconds|_formatNumber|||_normaliseTime|regional|timeSteps|spinnerRepeat|background|width|focus|_doFocus|msie|mousewheel|_handleSpinner|mouseup|mouseout|_describeSpinner|_enableDisable|nextSibling|getTime|60|documentElement|offsetLeft|c
 haracter|keyCode|switch|safari|each|0px|_getSpinnerRegion|_actionSpinner|_repeatSpinner|_releaseSpinner|while|_showTime|isNaN|spinnerTexts|field|appendText|initialField|useMouseWheel|defaultTime|minTime|maxTime|spinnerImage|spinnerBigImage|spinnerIncDecOnly|beforeShow|beforeSetTime|prototype|_connectTimeEntry|hasClass|style|url|no|repeat|height|mozilla|padding|after|_doBlur|_doClick|_doKeyDown|_doKeyPress|_doMouseWheel||||||mousedown|_expandSpinner|mousemove|disabled|map|inArray|_getTimeTimeEntry|1000|selectionStart|srcElement|clientX|moveEnd|ctrlKey|charCode|_handleKeyPress|opera|parents|absolute|div|_endExpand|one|_findPos|_findScroll|body|99|min|offsetParent|offsetTop|indexOf|setSelectionRange|exec|getDate|_|concat|metadata|AM|PM|Now|Previous|Next|Increment|Decrement|spinnerDefault|png|500|250|hasTimeEntry|setDefaults|spinnerText|timeEntry_control|display|inline||block|version|bottom|wrap|timeEntry_wrap||timeEntry_append||addClass|blur|click|keydown|keypress|paste|mouseov
 er|_enableTimeEntry|_disableTimeEntry|push|_changeTimeEntry|_destroyTimeEntry|removeClass|unbind|unmousewheel|parent|replaceWith|removeData|_setTimeTimeEntry|object|_getOffsetTimeEntry|3600|thin|medium|thick|border|collapse|boundingWidth|shiftKey|String|fromCharCode|undefined|preventDefault|relative|timeEntry_expand|transparent|index|insertAfter|siblings|title|clearTimeout|remove|clientY|fixed|parentNode|split|round|is|hidden|moveStart|select|trigger|change|setFullYear|1900|setMonth|setDate|setTime|test|number|in|getOffset||isDisabled|Array|slice|call|arguments|jQuery'.split('|'),0,{}))
\ No newline at end of file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat.info b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat.info
index ac11a2f..2d752dd 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat.info
@@ -3,9 +3,9 @@ description = A Date Repeat API to calculate repeating dates and times from iCal
 dependencies[] = date_api
 package = Date/Time
 core = 6.x
-; Information added by drupal.org packaging script on 2012-01-11
-version = "6.x-2.8"
+; Information added by drupal.org packaging script on 2012-04-27
+version = "6.x-2.9"
 core = "6.x"
 project = "date"
-datestamp = "1326285938"
+datestamp = "1335549078"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat.install b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat.install
index 10fe6c6..15bce68 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat.install
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat.install
@@ -1,5 +1,8 @@
 <?php
-
+/**
+ * @file
+ * Install file for Date Repeat.
+ */
 /**
  * Implementation of hook_install().
  */
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat.module b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat.module
index c7bdf6e..d6cb25b 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat.module
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat.module
@@ -37,7 +37,7 @@ function date_repeat_menu() {
     'access arguments' => array('access content'),
     'type' => MENU_CALLBACK
   );
-  return $items; 
+  return $items;
 }
 
 function date_repeat_theme() {
@@ -170,11 +170,11 @@ function date_repeat_rrule_description($rrule, $format = 'D M d Y') {
 
   // Make sure there will be an empty description for any unused parts.
   $description = array(
-    '!interval' => '', 
-    '!byday' => '', 
-    '!bymonth' => '', 
+    '!interval' => '',
+    '!byday' => '',
+    '!bymonth' => '',
     '!count' => '',
-    '!until' => '', 
+    '!until' => '',
     '!except' => '',
     '!additional' => '',
     '!week_starts_on' => '',
@@ -204,10 +204,10 @@ function date_repeat_rrule_description($rrule, $format = 'D M d Y') {
     $counts = date_repeat_dow_count_options();
     $results = array();
     foreach ($rrule['BYDAY'] as $byday) {
-      $day = substr($byday, -2);
+      $day = drupal_substr($byday, -2);
       $count = intval(str_replace(' '. $day, '', $byday));
       if ($count = intval(str_replace(' ' . $day, '', $byday))) {
-        $results[] = trim(t('!repeats_every_interval on the !date_order !day_of_week', array('!repeats_every_interval ' => '', '!date_order' => strtolower($counts[substr($byday, 0, 2)]), '!day_of_week' => $days[$day])));
+        $results[] = trim(t('!repeats_every_interval on the !date_order !day_of_week', array('!repeats_every_interval ' => '', '!date_order' => strtolower($counts[drupal_substr($byday, 0, 2)]), '!day_of_week' => $days[$day])));
       }
       else {
         $results[] = trim(t('!repeats_every_interval every !day_of_week', array('!repeats_every_interval ' => '', '!day_of_week' => $days[$day])));
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat_calc.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat_calc.inc
index 6dc8ed3..3eb201f 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat_calc.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat_calc.inc
@@ -96,22 +96,22 @@ function _date_repeat_calc($rrule, $start, $end, $exceptions, $timezone, $additi
   }
   elseif (!empty($rrule['BYDAY']) && !in_array($rrule['FREQ'], array('MONTHLY', 'WEEKLY', 'YEARLY'))) {
     $rrule['FREQ'] = 'WEEKLY';
-   }
+  }
 
   // Find the time period to jump forward between dates.
   switch ($rrule['FREQ']) {
-   case 'DAILY':
-     $jump = $interval . ' days';
-     break;
-   case 'WEEKLY':
-     $jump = $interval . ' weeks';
-     break;
-   case 'MONTHLY':
-     $jump = $interval . ' months';
-     break;
-   case 'YEARLY':
-     $jump = $interval . ' years';
-     break;
+    case 'DAILY':
+      $jump = $interval . ' days';
+      break;
+    case 'WEEKLY':
+      $jump = $interval . ' weeks';
+      break;
+    case 'MONTHLY':
+      $jump = $interval . ' months';
+      break;
+    case 'YEARLY':
+      $jump = $interval . ' years';
+      break;
   }
   $rrule = date_repeat_adjust_rrule($rrule, $start_date);
 
@@ -403,7 +403,7 @@ function date_repeat_adjust_rrule($rrule, $start_date) {
 
   elseif (!empty($rrule['BYDAY']) && !in_array($rrule['FREQ'], array('MONTHLY', 'YEARLY'))) {
     foreach ($rrule['BYDAY'] as $delta => $BYDAY) {
-      $rrule['BYDAY'][$delta] = substr($BYDAY, -2);
+      $rrule['BYDAY'][$delta] = drupal_substr($BYDAY, -2);
     }
   }
 
@@ -434,7 +434,7 @@ function date_repeat_add_dates(&$days, $current_day, $start_date, $end_date, $ex
   if (!empty($rrule['BYDAY'])) {
     $BYDAYS = $rrule['BYDAY'];
     foreach ($BYDAYS as $delta => $BYDAY) {
-      $BYDAYS[$delta] = substr($BYDAY, -2);
+      $BYDAYS[$delta] = drupal_substr($BYDAY, -2);
     }
     if (!in_array(date_repeat_dow2day(date_format($current_day, 'w')), $BYDAYS)) {
       return FALSE;
@@ -578,4 +578,4 @@ function date_repeat_set_year_day($date_in, $day, $count = 1, $direction = '+',
     }
   }
   return $date_in;
-}
\ No newline at end of file
+}
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat_form.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat_form.inc
index b4f5d4f..16dc9cb 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat_form.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_repeat/date_repeat_form.inc
@@ -109,15 +109,14 @@ function _date_repeat_rrule_process($element, $edit, $form_state, $form) {
       '#date_label_position' => !empty($element['#date_label_position']) ? $element['#date_label_position'] : 'within',
       ),
     'tz' => array('#type' => 'hidden', '#value' => $element['#date_timezone']),
-    'all_day' => array('#type' => 'hidden', '#value' => 1),
-    'granularity' => array('#type' => 'hidden', '#value' => serialize(array('year', 'month', 'day'))),
+    'all_day' => array('#type' => 'hidden', '#value' => isset($merged_values['UNTIL']['all_day']) ? $merged_values['UNTIL']['all_day'] : 1),
+    'granularity' => array('#type' => 'hidden', '#value' => isset($merged_values['UNTIL']['granularity']) ? $merged_values['UNTIL']['granularity'] : serialize(array('year', 'month', 'day'))),
     );
-
   $collapsed = TRUE;
   if (!empty($merged_values['BYDAY']) || !empty($merged_values['BYMONTH'])) {
     $collapsed = FALSE;
   }
-	// start the advanced fieldset
+  // start the advanced fieldset
   $element['advanced'] = array(
     '#type' => 'fieldset',
     '#title' => t('Advanced'),
@@ -260,14 +259,14 @@ function _date_repeat_rrule_process($element, $edit, $form_state, $form) {
 /**
  * Ajax callback to get the exceptions form.  This is needed to
  * implement the "Add another" button for the date repeat exceptions.
- * 
+ *
  * @param $type - 'exceptions' or 'additions'.
  * @param $field_name - The name of the date field.
  */
 function date_repeat_get_exception_form_ajax($type, $field_name) {
-  // Get the cached form.  
+  // Get the cached form.
   $form_state = array('storage' => NULL, 'submitted' => FALSE);
-  if( !($form = form_get_cache($_POST['form_build_id'], $form_state)) ) {
+  if (!($form = form_get_cache($_POST['form_build_id'], $form_state))) {
     drupal_json(array('status' => FALSE, 'data' => ''));
     exit();
   }
@@ -324,7 +323,10 @@ function date_repeat_merge($form_values, $element) {
     $until_element = $element;
     $until_element['#value'] = $form_values['UNTIL']['datetime'];
     $until_element['#date_format'] = date_limit_format($element['#date_format'], array('year', 'month', 'day'));
-    $form_values['UNTIL']['datetime'] = $function($until_element);
+    $form_values['UNTIL']['datetime'] = $function($until_element, 0, 10);
+    $form_values['UNTIL']['datetime'] = substr($form_values['UNTIL']['datetime'], 0, 10);
+    $form_values['UNTIL']['granularity'] = serialize(drupal_map_assoc(array('year', 'month', 'day', 'hour')));
+    $form_values['UNTIL']['all_day'] = TRUE;
   }
   if (array_key_exists('EXDATE', $form_values) && is_array($form_values['EXDATE'])) {
     $function = $element['#date_repeat_widget'] .'_input_value';
@@ -377,7 +379,7 @@ function date_repeat_rrule_validate($element, &$form_state) {
 function theme_date_repeat_current_exceptions($rows = array()) {
   $rows_info = array();
   foreach ($rows as $key => $value) {
-    if (substr($key, 0, 1) != '#') {
+    if (drupal_substr($key, 0, 1) != '#') {
       $rows_info[] = array(drupal_render($value['action']), drupal_render($value['display']));
     }
   }
@@ -390,7 +392,7 @@ function theme_date_repeat_current_exceptions($rows = array()) {
 function theme_date_repeat_current_additions($rows = array()) {
   $rows_info = array();
   foreach ($rows as $key => $value) {
-    if (substr($key, 0, 1) != '#') {
+    if (drupal_substr($key, 0, 1) != '#') {
       $rows_info[] = array(drupal_render($value['action']), drupal_render($value['display']));
     }
   }
@@ -401,5 +403,5 @@ function theme_date_repeat_current_additions($rows = array()) {
  * Themes the date repeat element.
  */
 function theme_date_repeat($element) {
-  return theme('form_element', $element, '<div class="container-inline">'. drupal_render($element). '</div>');
+  return theme('form_element', $element, '<div class="container-inline">'. drupal_render($element) . '</div>');
 }
\ No newline at end of file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_timezone/date_timezone.info b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_timezone/date_timezone.info
index 5e2adbc..77b6068 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_timezone/date_timezone.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_timezone/date_timezone.info
@@ -4,9 +4,9 @@ package = Date/Time
 dependencies[] = date_api
 core = 6.x
 
-; Information added by drupal.org packaging script on 2012-01-11
-version = "6.x-2.8"
+; Information added by drupal.org packaging script on 2012-04-27
+version = "6.x-2.9"
 core = "6.x"
 project = "date"
-datestamp = "1326285938"
+datestamp = "1335549078"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_timezone/date_timezone.install b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_timezone/date_timezone.install
index 2f1c5db..d38fa7e 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_timezone/date_timezone.install
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_timezone/date_timezone.install
@@ -1,4 +1,8 @@
 <?php
+/**
+ * @file
+ * Install file for Date Timezone.
+ */
 
 function date_timezone_install() {
   $ret = array();
@@ -76,7 +80,7 @@ function date_timezone_update_5200() {
     }
   }
   $results = db_query("SELECT DISTINCT timezone_name FROM {users} ORDER BY timezone_name");
-  while($row = db_fetch_object($results)) {
+  while ($row = db_fetch_object($results)) {
     if (!empty($row->timezone_name)) {
       $new = _date_timezone_replacement($row->timezone_name);
       if (!empty($new) && $new != $row->timezone_name) {
@@ -93,7 +97,7 @@ function date_timezone_update_5200() {
  * Create replacement values for deprecated timezone names.
  */
 function _date_timezone_replacement($old) {
-  $replace = array (
+  $replace = array(
   'Brazil/Acre' => 'America/Rio_Branco',
   'Brazil/DeNoronha' => 'America/Noronha',
   'Brazil/East' => 'America/Recife',
@@ -102,7 +106,7 @@ function _date_timezone_replacement($old) {
   'Canada/Central' => 'America/Winnipeg',
   'Canada/East-Saskatchewan' => 'America/Regina',
   'Canada/Eastern' => 'America/Toronto',
-  'Canada/Mountain' =>'America/Edmonton',
+  'Canada/Mountain' => 'America/Edmonton',
   'Canada/Newfoundland' => 'America/St_Johns',
   'Canada/Pacific' => 'America/Vancouver',
   'Canada/Saskatchewan' => 'America/Regina',
@@ -183,7 +187,7 @@ function _date_timezone_replacement($old) {
   'PST8PDT' => 'America/Los_Angeles',
   'ROC' => 'Asia/Taipei',
   'ROK' => 'Asia/Seoul',
-  'Singapore' =>'Asia/Singapore',
+  'Singapore' => 'Asia/Singapore',
   'Turkey' => 'Europe/Istanbul',
   'US/Alaska' => 'America/Anchorage',
   'US/Aleutian' => 'America/Adak',
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_timezone/date_timezone.js b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_timezone/date_timezone.js
index e4d527f..1617e56 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_timezone/date_timezone.js
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_timezone/date_timezone.js
@@ -3,30 +3,30 @@
  */
 Drupal.setDefaultTimezone = function() {
   var dateString = Date();
-  // In some client environments, date strings include a time zone 
+  // In some client environments, date strings include a time zone
   // abbreviation which can be interpreted by PHP.
   var matches = Date().match(/\(([A-Z]{3,5})\)/);
   var abbreviation = matches ? matches[1] : 0;
 
-  // For all other client environments, the abbreviation is set to "0" 
-  // and the current offset from UTC and daylight saving time status are 
+  // For all other client environments, the abbreviation is set to "0"
+  // and the current offset from UTC and daylight saving time status are
   // used to guess the time zone.
   var dateNow = new Date();
   var offsetNow = dateNow.getTimezoneOffset() * -60;
 
-  // Use January 1 and July 1 as test dates for determining daylight 
+  // Use January 1 and July 1 as test dates for determining daylight
   // saving time status by comparing their offsets.
   var dateJan = new Date(dateNow.getFullYear(), 0, 1, 12, 0, 0, 0);
   var dateJul = new Date(dateNow.getFullYear(), 6, 1, 12, 0, 0, 0);
   var offsetJan = dateJan.getTimezoneOffset() * -60;
   var offsetJul = dateJul.getTimezoneOffset() * -60;
 
-  // If the offset from UTC is identical on January 1 and July 1, 
+  // If the offset from UTC is identical on January 1 and July 1,
   // assume daylight saving time is not used in this time zone.
   if (offsetJan == offsetJul) {
     var isDaylightSavingTime = '';
   }
-  // If the maximum annual offset is equivalent to the current offset, 
+  // If the maximum annual offset is equivalent to the current offset,
   // assume daylight saving time is in effect.
   else if (Math.max(offsetJan, offsetJul) == offsetNow) {
     var isDaylightSavingTime = 1;
@@ -36,7 +36,7 @@ Drupal.setDefaultTimezone = function() {
     var isDaylightSavingTime = 0;
   }
 
-  // Submit request to the user/timezone callback and set the form field 
+  // Submit request to the user/timezone callback and set the form field
   // to the response time zone.
   var path = 'user/timezone/' + abbreviation + '/' + offsetNow + '/' + isDaylightSavingTime;
   $.getJSON(Drupal.settings.basePath, { q: path, date: dateString }, function (data) {
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_timezone/date_timezone.module b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_timezone/date_timezone.module
index 0ac4baf..6e29a4d 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_timezone/date_timezone.module
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_timezone/date_timezone.module
@@ -50,7 +50,7 @@ function date_timezone_form_alter(&$form, &$form_state, $form_id) {
     if (!isset($form['#after_build'])) {
       $form['#after_build'] = array();
     }
-    $form['#after_build'][] = 'date_timezone_user_form_after_build';  
+    $form['#after_build'][] = 'date_timezone_user_form_after_build';
   }
 }
 
@@ -81,13 +81,13 @@ if (Drupal.jsEnabled) {
     Drupal.setDefaultTimezone();
   });
 }', 'inline');
-  } 
+  }
   return $form;
 }
 
 /**
  * Hide the original form.
- * 
+ *
  * We have to do this in after_build in case the Event module
  * is enabled since the Event module will do its form_alter()
  * after the Date module.
@@ -103,7 +103,7 @@ function date_timezone_site_form_after_build(&$form) {
   }
   $form['locale']['date_default_timezone']['#type'] = 'hidden';
   $form['locale']['date_default_timezone']['#value'] = $value;
-  return $form;  
+  return $form;
 }
 
 /**
@@ -134,13 +134,13 @@ if (Drupal.jsEnabled) {
     Drupal.setDefaultTimezone();
   });
 }', 'inline');
-  }  
+  }
   return $form;
 }
 
 /**
  * Hide the original form.
- * 
+ *
  * We have to do this in after_build in case the Event module
  * is enabled since the Event module will do its form_alter()
  * after the Date module.
@@ -180,7 +180,7 @@ function date_timezone_update_site($element, &$form_state) {
     if (!empty($event_zone['timezone'])) {
         form_set_value($element['date_default_timezone'], $event_zone['timezone'] .'|'. $offset, $form_state);
     } else {
-        form_set_value($element['date_default_timezone'], $offset, $form_state); 
+        form_set_value($element['date_default_timezone'], $offset, $form_state);
     }
   }
   else {
@@ -206,7 +206,7 @@ function date_timezone_update_user($element, &$form_state) {
     if (!empty($event_zone['timezone'])) {
         form_set_value($element['timezone'], $event_zone['timezone'] .'|'. $offset, $form_state);
     } else {
-        form_set_value($element['timezone'], $offset, $form_state); 
+        form_set_value($element['timezone'], $offset, $form_state);
     }
   }
   else {
@@ -216,7 +216,7 @@ function date_timezone_update_user($element, &$form_state) {
 
 /**
  * Update the site timezone offset when cron runs.
- * 
+ *
  * This is to make sure that modules that rely on the timezone offset
  * have current information to process.
  */
@@ -230,7 +230,7 @@ function date_timezone_cron() {
 
 /**
  * Update user timezone information at login.
- * 
+ *
  * This is to make sure that modules that rely on the timezone offset
  * have current information to process.
  */
@@ -245,7 +245,7 @@ function date_timezone_user($op, &$edit, &$account, $category = NULL) {
       }
     }
     else {
-      // If the user doesn't already have a timezone name selected, 
+      // If the user doesn't already have a timezone name selected,
       // default it to the site timezone name and offset.
       $timezone = variable_get('date_default_timezone_name', NULL);
       if (!empty($timezone)) {
@@ -258,11 +258,11 @@ function date_timezone_user($op, &$edit, &$account, $category = NULL) {
 }
 
 /**
- * Menu callback; Retrieve a JSON object containing a suggested time 
+ * Menu callback; Retrieve a JSON object containing a suggested time
  * zone name.
  */
 function user_timezone($abbreviation = '', $offset = -1, $is_daylight_saving_time = NULL) {
-  // An abbreviation of "0" passed in the callback arguments should be 
+  // An abbreviation of "0" passed in the callback arguments should be
   // interpreted as the empty string.
   $abbreviation = $abbreviation ? $abbreviation : '';
   $timezone = function_exists('timezone_name_from_abbr') ? timezone_name_from_abbr($abbreviation, intval($offset), $is_daylight_saving_time) : 'UTC';
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_field.php b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_field.php
index 3fa3e23..fc1ac85 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_field.php
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_field.php
@@ -1,4 +1,4 @@
-$content[type]  = array (
+$content[type]  = array(
   'name' => 'Event',
   'type' => 'event',
   'description' => 'Events have a start date and an optional end date.',
@@ -6,8 +6,8 @@ $content[type]  = array (
   'body_label' => 'Body',
   'min_word_count' => '0',
   'help' => '',
-  'node_options' => 
-  array (
+  'node_options' =>
+  array(
     'status' => true,
     'promote' => true,
     'sticky' => false,
@@ -21,9 +21,9 @@ $content[type]  = array (
   'modified' => '1',
   'locked' => '0',
 );
-$content[fields]  = array (
-  0 => 
-  array (
+$content[fields]  = array(
+  0 =>
+  array(
     'label' => 'Date',
     'field_name' => 'field_event_date',
     'type' => 'date',
@@ -38,11 +38,11 @@ $content[fields]  = array (
     'input_format_custom' => '',
     'year_range' => '-3:+3',
     'increment' => '15',
-    'advanced' => 
-    array (
+    'advanced' =>
+    array(
       'label_position' => 'above',
-      'text_parts' => 
-      array (
+      'text_parts' =>
+      array(
         'year' => 0,
         'month' => 0,
         'day' => 0,
@@ -52,8 +52,8 @@ $content[fields]  = array (
       ),
     ),
     'label_position' => 'above',
-    'text_parts' => 
-    array (
+    'text_parts' =>
+    array(
     ),
     'description' => '',
     'group' => false,
@@ -61,8 +61,8 @@ $content[fields]  = array (
     'multiple' => '0',
     'repeat' => 0,
     'todate' => 'optional',
-    'granularity' => 
-    array (
+    'granularity' =>
+    array(
       'year' => 'year',
       'month' => 'month',
       'day' => 'day',
@@ -83,58 +83,58 @@ $content[fields]  = array (
     'op' => 'Save field settings',
     'module' => 'date',
     'widget_module' => 'date',
-    'columns' => 
-    array (
-      'value' => 
-      array (
+    'columns' =>
+    array(
+      'value' =>
+      array(
         'type' => 'varchar',
         'length' => 20,
         'not null' => false,
         'sortable' => true,
       ),
-      'value2' => 
-      array (
+      'value2' =>
+      array(
         'type' => 'varchar',
         'length' => 20,
         'not null' => false,
         'sortable' => true,
       ),
-      'timezone' => 
-      array (
+      'timezone' =>
+      array(
         'type' => 'varchar',
         'length' => 50,
         'not null' => false,
         'sortable' => true,
       ),
-      'offset' => 
-      array (
+      'offset' =>
+      array(
         'type' => 'int',
         'not null' => false,
         'sortable' => true,
       ),
-      'offset2' => 
-      array (
+      'offset2' =>
+      array(
         'type' => 'int',
         'not null' => false,
         'sortable' => true,
       ),
     ),
-    'display_settings' => 
-    array (
-      'label' => 
-      array (
+    'display_settings' =>
+    array(
+      'label' =>
+      array(
         'format' => 'above',
       ),
-      'teaser' => 
-      array (
+      'teaser' =>
+      array(
         'format' => 'default',
       ),
-      'full' => 
-      array (
+      'full' =>
+      array(
         'format' => 'default',
       ),
-      4 => 
-      array (
+      4 =>
+      array(
         'format' => 'default',
       ),
     ),
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.change_type.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.change_type.inc
index bf1b13d..18d6c71 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.change_type.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.change_type.inc
@@ -1,4 +1,8 @@
 <?php
+/**
+ * @file
+ * Code to change the type of a date.
+ */
 
 /**
  * A form to change the type of date used in date fields.
@@ -38,7 +42,7 @@ function date_tools_change_type_form() {
     '#required' => TRUE,
     '#description' => t('The type of date to change the field to.'),
     '#prefix' => '<strong>' . t('New type:') .'</strong>',
-  );  
+  );
   $form['submit'] = array('#type' => 'submit', '#value' => t('Change'));
   return $form;
 }
@@ -94,13 +98,13 @@ function date_tools_change_type_form_submit($form, &$form_state) {
     return;
   }
 
-  // Replace old values with modified values, massaging the 
+  // Replace old values with modified values, massaging the
   // original values as necessary for the new type.
 
   require_once('./'. drupal_get_path('module', 'date_api') .'/date_api_sql.inc');
   $date_handler = new date_sql_handler();
   $date_handler->construct();
-  $date_handler->granularity = $field['granularity'];  
+  $date_handler->granularity = $field['granularity'];
   $date_handler->date_type = $old_type;
 
   $new_columns = array();
@@ -115,7 +119,7 @@ function date_tools_change_type_form_submit($form, &$form_state) {
     if ($column != 'value' && $column != 'value2') {
       continue;
     }
-    $old_columns[] = $info['column'];   
+    $old_columns[] = $info['column'];
     $db_field = $date_handler->sql_field($temp_table . '.' . $info['column'], 0);
     switch ($old_type) {
       case 'date':
@@ -145,16 +149,16 @@ function date_tools_change_type_form_submit($form, &$form_state) {
             break;
           case 'datestamp':
             $new_columns[] = $date_handler->sql_format('U', $db_field) . ' AS ' . $info['column'];
-            break;  
+            break;
         }
-        break;  
+        break;
     }
   }
 
   // Make sure database timezone is set to UTC.
   $date_handler->set_db_timezone();
 
-  // Make the replacement.  
+  // Make the replacement.
   $sql = 'REPLACE INTO {'. $table .'} ('. implode(', ', $old_columns) .') '.
     ' SELECT '. implode(', ', $new_columns) .' FROM {'. $temp_table .'}';
   db_query($sql);
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.event.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.event.inc
index c040beb..d3a092d 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.event.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.event.inc
@@ -1,4 +1,8 @@
 <?php
+/**
+ * @file
+ * Code to migrate Events to use Date fields instead.
+ */
 
 /**
  *  Event import form.
@@ -56,7 +60,7 @@ function date_tools_copy_import_event_form($form_state) {
       );
       $form['fields'] = array(
         '#type' => 'fieldset',
-        '#title' => t('!type Fields', array('!type' => $node_types[$type])),
+        '#title' => t('!type Fields', array('!type' => check_plain($node_types[$type]))),
         '#weight' => -1,
       );
       $form['fields'] += date_tools_copy_type_fields_form($type);
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.info b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.info
index 50ffe7c..707193c 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.info
@@ -4,9 +4,9 @@ dependencies[] = content
 dependencies[] = date
 package = Date/Time
 core = 6.x
-; Information added by drupal.org packaging script on 2012-01-11
-version = "6.x-2.8"
+; Information added by drupal.org packaging script on 2012-04-27
+version = "6.x-2.9"
 core = "6.x"
 project = "date"
-datestamp = "1326285938"
+datestamp = "1335549078"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.module b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.module
index 591cd84..caa951b 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.module
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.module
@@ -16,7 +16,7 @@ function date_tools_help($section, $arg) {
       if (!empty($disabled_modules)) {
         drupal_set_message(t('The following modules are required for the wizard to work:') .'<ul><li>'. implode('</li><li>', $disabled_modules) .'</li></ul>', 'error');
       }
-      $output =        
+      $output =
       t('Fill out the following form to auto-create a date content type, with a datetime field and matching pre-configured calendar. A calendar and upcoming events block will be created, an ical feed will be added to the calendar, and the mini calendar, calendar legend, and upcoming events blocks will be added to the sidebar of the default theme. Nodes created from this new content type will include a link to the calendar, and the calendar will have a link to the \'add new date\' form. If the Signup module is enabled, Signups will also be enabled for this field. You can also add new date fields to an existing content type by entering the existing content type name instead of creating a new one.') .
       '</p><p>'.
       t('Only a limited set of options are displayed here to make this easy to set up. Once the date has been created you will be able to make other changes to the date settings and add other fields to your new content type on the Manage fields screen, and make changes to the calendar on the Views edit page.') .
@@ -117,8 +117,8 @@ function date_tools_page() {
       if (array_key_exists($type_name, $node_types)) {
         $type = $node_types[$type_name];
         $calendars[] = array(
-          l($type->name, 'admin/content/node-type/'. $type_name .'/fields'), 
-          l($key, 'admin/build/views/edit/'. $key), 
+          l($type->name, 'admin/content/node-type/'. $type_name .'/fields'),
+          l($key, 'admin/build/views/edit/'. $key),
           t('The calendar %view is a default calendar created for the content type %type_name.', array('%view' => $key, '%type_name' => $type->name)),
           l(t('remove !view', array('!view' => $key)), 'date/tools/remove/' . $key),
         );
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.wizard.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.wizard.inc
index f5ff2b6..a1c5807 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.wizard.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/date_tools/date_tools.wizard.inc
@@ -1,4 +1,8 @@
 <?php
+/**
+ * @file
+ * Date Wizard code.
+ */
 
 function date_tools_wizard_form() {
 
@@ -12,19 +16,19 @@ function date_tools_wizard_form() {
     '#default_value' => 'date',
     '#title' => t('Content type name'),
     '#description' => t('Machine-readable name. Allowed values: (a-z, 0-9, _). If this is not an existing content type, the content type will be created.'),
-    ); 
+    );
   $form['type']['name'] = array(
     '#type' => 'textfield',
     '#default_value' => t('Date'),
     '#title' => t('Content type label'),
     '#description' => t('The human-readable name for this content type. Only needed when creating a new content type.'),
-    ); 
+    );
   $form['type']['type_description'] = array(
     '#type' => 'textarea',
     '#default_value' => t('A date content type that is linked to a Views calendar.'),
     '#title' => t('Content type description'),
     '#description' => t('A description for the content type. Only needed when creating a new content type.'),
-    );      
+    );
   $form['field'] = array(
     '#type' => 'fieldset',
     '#title' => t('Date field'),
@@ -55,7 +59,7 @@ function date_tools_wizard_form() {
     '#options' => array(0 => t('No'), 1 => t('Yes')),
     '#title' => t('Show repeating date options'),
     '#access' => module_exists('date_repeat'),
-    );  
+    );
   $form['field']['advanced'] = array(
     '#type' => 'fieldset',
     '#collapsible' => TRUE,
@@ -75,7 +79,7 @@ function date_tools_wizard_form() {
     '#default_value' => array('month', 'day', 'year', 'hour', 'minute'),
     '#title' => t('Granularity'),
     '#multiple' => TRUE,
-    );  
+    );
   $form['field']['advanced']['tz_handling'] = array(
     '#type' => 'select',
     '#options' => date_tools_wizard_tz_handling(),
@@ -89,19 +93,19 @@ function date_tools_wizard_form() {
     '#options' => array(0 => t('No'), 1 => t('Yes')),
     '#title' => t('Create a calendar for this date field'),
     '#access' => module_exists('calendar'),
-    ); 
+    );
   $form['blocks'] = array(
     '#type' => 'select',
     '#options' => array(0 => t('No'), 1 => t('Yes')),
     '#default_value' => 0,
     '#title' => t('Add calendar blocks to the current theme'),
     '#access' => module_exists('calendar'),
-    );   
+    );
 
   $form['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Save'),
-    );      
+    );
   return $form;
 }
 
@@ -144,7 +148,7 @@ function date_tools_wizard_build($form_values) {
   }
 
   // Create a node type if it doesn't already exist.
-  // This makes it possible to add additional date fields to 
+  // This makes it possible to add additional date fields to
   // an existing type.
   $types = node_get_types('names');
   $type_settings = array();
@@ -184,7 +188,7 @@ function date_tools_wizard_build($form_values) {
   if (!empty($calendar)) {
     $view_name = date_tools_wizard_create_calendar($name, $type_name, $date_field);
     if (!empty($blocks)) {
-      date_tools_wizard_create_blocks($type_name);  
+      date_tools_wizard_create_blocks($type_name);
     }
   }
   return $view_name;
@@ -203,10 +207,10 @@ function date_tools_wizard_options($options = array()) {
   $default_options = array();
   if (module_exists('date_popup')) {
     $default_options[] = 'popups';
-  } 
+  }
   if (module_exists('date_repeat')) {
     $default_options[] = 'repeat';
-  } 
+  }
   if (module_exists('calendar')) {
     $default_options[] = 'linked';
   }
@@ -226,11 +230,11 @@ function date_tools_wizard_options($options = array()) {
 function date_tools_wizard_required_modules($options = array()) {
   $options = date_tools_wizard_options($options);
   $modules = array(
-    'date_timezone', 'date_api', 'content', 'date', 
+    'date_timezone', 'date_api', 'content', 'date',
   );
   if (module_exists('calendar')) {
     $modules = array_merge($modules, array('calendar', 'views', 'views_ui'));
-  }  
+  }
   if (in_array('popups', $options)) {
     $modules = array_merge($modules, array('date_popup', 'jcalendar'));
   }
@@ -284,21 +288,21 @@ function date_tools_wizard_disabled_modules($options = array()) {
 }
 
 function date_tools_wizard_field_types() {
-  $field_types = array();  
+  $field_types = array();
   foreach (date_field_info() as $name => $info) {
     $field_types[$name] = $info['label']; //.' - '. $info['description'];
   }
-  return $field_types;  
+  return $field_types;
 }
 
 function date_tools_wizard_widget_types() {
-  $widget_types = array();  
+  $widget_types = array();
   foreach (date_widget_info() as $name => $info) {
     if (!strstr($name, '_repeat')) {
       $widget_types[$name] = $info['label'];
     }
   }
-  return $widget_types;  
+  return $widget_types;
 }
 
 function date_tools_wizard_tz_handling() {
@@ -311,7 +315,7 @@ function date_tools_wizard_create_content_type($name, $type_name, $description,
   date_tools_wizard_include();
 
   // Create the content type.
-  $values  = array (
+  $values  = array(
     'name' => $name,
     'type' => $type_name,
     'description' => $description,
@@ -319,8 +323,8 @@ function date_tools_wizard_create_content_type($name, $type_name, $description,
     'body_label' => 'Body',
     'min_word_count' => '0',
     'help' => '',
-    'node_options' => 
-    array (
+    'node_options' =>
+    array(
       'status' => 1,
       'promote' => 1,
       'sticky' => 0,
@@ -369,22 +373,22 @@ function date_tools_wizard_create_date_field($field_type, $widget_type, $tz_hand
 
   // Create the date field.
 
-  // Set overrides that apply to all date fields.  
+  // Set overrides that apply to all date fields.
   $base_overrides = array(
 
     'field_name' => $field_name,
     'type_name' => $type_name,
 
-    // Can be set to 0 (none), 1 (unlimited or repeating), 
+    // Can be set to 0 (none), 1 (unlimited or repeating),
     // or 2-9 for a fixed number of values.
-    'multiple' => 0, 
+    'multiple' => 0,
 
-    // Set a display format that will show complete date information, 
+    // Set a display format that will show complete date information,
     // to help test that values are correct.
     'default_format' => 'long',
 
     // Set the date granularity.
-    'granularity' => array (
+    'granularity' => array(
       'year' => 'year',
       'month' => 'month',
       'day' => 'day',
@@ -392,10 +396,10 @@ function date_tools_wizard_create_date_field($field_type, $widget_type, $tz_hand
       'minute' => 'minute',
       ),
 
-    // Shall this date include a 'To date'?, can be blank, 'optional', or 'required'  
+    // Shall this date include a 'To date'?, can be blank, 'optional', or 'required'
     'todate' => 'optional',
 
-   );    
+  );
 
    // Widget overrides:
    $widget_overrides = array(
@@ -405,9 +409,9 @@ function date_tools_wizard_create_date_field($field_type, $widget_type, $tz_hand
 
     // Set default values to 'blank', 'now', or 'relative'. To dates can also use 'same'.
     'default_value' => 'now',
-    'default_value_code' => '', // The code to use with 'relative', like '+1 day'. 
+    'default_value_code' => '', // The code to use with 'relative', like '+1 day'.
     'default_value2' => 'blank',
-    'default_value_code2' => '', // The code to use with 'relative', like '+1 day'. 
+    'default_value_code2' => '', // The code to use with 'relative', like '+1 day'.
 
     // Set format string to use for input forms, it controls order and type of date parts.
     // Input formats must have all date parts, including seconds.
@@ -418,7 +422,7 @@ function date_tools_wizard_create_date_field($field_type, $widget_type, $tz_hand
 
     // Optional array of date parts that should be textfields in select widgets,
     // can be any combination of year, month, day, hour, minute, second.
-    'text_parts' => array (),
+    'text_parts' => array(),
 
     // The number of years to go back and forward in drop-down year selectors.
     'year_range' => '0:+1',
@@ -469,10 +473,10 @@ function date_tools_wizard_create_calendar($name, $type_name, $date_field) {
   cache_clear_all('*', 'cache_views');
 
   // Clear the page cache.
-  cache_clear_all();  
+  cache_clear_all();
 
   // Remove this view from cache so we can edit it properly.
-  views_object_cache_clear('view', 'calendar_'. $type_name);  
+  views_object_cache_clear('view', 'calendar_'. $type_name);
 
   // Force Views to empty its cache and find the new view.
   views_discover_default_views();
@@ -495,16 +499,16 @@ function date_tools_wizard_create_blocks($type_name) {
   $block->delta = 0;
   date_tools_wizard_add_block($block);
 
-  // Mini calendar block. 
+  // Mini calendar block.
   $block->module = 'views';
   $block->delta = 'calendar_'. $type_name .'-calendar_block_1';
-  date_tools_wizard_add_block($block); 
+  date_tools_wizard_add_block($block);
 
   // Upcoming events block.
   $block->module = 'views';
   $block->delta = 'calendar_'. $type_name .'-block_1';
   date_tools_wizard_add_block($block);
-  return;      
+  return;
 }
 
 /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api.views.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api.views.inc
index 588b7b4..36122de 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api.views.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api.views.inc
@@ -3,28 +3,28 @@
 /**
  * @file
  * Defines date-related Views data and plugins:
- * 
+ *
  * Date argument:
- *   A generic date argument that has an option to select one or more 
- *   Views date fields to filter on, automatically adds them to the view, 
- *   and then filters the view by the value of the selected field(s). 
+ *   A generic date argument that has an option to select one or more
+ *   Views date fields to filter on, automatically adds them to the view,
+ *   and then filters the view by the value of the selected field(s).
  *   The flexible argument will accept and evaluate most ISO date
- *   and period formats, like 2009-05-01, 2008-W25, P1W. 
- * 
+ *   and period formats, like 2009-05-01, 2008-W25, P1W.
+ *
  * Date filter:
- *   A generic date filter that has an option to select a 
+ *   A generic date filter that has an option to select a
  *   Views date field to filter on, with a choice of a widget to use
- *   for the filter form and an option to set the default value to 
- *   a set date or something like 'now +90 days'. If the operator is 
+ *   for the filter form and an option to set the default value to
+ *   a set date or something like 'now +90 days'. If the operator is
  *   set to 'between' or 'not between' you can set a default value for
- *   both the from and to dates. 
- * 
+ *   both the from and to dates.
+ *
  * Current date argument default
- *   Adds a default option to set the argument to the current date 
+ *   Adds a default option to set the argument to the current date
  *   when the argument is empty.
- * 
+ *
  * Date navigation attachment
- *   Navigation that can be attached to any display to create back/next 
+ *   Navigation that can be attached to any display to create back/next
  *   links by date, requires the date argument and uses the current
  *   date argument default to set a starting point for the view.
  */
@@ -49,7 +49,7 @@ function date_api_views_handlers() {
 }
 
 /**
- * Implementation of hook_views_plugins
+ * Implementation of hook_views_plugins().
  */
 function date_api_views_plugins() {
   $path = drupal_get_path('module', 'date_api');
@@ -108,7 +108,7 @@ function date_api_views_plugins() {
         'uses row plugin' => FALSE,
         'uses fields' => FALSE,
         'uses options' => TRUE,
-        'type' => 'date_nav', 
+        'type' => 'date_nav',
         'even empty' => TRUE,
       ),
     ),
@@ -116,7 +116,7 @@ function date_api_views_plugins() {
 }
 
 /**
- * Implementation of hook_views_data()
+ * Implementation of hook_views_data().
  */
 function date_api_views_data() {
   $data = array();
@@ -134,7 +134,7 @@ function date_api_views_data() {
         'empty field name' => t('Undated'),
         'base' => $base_table,
       ),
-    );  
+    );
     // The flexible date filter.
     $data[$base_table]['date_filter'] = array(
       'group' => t('Date'),
@@ -145,7 +145,7 @@ function date_api_views_data() {
         'empty field name' => t('Undated'),
         'base' => $base_table,
       ),
-    ); 
+    );
   }
   return $data;
 }
@@ -173,10 +173,10 @@ function date_api_fields($base = 'node', $reset = FALSE) {
 /**
  * Central function for setting up the right timezone values
  * in the SQL date handler.
- * 
+ *
  * The date handler will use this information to decide if the
  * database value needs a timezone conversion.
- * 
+ *
  * In Views, we will always be comparing to a local date value,
  * so the goal is to convert the database value to the right
  * value to compare to the local value.
@@ -252,7 +252,7 @@ function date_views_real_url($view, $args) {
   foreach ($parts as $delta => $part) {
     // If one of the args is buried in the url, add it here and adjust
     // the delta values we'll compare the calendar arg positions to.
-    if (substr($part, 0, 1) == '$') {
+    if (drupal_substr($part, 0, 1) == '$') {
       $parts[$delta] = array_shift($args);
       $bump++;
     }
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api.views_default.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api.views_default.inc
index 156e046..1a97895 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api.views_default.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api.views_default.inc
@@ -1,4 +1,9 @@
 <?php
+/**
+ * @file
+ * Default Views.
+ */
+
 function date_api_views_default_views() {
 
 $view = new view;
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api_argument_handler.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api_argument_handler.inc
index 00d5e39..8c1dc96 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api_argument_handler.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api_argument_handler.inc
@@ -1,5 +1,10 @@
 <?php
 /**
+ * @file
+ * Views argument handler.
+ */
+
+/**
  * Date API argument handler.
  */
 class date_api_argument_handler extends views_handler_argument_date {
@@ -163,7 +168,7 @@ class date_api_argument_handler extends views_handler_argument_date {
   }
 
   /**
-   * Set the empty argument value to the current date, 
+   * Set the empty argument value to the current date,
    * formatted appropriately for this argument.
    */
   function get_default_argument($raw = FALSE) {
@@ -173,7 +178,7 @@ class date_api_argument_handler extends views_handler_argument_date {
         $now = date_now();
         $week = date_week(date_format($now, 'Y-m-d'));
         return date_format($now, 'Y') .'-W'. $week;
-      } 
+      }
       else {
         return date($this->format(), time());
       }
@@ -235,7 +240,7 @@ class date_api_argument_handler extends views_handler_argument_date {
    */
   function summary_query() {
     $this->get_query_fields();
-    
+
     // No way to do summaries on more than one field at a time.
     if (count($this->query_fields) > 1) {
       return;
@@ -251,7 +256,7 @@ class date_api_argument_handler extends views_handler_argument_date {
     // Get the SQL format for this granularity, like Y-m,
     // and use that as the grouping value.
     $format = $date_handler->views_formats($this->options['granularity'], 'sql');
-    $this->formula = $date_handler->sql_format($format, $date_handler->sql_field($field['fullname'], $this->offset));
+    $this->formula = $date_handler->sql_format($format, $date_handler->sql_field($field['fullname']));
 
     // Add the computed field.
     $this->base_alias = $this->name_alias = $this->query->add_field(NULL, $this->formula, $field['query_name']);
@@ -280,21 +285,19 @@ class date_api_argument_handler extends views_handler_argument_date {
 
   /**
    * Make sure the date field is added to the query.
-   * 
-   * Do this in pre_query() so it will get done even if the argument 
+   *
+   * Do this in pre_query() so it will get done even if the argument
    * is the wildcard, since query() is skipped when the wildcard is used.
    */
-  function pre_query() { 
+  function pre_query() {
     // Unset invalid date values before the query runs.
     if (!empty($this->view->args) && count($this->view->args) > $this->position) {
       $argument = $this->view->args[$this->position];
       $parts = $this->date_handler->arg_parts($argument);
       if (empty($parts[0]['date']) && empty($parts[0]['period'])) {
-        unset($this->view->args[$this->position]); 
+        unset($this->view->args[$this->position]);
       }
     }
-    // Setting the offset to avoid trying to use timezone adjustments for dates that don't need it.
-    $this->offset = in_array($this->date_handler->granularity, array('hour', 'minute', 'sec')) ? NULL : 0;
   }
 
   /**
@@ -356,14 +359,14 @@ class date_api_argument_handler extends views_handler_argument_date {
       return;
     }
 
-    // The second option seems to work better in the block view if 
-    // set to something other than the original value. 
+    // The second option seems to work better in the block view if
+    // set to something other than the original value.
     // Need to keep an eye on this to be sure nothing else breaks.
     //$format = $this->date_handler->views_formats($this->options['granularity'], 'sql');
     $format = $this->date_handler->views_formats($this->granularity, 'sql');
     $this->get_query_fields();
     if (!empty($this->query_fields)) {
-      // Use set_where_group() with the selected date_method 
+      // Use set_where_group() with the selected date_method
       // of 'AND' or 'OR' to create the where clause.
       $this->query->set_where_group($this->options['date_method'], 'date');
       foreach ($this->query_fields as $query_field) {
@@ -377,13 +380,13 @@ class date_api_argument_handler extends views_handler_argument_date {
         $to_field = str_replace($field['table_name'] .'_', $table_alias .'.', $field['fromto'][1]);
 
         if ($this->granularity != 'week') {
-          $from = $date_handler->sql_where_format($format, $from_field, '<=', date_format($max_date, $format), $this->offset);
-          $to   = $date_handler->sql_where_format($format, $to_field, '>=', date_format($min_date, $format), $this->offset);
+          $from = $date_handler->sql_where_format($format, $from_field, '<=', date_format($max_date, $format));
+          $to   = $date_handler->sql_where_format($format, $to_field, '>=', date_format($min_date, $format));
         }
         else {
           $format = DATE_FORMAT_DATETIME;
-          $from = $date_handler->sql_where_date('DATE', $from_field, '<=', date_format($max_date, $format), $this->offset);
-          $to   = $date_handler->sql_where_date('DATE', $to_field, '>=', date_format($min_date, $format), $this->offset);          
+          $from = $date_handler->sql_where_date('DATE', $from_field, '<=', date_format($max_date, $format));
+          $to   = $date_handler->sql_where_date('DATE', $to_field, '>=', date_format($min_date, $format));
         }
         $sql = str_replace('***table***', $field['table_name'], "($from AND $to)");
         if ($sql) {
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api_fields.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api_fields.inc
index c3a090c..2e4c112 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api_fields.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api_fields.inc
@@ -1,11 +1,15 @@
 <?php
 /**
+ * @file
+ * Identification for fields the Date handlers can use.
+ */
+
+/**
  *  Identify all potential date/timestamp fields.
  *
  *  @return
  *    array with fieldname, type, and table.
- *  @see 
- *    date_api_date_api_fields() which implements 
+ *  @see date_api_date_api_fields() which implements
  *    the hook_date_api_fields() for the core date fields.
  */
 function _date_api_fields($base = 'node') {
@@ -26,7 +30,7 @@ function _date_api_fields($base = 'node') {
     $alias = str_replace('.', '_', $name);
 
     if (!$handler = views_get_handler($table_name, $field_name, 'field')) {
-      continue; 
+      continue;
     }
 
     $handler_name = $handler->definition['handler'];
@@ -156,13 +160,13 @@ function _date_api_fields($base = 'node') {
         }
       }
       if (isset($handler->content_field)) {
-        if (substr($field_name, -1) == '2') {
-          $len = (strlen($field_name) - 7);
+        if (drupal_substr($field_name, -1) == '2') {
+          $len = (drupal_strlen($field_name) - 7);
         }
         else {
-          $len = (strlen($field_name) - 6);
+          $len = (drupal_strlen($field_name) - 6);
         }
-        $fields['name'][$name]['real_field_name'] = substr($field_name, 0, $len);
+        $fields['name'][$name]['real_field_name'] = drupal_substr($field_name, 0, $len);
       }
       else {
         $fields['name'][$name]['real_field_name'] = $field_name;
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api_filter_handler.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api_filter_handler.inc
index 7233fe3..1064e62 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api_filter_handler.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_api_filter_handler.inc
@@ -1,4 +1,8 @@
 <?php
+/**
+ * @file
+ * Date Views filter handler.
+ */
 
 /**
  * A flexible, configurable date filter.
@@ -46,7 +50,7 @@ class date_api_filter_handler extends views_handler_filter_numeric {
     $this->definition['allow empty'] = TRUE;
 
     // If no value has been submitted on an exposed filter it is treated as
-    // a submitted value. Send a flag to the date widget processors so they 
+    // a submitted value. Send a flag to the date widget processors so they
     // know to set '#value' instead of '#default_value' in that case.
     $this->force_value = FALSE;
     if (empty($this->options['exposed']) || (isset($this->options['expose']['identifier']) && !isset($_GET[$this->options['expose']['identifier']]))) {
@@ -89,24 +93,24 @@ class date_api_filter_handler extends views_handler_filter_numeric {
 
   /**
    * Date selection options.
-   * 
+   *
    * TODO Only select widget is working right now.
    */
   function widget_options() {
     $options = array(
-      'date_select' => t('Select'), 
-      'date_text' => t('Text'), 
+      'date_select' => t('Select'),
+      'date_text' => t('Text'),
       'date_popup' => t('Popup'),
       );
     if (!module_exists('date_popup')) {
       unset($options['date_popup']);
-    }  
+    }
     return $options;
   }
 
   function year_range() {
     $year_range = explode(':', $this->options['year_range']);
-    if (substr($this->options['year_range'], 0, 1) == '-' || $year_range[0] < 0) {
+    if (drupal_substr($this->options['year_range'], 0, 1) == '-' || $year_range[0] < 0) {
       $this_year = date_format(date_now(), 'Y');
       $year_range[0] = $this_year + $year_range[0];
       $year_range[1] = $this_year + $year_range[1];
@@ -252,7 +256,7 @@ class date_api_filter_handler extends views_handler_filter_numeric {
       unset($form['value']['value']['#prefix']);
     }
 
-    $form['value']['#theme'] = 'date_views_filter_form';  
+    $form['value']['#theme'] = 'date_views_filter_form';
   }
 
   /**
@@ -274,7 +278,7 @@ class date_api_filter_handler extends views_handler_filter_numeric {
    */
   function date_parts_form($form_state, $prefix, $source, $which, $operator_values) {
     require_once('./'. drupal_get_path('module', 'date_api') .'/date_api_elements.inc');
-    switch($prefix) {
+    switch ($prefix) {
       case 'min':
         $name = t('From date');
         break;
@@ -301,9 +305,9 @@ class date_api_filter_handler extends views_handler_filter_numeric {
 
     $form[$prefix] = array(
       '#type' => $type,
-      '#title' => $name,
+      '#title' => check_plain($name),
       '#size' => 20,
-      '#default_value' => !empty($this->value[$prefix]) ? $this->value[$prefix] : $default_date,
+      '#default_value' => empty($this->force_value) && !empty($this->value[$prefix]) ? $this->value[$prefix] : $default_date,
       '#date_format' => date_limit_format($format, $granularity),
       '#date_label_position' => 'within',
       '#date_year_range' => $this->options['year_range'],
@@ -315,6 +319,7 @@ class date_api_filter_handler extends views_handler_filter_numeric {
       );
       $form[$prefix] += $dependency;
     }
+
     return $form;
   }
 
@@ -327,13 +332,16 @@ class date_api_filter_handler extends views_handler_filter_numeric {
     // If this is a remembered value, use the value from the SESSION.
     if (!empty($this->options['expose']['remember'])) {
       $display_id = ($this->view->display_handler->is_defaulted('filters')) ? 'default' : $this->view->current_display;
-      return $_SESSION['views'][$this->view->name][$display_id]['date_filter'][$prefix];
+      $value = $_SESSION['views'][$this->view->name][$display_id]['date_filter'][$prefix];
+      if (!empty($value)) {
+        return $value;
+      }
     }
 
     // This is a date that needs to be constructed from options like 'now'.
     $default_option = $prefix == 'max' ? $options['default_to_date'] : $options['default_date'];
     if (!empty($default_option)) {
-      // For PHP 5.2+, take advantage of any strings that native PHP 
+      // For PHP 5.2+, take advantage of any strings that native PHP
       // date_create() can handle. For older versions use strtotime().
       if (version_compare(PHP_VERSION, '5.2', '<')) {
         $now = strtotime($default_option .' UTC');
@@ -353,16 +361,16 @@ class date_api_filter_handler extends views_handler_filter_numeric {
 
   /**
    * Value validation.
-   * 
+   *
    * TODO add in more validation.
-   * 
+   *
    * We are setting an extra option using a value form
-   * because it makes more sense to set it there. 
+   * because it makes more sense to set it there.
    * That's not the normal method, so we have to manually
    * transfer the selected value back to the option.
    */
-  function value_validate(&$form, &$form_state) {
-    if (($form_state['values']['options']['operator'] == 'between' || $form_state['values']['options']['operator'] == 'not between') && 
+  function value_validate($form, &$form_state) {
+    if (($form_state['values']['options']['operator'] == 'between' || $form_state['values']['options']['operator'] == 'not between') &&
     !empty($form_state['values']['options']['value']['default_date']) && empty($form_state['values']['options']['value']['default_to_date'])) {
       form_error($form['value']['default_to_date'], t('Please set a default value for the To date as well as the From date when using default values with the Between or Not between operators.'));
     }
@@ -411,11 +419,11 @@ class date_api_filter_handler extends views_handler_filter_numeric {
   }
 
    // Views treats the form as though it has already been submitted
-  // even when it hasn't, so we when it is really not submitted we 
+  // even when it hasn't, so we when it is really not submitted we
   // have to adjust the values to match what should have been the default.
   // Overriding exposed_submit() will ensure that the $input value
   // used by Views has been adjusted to the right value.
-  function exposed_submit(&$form, &$form_state) { 
+  function exposed_submit(&$form, &$form_state) {
     if ($this->force_value) {
       $default = array();
       foreach (array('value', 'min', 'max') as $prefix) {
@@ -425,11 +433,6 @@ class date_api_filter_handler extends views_handler_filter_numeric {
     }
   }
 
-  function pre_query() {
-    // Setting the offset to avoid trying to use timezone adjustments for dates that don't need it.
-    $this->offset = in_array($this->date_handler->granularity, array('hour', 'minute', 'sec')) ? NULL : 0;
-  }
-
   /**
    * Custom implementation of query() so we can get the
    * AND and OR methods in the right places.
@@ -465,7 +468,7 @@ class date_api_filter_handler extends views_handler_filter_numeric {
             break;
         }
         if (!empty($sql)) {
-          // Use set_where_group() with the selected date_method 
+          // Use set_where_group() with the selected date_method
           // of 'AND' or 'OR' to combine the field WHERE clauses.
           $this->query->set_where_group($this->options['date_method'], 'date');
           $this->query->add_where('date', $sql);
@@ -517,7 +520,7 @@ class date_api_filter_handler extends views_handler_filter_numeric {
       switch ($operator) {
         case '>':
         case '>=':
-          $range[1] = date_make_date(date_pad($year_range[1], 4) .'-12-31 23:59:59');  
+          $range[1] = date_make_date(date_pad($year_range[1], 4) .'-12-31 23:59:59');
           if ($operator == '>') {
             date_modify($range[0], '+1 second');
           }
@@ -529,7 +532,7 @@ class date_api_filter_handler extends views_handler_filter_numeric {
             date_modify($range[1], '-1 second');
           }
           break;
-      }      
+      }
     }
 
     $min_date = $range[0];
@@ -559,10 +562,10 @@ class date_api_filter_handler extends views_handler_filter_numeric {
     }
 
     if ($this->date_handler->granularity != 'week') {
-      $sql = $date_handler->sql_where_format($this->format, $field['fullname'], $operator, $value, $this->offset);
+      $sql = $date_handler->sql_where_format($this->format, $field['fullname'], $operator, $value);
     }
     else {
-      $sql = $date_handler->sql_where_date('DATE', $field['fullname'], $operator, $value, $this->offset);
+      $sql = $date_handler->sql_where_date('DATE', $field['fullname'], $operator, $value);
     }
     return $sql;
   }
@@ -588,4 +591,5 @@ class date_api_filter_handler extends views_handler_filter_numeric {
       }
     }
   }
-}
\ No newline at end of file
+}
+
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_navigation_plugin_style.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_navigation_plugin_style.inc
index cf53cd9..bed360d 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_navigation_plugin_style.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_navigation_plugin_style.inc
@@ -1,7 +1,12 @@
 <?php
 /**
+ * @file
+ * Date navigation style handler.
+ */
+
+/**
  * Style plugin to create date back/next navigation.
- * 
+ *
  * The style plugin passes some argument values to the theme, and
  * ensures that the date argument is present and that the default
  * value is set to the current date.
@@ -20,17 +25,17 @@ class date_navigation_plugin_style extends views_plugin_style {
     foreach ($arguments as $id => $argument) {
       if ($argument['field'] == 'date_argument') {
         if ($count > 0) {
-          $errors[] = t('The %style cannot use more than one Date: Date argument.', array('%style' => $this->definition['title']));          
+          $errors[] = t('The %style cannot use more than one Date: Date argument.', array('%style' => $this->definition['title']));
         }
         elseif ($argument['default_argument_type'] != 'date') {
-          $errors[] = t('The %style requires the Date: Date argument be set to default to the current date.', array('%style' => $this->definition['title']));      
+          $errors[] = t('The %style requires the Date: Date argument be set to default to the current date.', array('%style' => $this->definition['title']));
         }
         $count++;
         $found = TRUE;
       }
     }
     if (!$found) {
-      $errors[] = t('The %style requires the Date: Date argument.', array('%style' => $this->definition['title']));      
+      $errors[] = t('The %style requires the Date: Date argument.', array('%style' => $this->definition['title']));
     }
     return $errors;
   }
@@ -39,7 +44,7 @@ class date_navigation_plugin_style extends views_plugin_style {
     require_once('./'. drupal_get_path('module', 'date_api') .'/date_api_sql.inc');
 
     // Bring the argument information into the view so our theme can access it.
-    $i = 0;    
+    $i = 0;
     foreach ($this->view->argument as $id => $argument) {
       if ($id == 'date_argument') {
         $this->view->date_info->granularity = $argument->granularity;
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_plugin_display_attachment.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_plugin_display_attachment.inc
index 280d539..2074f80 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_plugin_display_attachment.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/includes/date_plugin_display_attachment.inc
@@ -1,8 +1,13 @@
 <?php
 /**
+ * @file
+ * Views attachment display handler.
+ */
+
+/**
  * The plugin that handles date navigation attachments.
- * 
- * Creates a special attachment for this purpose only. 
+ *
+ * Creates a special attachment for this purpose only.
  */
 class date_plugin_display_attachment extends views_plugin_display_attachment {
 
@@ -30,5 +35,5 @@ class date_plugin_display_attachment extends views_plugin_display_attachment {
     $options['defaults']['default']['row_options'] = FALSE;
 
     return $options;
-  } 
+  }
 }
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/tests/date.test b/kolab.org/www/drupal-6.26/sites/all/modules/date/tests/date.test
index 8679d6c..f58a3f7 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/tests/date.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/tests/date.test
@@ -1,4 +1,9 @@
 <?php
+/**
+ * @file
+ * Date test.
+ */
+
 class DateTestCase extends DrupalWebTestCase {
   protected $privileged_user;
 
@@ -25,7 +30,7 @@ class DateTestCase extends DrupalWebTestCase {
     variable_set('date_popup_timepicker', 'none');
   }
 
-  function testDate() {  
+  function testDate() {
     // Creates select list date field stored as a date with default settings.
     $this->createDateField($type = 'date', $widget = 'date_select');
     $edit = array();
@@ -42,7 +47,9 @@ class DateTestCase extends DrupalWebTestCase {
     $this->deleteDateField();
     // Creates popup date field stored as a date with default settings.
     $this->createDateField($type = 'date', $widget = 'date_popup');
-    $edit = array();
+    $edit = array(
+      'input_format' => 'm/d/Y - H:i',
+    );
     $this->drupalPost(NULL, $edit, t('Save field settings'));
     $this->dateForm($options = 'popup');
     $this->assertText('Thu, 10/07/2010 - 10:30', 'Found the correct date for a date field using the date_popup widget.');
@@ -63,7 +70,9 @@ class DateTestCase extends DrupalWebTestCase {
     $this->deleteDateField();
     // Creates popup date field stored as a datestamp with default settings.
     $this->createDateField($type = 'datestamp', $widget = 'date_popup');
-    $edit = array();
+    $edit = array(
+      'input_format' => 'm/d/Y - H:i',
+    );
     $this->drupalPost(NULL, $edit, t('Save field settings'));
     $this->dateForm($options = 'popup');
     $this->assertText('Thu, 10/07/2010 - 10:30', 'Found the correct date for a datestamp field using the date_popup widget.');
@@ -84,7 +93,9 @@ class DateTestCase extends DrupalWebTestCase {
     $this->deleteDateField();
     // Creates popup date field stored as a datetime with default settings.
     $this->createDateField($type = 'datetime', $widget = 'date_popup');
-    $edit = array();
+    $edit = array(
+      'input_format' => 'm/d/Y - H:i',
+    );
     $this->drupalPost(NULL, $edit, t('Save field settings'));
     $this->dateForm($options = 'popup');
     $this->assertText('Thu, 10/07/2010 - 10:30', 'Found the correct date for a datetime field using the date_popup widget.');
@@ -132,4 +143,4 @@ class DateTestCase extends DrupalWebTestCase {
     $this->drupalPost(NULL, NULL, t('Remove'));
     $this->assertText('Removed field Test from Story.', 'Removed date field.');
   }
-}
\ No newline at end of file
+}
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/tests/date_api.test b/kolab.org/www/drupal-6.26/sites/all/modules/date/tests/date_api.test
index 421317a..d415f41 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/tests/date_api.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/tests/date_api.test
@@ -16,7 +16,7 @@ class DateAPITestCase extends DrupalWebTestCase {
    */
   public function setUp() {
     // Load the date_api module.
-    parent::setUp('date_api');
+    parent::setUp('date_api', 'date_timezone');
     variable_set('date_api_use_iso8601', FALSE);
     variable_set('date_first_day', 1);
   }
@@ -47,7 +47,7 @@ class DateAPITestCase extends DrupalWebTestCase {
     foreach ($dates as $date) {
       $unix = date_convert($date, DATE_DATETIME, DATE_UNIX);
       $datetime = date_convert($unix, DATE_UNIX, DATE_DATETIME);
-      $this->assertEqual($date, $datetime, 'Test roundtrip using date_convert() from DATE_DATETIME to DATE_UNIX back to DATE_DATETIME, results '.$date.' >> '.$unix.' >> '.$datetime);
+      $this->assertEqual($date, $datetime, 'Test roundtrip using date_convert() from DATE_DATETIME to DATE_UNIX back to DATE_DATETIME, results '. $date .' >> '. $unix .' >> '. $datetime);
     }
 
     // Test date_format_date().
@@ -99,11 +99,11 @@ class DateAPITestCase extends DrupalWebTestCase {
 
     // Test the order of the weeks days for a calendar that starts on Monday and one that starts on Sunday.
     variable_set('date_first_day', 1);
-    $expected = array ( 0 => t('Mon'), 1 => t('Tue'), 2 => t('Wed'), 3 => t('Thu'), 4 => t('Fri'), 5 => t('Sat'), 6 => t('Sun'), );
+    $expected = array( 0 => t('Mon'), 1 => t('Tue'), 2 => t('Wed'), 3 => t('Thu'), 4 => t('Fri'), 5 => t('Sat'), 6 => t('Sun'), );
     $days = date_week_days_ordered(date_week_days_abbr(1));
     $this->assertEqual($expected, $days, 'Test that date_week_days_ordered() array starts on Monday when the site first day is on Monday.');
     variable_set('date_first_day', 0);
-    $expected = array ( 0 => t('Sun'), 1 => t('Mon'), 2 => t('Tue'), 3 => t('Wed'), 4 => t('Thu'), 5 => t('Fri'), 6 => t('Sat'), );
+    $expected = array( 0 => t('Sun'), 1 => t('Mon'), 2 => t('Tue'), 3 => t('Wed'), 4 => t('Thu'), 5 => t('Fri'), 6 => t('Sat'), );
     $days = date_week_days_ordered(date_week_days_abbr(1));
     $this->assertEqual($expected, $days, 'Test that date_week_days_ordered() array starts on Sunday when the site first day is on Sunday.');
 
@@ -118,7 +118,7 @@ class DateAPITestCase extends DrupalWebTestCase {
     // Test days in year for a leap year and a non-leap year.
     $expected = 365;
     $value = date_days_in_year('2005-06-01 00:00:00', DATE_DATETIME);
-    $this->assertEqual($expected, $value, "Test date_days_in_year(2005-06-01, DATE_DATETIME): should be $expected, found $value.");    
+    $this->assertEqual($expected, $value, "Test date_days_in_year(2005-06-01, DATE_DATETIME): should be $expected, found $value.");
     $expected = 366;
     $value = date_days_in_year('2004-06-01 00:00:00', DATE_DATETIME);
     $this->assertEqual($expected, $value, "Test date_days_in_year(2004-06-01, DATE_DATETIME): should be $expected, found $value.");
@@ -126,7 +126,7 @@ class DateAPITestCase extends DrupalWebTestCase {
     // Test ISO weeks for a leap year and a non-leap year.
     $expected = 52;
     $value = date_iso_weeks_in_year('2008-06-01 00:00:00', DATE_DATETIME);
-    $this->assertEqual($expected, $value, "Test date_iso_weeks_in_year(2008-06-01, DATE_DATETIME): should be $expected, found $value.");    
+    $this->assertEqual($expected, $value, "Test date_iso_weeks_in_year(2008-06-01, DATE_DATETIME): should be $expected, found $value.");
     $expected = 53;
     $value = date_iso_weeks_in_year('2009-06-01 00:00:00', DATE_DATETIME);
     $this->assertEqual($expected, $value, "Test date_iso_weeks_in_year(2009-06-01, DATE_DATETIME): should be $expected, found $value.");
@@ -134,7 +134,7 @@ class DateAPITestCase extends DrupalWebTestCase {
     // Test day of week for March 1, the day after leap day.
     $expected = 6;
     $value = date_day_of_week('2008-03-01 00:00:00', DATE_DATETIME);
-    $this->assertEqual($expected, $value, "Test date_day_of_week(2008-03-01, DATE_DATETIME): should be $expected, found $value.");    
+    $this->assertEqual($expected, $value, "Test date_day_of_week(2008-03-01, DATE_DATETIME): should be $expected, found $value.");
     $expected = 0;
     $value = date_day_of_week('2009-03-01 00:00:00', DATE_DATETIME);
     $this->assertEqual($expected, $value, "Test date_day_of_week(2009-03-01, DATE_DATETIME): should be $expected, found $value.");
@@ -142,7 +142,7 @@ class DateAPITestCase extends DrupalWebTestCase {
     // Test day of week name for March 1, the day after leap day.
     $expected = 'Sat';
     $value = date_day_of_week_name('2008-03-01 00:00:00', DATE_DATETIME);
-    $this->assertEqual($expected, $value, "Test date_day_of_week_name(2008-03-01, DATE_DATETIME): should be $expected, found $value.");    
+    $this->assertEqual($expected, $value, "Test date_day_of_week_name(2008-03-01, DATE_DATETIME): should be $expected, found $value.");
     $expected = 'Sun';
     $value = date_day_of_week_name('2009-03-01 00:00:00', DATE_DATETIME);
     $this->assertEqual($expected, $value, "Test date_day_of_week_name(2009-03-01, DATE_DATETIME): should be $expected, found $value.");
@@ -153,7 +153,7 @@ class DateAPITestCase extends DrupalWebTestCase {
     $expected = '2008-01-27 to 2008-02-03';
     $result = date_week_range(5, 2008);
     $value = $result[0]->format(DATE_FORMAT_DATE) .' to '. $result[1]->format(DATE_FORMAT_DATE);
-    $this->assertEqual($expected, $value, "Test calendar date_week_range(5, 2008): should be $expected, found $value.");    
+    $this->assertEqual($expected, $value, "Test calendar date_week_range(5, 2008): should be $expected, found $value.");
     $expected = '2009-01-25 to 2009-02-01';
     $result = date_week_range(5, 2009);
     $value = $result[0]->format(DATE_FORMAT_DATE) .' to '. $result[1]->format(DATE_FORMAT_DATE);
@@ -165,7 +165,7 @@ class DateAPITestCase extends DrupalWebTestCase {
     $expected = '2008-01-28 to 2008-02-04';
     $result = date_week_range(5, 2008);
     $value = $result[0]->format(DATE_FORMAT_DATE) .' to '. $result[1]->format(DATE_FORMAT_DATE);
-    $this->assertEqual($expected, $value, "Test ISO date_week_range(5, 2008): should be $expected, found $value.");    
+    $this->assertEqual($expected, $value, "Test ISO date_week_range(5, 2008): should be $expected, found $value.");
     $expected = '2009-01-26 to 2009-02-02';
     $result = date_week_range(5, 2009);
     $value = $result[0]->format(DATE_FORMAT_DATE) .' to '. $result[1]->format(DATE_FORMAT_DATE);
@@ -176,7 +176,7 @@ class DateAPITestCase extends DrupalWebTestCase {
     variable_set('date_first_day', 0);
     $expected = '09';
     $value = date_week('2008-03-01');
-    $this->assertEqual($expected, $value, "Test date_week(2008-03-01): should be $expected, found $value.");    
+    $this->assertEqual($expected, $value, "Test date_week(2008-03-01): should be $expected, found $value.");
     $expected = '10';
     $value = date_week('2009-03-01');
     $this->assertEqual($expected, $value, "Test date_week(2009-03-01): should be $expected, found $value.");
@@ -244,10 +244,10 @@ class DateAPITestCase extends DrupalWebTestCase {
 
     $expected = 'UTC';
     $value = timezone_name_get(date_timezone_get($date));
-    $this->assertEqual($expected, $value, "The current timezone is $value: should be $expected.");    
+    $this->assertEqual($expected, $value, "The current timezone is $value: should be $expected.");
     $expected = 0;
     $value = date_offset_get($date);
-    $this->assertEqual($expected, $value, "The current offset is $value: should be $expected.");    
+    $this->assertEqual($expected, $value, "The current offset is $value: should be $expected.");
 
     $timezone = 'America/Los_Angeles';
     date_timezone_set($date, timezone_open($timezone));
@@ -260,7 +260,7 @@ class DateAPITestCase extends DrupalWebTestCase {
     $this->assertEqual($expected, $value, "The current timezone should be $expected, found $value.");
     $expected = '-28800';
     $value = date_offset_get($date);
-    $this->assertEqual($expected, $value, "The current offset should be $expected, found $value.");    
+    $this->assertEqual($expected, $value, "The current offset should be $expected, found $value.");
 
     // Convert the local version of a timestamp to UTC.
     $input = 0;
@@ -276,7 +276,7 @@ class DateAPITestCase extends DrupalWebTestCase {
     $this->assertEqual($expected, $value, "The current timezone should be $expected, found $value.");
     $expected = '-28800';
     $value = date_offset_get($date);
-    $this->assertEqual($expected, $value, "The current offset should be $expected, found $value.");    
+    $this->assertEqual($expected, $value, "The current offset should be $expected, found $value.");
 
     $timezone = 'UTC';
     date_timezone_set($date, timezone_open($timezone));
@@ -289,7 +289,7 @@ class DateAPITestCase extends DrupalWebTestCase {
     $this->assertEqual($expected, $value, "The current timezone should be $expected, found $value.");
     $expected = '0';
     $value = date_offset_get($date);
-    $this->assertEqual($expected, $value, "The current offset should be $expected, found $value.");  
+    $this->assertEqual($expected, $value, "The current offset should be $expected, found $value.");
 
      // Create date object from datetime string and convert it to a local date.
     $input = '1970-01-01 00:00:00';
@@ -301,10 +301,10 @@ class DateAPITestCase extends DrupalWebTestCase {
 
     $expected = 'UTC';
     $value = timezone_name_get(date_timezone_get($date));
-    $this->assertEqual($expected, $value, "The current timezone is $value: should be $expected.");    
+    $this->assertEqual($expected, $value, "The current timezone is $value: should be $expected.");
     $expected = 0;
     $value = date_offset_get($date);
-    $this->assertEqual($expected, $value, "The current offset is $value: should be $expected.");    
+    $this->assertEqual($expected, $value, "The current offset is $value: should be $expected.");
 
     $timezone = 'America/Los_Angeles';
     date_timezone_set($date, timezone_open($timezone));
@@ -317,7 +317,7 @@ class DateAPITestCase extends DrupalWebTestCase {
     $this->assertEqual($expected, $value, "The current timezone should be $expected, found $value.");
     $expected = '-28800';
     $value = date_offset_get($date);
-    $this->assertEqual($expected, $value, "The current offset should be $expected, found $value.");    
+    $this->assertEqual($expected, $value, "The current offset should be $expected, found $value.");
 
     // Convert the local version of a datetime string to UTC.
     $input = '1969-12-31 16:00:00';
@@ -333,7 +333,7 @@ class DateAPITestCase extends DrupalWebTestCase {
     $this->assertEqual($expected, $value, "The current timezone should be $expected, found $value.");
     $expected = '-28800';
     $value = date_offset_get($date);
-    $this->assertEqual($expected, $value, "The current offset should be $expected, found $value.");    
+    $this->assertEqual($expected, $value, "The current offset should be $expected, found $value.");
 
     $timezone = 'UTC';
     date_timezone_set($date, timezone_open($timezone));
@@ -346,7 +346,7 @@ class DateAPITestCase extends DrupalWebTestCase {
     $this->assertEqual($expected, $value, "The current timezone should be $expected, found $value.");
     $expected = '0';
     $value = date_offset_get($date);
-    $this->assertEqual($expected, $value, "The current offset should be $expected, found $value.");       
+    $this->assertEqual($expected, $value, "The current offset should be $expected, found $value.");
 
      // Create year-only date.
     $input = '2009-00-00T00:00:00';
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/tests/date_repeat.test b/kolab.org/www/drupal-6.26/sites/all/modules/date/tests/date_repeat.test
index e02eed6..9a93530 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/tests/date_repeat.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/tests/date_repeat.test
@@ -1,5 +1,10 @@
 <?php
 /**
+ * @file
+ * Test for Date Repeat.
+ */
+
+/**
  * Test PHP 4 Timezone Conversion
  */
 class DateRepeatTestCase extends DrupalWebTestCase {
@@ -16,7 +21,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
    */
   function setUp() {
     // Load the date_repeat module.
-    parent::setUp('date_repeat');
+    parent::setUp('date_api', 'date_timezone', 'date_repeat', 'jquery_ui');
   }
 
   public function testDateRepeat() {
@@ -33,7 +38,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     //  should be (1997 9:00 AM EDT)September 2-11
     $shouldbe = '1997-09-02 09:00:00, 1997-09-03 09:00:00, 1997-09-04 09:00:00, 1997-09-05 09:00:00, 1997-09-06 09:00:00, 1997-09-07 09:00:00, 1997-09-08 09:00:00, 1997-09-09 09:00:00, 1997-09-10 09:00:00, 1997-09-11 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Daily until September 24, 1997:
     $start = "1997-09-02 09:00:00";
@@ -43,7 +48,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     //  should be (1997 9:00 AM EDT)September 2-23
     $shouldbe = '1997-09-02 09:00:00, 1997-09-03 09:00:00, 1997-09-04 09:00:00, 1997-09-05 09:00:00, 1997-09-06 09:00:00, 1997-09-07 09:00:00, 1997-09-08 09:00:00, 1997-09-09 09:00:00, 1997-09-10 09:00:00, 1997-09-11 09:00:00, 1997-09-12 09:00:00, 1997-09-13 09:00:00, 1997-09-14 09:00:00, 1997-09-15 09:00:00, 1997-09-16 09:00:00, 1997-09-17 09:00:00, 1997-09-18 09:00:00, 1997-09-19 09:00:00, 1997-09-20 09:00:00, 1997-09-21 09:00:00, 1997-09-22 09:00:00, 1997-09-23 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Every other day - until September 30:
     $start = "1997-09-02 09:00:00";
@@ -53,7 +58,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     // should be (1997 9:00 AM EDT)September2,4,6,8...24,26,28,30;
     $shouldbe = '1997-09-02 09:00:00, 1997-09-04 09:00:00, 1997-09-06 09:00:00, 1997-09-08 09:00:00, 1997-09-10 09:00:00, 1997-09-12 09:00:00, 1997-09-14 09:00:00, 1997-09-16 09:00:00, 1997-09-18 09:00:00, 1997-09-20 09:00:00, 1997-09-22 09:00:00, 1997-09-24 09:00:00, 1997-09-26 09:00:00, 1997-09-28 09:00:00, 1997-09-30 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Every 10 days, 2 occurrences:
     $start = "1997-09-02 09:00:00";
@@ -63,7 +68,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     //  should be (1997 9:00 AM EDT)September 2,12
     $shouldbe = '1997-09-02 09:00:00, 1997-09-12 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Weekly for 3 occurrences
     $start = "1997-09-02 09:00:00";
@@ -73,7 +78,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     //  should be (1997 9:00 AM EDT)September 2,9,16
     $shouldbe = '1997-09-02 09:00:00, 1997-09-09 09:00:00, 1997-09-16 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Weekly until September 24, 1997
     $start = "1997-09-02 09:00:00";
@@ -83,7 +88,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '1997-09-02 09:00:00, 1997-09-09 09:00:00, 1997-09-16 09:00:00, 1997-09-23 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Every other week - forever:
     $start = "1997-09-02 09:00:00";
@@ -93,7 +98,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '1997-09-02 09:00:00, 1997-09-16 09:00:00, 1997-09-30 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Weekly on Tuesday and Thursday for 4 weeks:
     $start = "1997-09-02 09:00:00";
@@ -103,7 +108,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '1997-09-02 09:00:00, 1997-09-04 09:00:00, 1997-09-09 09:00:00, 1997-09-11 09:00:00, 1997-09-16 09:00:00, 1997-09-18 09:00:00, 1997-09-23 09:00:00, 1997-09-25 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Every other week on Tuesday and Thursday, for 5 occurrences:
     $start = "1997-09-02 09:00:00";
@@ -113,7 +118,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '1997-09-02 09:00:00, 1997-09-04 09:00:00, 1997-09-16 09:00:00, 1997-09-18 09:00:00, 1997-09-30 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Every other week on Monday, Wednesday and Friday until September 24, 1997,
     $start = "1997-09-02 09:00:00";
@@ -123,7 +128,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '1997-09-02 09:00:00, 1997-09-03 09:00:00, 1997-09-05 09:00:00, 1997-09-15 09:00:00, 1997-09-17 09:00:00, 1997-09-19 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Monthly on the 1st Friday for 2 occurrences:
     $start = "1997-09-05 09:00:00";
@@ -133,7 +138,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '1997-09-05 09:00:00, 1997-10-03 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Monthly on the 1st Friday until December 24, 1997:
     $start = "1997-09-05 09:00:00";
@@ -142,7 +147,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '1997-09-05 09:00:00, 1997-10-03 09:00:00, 1997-11-07 09:00:00, 1997-12-05 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Every other month on the 1st and last Sunday of the month for 10 occurrences:
     $start = "1997-09-07 09:00:00";
@@ -155,7 +160,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '1997-09-07 09:00:00, 1997-09-28 09:00:00, 1997-11-02 09:00:00, 1997-11-30 09:00:00, 1998-01-04 09:00:00, 1998-01-25 09:00:00, 1998-03-01 09:00:00, 1998-03-29 09:00:00, 1998-05-03 09:00:00, 1998-05-31 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Monthly on the second to last Monday of the month for 6 months:
     $start = "1997-09-22 09:00:00";
@@ -167,7 +172,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '1997-09-22 09:00:00, 1997-10-20 09:00:00, 1997-11-17 09:00:00, 1997-12-22 09:00:00, 1998-01-19 09:00:00, 1998-02-16 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Every Tuesday, every other month:
     $start = "1997-09-02 09:00:00";
@@ -179,7 +184,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '1997-09-02 09:00:00, 1997-09-09 09:00:00, 1997-09-16 09:00:00, 1997-09-23 09:00:00, 1997-09-30 09:00:00, 1997-11-04 09:00:00, 1997-11-11 09:00:00, 1997-11-18 09:00:00, 1997-11-25 09:00:00, 1998-01-06 09:00:00, 1998-01-13 09:00:00, 1998-01-20 09:00:00, 1998-01-27 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Yearly in June and July for 10 occurrences:
     $start = "1997-06-10 09:00:00";
@@ -195,7 +200,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '1997-06-10 09:00:00, 1997-07-10 09:00:00, 1998-06-10 09:00:00, 1998-07-10 09:00:00, 1999-06-10 09:00:00, 1999-07-10 09:00:00, 2000-06-10 09:00:00, 2000-07-10 09:00:00, 2001-06-10 09:00:00, 2001-07-10 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Every other year on January, February, and March for 10 occurrences:
     $start = "1997-03-10 09:00:00";
@@ -208,7 +213,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '1997-03-10 09:00:00, 1999-01-10 09:00:00, 1999-02-10 09:00:00, 1999-03-10 09:00:00, 2001-01-10 09:00:00, 2001-02-10 09:00:00, 2001-03-10 09:00:00, 2003-01-10 09:00:00, 2003-02-10 09:00:00, 2003-03-10 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //An example where the days generated makes a difference because of WKST:
     $start = "1997-08-05 09:00:00";
@@ -218,7 +223,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '1997-08-05 09:00:00, 1997-08-10 09:00:00, 1997-08-19 09:00:00, 1997-08-24 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //changing only WKST from MO to SU, yields different results...
     $start = "1997-08-05 09:00:00";
@@ -228,7 +233,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '1997-08-05 09:00:00, 1997-08-17 09:00:00, 1997-08-19 09:00:00, 1997-08-31 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Every 18 months on the 10th thru 15th of the month for 10 occurrences:
     $start = "1997-09-10 09:00:00";
@@ -239,7 +244,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '1997-09-10 09:00:00, 1997-09-11 09:00:00, 1997-09-12 09:00:00, 1997-09-13 09:00:00, 1997-09-14 09:00:00, 1997-09-15 09:00:00, 1999-03-10 09:00:00, 1999-03-11 09:00:00, 1999-03-12 09:00:00, 1999-03-13 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Monthly on the third to the last day of the month, forever:
     $start = "1997-09-28 09:00:00";
@@ -251,7 +256,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '1997-09-28 09:00:00, 1997-10-29 09:00:00, 1997-11-28 09:00:00, 1997-12-29 09:00:00, 1998-01-29 09:00:00, 1998-02-26 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Every Thursday in March, forever:
     //  ==> (1997 9:00 AM EST)March 13,20,27
@@ -263,7 +268,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '1997-03-13 09:00:00, 1997-03-20 09:00:00, 1997-03-27 09:00:00, 1998-03-05 09:00:00, 1998-03-12 09:00:00, 1998-03-19 09:00:00, 1998-03-26 09:00:00, 1999-03-04 09:00:00, 1999-03-11 09:00:00, 1999-03-18 09:00:00, 1999-03-25 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Every Thursday, but only during June, July, and August, forever:
     //  ==> (1997 9:00 AM EDT)June 5,12,19,26;July 3,10,17,24,31;August 7,14,21,28
@@ -275,7 +280,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '1997-06-05 09:00:00, 1997-06-12 09:00:00, 1997-06-19 09:00:00, 1997-06-26 09:00:00, 1997-07-03 09:00:00, 1997-07-10 09:00:00, 1997-07-17 09:00:00, 1997-07-24 09:00:00, 1997-07-31 09:00:00, 1997-08-07 09:00:00, 1997-08-14 09:00:00, 1997-08-21 09:00:00, 1997-08-28 09:00:00, 1998-06-04 09:00:00, 1998-06-11 09:00:00, 1998-06-18 09:00:00, 1998-06-25 09:00:00, 1998-07-02 09:00:00, 1998-07-09 09:00:00, 1998-07-16 09:00:00, 1998-07-23 09:00:00, 1998-07-30 09:00:00, 1998-08-06 09:00:00, 1998-08-13 09:00:00, 1998-08-20 09:00:00, 1998-08-27 09:00:00, 1999-06-03 09:00:00, 1999-06-10 09:00:00, 1999-06-17 09:00:00, 1999-06-24 09:00:00, 1999-07-01 09:00:00, 1999-07-08 09:00:00, 1999-07-15 09:00:00, 1999-07-22 09:00:00, 1999-07-29 09:00:00, 1999-08-05 09:00:00, 1999-08-12 09:00:00, 1999-08-19 09:00:00, 1999-08-26 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Monthly on the 2nd and 15th of the month for 10 occurrences:
     //  ==> (1997 9:00 AM EDT)September 2,15;October 2,15
@@ -287,7 +292,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '1997-09-02 09:00:00, 1997-09-15 09:00:00, 1997-10-02 09:00:00, 1997-10-15 09:00:00, 1997-11-02 09:00:00, 1997-11-15 09:00:00, 1997-12-02 09:00:00, 1997-12-15 09:00:00, 1998-01-02 09:00:00, 1998-01-15 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Monthly on the first and last day of the month for 10 occurrences:
     //  ==> (1997 9:00 AM EDT)September 30;October 1
@@ -299,7 +304,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '1997-09-30 09:00:00, 1997-10-01 09:00:00, 1997-10-31 09:00:00, 1997-11-01 09:00:00, 1997-11-30 09:00:00, 1997-12-01 09:00:00, 1997-12-31 09:00:00, 1998-01-01 09:00:00, 1998-01-31 09:00:00, 1998-02-01 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Every Friday the 13th, forever:
     $rule = "EXDATE;TZID=US-Eastern:19970902T090000";
@@ -312,7 +317,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '1997-09-02 09:00:00, 1998-02-13 09:00:00, 1998-03-13 09:00:00, 1998-11-13 09:00:00, 1999-08-13 09:00:00, 2000-10-13 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //The first Saturday that follows the first Sunday of the month, forever:
     //  ==> (1997 9:00 AM EDT)September 13;October 11
@@ -325,7 +330,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '1997-09-13 09:00:00, 1997-10-11 09:00:00, 1997-11-08 09:00:00, 1997-12-13 09:00:00, 1998-01-10 09:00:00, 1998-02-07 09:00:00, 1998-03-07 09:00:00, 1998-04-11 09:00:00, 1998-05-09 09:00:00, 1998-06-13 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Every four years, the first Tuesday after a Monday in November,
     //forever (U.S. Presidential Election day):
@@ -338,7 +343,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $shouldbe = '1996-11-05 09:00:00, 2000-11-07 09:00:00, 2004-11-02 09:00:00';
     $dates = date_repeat_calc($rule, $start, $end, array());
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Every 20th Monday of the year, forever:
     $start = "1997-05-19 09:00:00";
@@ -350,7 +355,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '1997-05-19 09:00:00, 1998-05-18 09:00:00, 1999-05-17 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
     //Every Sunday in January, every other year, forever:
     $start = "1997-01-05 09:00:00";
@@ -362,7 +367,7 @@ class DateRepeatTestCase extends DrupalWebTestCase {
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '1997-01-05 09:00:00, 1997-01-12 09:00:00, 1997-01-19 09:00:00, 1997-01-26 09:00:00, 1999-01-03 09:00:00, 1999-01-10 09:00:00, 1999-01-17 09:00:00, 1999-01-24 09:00:00, 1999-01-31 09:00:00, 2001-01-07 09:00:00, 2001-01-14 09:00:00, 2001-01-21 09:00:00, 2001-01-28 09:00:00';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
 return;
 
@@ -376,7 +381,7 @@ return;
     $dates = date_repeat_calc($rule, $start, $end, array());
     $shouldbe = '';
     $result = implode(', ', $dates);
-    $this->assertEqual($result, $shouldbe, $rule .'; Starting '.$start .';  results: '. $result);
+    $this->assertEqual($result, $shouldbe, $rule .'; Starting '. $start .';  results: '. $result);
 
 // TODO:
 // BYYEARDAY, BYSETPOS,
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-navigation.tpl.php b/kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-navigation.tpl.php
index 370e7df..e512413 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-navigation.tpl.php
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-navigation.tpl.php
@@ -5,36 +5,36 @@
  *
  * $nav_title
  *   The formatted title for this view. In the case of block
- *   views, it will be a link to the full view, otherwise it will 
+ *   views, it will be a link to the full view, otherwise it will
  *   be the formatted name of the year, month, day, or week.
- * 
+ *
  * $prev_url
  * $next_url
- *   Urls for the previous and next calendar pages. The links are 
+ *   Urls for the previous and next calendar pages. The links are
  *   composed in the template to make it easier to change the text,
  *   add images, etc.
- * 
+ *
  * $prev_options
  * $next_options
  *   Query strings and other options for the links that need to
  *   be used in the l() function, including rel=nofollow.
- * 
- * $block: 
+ *
+ * $block:
  *   Whether or not this view is in a block.
- * 
+ *
  * $view
  *   The view object for this navigation.
- * 
+ *
  * The   in the prev and next divs is to be sure they are never
  * completely empty, needed in some browsers to prop the header open
  * so the title stays centered.
- * 
+ *
  */
 ?>
 <div class="date-nav clear-block">
   <div class="date-prev">
     <?php if (!empty($prev_url)) : ?>
-      <span class="next"> <?php print l('« ' . ($block ? '' : date_t('Prev', 'date_nav')), $prev_url, $prev_options); ?></span>
+      <span class="next views-summary"> <?php print l('« ' . ($block ? '' : date_t('Prev', 'date_nav')), $prev_url, $prev_options); ?></span>
     <?php endif; ?>
    </div>
   <div class="date-heading">
@@ -42,7 +42,7 @@
   </div>
   <div class="date-next"> 
     <?php if (!empty($next_url)) : ?>
-      <span class="next"> <?php print l(($block ? '' : date_t('Next', 'date_nav')) . ' »', $next_url, $next_options); ?></span>
-    <?php endif; ?>  
+      <span class="next views-summary"> <?php print l(($block ? '' : date_t('Next', 'date_nav')) . ' »', $next_url, $next_options); ?></span>
+    <?php endif; ?>
   </div>
 </div>
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-valarm.tpl.php b/kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-valarm.tpl.php
index 3438aa0..08f8adf 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-valarm.tpl.php
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-valarm.tpl.php
@@ -1,5 +1,9 @@
 <?php
 /**
+ * @file
+ * Template for a VALARM file.
+ */
+/**
  * $alarm
  *   An array with the following information about each alarm:
  *
@@ -16,8 +20,7 @@
  * If you are editing this file, remember that all output lines generated by it
  * must end with DOS-style \r\n line endings, and not Unix-style \n, in order to
  * comply with the iCal spec: http://tools.ietf.org/html/rfc5545#section-3.1.
- **/
-
+ */
 print "BEGIN:VALARM\r\n";
 print "ACTION:" . $alarm['action']  . "\r\n";
 if (!empty($alarm['trigger'])):
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-vcalendar.tpl.php b/kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-vcalendar.tpl.php
index baa6452..e023be3 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-vcalendar.tpl.php
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-vcalendar.tpl.php
@@ -1,5 +1,10 @@
 <?php
 /**
+ * @file
+ * Template for a VCALENDAR file.
+ */
+
+/**
  * $calname
  *   The name of the calendar.
  * $events
@@ -9,8 +14,7 @@
  * If you are editing this file, remember that all output lines generated by it
  * must end with DOS-style \r\n line endings, and not Unix-style \n, in order to
  * comply with the iCal spec: http://tools.ietf.org/html/rfc5545#section-3.1.
- **/
-
+ */
 if (empty($method)):
   $method = 'PUBLISH';
 endif;
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-vevent.tpl.php b/kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-vevent.tpl.php
index 514ba6f..cdecddf 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-vevent.tpl.php
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-vevent.tpl.php
@@ -1,5 +1,10 @@
 <?php
 /**
+ * @file
+ * Template for a VEVENT file.
+ */
+
+/**
  * $event
  *   An array with the following information about each event:
  *
@@ -18,8 +23,7 @@
  * If you are editing this file, remember that all output lines generated by it
  * must end with DOS-style \r\n line endings, and not Unix-style \n, in order to
  * comply with the iCal spec: http://tools.ietf.org/html/rfc5545#section-3.1.
- **/
-
+ */
 print "BEGIN:VEVENT\r\n";
 print "UID:" . $event['uid'] . "\r\n";
 print "SUMMARY:" . $event['summary'] . "\r\n";
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-views-filter-form.tpl.php b/kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-views-filter-form.tpl.php
index 67c9c95..f70a1be 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-views-filter-form.tpl.php
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/theme/date-views-filter-form.tpl.php
@@ -6,41 +6,41 @@
  * Values available vary depending on the operator. The availability
  * of date vs adjustment depending on the filter settings. It can
  * be date-only, date and adjustment, or adjustment only.
- * 
+ *
  * If the operator is anything but 'Is between' or 'Is not between',
  * a single date and adjustment field is available.
- * 
+ *
  * $date
  * $adjustment
- * 
+ *
  * If the operator is 'Is between' or 'Is not between',
  * two date and adjustment fields are available.
- * 
+ *
  * $mindate
  * $minadjustment
  * $maxdate
  * $maxadjustment
- * 
+ *
  * A description field is also available.
- * 
+ *
  * $description
  */
 ?>
 <div class="date-views-filter-wrapper">
 <div class="container-inline-date date-clear">
-<?php if (!empty($date) || !empty($adjustment)) : ?> 
-  <div class="date-clear"> 
+<?php if (!empty($date) || !empty($adjustment)) : ?>
+  <div class="date-clear">
     <div class="date-views-filter"><?php print $date; ?></div>
     <div class="date-views-filter"><?php print $adjustment ?></div>
   </div>
 <?php endif; ?>
-<?php if (!empty($mindate) || !empty($minadjustment)) : ?>  
+<?php if (!empty($mindate) || !empty($minadjustment)) : ?>
   <div class="date-clear">
     <div class="date-views-filter"><?php print $mindate; ?></div>
     <div class="date-views-filter"><?php print $minadjustment; ?></div>
   </div>
 <?php endif; ?>
-<?php if (!empty($maxdate) || !empty($maxadjustment)) : ?>  
+<?php if (!empty($maxdate) || !empty($maxadjustment)) : ?>
   <div class="date-clear">
     <div class="date-views-filter"><?php print $maxdate; ?></div>
     <div class="date-views-filter"><?php print $maxadjustment; ?></div>
@@ -51,4 +51,4 @@
   <?php print $description; ?>
 </div>
 </div>
-</div>  
\ No newline at end of file
+</div>
\ No newline at end of file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/date/theme/theme.inc b/kolab.org/www/drupal-6.26/sites/all/modules/date/theme/theme.inc
index eeab101..14abfa1 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/date/theme/theme.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/date/theme/theme.inc
@@ -1,5 +1,10 @@
 <?php
 /**
+ * @file
+ * Theme functions for Date.
+ */
+
+/**
  *  Preprocessor to construct back and next navigation from the date argument.
  */
 function template_preprocess_date_navigation(&$vars) {
@@ -43,13 +48,13 @@ function template_preprocess_date_navigation(&$vars) {
     $vars['next_options'] = $vars['prev_options'] = array();
   }
 
-  // Check whether navigation links would point to 
+  // Check whether navigation links would point to
   // a date outside the allowed range.
   if (!empty($next_date) && !empty($vars['next_url']) && date_format($next_date, 'Y') > $view->date_info->max_allowed_year) {
-    $vars['next_url'] = '';    
+    $vars['next_url'] = '';
   }
   if (!empty($prev_date) && !empty($vars['prev_url']) && date_format($prev_date, 'Y') < $view->date_info->min_allowed_year) {
-    $vars['prev_url'] = '';    
+    $vars['prev_url'] = '';
   }
 
   $vars['prev_options'] += array('attributes' => array());
@@ -58,7 +63,7 @@ function template_preprocess_date_navigation(&$vars) {
   $next_title = '';
 
   // Build next/prev link titles.
-  switch($view->date_info->granularity) {
+  switch ($view->date_info->granularity) {
     case 'year':
       $prev_title = t('Navigate to previous year');
       $next_title = t('Navigate to next year');
@@ -70,7 +75,7 @@ function template_preprocess_date_navigation(&$vars) {
     case 'week':
       $prev_title = t('Navigate to previous week');
       $next_title = t('Navigate to next week');
-      break;      
+      break;
     case 'day':
       $prev_title = t('Navigate to previous day');
       $next_title = t('Navigate to next day');
@@ -85,8 +90,8 @@ function template_preprocess_date_navigation(&$vars) {
 
   $link = FALSE;
   // Month navigation titles are used as links in the block view.
-	if (!empty($view->date_info->block) && $view->date_info->granularity == 'month') {
-	  $link = TRUE;
+  if (!empty($view->date_info->block) && $view->date_info->granularity == 'month') {
+    $link = TRUE;
   }
 
   $nav_title = theme('date_nav_title', $view->date_info->granularity, $view, $link);
@@ -114,25 +119,25 @@ function theme_date_nav_title($granularity, $view, $link = FALSE, $format = NULL
       $date_arg = $view->date_info->year .'-'. date_pad($view->date_info->month) .'-'. date_pad($view->date_info->day);
       break;
     case 'week':
-    	$format = !empty($format) ? $format : (empty($view->date_info->mini) ? 'F j Y' : 'F j');
+      $format = !empty($format) ? $format : (empty($view->date_info->mini) ? 'F j Y' : 'F j');
       $title = t('Week of @date', array('@date' => date_format_date($view->date_info->min_date, 'custom', $format)));
-    	$date_arg = $view->date_info->year .'-W'. date_pad($view->date_info->week);
-    	break;
+      $date_arg = $view->date_info->year .'-W'. date_pad($view->date_info->week);
+      break;
   }
   if (!empty($view->date_info->mini) || $link) {
-  	// Month navigation titles are used as links in the mini view.
+    // Month navigation titles are used as links in the mini view.
     $attributes = array('title' => t('View full page month'));
-  	$url = date_real_url($view, $granularity, $date_arg, TRUE);
+    $url = date_real_url($view, $granularity, $date_arg, TRUE);
     return l($title, $url, array('attributes' => $attributes));
   }
   else {
     return $title;
-  }  
+  }
 }
 
 /**
  *  Preprocessor to construct an ical vcalendar
- * 
+ *
  * @param $events
  *   An array of events where each event is an array keyed on the uid:
  *    'start'
@@ -149,7 +154,7 @@ function theme_date_nav_title($granularity, $view, $link = FALSE, $format = NULL
  *      ID of the event for use by calendaring program, usually the url of the node
  *    'url'
  *      URL of event information
- * 
+ *
  *    'alarm'
  *      sub-array of alarm information for the event, including:
  *      - 'action' - the action to take, either 'DISPLAY' or 'EMAIL'
@@ -163,7 +168,7 @@ function theme_date_nav_title($granularity, $view, $link = FALSE, $format = NULL
  *
  * @param $calname
  *   Name of the calendar.  Use site name if none is specified.
- * 
+ *
  */
 function template_preprocess_date_vcalendar(&$vars) {
 
@@ -190,12 +195,24 @@ function template_preprocess_date_vcalendar(&$vars) {
       }
       $date_format = ($row->calendar_all_day == TRUE) ? DATE_FORMAT_ICAL_DATE : DATE_FORMAT_ICAL;
       $events[$uid]['start'] = date_format($event['start'], $date_format);
+
+      // According to RFC 2445 (clarified in RFC 5545) the DTEND value is
+      // non-inclusive.  When it is a DATE rather than a DATETIME, this means
+      // that we should add one day to its value.
+      if ($row->calendar_all_day) {
+        if (empty($event['end'])) {
+          $event['end'] = $event['start'];
+        }
+        date_modify($event['end'], "+1 day");
+      }
+
       if ($event['start'] && $event['end']) {
         $events[$uid]['end'] = date_format($event['end'], $date_format);
       }
       else {
         $events[$uid]['end'] = $events[$uid]['start'];
       }
+
       foreach ($event as $key => $value) {
         if (is_string($value)) {
           $event[trim($key)] = trim($value);
@@ -218,7 +235,7 @@ function template_preprocess_date_vcalendar(&$vars) {
     }
   }
 
-  $vars['events'] = $events;  
+  $vars['events'] = $events;
 }
 
 /**
@@ -260,7 +277,7 @@ function theme_date_timezone($element) {
 function theme_date_select($element) {
   $output = '';
   $class = 'container-inline-date';
-  // Add #date_float to allow date parts to float together on the same line. 
+  // Add #date_float to allow date parts to float together on the same line.
   if (empty($element['#date_float'])) {
     $class .= ' date-clear-block';
   }
@@ -282,7 +299,7 @@ function theme_date_select($element) {
 function theme_date_text($element) {
   $output = '';
   $class = 'container-inline-date';
-  // Add #date_float to allow date parts to float together on the same line. 
+  // Add #date_float to allow date parts to float together on the same line.
   if (empty($element['#date_float'])) {
     $class .= ' date-clear-block';
   }
@@ -359,7 +376,7 @@ function theme_date_part_label_timezone($part_type, $element) {
 
 /**
  * Theme for a date block that looks like a mini calendar day.
- * Pass in a date object already set to the right timezone, 
+ * Pass in a date object already set to the right timezone,
  * format as a calendar page date. The calendar styling is created in css.
  */
 function theme_date_calendar_day($date) {
@@ -375,7 +392,7 @@ function theme_date_calendar_day($date) {
 
 function theme_date_time_ago($start_date, $end_date, $interval = 2) {
   // If no date is sent, then return nothing
-  if (empty($start_date) || empty($end_date)){
+  if (empty($start_date) || empty($end_date)) {
     return NULL;
   }
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/CHANGELOG.txt b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/CHANGELOG.txt
index 01d432e..54abfd1 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/CHANGELOG.txt
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/CHANGELOG.txt
@@ -1,3 +1,81 @@
+Feeds 6.x 1.0 Beta 12, 2012-05-08
+---------------------------------
+
+- Issue #1213472 by paulgemini, Nigel_S, emarchak, Jorenm: Fixed ' Fatal error:
+  Unsupported operand types in /FeedsConfigurable.inc' when importing.
+- Issue #996808 by twistor, marcvangend, joshuajabbour: Fixed Update existing
+  doesn't reset targets that have real_target set.
+- Issue #712304 by derhasi, twistor, jerdavis, alex_b, rjbrown99, rbayliss |
+  ManyNancy: Fixed Batch import does not continue where it left off, instead 
+  starts from the beginning.
+- Issue #1035684 by mikejoconnor: Source / Target sort order
+- Issue #1382208 by slcp: Fixed FeedsSource.inc sourceSave() and sourceDelete() 
+  function descriptions are the wrong way round.
+- Issue #1298326 by twistor, Dave Reid, emackn: Fixed Only execute 
+  rebuild_menu() when necessary.  Port for D6
+- Issue #1248712: Show an empty row result and hide the Save button if no 
+  importers are available.
+- Issue #1197646: Skip importer config form validation if a machine name was not 
+  provided.
+- Issue #1248682: Fixed failures in scheduler tests.
+- Issue #1248648 by twistor, Dave Reid: Fixed bugs and inconsistencies in 
+  FeedsRSStoNodesTest.
+- Issue #1203578: Fixed wrong path to test files after test directory rename.
+- Issue #1230538: Removed unnecessary filter_xss() from 
+  theme_feeds_ui_mapping_form().
+- Issue #1161810: Fixed declaration of FeedsSource::instance() should be 
+  compatible with that of FeedsConfigurable::instance().
+- Fixing PHP strict error in _parser_common_syndication_atom10_parse().
+- Issue #1191554: Fixed failures in FeedsUIUserInterfaceTestCase.
+- Issue #1191564: Use FeedsWebTestCase for FeedsDateTimeTest.
+- Issue #1191494 by twistor, Dave Reid: Fixed link to node type feed importer 
+  did not use node_access().
+- Fixed coder violations and standards. Fixed possible XSS with field labels in 
+  Feed importer mapping settings.
+- Fixed strict notice: definition of FeedsFeedNodeProcessor::map() did not match 
+  FeedsProcessor::map().
+- Issue #963842 by ceardach: Fixed feeds_update_6010() should not enable 
+  non-essential modules.
+- Issue #723548: Added support for feed URLs with feed:// and webcal://.
+- Re-exported features with latest code.
+- Fixed error when calling form_set_error() and title field on follow-up to fix 
+  feed node title fields not actually un-required.
+- Issue #1191210: Added feeds_content_extra_fields() so the 'Feed' fieldset can 
+  be re-ordered through the CCK field UI.
+- Issue #1191194: Fixed test failure in FeedsCSVtoUsersTest due to lack of 
+  'administer users' permission.
+- Use module_load_include() for test files and fix PHP notice in 
+  FeedsProcessor.inc.
+- Issue #1066286: Added test to ensure 'Feed items' doesn't display on non-feed 
+  nodes.
+- Cleanup feeds_form_alter().
+- Simplify FeedsMapperTestCase::createContentType() using 
+  DrupalWebTestCase::drupalCreateContentType().
+- Issue #743528 by Souvent22, Dave Reid: Fixed _feeds_node_delete() fails if the 
+  node does not load or exist.
+- Fixed _feeds_node_delete() wasn't exactly a copy of node_delete().
+- Fixes and cleanups to tests.
+- Issue #914210 by jyee, Dave Reid: Added mapper for user raw password.
+- Backports from Drupal 7: Removed t() from feeds_schema(). Cleanups for 
+  documentation and tests.
+- Issue #797228 by alex_b: Fixed records not removed from {feeds_node_item} when 
+  a feed node is deleted.
+- Issue #769084: Fixed use of isset() rather than !empty() causes import 
+  problems with _parser_common_syndication_RSS20_parse().
+- Fixed various PHP notices and strict errors.
+- Issue #974494: Fixed PHP notice 'Undefined property: stdClass::$openid in 
+  FeedsUserProcessor->entitySave()'.
+- Issue #1170714: Fixed debugging functions left in code.
+- Issue #1055582: Fixed strict notice that FeedsDateTime::setTimezone() is not 
+  compatible with DateTime::setTimezone().
+- Issue #1085194: Not all selected mappings are removed.
+- Issue #1152694: Fixed use of deprecated split() with explode().
+- Issue #1066822: Fixed bugs and inconsistencies with test files and getInfo() 
+  declarations.
+
+Feeds 6.x 1.0 Beta 11, 2011-06-28
+---------------------------------
+
 - Issue #980212 by joshuajabbour,David Goode: Added Support guid/url for
   taxonomy term importer.
 - Issue #992590 by Jan van Diepen: Fixed Description and weight on
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/LICENSE.txt b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/LICENSE.txt
index 2c095c8..d159169 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/LICENSE.txt
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/LICENSE.txt
@@ -1,274 +1,339 @@
-GNU GENERAL PUBLIC LICENSE
-
-              Version 2, June 1991
-
-Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave,
-Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute
-verbatim copies of this license document, but changing it is not allowed.
-
-                  Preamble
-
-The licenses for most software are designed to take away your freedom to
-share and change it. By contrast, the GNU General Public License is
-intended to guarantee your freedom to share and change free software--to
-make sure the software is free for all its users. This General Public License
-applies to most of the Free Software Foundation's software and to any other
-program whose authors commit to using it. (Some other Free Software
-Foundation software is covered by the GNU Library General Public License
-instead.) You can apply it to your programs, too.
-
-When we speak of free software, we are referring to freedom, not price. Our
-General Public Licenses are designed to make sure that you have the
-freedom to distribute copies of free software (and charge for this service if
-you wish), that you receive source code or can get it if you want it, that you
-can change the software or use pieces of it in new free programs; and that
-you know you can do these things.
-
-To protect your rights, we need to make restrictions that forbid anyone to
-deny you these rights or to ask you to surrender the rights. These restrictions
-translate to certain responsibilities for you if you distribute copies of the
-software, or if you modify it.
-
-For example, if you distribute copies of such a program, whether gratis or for
-a fee, you must give the recipients all the rights that you have. You must make
-sure that they, too, receive or can get the source code. And you must show
-them these terms so they know their rights.
-
-We protect your rights with two steps: (1) copyright the software, and (2)
-offer you this license which gives you legal permission to copy, distribute
-and/or modify the software.
-
-Also, for each author's protection and ours, we want to make certain that
-everyone understands that there is no warranty for this free software. If the
-software is modified by someone else and passed on, we want its recipients
-to know that what they have is not the original, so that any problems
-introduced by others will not reflect on the original authors' reputations.
-
-Finally, any free program is threatened constantly by software patents. We
-wish to avoid the danger that redistributors of a free program will individually
-obtain patent licenses, in effect making the program proprietary. To prevent
-this, we have made it clear that any patent must be licensed for everyone's
-free use or not licensed at all.
-
-The precise terms and conditions for copying, distribution and modification
-follow.
-
-           GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
-               MODIFICATION
-
-0. This License applies to any program or other work which contains a notice
-placed by the copyright holder saying it may be distributed under the terms
-of this General Public License. The "Program", below, refers to any such
-program or work, and a "work based on the Program" means either the
-Program or any derivative work under copyright law: that is to say, a work
-containing the Program or a portion of it, either verbatim or with
-modifications and/or translated into another language. (Hereinafter, translation
-is included without limitation in the term "modification".) Each licensee is
-addressed as "you".
-
-Activities other than copying, distribution and modification are not covered
-by this License; they are outside its scope. The act of running the Program is
-not restricted, and the output from the Program is covered only if its contents
-constitute a work based on the Program (independent of having been made
-by running the Program). Whether that is true depends on what the Program
-does.
-
-1. You may copy and distribute verbatim copies of the Program's source
-code as you receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice and
-disclaimer of warranty; keep intact all the notices that refer to this License
-and to the absence of any warranty; and give any other recipients of the
-Program a copy of this License along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and you
-may at your option offer warranty protection in exchange for a fee.
-
-2. You may modify your copy or copies of the Program or any portion of it,
-thus forming a work based on the Program, and copy and distribute such
-modifications or work under the terms of Section 1 above, provided that you
-also meet all of these conditions:
-
-a) You must cause the modified files to carry prominent notices stating that
-you changed the files and the date of any change.
-
-b) You must cause any work that you distribute or publish, that in whole or in
-part contains or is derived from the Program or any part thereof, to be
-licensed as a whole at no charge to all third parties under the terms of this
-License.
-
-c) If the modified program normally reads commands interactively when run,
-you must cause it, when started running for such interactive use in the most
-ordinary way, to print or display an announcement including an appropriate
-copyright notice and a notice that there is no warranty (or else, saying that
-you provide a warranty) and that users may redistribute the program under
-these conditions, and telling the user how to view a copy of this License.
-(Exception: if the Program itself is interactive but does not normally print such
-an announcement, your work based on the Program is not required to print
-an announcement.)
-
-These requirements apply to the modified work as a whole. If identifiable
-sections of that work are not derived from the Program, and can be
-reasonably considered independent and separate works in themselves, then
-this License, and its terms, do not apply to those sections when you distribute
-them as separate works. But when you distribute the same sections as part
-of a whole which is a work based on the Program, the distribution of the
-whole must be on the terms of this License, whose permissions for other
-licensees extend to the entire whole, and thus to each and every part
-regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest your rights to
-work written entirely by you; rather, the intent is to exercise the right to
-control the distribution of derivative or collective works based on the
-Program.
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
 
 In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of a
-storage or distribution medium does not bring the other work under the scope
-of this License.
-
-3. You may copy and distribute the Program (or a work based on it, under
-Section 2) in object code or executable form under the terms of Sections 1
-and 2 above provided that you also do one of the following:
-
-a) Accompany it with the complete corresponding machine-readable source
-code, which must be distributed under the terms of Sections 1 and 2 above
-on a medium customarily used for software interchange; or,
-
-b) Accompany it with a written offer, valid for at least three years, to give
-any third party, for a charge no more than your cost of physically performing
-source distribution, a complete machine-readable copy of the corresponding
-source code, to be distributed under the terms of Sections 1 and 2 above on
-a medium customarily used for software interchange; or,
-
-c) Accompany it with the information you received as to the offer to distribute
-corresponding source code. (This alternative is allowed only for
-noncommercial distribution and only if you received the program in object
-code or executable form with such an offer, in accord with Subsection b
-above.)
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
 
 The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source code
-means all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation and
-installation of the executable. However, as a special exception, the source
-code distributed need not include anything that is normally distributed (in
-either source or binary form) with the major components (compiler, kernel,
-and so on) of the operating system on which the executable runs, unless that
-component itself accompanies the executable.
-
-If distribution of executable or object code is made by offering access to
-copy from a designated place, then offering equivalent access to copy the
-source code from the same place counts as distribution of the source code,
-even though third parties are not compelled to copy the source along with the
-object code.
-
-4. You may not copy, modify, sublicense, or distribute the Program except as
-expressly provided under this License. Any attempt otherwise to copy,
-modify, sublicense or distribute the Program is void, and will automatically
-terminate your rights under this License. However, parties who have received
-copies, or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-5. You are not required to accept this License, since you have not signed it.
-However, nothing else grants you permission to modify or distribute the
-Program or its derivative works. These actions are prohibited by law if you
-do not accept this License. Therefore, by modifying or distributing the
-Program (or any work based on the Program), you indicate your acceptance
-of this License to do so, and all its terms and conditions for copying,
-distributing or modifying the Program or works based on it.
-
-6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the original
-licensor to copy, distribute or modify the Program subject to these terms and
-conditions. You may not impose any further restrictions on the recipients'
-exercise of the rights granted herein. You are not responsible for enforcing
-compliance by third parties to this License.
-
-7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues), conditions
-are imposed on you (whether by court order, agreement or otherwise) that
-contradict the conditions of this License, they do not excuse you from the
-conditions of this License. If you cannot distribute so as to satisfy
-simultaneously your obligations under this License and any other pertinent
-obligations, then as a consequence you may not distribute the Program at all.
-For example, if a patent license would not permit royalty-free redistribution
-of the Program by all those who receive copies directly or indirectly through
-you, then the only way you could satisfy both it and this License would be to
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
 refrain entirely from distribution of the Program.
 
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply and
-the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any patents or
-other property right claims or to contest validity of any such claims; this
-section has the sole purpose of protecting the integrity of the free software
-distribution system, which is implemented by public license practices. Many
-people have made generous contributions to the wide range of software
-distributed through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing to
-distribute software through any other system and a licensee cannot impose
-that choice.
-
-This section is intended to make thoroughly clear what is believed to be a
-consequence of the rest of this License.
-
-8. If the distribution and/or use of the Program is restricted in certain
-countries either by patents or by copyrighted interfaces, the original copyright
-holder who places the Program under this License may add an explicit
-geographical distribution limitation excluding those countries, so that
-distribution is permitted only in or among countries not thus excluded. In such
-case, this License incorporates the limitation as if written in the body of this
-License.
-
-9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will be
-similar in spirit to the present version, but may differ in detail to address new
-problems or concerns.
-
-Each version is given a distinguishing version number. If the Program specifies
-a version number of this License which applies to it and "any later version",
-you have the option of following the terms and conditions either of that
-version or of any later version published by the Free Software Foundation. If
-the Program does not specify a version number of this License, you may
-choose any version ever published by the Free Software Foundation.
-
-10. If you wish to incorporate parts of the Program into other free programs
-whose distribution conditions are different, write to the author to ask for
-permission. For software which is copyrighted by the Free Software
-Foundation, write to the Free Software Foundation; we sometimes make
-exceptions for this. Our decision will be guided by the two goals of
-preserving the free status of all derivatives of our free software and of
-promoting the sharing and reuse of software generally.
-
-               NO WARRANTY
-
-11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE,
-THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT
-PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
-STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
-WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
-PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
-NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR
-AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR
-ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
-LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
-SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
-ARISING OUT OF THE USE OR INABILITY TO USE THE
-PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
-OR DATA BEING RENDERED INACCURATE OR LOSSES
-SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
-PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN
-IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.
-
-          END OF TERMS AND CONDITIONS
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds.info b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds.info
index e023d5a..a45ffda 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds.info
@@ -7,9 +7,9 @@ php = 5.2
 dependencies[] = ctools
 dependencies[] = job_scheduler
 
-; Information added by drupal.org packaging script on 2011-06-28
-version = "6.x-1.0-beta11"
+; Information added by drupal.org packaging script on 2012-05-08
+version = "6.x-1.0-beta12"
 core = "6.x"
 project = "feeds"
-datestamp = "1309301816"
+datestamp = "1336486856"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds.install b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds.install
index 8f351e1..da38116 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds.install
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds.install
@@ -70,7 +70,7 @@ function feeds_schema() {
         'description' => 'Main source resource identifier. E. g. a path or a URL.',
       ),
       'batch' => array(
-        'type' => 'text',
+        'type' => 'blob',
         'size' => 'big',
         'not null' => FALSE,
         'description' => 'Cache for batching.',
@@ -621,3 +621,22 @@ function feeds_update_6014() {
 
   return $ret;
 }
+
+/**
+ * Change batch field from text to blob.
+ */
+function feeds_update_6015() {
+  $ret = array();
+
+  $spec = array(
+    'type' => 'blob',
+    'size' => 'big',
+    'not null' => FALSE,
+    'description' => t('Cache for batching.'),
+    'serialize' => TRUE,
+  );
+
+  db_change_field($ret, 'feeds_source', 'batch', 'batch', $spec);
+
+  return $ret;
+}
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds.module b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds.module
index 8a83ce3..06ecbeb 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds.module
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds.module
@@ -375,6 +375,11 @@ function feeds_nodeapi(&$node, $op, $form) {
       case 'update':
         // A node may not have been validated, make sure $node_feeds is present.
         if (empty($node_feeds)) {
+          // If $node->feeds is empty here, nodes are being programatically
+          // created in some fashion without Feeds stuff being added.
+          if (empty($node->feeds)) {
+            return;
+          }
           $node_feeds = $node->feeds;
         }
         // Add configuration to feed source and save.
@@ -396,7 +401,7 @@ function feeds_nodeapi(&$node, $op, $form) {
         break;
       case 'delete':
         $source = feeds_source($importer_id, $node->nid);
-        if ($source->importer->processor->config['delete_with_source']) {
+        if (!empty($source->importer->processor->config['delete_with_source'])) {
           feeds_batch_set(t('Deleting'), 'clear', $importer_id, $node->nid);
         }
         // Remove attached source.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_fast_news/feeds_fast_news.info b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_fast_news/feeds_fast_news.info
index 106c658..5adb0ae 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_fast_news/feeds_fast_news.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_fast_news/feeds_fast_news.info
@@ -11,9 +11,9 @@ features[node][] = "feed_fast"
 name = "Feeds Fast News"
 package = "Feeds"
 
-; Information added by drupal.org packaging script on 2011-06-28
-version = "6.x-1.0-beta11"
+; Information added by drupal.org packaging script on 2012-05-08
+version = "6.x-1.0-beta12"
 core = "6.x"
 project = "feeds"
-datestamp = "1309301816"
+datestamp = "1336486856"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_fast_news/feeds_fast_news.test b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_fast_news/feeds_fast_news.test
index ca9b94d..c96808f 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_fast_news/feeds_fast_news.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_fast_news/feeds_fast_news.test
@@ -1,5 +1,5 @@
 <?php
-module_load_include('test', 'feeds', 'test/feeds');
+module_load_include('test', 'feeds', 'tests/feeds');
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_import/feeds_import.info b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_import/feeds_import.info
index 34f836e..b8f5529 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_import/feeds_import.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_import/feeds_import.info
@@ -8,9 +8,9 @@ files[] = feeds_import.test
 name = "Feeds Import"
 package = "Feeds"
 
-; Information added by drupal.org packaging script on 2011-06-28
-version = "6.x-1.0-beta11"
+; Information added by drupal.org packaging script on 2012-05-08
+version = "6.x-1.0-beta12"
 core = "6.x"
 project = "feeds"
-datestamp = "1309301816"
+datestamp = "1336486856"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_import/feeds_import.test b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_import/feeds_import.test
index abc3d8f..e34db83 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_import/feeds_import.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_import/feeds_import.test
@@ -1,5 +1,5 @@
 <?php
-module_load_include('test', 'feeds', 'test/feeds');
+module_load_include('test', 'feeds', 'tests/feeds');
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_news/feeds_news.info b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_news/feeds_news.info
index 87d9ad9..5227818 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_news/feeds_news.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_news/feeds_news.info
@@ -12,9 +12,9 @@ features[views_api][] = "api:2"
 name = "Feeds News"
 package = "Feeds"
 
-; Information added by drupal.org packaging script on 2011-06-28
-version = "6.x-1.0-beta11"
+; Information added by drupal.org packaging script on 2012-05-08
+version = "6.x-1.0-beta12"
 core = "6.x"
 project = "feeds"
-datestamp = "1309301816"
+datestamp = "1336486856"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_news/feeds_news.test b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_news/feeds_news.test
index 7f4b16e..6d33658 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_news/feeds_news.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_news/feeds_news.test
@@ -1,5 +1,5 @@
 <?php
-module_load_include('test', 'feeds', 'test/feeds');
+module_load_include('test', 'feeds', 'tests/feeds');
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_ui/feeds_ui.admin.inc b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_ui/feeds_ui.admin.inc
index 6557d7b..ba2769e 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_ui/feeds_ui.admin.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_ui/feeds_ui.admin.inc
@@ -164,8 +164,8 @@ function feeds_ui_create_form(&$form_state, $from_importer = NULL) {
   );
   $form['id'] = array(
     '#type' => 'textfield',
-    '#title' => t('Machine name'),
-    '#description' => t('A unique identifier for this configuration. Example: rss_feed. Must only contain lower case characters, numbers and underscores.'),
+    '#title' => t('Machine-readable name'),
+    '#description' => t('A unique machine-readable name. Can only contain lowercase letters, numbers, and underscores.'),
     '#required' => TRUE,
     '#maxlength' => 128,
     '#attributes' => array('class' => 'feed-id'),
@@ -187,11 +187,13 @@ function feeds_ui_create_form(&$form_state, $from_importer = NULL) {
  */
 function feeds_ui_create_form_validate($form, &$form_state) {
   ctools_include('export');
-  $importer = feeds_importer($form_state['values']['id']);
   if (ctools_export_load_object('feeds_importer', 'conditions', array('id' => $form_state['values']['id']))) {
     form_set_error('id', t('Id is taken.'));
   }
-  $importer->configFormValidate($form_state['values']);
+  if (!empty($form_state['values']['id'])) {
+    $importer = feeds_importer($form_state['values']['id']);
+    $importer->configFormValidate($form_state['values']);
+  }
 }
 
 /**
@@ -640,6 +642,7 @@ function _feeds_ui_format_options($options) {
       $result[$k] = $v;
     }
   }
+  asort($result);
   return $result;
 }
 
@@ -668,11 +671,21 @@ function theme_feeds_ui_overview_form($form) {
       }
     }
   }
-  $output = '';
-  if (count($rows)) {
-    $output .= theme('table', $form['#header'], $rows, array('class' => 'feeds-admin-importers'));
+
+  $is_empty = empty($rows);
+  if ($is_empty) {
+    $rows[] = array(array(
+      'data' => t('No importers available.'),
+      'colspan' => 6,
+    ));
   }
-  $output .= drupal_render($form);
+
+  $output = theme('table', $form['#header'], $rows, array('class' => 'feeds-admin-importers'));
+
+  if (!$is_empty) {
+    $output .= drupal_render($form);
+  }
+
   return $output;
 }
 
@@ -826,7 +839,7 @@ function theme_feeds_ui_mapping_form($form) {
 
   // Stick tables into collapsible fieldset.
   $form['legendset']['legend'] = array(
-    '#value' => '<div>'. filter_xss($legend) .'</div>',
+    '#value' => '<div>' . $legend . '</div>',
   );
 
   $output .= drupal_render($form['legendset']);
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_ui/feeds_ui.info b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_ui/feeds_ui.info
index 5d1c4a9..9fc2406 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_ui/feeds_ui.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_ui/feeds_ui.info
@@ -5,9 +5,9 @@ dependencies[] = feeds
 core = 6.x
 php = 5.2
 
-; Information added by drupal.org packaging script on 2011-06-28
-version = "6.x-1.0-beta11"
+; Information added by drupal.org packaging script on 2012-05-08
+version = "6.x-1.0-beta12"
 core = "6.x"
 project = "feeds"
-datestamp = "1309301816"
+datestamp = "1336486856"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_ui/feeds_ui.test b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_ui/feeds_ui.test
index 921afed..e1c8853 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_ui/feeds_ui.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/feeds_ui/feeds_ui.test
@@ -1,5 +1,5 @@
 <?php
-module_load_include('test', 'feeds', 'test/feeds');
+module_load_include('test', 'feeds', 'tests/feeds');
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/includes/FeedsImporter.inc b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/includes/FeedsImporter.inc
index 73f6bed..3cf8bfd 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/includes/FeedsImporter.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/includes/FeedsImporter.inc
@@ -103,14 +103,20 @@ class FeedsImporter extends FeedsConfigurable {
     $save = new stdClass();
     $save->id = $this->id;
     $save->config = $this->getConfig();
-    if (db_result(db_query_range("SELECT 1 FROM {feeds_importer} WHERE id = '%s'", $this->id, 0, 1))) {
+
+    if ($config = db_result(db_query("SELECT config FROM {feeds_importer} WHERE id = '%s'", $this->id))) {
       drupal_write_record('feeds_importer', $save, 'id');
+      // Only rebuild menu if content_type has changed. Don't worry about
+      // rebuilding menus when creating a new importer since it will default
+      // to the standalone page.
+      $config = unserialize($config);
+      if ($config['content_type'] != $save->config['content_type']) {
+        variable_set('menu_rebuild_needed', TRUE);
+      }
     }
     else {
       drupal_write_record('feeds_importer', $save);
     }
-    // Clear menu cache, changes to importer can change menu items.
-    menu_rebuild();
   }
 
   /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/includes/FeedsSource.inc b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/includes/FeedsSource.inc
index 09ccf66..1523ffb 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/includes/FeedsSource.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/includes/FeedsSource.inc
@@ -40,12 +40,12 @@ interface FeedsSourceInterface {
   public function sourceFormValidate(&$source_config);
 
   /**
-   * A source is being deleted.
+   * A source is being saved.
    */
   public function sourceSave(FeedsSource $source);
 
   /**
-   * A source is being saved.
+   * A source is being deleted.
    */
   public function sourceDelete(FeedsSource $source);
 }
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/plugins/FeedsProcessor.inc b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/plugins/FeedsProcessor.inc
index 2d557cf..3154def 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/plugins/FeedsProcessor.inc
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/plugins/FeedsProcessor.inc
@@ -106,8 +106,8 @@ abstract class FeedsProcessor extends FeedsPlugin {
       $convert_to_array = TRUE;
     }
     foreach ($this->config['mappings'] as $mapping) {
-      if (isset($targets[$mapping['target']]['real_target'])) {
-        unset($target_item->{$targets[$mapping['target']]['real_target']});
+      if (isset($targets[$this->id][$mapping['target']]['real_target'])) {
+        unset($target_item->{$targets[$this->id][$mapping['target']]['real_target']});
       }
       elseif (isset($target_item->{$mapping['target']})) {
         unset($target_item->{$mapping['target']});
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper.test b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper.test
index 2cc2491..d2197da 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper.test
@@ -1,5 +1,5 @@
 <?php
-module_load_include('test', 'feeds', 'test/feeds');
+module_load_include('test', 'feeds', 'tests/feeds');
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_content.test b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_content.test
index d191aed..cacc5a6 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_content.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_content.test
@@ -1,5 +1,5 @@
 <?php
-module_load_include('test', 'feeds', 'test/feeds_mapper');
+module_load_include('test', 'feeds', 'tests/feeds_mapper');
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_content_taxonomy.test b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_content_taxonomy.test
index d6d8266..2b3ca00 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_content_taxonomy.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_content_taxonomy.test
@@ -1,5 +1,5 @@
 <?php
-module_load_include('test', 'feeds', 'test/feeds_mapper');
+module_load_include('test', 'feeds', 'tests/feeds_mapper');
 
 /**
  * Class for testing Feeds <em>content</em> mapper.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_date.test b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_date.test
index 32e4b8b..faa4b3c 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_date.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_date.test
@@ -1,5 +1,5 @@
 <?php
-module_load_include('test', 'feeds', 'test/feeds_mapper');
+module_load_include('test', 'feeds', 'tests/feeds_mapper');
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_email.test b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_email.test
index 4a5f06b..298364c 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_email.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_email.test
@@ -1,5 +1,5 @@
 <?php
-module_load_include('test', 'feeds', 'test/feeds_mapper');
+module_load_include('test', 'feeds', 'tests/feeds_mapper');
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_emfield.test b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_emfield.test
index a45ce48..578d18f 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_emfield.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_emfield.test
@@ -1,5 +1,5 @@
 <?php
-module_load_include('test', 'feeds', 'test/feeds_mapper');
+module_load_include('test', 'feeds', 'tests/feeds_mapper');
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_filefield.test b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_filefield.test
index e1c277f..eae9a2b 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_filefield.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_filefield.test
@@ -1,5 +1,5 @@
 <?php
-module_load_include('test', 'feeds', 'test/feeds_mapper');
+module_load_include('test', 'feeds', 'tests/feeds_mapper');
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_link.test b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_link.test
index 15258a1..838e23e 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_link.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_link.test
@@ -1,5 +1,5 @@
 <?php
-module_load_include('test', 'feeds', 'test/feeds_mapper');
+module_load_include('test', 'feeds', 'tests/feeds_mapper');
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_locale.test b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_locale.test
index a99c0c4..69d8a27 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_locale.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_locale.test
@@ -1,5 +1,5 @@
 <?php
-module_load_include('test', 'feeds', 'test/feeds_mapper');
+module_load_include('test', 'feeds', 'tests/feeds_mapper');
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_og.test b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_og.test
index 691a2a6..564df45 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_og.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_og.test
@@ -1,5 +1,5 @@
 <?php
-module_load_include('test', 'feeds', 'test/feeds_mapper');
+module_load_include('test', 'feeds', 'tests/feeds_mapper');
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_profile.test b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_profile.test
index 68ce7ac..51d0850 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_profile.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_profile.test
@@ -1,5 +1,5 @@
 <?php
-module_load_include('test', 'feeds', 'test/feeds_mapper');
+module_load_include('test', 'feeds', 'tests/feeds_mapper');
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_taxonomy.test b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_taxonomy.test
index cc04758..71faf81 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_taxonomy.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_mapper_taxonomy.test
@@ -1,5 +1,5 @@
 <?php
-module_load_include('test', 'feeds', 'test/feeds_mapper');
+module_load_include('test', 'feeds', 'tests/feeds_mapper');
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_parser_sitemap.test b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_parser_sitemap.test
index 9d220dd..7fdf12b 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_parser_sitemap.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_parser_sitemap.test
@@ -1,5 +1,5 @@
 <?php
-module_load_include('test', 'feeds', 'test/feeds');
+module_load_include('test', 'feeds', 'tests/feeds');
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_parser_syndication.test b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_parser_syndication.test
index 58222f9..c4200a8 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_parser_syndication.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_parser_syndication.test
@@ -1,5 +1,5 @@
 <?php
-module_load_include('test', 'feeds', 'test/feeds');
+module_load_include('test', 'feeds', 'tests/feeds');
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_processor_data.test b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_processor_data.test
index 346d5b6..57f236f 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_processor_data.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_processor_data.test
@@ -1,5 +1,5 @@
 <?php
-module_load_include('test', 'feeds', 'test/feeds');
+module_load_include('test', 'feeds', 'tests/feeds');
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_processor_node.test b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_processor_node.test
index 8d8cb30..51a7648 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_processor_node.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_processor_node.test
@@ -1,5 +1,5 @@
 <?php
-module_load_include('test', 'feeds', 'test/feeds');
+module_load_include('test', 'feeds', 'tests/feeds');
 
 /**
  * @file
@@ -202,7 +202,11 @@ class FeedsRSStoNodesTest extends FeedsWebTestCase {
 
     // Set to update existing, remove authorship of above nodes and import again.
     $this->setSettings('syndication', 'FeedsNodeProcessor', array('update_existing' => 2));
-    db_query("UPDATE {node} n JOIN {feeds_node_item} fi ON n.nid = fi.nid SET n.uid = 0, fi.hash=''");
+    $result = db_query("SELECT nid FROM {node} n INNER JOIN {feeds_node_item} USING (nid)");
+    while ($reset_nid = db_result($result)) {
+      db_query("UPDATE {node} SET uid = 0 WHERE nid = %d", $reset_nid);
+      db_query("UPDATE {feeds_node_item} SET hash = '' WHERE nid = %d", $reset_nid);
+    }
     $this->drupalPost('node/'. $nid .'/import', array(), 'Import');
     $this->drupalGet('node');
     $this->assertNoPattern('/<span class="submitted">(.*?)'. check_plain($author->name) .'<\/span>/');
@@ -384,7 +388,7 @@ class FeedsRSStoNodesTest extends FeedsWebTestCase {
       'files[feeds]' => $this->absolutePath() .'/tests/feeds/drupalplanet.rss2',
     );
     $this->drupalPost('node/add/page', $edit, 'Save');
-    $this->assertText('has been created.');
+    $this->assertText('Page drupal.org aggregator has been created.');
     $this->assertText('Created 25 Story nodes.');
   }
 
@@ -418,7 +422,7 @@ class FeedsRSStoNodesTest extends FeedsWebTestCase {
 
       $edit['feeds[FeedsHTTPFetcher][source]'] = $feed_url;
       $this->drupalPost('node/add/page', $edit, 'Save');
-      $this->assertText('Basic page Development Seed - Technological Solutions for Progressive Organizations has been created.');
+      $this->assertText('Page Development Seed - Technological Solutions for Progressive Organizations has been created.');
       $this->assertText('Created 10 Story nodes.');
       $this->assertFeedItemCount($item_count + 10);
       $item_count += 10;
@@ -431,11 +435,11 @@ class FeedsRSStoNodesTest extends FeedsWebTestCase {
   function testNonFeedNodeUI() {
     // There should not be feed links on an article node.
     $non_feed_node = $this->drupalCreateNode(array('type' => 'story'));
-    $this->drupalGet('node/'. $non_feed_node->nid);
-    $this->assertNoLink('Import');
+    $this->drupalGet('node/' . $non_feed_node->nid);
+    $this->assertNoLinkByHref('node/' . $non_feed_node->nid . '/import');
     $this->assertNoLink('Delete items');
 
-    // Navigat to a non-feed node form, there should be no Feed field visible.
+    // Navigate to a non-feed node form, there should be no Feed field visible.
     $this->drupalGet('node/add/article');
     $this->assertNoFieldByName('feeds[FeedsHTTPFetcher][source]');
   }
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_processor_term.test b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_processor_term.test
index 7492eb1..abfa1dd 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_processor_term.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_processor_term.test
@@ -1,5 +1,5 @@
 <?php
-module_load_include('test', 'feeds', 'test/feeds');
+module_load_include('test', 'feeds', 'tests/feeds');
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_processor_user.test b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_processor_user.test
index f39fd94..0f54ce6 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_processor_user.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_processor_user.test
@@ -1,5 +1,5 @@
 <?php
-module_load_include('test', 'feeds', 'test/feeds');
+module_load_include('test', 'feeds', 'tests/feeds');
 
 /**
  * @file
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_scheduler.test b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_scheduler.test
index 51c97c8..34af69f 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_scheduler.test
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/feeds/tests/feeds_scheduler.test
@@ -1,5 +1,5 @@
 <?php
-module_load_include('test', 'feeds', 'test/feeds');
+module_load_include('test', 'feeds', 'tests/feeds');
 
 /**
  * @file
@@ -189,8 +189,8 @@ class FeedsSchedulerTestCase extends FeedsWebTestCase {
     $this->drupalLogout();
     sleep(1);
     $this->cronRun();
-    $new_max_last = db_result(db_query("SELECT MAX(last) FROM {job_schedule} WHERE type = 'syndication' AND name = 'feeds_source_import' AND period = 3600"));
-    $new_min_last = db_result(db_query("SELECT MIN(last) FROM {job_schedule} WHERE type = 'syndication' AND name = 'feeds_source_import' AND period = 3600"));
+    $new_max_last = db_result(db_query("SELECT MAX(last) FROM {job_schedule} WHERE type = 'syndication' AND callback = 'feeds_source_import' AND period = 3600"));
+    $new_min_last = db_result(db_query("SELECT MIN(last) FROM {job_schedule} WHERE type = 'syndication' AND callback = 'feeds_source_import' AND period = 3600"));
     $this->assertNotEqual($new_max_last, $max_last);
     $this->assertNotEqual($new_min_last, $min_last);
     $this->assertEqual($new_max_last, $new_min_last);
@@ -214,6 +214,8 @@ class FeedsSchedulerTestCase extends FeedsWebTestCase {
    * Test batching on cron.
    */
   function testBatching() {
+    // Set up an importer.
+    $this->createImporterConfiguration();
     // Verify that there are 150 nodes total.
     $nid = $this->createFeedNode('syndication', $GLOBALS['base_url'] .'/'. drupal_get_path('module', 'feeds') .'/tests/feeds/many_items.rss2');
     $this->assertText('Created 150 Story nodes.');
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/imagecache/INSTALL.txt b/kolab.org/www/drupal-6.26/sites/all/modules/imagecache/INSTALL.txt
index 07301aa..2c0bc32 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/imagecache/INSTALL.txt
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/imagecache/INSTALL.txt
@@ -23,6 +23,3 @@ IIS 6:
     End If
     Response.Redirect("index.htm")
   %>
-
-
-
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/imagecache/LICENSE.txt b/kolab.org/www/drupal-6.26/sites/all/modules/imagecache/LICENSE.txt
index 2c095c8..d159169 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/imagecache/LICENSE.txt
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/imagecache/LICENSE.txt
@@ -1,274 +1,339 @@
-GNU GENERAL PUBLIC LICENSE
-
-              Version 2, June 1991
-
-Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave,
-Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute
-verbatim copies of this license document, but changing it is not allowed.
-
-                  Preamble
-
-The licenses for most software are designed to take away your freedom to
-share and change it. By contrast, the GNU General Public License is
-intended to guarantee your freedom to share and change free software--to
-make sure the software is free for all its users. This General Public License
-applies to most of the Free Software Foundation's software and to any other
-program whose authors commit to using it. (Some other Free Software
-Foundation software is covered by the GNU Library General Public License
-instead.) You can apply it to your programs, too.
-
-When we speak of free software, we are referring to freedom, not price. Our
-General Public Licenses are designed to make sure that you have the
-freedom to distribute copies of free software (and charge for this service if
-you wish), that you receive source code or can get it if you want it, that you
-can change the software or use pieces of it in new free programs; and that
-you know you can do these things.
-
-To protect your rights, we need to make restrictions that forbid anyone to
-deny you these rights or to ask you to surrender the rights. These restrictions
-translate to certain responsibilities for you if you distribute copies of the
-software, or if you modify it.
-
-For example, if you distribute copies of such a program, whether gratis or for
-a fee, you must give the recipients all the rights that you have. You must make
-sure that they, too, receive or can get the source code. And you must show
-them these terms so they know their rights.
-
-We protect your rights with two steps: (1) copyright the software, and (2)
-offer you this license which gives you legal permission to copy, distribute
-and/or modify the software.
-
-Also, for each author's protection and ours, we want to make certain that
-everyone understands that there is no warranty for this free software. If the
-software is modified by someone else and passed on, we want its recipients
-to know that what they have is not the original, so that any problems
-introduced by others will not reflect on the original authors' reputations.
-
-Finally, any free program is threatened constantly by software patents. We
-wish to avoid the danger that redistributors of a free program will individually
-obtain patent licenses, in effect making the program proprietary. To prevent
-this, we have made it clear that any patent must be licensed for everyone's
-free use or not licensed at all.
-
-The precise terms and conditions for copying, distribution and modification
-follow.
-
-           GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
-               MODIFICATION
-
-0. This License applies to any program or other work which contains a notice
-placed by the copyright holder saying it may be distributed under the terms
-of this General Public License. The "Program", below, refers to any such
-program or work, and a "work based on the Program" means either the
-Program or any derivative work under copyright law: that is to say, a work
-containing the Program or a portion of it, either verbatim or with
-modifications and/or translated into another language. (Hereinafter, translation
-is included without limitation in the term "modification".) Each licensee is
-addressed as "you".
-
-Activities other than copying, distribution and modification are not covered
-by this License; they are outside its scope. The act of running the Program is
-not restricted, and the output from the Program is covered only if its contents
-constitute a work based on the Program (independent of having been made
-by running the Program). Whether that is true depends on what the Program
-does.
-
-1. You may copy and distribute verbatim copies of the Program's source
-code as you receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice and
-disclaimer of warranty; keep intact all the notices that refer to this License
-and to the absence of any warranty; and give any other recipients of the
-Program a copy of this License along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and you
-may at your option offer warranty protection in exchange for a fee.
-
-2. You may modify your copy or copies of the Program or any portion of it,
-thus forming a work based on the Program, and copy and distribute such
-modifications or work under the terms of Section 1 above, provided that you
-also meet all of these conditions:
-
-a) You must cause the modified files to carry prominent notices stating that
-you changed the files and the date of any change.
-
-b) You must cause any work that you distribute or publish, that in whole or in
-part contains or is derived from the Program or any part thereof, to be
-licensed as a whole at no charge to all third parties under the terms of this
-License.
-
-c) If the modified program normally reads commands interactively when run,
-you must cause it, when started running for such interactive use in the most
-ordinary way, to print or display an announcement including an appropriate
-copyright notice and a notice that there is no warranty (or else, saying that
-you provide a warranty) and that users may redistribute the program under
-these conditions, and telling the user how to view a copy of this License.
-(Exception: if the Program itself is interactive but does not normally print such
-an announcement, your work based on the Program is not required to print
-an announcement.)
-
-These requirements apply to the modified work as a whole. If identifiable
-sections of that work are not derived from the Program, and can be
-reasonably considered independent and separate works in themselves, then
-this License, and its terms, do not apply to those sections when you distribute
-them as separate works. But when you distribute the same sections as part
-of a whole which is a work based on the Program, the distribution of the
-whole must be on the terms of this License, whose permissions for other
-licensees extend to the entire whole, and thus to each and every part
-regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest your rights to
-work written entirely by you; rather, the intent is to exercise the right to
-control the distribution of derivative or collective works based on the
-Program.
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
 
 In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of a
-storage or distribution medium does not bring the other work under the scope
-of this License.
-
-3. You may copy and distribute the Program (or a work based on it, under
-Section 2) in object code or executable form under the terms of Sections 1
-and 2 above provided that you also do one of the following:
-
-a) Accompany it with the complete corresponding machine-readable source
-code, which must be distributed under the terms of Sections 1 and 2 above
-on a medium customarily used for software interchange; or,
-
-b) Accompany it with a written offer, valid for at least three years, to give
-any third party, for a charge no more than your cost of physically performing
-source distribution, a complete machine-readable copy of the corresponding
-source code, to be distributed under the terms of Sections 1 and 2 above on
-a medium customarily used for software interchange; or,
-
-c) Accompany it with the information you received as to the offer to distribute
-corresponding source code. (This alternative is allowed only for
-noncommercial distribution and only if you received the program in object
-code or executable form with such an offer, in accord with Subsection b
-above.)
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
 
 The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source code
-means all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation and
-installation of the executable. However, as a special exception, the source
-code distributed need not include anything that is normally distributed (in
-either source or binary form) with the major components (compiler, kernel,
-and so on) of the operating system on which the executable runs, unless that
-component itself accompanies the executable.
-
-If distribution of executable or object code is made by offering access to
-copy from a designated place, then offering equivalent access to copy the
-source code from the same place counts as distribution of the source code,
-even though third parties are not compelled to copy the source along with the
-object code.
-
-4. You may not copy, modify, sublicense, or distribute the Program except as
-expressly provided under this License. Any attempt otherwise to copy,
-modify, sublicense or distribute the Program is void, and will automatically
-terminate your rights under this License. However, parties who have received
-copies, or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-5. You are not required to accept this License, since you have not signed it.
-However, nothing else grants you permission to modify or distribute the
-Program or its derivative works. These actions are prohibited by law if you
-do not accept this License. Therefore, by modifying or distributing the
-Program (or any work based on the Program), you indicate your acceptance
-of this License to do so, and all its terms and conditions for copying,
-distributing or modifying the Program or works based on it.
-
-6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the original
-licensor to copy, distribute or modify the Program subject to these terms and
-conditions. You may not impose any further restrictions on the recipients'
-exercise of the rights granted herein. You are not responsible for enforcing
-compliance by third parties to this License.
-
-7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues), conditions
-are imposed on you (whether by court order, agreement or otherwise) that
-contradict the conditions of this License, they do not excuse you from the
-conditions of this License. If you cannot distribute so as to satisfy
-simultaneously your obligations under this License and any other pertinent
-obligations, then as a consequence you may not distribute the Program at all.
-For example, if a patent license would not permit royalty-free redistribution
-of the Program by all those who receive copies directly or indirectly through
-you, then the only way you could satisfy both it and this License would be to
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
 refrain entirely from distribution of the Program.
 
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply and
-the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any patents or
-other property right claims or to contest validity of any such claims; this
-section has the sole purpose of protecting the integrity of the free software
-distribution system, which is implemented by public license practices. Many
-people have made generous contributions to the wide range of software
-distributed through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing to
-distribute software through any other system and a licensee cannot impose
-that choice.
-
-This section is intended to make thoroughly clear what is believed to be a
-consequence of the rest of this License.
-
-8. If the distribution and/or use of the Program is restricted in certain
-countries either by patents or by copyrighted interfaces, the original copyright
-holder who places the Program under this License may add an explicit
-geographical distribution limitation excluding those countries, so that
-distribution is permitted only in or among countries not thus excluded. In such
-case, this License incorporates the limitation as if written in the body of this
-License.
-
-9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will be
-similar in spirit to the present version, but may differ in detail to address new
-problems or concerns.
-
-Each version is given a distinguishing version number. If the Program specifies
-a version number of this License which applies to it and "any later version",
-you have the option of following the terms and conditions either of that
-version or of any later version published by the Free Software Foundation. If
-the Program does not specify a version number of this License, you may
-choose any version ever published by the Free Software Foundation.
-
-10. If you wish to incorporate parts of the Program into other free programs
-whose distribution conditions are different, write to the author to ask for
-permission. For software which is copyrighted by the Free Software
-Foundation, write to the Free Software Foundation; we sometimes make
-exceptions for this. Our decision will be guided by the two goals of
-preserving the free status of all derivatives of our free software and of
-promoting the sharing and reuse of software generally.
-
-               NO WARRANTY
-
-11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE,
-THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT
-PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
-STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
-WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
-PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
-NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR
-AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR
-ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
-LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
-SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
-ARISING OUT OF THE USE OR INABILITY TO USE THE
-PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
-OR DATA BEING RENDERED INACCURATE OR LOSSES
-SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
-PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN
-IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.
-
-          END OF TERMS AND CONDITIONS
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/imagecache/imagecache.info b/kolab.org/www/drupal-6.26/sites/all/modules/imagecache/imagecache.info
index ac71c9a..d1375cc 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/imagecache/imagecache.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/imagecache/imagecache.info
@@ -4,9 +4,9 @@ package = ImageCache
 dependencies[] = imageapi
 core = 6.x
 
-; Information added by drupal.org packaging script on 2011-05-16
-version = "6.x-2.0-beta12"
+; Information added by drupal.org packaging script on 2012-05-23
+version = "6.x-2.0-rc1"
 core = "6.x"
 project = "imagecache"
-datestamp = "1305566515"
+datestamp = "1337742655"
 
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/imagecache/imagecache.module b/kolab.org/www/drupal-6.26/sites/all/modules/imagecache/imagecache.module
index 1584304..55d48ce 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/imagecache/imagecache.module
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/imagecache/imagecache.module
@@ -341,7 +341,12 @@ function imagecache_action_definition($action) {
  *   A Boolean indicating that the URL should be absolute. Defaults to TRUE.
  */
 function imagecache_create_url($presetname, $filepath, $bypass_browser_cache = FALSE, $absolute = TRUE) {
-  $args = array('query' => empty($bypass_browser_cache) ? NULL : time());
+  $args = array(
+    'query' => empty($bypass_browser_cache) ? NULL : time(),
+    // Little hack to avoid having language_url_rewrite() prefix the path with the
+    // language code, but preserve the domain rewriting.
+    'language' => (object) array('language' => '', 'domain' => $GLOBALS['language']->domain),
+  );
   $file_directory = file_directory_path();
 
   // Determine the path of the derivative inside the files directory.
@@ -885,14 +890,16 @@ function theme_imagecache($presetname, $path, $alt = '', $title = '', $attribute
   if (is_null($attributes)) {
     $attributes = array('class' => 'imagecache imagecache-'. $presetname);
   }
+  $ours = array(
+    'src' => imagecache_create_url($presetname, $path, FALSE, $absolute),
+    'alt' => $alt,
+    'title' => $title,
+  );
   if ($getsize && ($image = image_get_info(imagecache_create_path($presetname, $path)))) {
-    $attributes['width'] = $image['width'];
-    $attributes['height'] = $image['height'];
+    $ours += array('width' => $image['width'], 'height' => $image['height']);
   }
 
-  $attributes = drupal_attributes($attributes);
-  $imagecache_url = imagecache_create_url($presetname, $path, FALSE, $absolute);
-  return '<img src="'. $imagecache_url .'" alt="'. check_plain($alt) .'" title="'. check_plain($title) .'" '. $attributes .' />';
+  return '<img' . drupal_attributes($ours + $attributes) . '/>';
 }
 
 /**
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/imagecache/imagecache_ui.info b/kolab.org/www/drupal-6.26/sites/all/modules/imagecache/imagecache_ui.info
index 04036db..28a3024 100644
--- a/kolab.org/www/drupal-6.26/sites/all/modules/imagecache/imagecache_ui.info
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/imagecache/imagecache_ui.info
@@ -5,9 +5,9 @@ dependencies[] = imageapi
 package = ImageCache
 core = 6.x
 
-; Information added by drupal.org packaging script on 2011-05-16
-version = "6.x-2.0-beta12"
+; Information added by drupal.org packaging script on 2012-05-23
+version = "6.x-2.0-rc1"
 core = "6.x"
 project = "imagecache"
-datestamp = "1305566515"
+datestamp = "1337742655"
 





More information about the commits mailing list