From 53f331d43770ed12cd8b0e1a1241c654528c75cd Mon Sep 17 00:00:00 2001
From: Kristiaan Van den Eynde <magentix@gmail.com>
Date: Wed, 20 Jun 2012 16:18:46 +0200
Subject: [PATCH] #1143680 by kristiaanvandeneynde, just_like_good_vibes,
 sdmr: Allow additional jQuery datepicker options.

---
 date_popup/date_popup.module |   27 ++++++++++++++++++++-------
 1 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/date_popup/date_popup.module b/date_popup/date_popup.module
index aa78033..a6326c2 100644
--- a/date_popup/date_popup.module
+++ b/date_popup/date_popup.module
@@ -185,6 +185,15 @@ function date_popup_theme() {
  *   The number of years to go back and forward in a year selector,
  *   default is -3:+3 (3 back and 3 forward).
  *
+ * #datepicker_preferences
+ *   An associative array representing the jQuery datepicker options you want
+ *   to set for this element. Use the jQuery datepicker option names as keys.
+ *   Hard coded defaults are:
+ *   - changeMonth => TRUE
+ *   - changeYear => TRUE
+ *   - autoPopUp => 'focus'
+ *   - closeAtTop => FALSE
+ *   - speed => 'immediate'
  */
 function date_popup_element_info() {
   $timepicker = date_popup_get_preferred_timepicker();
@@ -194,6 +203,13 @@ function date_popup_element_info() {
     '#date_timezone' => date_default_timezone(),
     '#date_flexible' => 0,
     '#date_format' => variable_get('date_format_short', 'm/d/Y - H:i'),
+    '#datepicker_options' => array(
+      'changeMonth' => TRUE,
+      'changeYear' => TRUE,
+      'autoPopUp' => 'focus',
+      'closeAtTop' => FALSE,
+      'speed' => 'immediate',
+    ),
     '#timepicker' => variable_get('date_popup_timepicker', $timepicker),
     '#date_increment' => 1,
     '#date_year_range' => '-3:+3',
@@ -317,20 +333,17 @@ function date_popup_process_date_part(&$element) {
   $range = date_range_years($element['#date_year_range'], $date);
   $year_range = date_range_string($range);
 
-  $settings = array(
-    'changeMonth' => TRUE,
-    'changeYear' => TRUE,
+  // Add the dynamic datepicker options. Allow element-specific datepicker
+  // preferences to override these options for whatever reason they see fit.
+  $settings = $element['#datepicker_options'] + array(
     'firstDay' => intval(variable_get('date_first_day', 0)),
     //'buttonImage' => base_path() . drupal_get_path('module', 'date_api') ."/images/calendar.png",
     //'buttonImageOnly' => TRUE,
-    'autoPopUp' => 'focus',
-    'closeAtTop' => FALSE,
-    'speed' => 'immediate',
     'dateFormat' => date_popup_format_to_popup(date_popup_date_format($element), 'datepicker'),
     '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);
-- 
1.7.7.3

