robguy21
1/14/2016 - 6:43 PM

using_pikaday.js

(function() {
  if (typeof Pikaday === 'function') {
    return $document.ready(function() {
      var DatePicker, checkin, checkout, handleMinDate;
      DatePicker = (function() {
        function DatePicker(elem, opts) {
          if (opts == null) {
            opts = {};
          }
          this.date = new Date();
          this.pickers = [];
          this.$input = elem;
          this.opts = extend({
            field: this.$input[0],
            position: "bottom left",
            format: 'Do MMMM YYYY',
            i18n: {
              previousMonth: 'Previous Month',
              nextMonth: 'Next Month',
              months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
              weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
              weekdaysShort: ['Sun', 'Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat']
            },
            defaultDate: new Date((this.date.getMonth() + 1) + " " + (this.date.getDay()) + " " + (this.date.getFullYear()) + " 12:00:00 GMT+0200 (SAST)"),
            yearRange: [this.date.getFullYear() - 120, this.date.getFullYear() + 10],
            minDate: this.date,
            bound: true
          }, opts);
          this._init();
        }

        DatePicker.prototype._init = function() {
          return this.picker = new Pikaday(this.opts);
        };

        return DatePicker;

      })();
      checkin = new DatePicker($('.js-pikaday-checkin'));
      checkout = new DatePicker($('.js-pikaday-checkout'));
      handleMinDate = function(event) {
        var char, dateArr, day, i, len, ref;
        dateArr = event.target.value.split(' ');
        day = '';
        ref = dateArr[0];
        for (i = 0, len = ref.length; i < len; i++) {
          char = ref[i];
          if (Number(char)) {
            day = day + char;
          }
        }
        return this.picker.setMinDate(new Date(dateArr[1] + ", " + day + ", " + dateArr[2] + " 12:2:00"));
      };
      return checkin.$input.on('change', handleMinDate.bind(checkout));
    });
  }
})();