/**
 * checkout-delivery-calendar.js
 *
 * @author Paul Horton <phorton@doc-net.com>
 * @copyright Doctor Net Limited &copy; 2008
 * @package WebSite.WebSite
 */

var obj_delivery_date_calendar = null;

/**
 * On Document Ready...
 *
 */
$(document).ready(function() {
   var setup_delivery_date_calendar = function (obj_date) {
      if (obj_date.getDay() == 0) {
         return [false, ''];
      } else {
         for (int_i = 0; int_i < arr_bank_holidays.length; int_i++) {
            if (obj_date.getFullYear() == arr_bank_holidays[int_i][0] && obj_date.getMonth() == arr_bank_holidays[int_i][1] - 1 && obj_date.getDate() == arr_bank_holidays[int_i][2]) {
               return [false, ''];
            }
         }
         return [true, ''];
      }
   }

   if ($("#delivery_date_calendar").size() > 0) {
      obj_delivery_date_calendar = $("#delivery_date_calendar").datepicker({
         beforeShowDay: setup_delivery_date_calendar,
         changeFirstDay: false,
         changeMonth: false,
         changeYear: false,
         dateFormat: "yy-mm-dd",
         dayNamesMin: ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'],
         firstDay: 1,
         hideIfNoPrevNext: true,
         nextText: 'Next',
         prevText: 'Prev',
         onSelect: function(date) {
           set_delivery_date(date);
         },
         showOtherMonths: true
      });

      configure_delivery_date_calendar($('#str_earliest_date').val(), $('#str_delivery_date').val());
   }
});

/**
 * Called to re-configure the DatePicker instance.
 *
 * @param String str_earliest_date
 * @param String str_selected_date
 */
function configure_delivery_date_calendar(str_earliest_date, str_selected_date) {
   if (str_earliest_date != false) {
      arr_min_date = split_date_for_calendar(str_earliest_date);
      $("#delivery_date_calendar").datepicker("change", {
         minDate: new Date(arr_min_date[0], arr_min_date[1] - 1, arr_min_date[2])
      });
   }
   arr_set_date = split_date_for_calendar(str_selected_date);
   $('#delivery_date_calendar').datepicker("setDate", new Date(arr_set_date[0], arr_set_date[1] - 1, arr_set_date[2]));
}

/**
 *
 * @param String str_date
 */
function split_date_for_calendar(str_date) {
   return [str_date.substr(0, 4), str_date.substr(5, 2), str_date.substr(8, 2)];
}
