--- components/date.inc	Fri Dec 30 21:50:45 2011
+++ components/date.inc	Mon Apr 23 20:04:10 2012
@@ -23,6 +23,7 @@
       'year_textfield' => 0,
       'datepicker' => 1,
       'title_display' => 0,
+      'inline' => 0,
       'description' => '',
       'private' => FALSE,
     ),
@@ -82,6 +83,15 @@
     '#parents' => array('extra', 'datepicker'),
   );
 
+  $form['display']['inline'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Display calendar inline as opposed to popup'),
+    '#default_value' => $component['extra']['inline'],
+    '#description' => t('Display calendar inline as opposed to popup.'),
+    '#weight' => 3,
+    '#parents' => array('extra', 'inline'),
+  );
+
   $form['display']['year_textfield'] = array(
     '#type' => 'checkbox',
     '#title' => t('Use a textfield for year'),
@@ -126,6 +136,7 @@
     '#required' => $component['mandatory'],
     '#start_date' => trim($component['extra']['start_date']),
     '#end_date' => trim($component['extra']['end_date']),
+    '#inline' => $component['extra']['inline'],
     '#year_textfield' => $component['extra']['year_textfield'],
     '#default_value' => $filter ? _webform_filter_values($component['value'], NULL, NULL, NULL, FALSE) : $component['value'],
     '#timezone' => $component['extra']['timezone'],
@@ -255,6 +266,7 @@
       $calendar_class[] = 'webform-calendar-end-' . $element['#end_date'];
     }
     $calendar_class[] ='webform-calendar-day-' . variable_get('date_first_day', 0);
+    $calendar_class[] = 'webform-calendar-inline-' . (isset($element['#inline']) ? $element['#inline'] : 0);
 
     $calendar = theme('webform_calendar', array('component' => $element['#webform_component'], 'calendar_classes' => $calendar_class));
   }
@@ -263,7 +275,7 @@
   $output .= '<div class="' . implode(' ', $class) . '">';
   $output .= drupal_render_children($element);
   $output .= isset($calendar) ? $calendar : '';
-  $output .= '</div>';
+  $output .= '<div class="webform-calendar-inline"></div></div>';
 
   return $output;
 }
--- js/webform.js Fri Dec 30 21:50:45 2011
+++ js/webform.js	Mon Apr 23 20:06:22 2012
@@ -21,6 +21,7 @@
     var startDate = $calendar[0].className.replace(/.*webform-calendar-start-(\d{4}-\d{2}-\d{2}).*/, '$1').split('-');
     var endDate = $calendar[0].className.replace(/.*webform-calendar-end-(\d{4}-\d{2}-\d{2}).*/, '$1').split('-');
     var firstDay = $calendar[0].className.replace(/.*webform-calendar-day-(\d).*/, '$1');
+    var inline = $calendar[0].className.replace(/.*webform-calendar-inline-(\d).*/, '$1');
     // Convert date strings into actual Date objects.
     startDate = new Date(startDate[0], startDate[1] - 1, startDate[2]);
     endDate = new Date(endDate[0], endDate[1] - 1, endDate[2]);
@@ -35,6 +36,11 @@
     var startYear = startDate.getFullYear();
     var endYear = endDate.getFullYear();
 
+    $input = $calendar;
+    if (inline != 0) {
+      console.log("we have an inline datepicker");
+      $calendar = $webformDatepicker.find('div.webform-calendar-inline');
+    }
     // Set up the jQuery datepicker element.
     $calendar.datepicker({
       dateFormat: 'yy-mm-dd',
@@ -42,6 +48,7 @@
       firstDay: parseInt(firstDay),
       minDate: startDate,
       maxDate: endDate,
+      inline: inline,
       onSelect: function(dateText, inst) {
         var date = dateText.split('-');
         $webformDatepicker.find('select.year, input.year').val(+date[0]);
@@ -70,11 +77,11 @@
     });
 
     // Prevent the calendar button from submitting the form.
-    $calendar.click(function(event) {
+    $input.click(function(event) {
       $(this).focus();
       event.preventDefault();
     });
   });
-}
+};
 
 })(jQuery);
