{"version":3,"file":"pikaday.js","names":["root","factory","moment","exports","require","e","module","define","amd","req","Pikaday","this","hasMoment","hasEventListeners","window","addEventListener","document","sto","setTimeout","addEvent","el","callback","capture","attachEvent","removeEvent","removeEventListener","detachEvent","hasClass","cn","className","indexOf","addClass","removeClass","str","replace","trim","isArray","obj","test","Object","prototype","toString","call","isDate","isNaN","getTime","isWeekend","date","day","getDay","isLeapYear","year","getDaysInMonth","month","setToStartOfDay","setHours","compareDates","a","b","extend","to","from","overwrite","prop","hasProp","undefined","nodeName","Date","slice","fireEvent","eventName","data","ev","createEvent","initEvent","dispatchEvent","createEventObject","adjustCalendar","calendar","Math","ceil","abs","floor","defaults","field","bound","ariaLabel","position","reposition","format","parse","defaultDate","setDefaultDate","firstDay","firstWeekOfYearMinDays","formatStrict","minDate","maxDate","yearRange","showWeekNumber","pickWholeWeek","minYear","maxYear","minMonth","maxMonth","startRange","endRange","isRTL","yearSuffix","showMonthAfterYear","showDaysInNextAndPreviousMonths","enableSelectionDaysInNextAndPreviousMonths","numberOfMonths","mainCalendar","container","blurFieldOnSelect","i18n","previousMonth","nextMonth","months","weekdays","weekdaysShort","theme","events","onSelect","onOpen","onClose","onDraw","keyboardInput","renderDayName","opts","abbr","renderDay","arr","ariaSelected","isEmpty","push","isDisabled","isToday","isSelected","hasEvent","isInRange","isStartRange","isEndRange","join","renderWeek","d","m","y","week","isoWeek","yearDay","getDate","weekDay","dayInFirstWeek","dayShift","prevWeekDay","setDate","jan4th","getFullYear","daysBetween","round","renderRow","days","isRowSelected","reverse","renderTitle","instance","c","refYear","randId","i","j","monthHtml","yearHtml","_o","isMinYear","isMaxYear","html","prev","next","renderTable","renderHead","options","self","config","_onMouseDown","_v","target","event","srcElement","parentNode","prevMonth","getAttribute","hide","blur","_c","preventDefault","returnValue","_onChange","gotoMonth","value","gotoYear","_onKeyChange","isVisible","keyCode","adjustDate","_parseFieldValue","isValid","toDate","_onInputChange","firedBy","show","_onInputFocus","_onInputClick","_onInputBlur","pEl","activeElement","_b","_onClick","onchange","setAttribute","trigger","createElement","appendChild","body","insertBefore","nextSibling","defDate","gotoDate","disableWeekends","disableDayFn","nom","parseInt","setMinDate","setMaxDate","fallback","_d","toDateString","getMoment","setMoment","preventOnSelect","isMoment","draw","min","max","clear","newCalendar","calendars","firstVisibleDate","lastVisibleDate","length","visibleDate","setMonth","getMonth","adjustCalendars","sign","newDay","difference","valueOf","gotoToday","setStartRange","setEndRange","force","_y","_m","random","substr","render","innerHTML","type","focus","adjustPosition","width","height","viewportWidth","viewportHeight","scrollTop","left","top","clientRect","leftAligned","bottomAligned","style","offsetWidth","offsetHeight","innerWidth","documentElement","clientWidth","innerHeight","clientHeight","pageYOffset","getBoundingClientRect","pageXOffset","bottom","offsetLeft","offsetTop","offsetParent","now","before","row","yearOfPreviousMonth","yearOfNextMonth","daysInPreviousMonth","cells","after","isWeekSelected","r","dayNumber","monthNumber","yearNumber","dayConfig","unshift","v","destroy","removeChild"],"sources":["pikaday.js"],"mappings":"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","ignoreList":[],"sourcesContent":["/*!\n * Pikaday\n *\n * Copyright © 2014 David Bushell | BSD & MIT license | https://github.com/Pikaday/Pikaday\n */\n\n(function (root, factory)\n{\n 'use strict';\n\n var moment;\n if (typeof exports === 'object') {\n // CommonJS module\n // Load moment.js as an optional dependency\n try { moment = require('moment'); } catch (e) {}\n module.exports = factory(moment);\n } else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(function (req)\n {\n // Load moment.js as an optional dependency\n var id = 'moment';\n try { moment = req(id); } catch (e) {}\n return factory(moment);\n });\n } else {\n root.Pikaday = factory(root.moment);\n }\n}(this, function (moment)\n{\n 'use strict';\n\n /**\n * feature detection and helper functions\n */\n var hasMoment = typeof moment === 'function',\n\n hasEventListeners = !!window.addEventListener,\n\n document = window.document,\n\n sto = window.setTimeout,\n\n addEvent = function(el, e, callback, capture)\n {\n if (hasEventListeners) {\n el.addEventListener(e, callback, !!capture);\n } else {\n el.attachEvent('on' + e, callback);\n }\n },\n\n removeEvent = function(el, e, callback, capture)\n {\n if (hasEventListeners) {\n el.removeEventListener(e, callback, !!capture);\n } else {\n el.detachEvent('on' + e, callback);\n }\n },\n\n trim = function(str)\n {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g,'');\n },\n\n hasClass = function(el, cn)\n {\n return (' ' + el.className + ' ').indexOf(' ' + cn + ' ') !== -1;\n },\n\n addClass = function(el, cn)\n {\n if (!hasClass(el, cn)) {\n el.className = (el.className === '') ? cn : el.className + ' ' + cn;\n }\n },\n\n removeClass = function(el, cn)\n {\n el.className = trim((' ' + el.className + ' ').replace(' ' + cn + ' ', ' '));\n },\n\n isArray = function(obj)\n {\n return (/Array/).test(Object.prototype.toString.call(obj));\n },\n\n isDate = function(obj)\n {\n return (/Date/).test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime());\n },\n\n isWeekend = function(date)\n {\n var day = date.getDay();\n return day === 0 || day === 6;\n },\n\n isLeapYear = function(year)\n {\n // solution lifted from date.js (MIT license): https://github.com/datejs/Datejs\n return ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0);\n },\n\n getDaysInMonth = function(year, month)\n {\n return [31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\n },\n\n setToStartOfDay = function(date)\n {\n if (isDate(date)) date.setHours(0,0,0,0);\n },\n\n compareDates = function(a,b)\n {\n // weak date comparison (use setToStartOfDay(date) to ensure correct result)\n return a.getTime() === b.getTime();\n },\n\n extend = function(to, from, overwrite)\n {\n var prop, hasProp;\n for (prop in from) {\n hasProp = to[prop] !== undefined;\n if (hasProp && typeof from[prop] === 'object' && from[prop] !== null && from[prop].nodeName === undefined) {\n if (isDate(from[prop])) {\n if (overwrite) {\n to[prop] = new Date(from[prop].getTime());\n }\n }\n else if (isArray(from[prop])) {\n if (overwrite) {\n to[prop] = from[prop].slice(0);\n }\n } else {\n to[prop] = extend({}, from[prop], overwrite);\n }\n } else if (overwrite || !hasProp) {\n to[prop] = from[prop];\n }\n }\n return to;\n },\n\n fireEvent = function(el, eventName, data)\n {\n var ev;\n\n if (document.createEvent) {\n ev = document.createEvent('HTMLEvents');\n ev.initEvent(eventName, true, false);\n ev = extend(ev, data);\n el.dispatchEvent(ev);\n } else if (document.createEventObject) {\n ev = document.createEventObject();\n ev = extend(ev, data);\n el.fireEvent('on' + eventName, ev);\n }\n },\n\n adjustCalendar = function(calendar) {\n if (calendar.month < 0) {\n calendar.year -= Math.ceil(Math.abs(calendar.month)/12);\n calendar.month += 12;\n }\n if (calendar.month > 11) {\n calendar.year += Math.floor(Math.abs(calendar.month)/12);\n calendar.month -= 12;\n }\n return calendar;\n },\n\n /**\n * defaults and localisation\n */\n defaults = {\n\n // bind the picker to a form field\n field: null,\n\n // automatically show/hide the picker on `field` focus (default `true` if `field` is set)\n bound: undefined,\n\n // data-attribute on the input field with an aria assistance text (only applied when `bound` is set)\n ariaLabel: 'Use the arrow keys to pick a date',\n\n // position of the datepicker, relative to the field (default to bottom & left)\n // ('bottom' & 'left' keywords are not used, 'top' & 'right' are modifier on the bottom/left position)\n position: 'bottom left',\n\n // automatically fit in the viewport even if it means repositioning from the position option\n reposition: true,\n\n // the default output format for `.toString()` and `field` value\n format: 'YYYY-MM-DD',\n\n // the toString function which gets passed a current date object and format\n // and returns a string\n toString: null,\n\n // used to create date object from current input string\n parse: null,\n\n // the initial date to view when first opened\n defaultDate: null,\n\n // make the `defaultDate` the initial selected value\n setDefaultDate: false,\n\n // first day of week (0: Sunday, 1: Monday etc)\n firstDay: 0,\n\n // minimum number of days in the week that gets week number one\n // default ISO 8601, week 01 is the week with the first Thursday (4)\n firstWeekOfYearMinDays: 4,\n\n // the default flag for moment's strict date parsing\n formatStrict: false,\n\n // the minimum/earliest date that can be selected\n minDate: null,\n // the maximum/latest date that can be selected\n maxDate: null,\n\n // number of years either side, or array of upper/lower range\n yearRange: 10,\n\n // show week numbers at head of row\n showWeekNumber: false,\n\n // Week picker mode\n pickWholeWeek: false,\n\n // used internally (don't config outside)\n minYear: 0,\n maxYear: 9999,\n minMonth: undefined,\n maxMonth: undefined,\n\n startRange: null,\n endRange: null,\n\n isRTL: false,\n\n // Additional text to append to the year in the calendar title\n yearSuffix: '',\n\n // Render the month after year in the calendar title\n showMonthAfterYear: false,\n\n // Render days of the calendar grid that fall in the next or previous month\n showDaysInNextAndPreviousMonths: false,\n\n // Allows user to select days that fall in the next or previous month\n enableSelectionDaysInNextAndPreviousMonths: false,\n\n // how many months are visible\n numberOfMonths: 1,\n\n // when numberOfMonths is used, this will help you to choose where the main calendar will be (default `left`, can be set to `right`)\n // only used for the first display or when a selected date is not visible\n mainCalendar: 'left',\n\n // Specify a DOM element to render the calendar in\n container: undefined,\n\n // Blur field when date is selected\n blurFieldOnSelect : true,\n\n // internationalization\n i18n: {\n previousMonth : 'Previous Month',\n nextMonth : 'Next Month',\n months : ['January','February','March','April','May','June','July','August','September','October','November','December'],\n weekdays : ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],\n weekdaysShort : ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']\n },\n\n // Theme Classname\n theme: null,\n\n // events array\n events: [],\n\n // callback function\n onSelect: null,\n onOpen: null,\n onClose: null,\n onDraw: null,\n\n // Enable keyboard input\n keyboardInput: true\n },\n\n\n /**\n * templating functions to abstract HTML rendering\n */\n renderDayName = function(opts, day, abbr)\n {\n day += opts.firstDay;\n while (day >= 7) {\n day -= 7;\n }\n return abbr ? opts.i18n.weekdaysShort[day] : opts.i18n.weekdays[day];\n },\n\n renderDay = function(opts)\n {\n var arr = [];\n var ariaSelected = 'false';\n if (opts.isEmpty) {\n if (opts.showDaysInNextAndPreviousMonths) {\n arr.push('is-outside-current-month');\n\n if(!opts.enableSelectionDaysInNextAndPreviousMonths) {\n arr.push('is-selection-disabled');\n }\n\n } else {\n return '';\n }\n }\n if (opts.isDisabled) {\n arr.push('is-disabled');\n }\n if (opts.isToday) {\n arr.push('is-today');\n }\n if (opts.isSelected) {\n arr.push('is-selected');\n ariaSelected = 'true';\n }\n if (opts.hasEvent) {\n arr.push('has-event');\n }\n if (opts.isInRange) {\n arr.push('is-inrange');\n }\n if (opts.isStartRange) {\n arr.push('is-startrange');\n }\n if (opts.isEndRange) {\n arr.push('is-endrange');\n }\n return '' +\n '' +\n '';\n },\n\n isoWeek = function(date, firstWeekOfYearMinDays) {\n // Ensure we're at the start of the day.\n date.setHours(0, 0, 0, 0);\n\n // Thursday in current week decides the year because January 4th\n // is always in the first week according to ISO8601.\n var yearDay = date.getDate(),\n weekDay = date.getDay(),\n dayInFirstWeek = firstWeekOfYearMinDays,\n dayShift = dayInFirstWeek - 1, // counting starts at 0\n daysPerWeek = 7,\n prevWeekDay = function(day) { return (day + daysPerWeek - 1) % daysPerWeek; };\n\n // Adjust to Thursday in week 1 and count number of weeks from date to week 1.\n date.setDate(yearDay + dayShift - prevWeekDay(weekDay));\n\n var jan4th = new Date(date.getFullYear(), 0, dayInFirstWeek),\n msPerDay = 24 * 60 * 60 * 1000,\n daysBetween = (date.getTime() - jan4th.getTime()) / msPerDay,\n weekNum = 1 + Math.round((daysBetween - dayShift + prevWeekDay(jan4th.getDay())) / daysPerWeek);\n\n return weekNum;\n },\n\n renderWeek = function (d, m, y, firstWeekOfYearMinDays) {\n var date = new Date(y, m, d),\n week = hasMoment ? moment(date).isoWeek() : isoWeek(date, firstWeekOfYearMinDays);\n\n return '' + week + '';\n },\n\n renderRow = function(days, isRTL, pickWholeWeek, isRowSelected)\n {\n return '' + (isRTL ? days.reverse() : days).join('') + '';\n },\n\n renderBody = function(rows)\n {\n return '' + rows.join('') + '';\n },\n\n renderHead = function(opts)\n {\n var i, arr = [];\n if (opts.showWeekNumber) {\n arr.push('');\n }\n for (i = 0; i < 7; i++) {\n arr.push('' + renderDayName(opts, i, true) + '');\n }\n return '' + (opts.isRTL ? arr.reverse() : arr).join('') + '';\n },\n\n renderTitle = function(instance, c, year, month, refYear, randId)\n {\n var i, j, arr,\n opts = instance._o,\n isMinYear = year === opts.minYear,\n isMaxYear = year === opts.maxYear,\n html = '
',\n monthHtml,\n yearHtml,\n prev = true,\n next = true;\n\n for (arr = [], i = 0; i < 12; i++) {\n arr.push('');\n }\n\n monthHtml = '
' + opts.i18n.months[month] + '
';\n\n if (isArray(opts.yearRange)) {\n i = opts.yearRange[0];\n j = opts.yearRange[1] + 1;\n } else {\n i = year - opts.yearRange;\n j = 1 + year + opts.yearRange;\n }\n\n for (arr = []; i < j && i <= opts.maxYear; i++) {\n if (i >= opts.minYear) {\n arr.push('');\n }\n }\n yearHtml = '
' + year + opts.yearSuffix + '
';\n\n if (opts.showMonthAfterYear) {\n html += yearHtml + monthHtml;\n } else {\n html += monthHtml + yearHtml;\n }\n\n if (isMinYear && (month === 0 || opts.minMonth >= month)) {\n prev = false;\n }\n\n if (isMaxYear && (month === 11 || opts.maxMonth <= month)) {\n next = false;\n }\n\n if (c === 0) {\n html += '';\n }\n if (c === (instance._o.numberOfMonths - 1) ) {\n html += '';\n }\n\n return html += '
';\n },\n\n renderTable = function(opts, data, randId)\n {\n return '' + renderHead(opts) + renderBody(data) + '
';\n },\n\n\n /**\n * Pikaday constructor\n */\n Pikaday = function(options)\n {\n var self = this,\n opts = self.config(options);\n\n self._onMouseDown = function(e)\n {\n if (!self._v) {\n return;\n }\n e = e || window.event;\n var target = e.target || e.srcElement;\n if (!target) {\n return;\n }\n\n if (!hasClass(target, 'is-disabled')) {\n if (hasClass(target, 'pika-button') && !hasClass(target, 'is-empty') && !hasClass(target.parentNode, 'is-disabled')) {\n self.setDate(new Date(target.getAttribute('data-pika-year'), target.getAttribute('data-pika-month'), target.getAttribute('data-pika-day')));\n if (opts.bound) {\n sto(function() {\n self.hide();\n if (opts.blurFieldOnSelect && opts.field) {\n opts.field.blur();\n }\n }, 100);\n }\n }\n else if (hasClass(target, 'pika-prev')) {\n self.prevMonth();\n }\n else if (hasClass(target, 'pika-next')) {\n self.nextMonth();\n }\n }\n if (!hasClass(target, 'pika-select')) {\n // if this is touch event prevent mouse events emulation\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n e.returnValue = false;\n return false;\n }\n } else {\n self._c = true;\n }\n };\n\n self._onChange = function(e)\n {\n e = e || window.event;\n var target = e.target || e.srcElement;\n if (!target) {\n return;\n }\n if (hasClass(target, 'pika-select-month')) {\n self.gotoMonth(target.value);\n }\n else if (hasClass(target, 'pika-select-year')) {\n self.gotoYear(target.value);\n }\n };\n\n self._onKeyChange = function(e)\n {\n e = e || window.event;\n\n if (self.isVisible()) {\n\n switch(e.keyCode){\n case 13:\n case 27:\n if (opts.field) {\n opts.field.blur();\n }\n break;\n case 37:\n self.adjustDate('subtract', 1);\n break;\n case 38:\n self.adjustDate('subtract', 7);\n break;\n case 39:\n self.adjustDate('add', 1);\n break;\n case 40:\n self.adjustDate('add', 7);\n break;\n case 8:\n case 46:\n self.setDate(null);\n break;\n }\n }\n };\n\n self._parseFieldValue = function()\n {\n if (opts.parse) {\n return opts.parse(opts.field.value, opts.format);\n } else if (hasMoment) {\n var date = moment(opts.field.value, opts.format, opts.formatStrict);\n return (date && date.isValid()) ? date.toDate() : null;\n } else {\n return new Date(Date.parse(opts.field.value));\n }\n };\n\n self._onInputChange = function(e)\n {\n var date;\n\n if (e.firedBy === self) {\n return;\n }\n date = self._parseFieldValue();\n if (isDate(date)) {\n self.setDate(date);\n }\n if (!self._v) {\n self.show();\n }\n };\n\n self._onInputFocus = function()\n {\n self.show();\n };\n\n self._onInputClick = function()\n {\n self.show();\n };\n\n self._onInputBlur = function()\n {\n // IE allows pika div to gain focus; catch blur the input field\n var pEl = document.activeElement;\n do {\n if (hasClass(pEl, 'pika-single')) {\n return;\n }\n }\n while ((pEl = pEl.parentNode));\n\n if (!self._c) {\n self._b = sto(function() {\n self.hide();\n }, 50);\n }\n self._c = false;\n };\n\n self._onClick = function(e)\n {\n e = e || window.event;\n var target = e.target || e.srcElement,\n pEl = target;\n if (!target) {\n return;\n }\n if (!hasEventListeners && hasClass(target, 'pika-select')) {\n if (!target.onchange) {\n target.setAttribute('onchange', 'return;');\n addEvent(target, 'change', self._onChange);\n }\n }\n do {\n if (hasClass(pEl, 'pika-single') || pEl === opts.trigger) {\n return;\n }\n }\n while ((pEl = pEl.parentNode));\n if (self._v && target !== opts.trigger && pEl !== opts.trigger) {\n self.hide();\n }\n };\n\n self.el = document.createElement('div');\n self.el.className = 'pika-single' + (opts.isRTL ? ' is-rtl' : '') + (opts.theme ? ' ' + opts.theme : '');\n\n addEvent(self.el, 'mousedown', self._onMouseDown, true);\n addEvent(self.el, 'touchend', self._onMouseDown, true);\n addEvent(self.el, 'change', self._onChange);\n\n if (opts.keyboardInput) {\n addEvent(document, 'keydown', self._onKeyChange);\n }\n\n if (opts.field) {\n if (opts.container) {\n opts.container.appendChild(self.el);\n } else if (opts.bound) {\n document.body.appendChild(self.el);\n } else {\n opts.field.parentNode.insertBefore(self.el, opts.field.nextSibling);\n }\n addEvent(opts.field, 'change', self._onInputChange);\n\n if (!opts.defaultDate) {\n opts.defaultDate = self._parseFieldValue();\n opts.setDefaultDate = true;\n }\n }\n\n var defDate = opts.defaultDate;\n\n if (isDate(defDate)) {\n if (opts.setDefaultDate) {\n self.setDate(defDate, true);\n } else {\n self.gotoDate(defDate);\n }\n } else {\n self.gotoDate(new Date());\n }\n\n if (opts.bound) {\n this.hide();\n self.el.className += ' is-bound';\n addEvent(opts.trigger, 'click', self._onInputClick);\n addEvent(opts.trigger, 'focus', self._onInputFocus);\n addEvent(opts.trigger, 'blur', self._onInputBlur);\n } else {\n this.show();\n }\n };\n\n\n /**\n * public Pikaday API\n */\n Pikaday.prototype = {\n\n\n /**\n * configure functionality\n */\n config: function(options)\n {\n if (!this._o) {\n this._o = extend({}, defaults, true);\n }\n\n var opts = extend(this._o, options, true);\n\n opts.isRTL = !!opts.isRTL;\n\n opts.field = (opts.field && opts.field.nodeName) ? opts.field : null;\n\n opts.theme = (typeof opts.theme) === 'string' && opts.theme ? opts.theme : null;\n\n opts.bound = !!(opts.bound !== undefined ? opts.field && opts.bound : opts.field);\n\n opts.trigger = (opts.trigger && opts.trigger.nodeName) ? opts.trigger : opts.field;\n\n opts.disableWeekends = !!opts.disableWeekends;\n\n opts.disableDayFn = (typeof opts.disableDayFn) === 'function' ? opts.disableDayFn : null;\n\n var nom = parseInt(opts.numberOfMonths, 10) || 1;\n opts.numberOfMonths = nom > 4 ? 4 : nom;\n\n if (!isDate(opts.minDate)) {\n opts.minDate = false;\n }\n if (!isDate(opts.maxDate)) {\n opts.maxDate = false;\n }\n if ((opts.minDate && opts.maxDate) && opts.maxDate < opts.minDate) {\n opts.maxDate = opts.minDate = false;\n }\n if (opts.minDate) {\n this.setMinDate(opts.minDate);\n }\n if (opts.maxDate) {\n this.setMaxDate(opts.maxDate);\n }\n\n if (isArray(opts.yearRange)) {\n var fallback = new Date().getFullYear() - 10;\n opts.yearRange[0] = parseInt(opts.yearRange[0], 10) || fallback;\n opts.yearRange[1] = parseInt(opts.yearRange[1], 10) || fallback;\n } else {\n opts.yearRange = Math.abs(parseInt(opts.yearRange, 10)) || defaults.yearRange;\n if (opts.yearRange > 100) {\n opts.yearRange = 100;\n }\n }\n\n return opts;\n },\n\n /**\n * return a formatted string of the current selection (using Moment.js if available)\n */\n toString: function(format)\n {\n format = format || this._o.format;\n if (!isDate(this._d)) {\n return '';\n }\n if (this._o.toString) {\n return this._o.toString(this._d, format);\n }\n if (hasMoment) {\n return moment(this._d).format(format);\n }\n return this._d.toDateString();\n },\n\n /**\n * return a Moment.js object of the current selection (if available)\n */\n getMoment: function()\n {\n return hasMoment ? moment(this._d) : null;\n },\n\n /**\n * set the current selection from a Moment.js object (if available)\n */\n setMoment: function(date, preventOnSelect)\n {\n if (hasMoment && moment.isMoment(date)) {\n this.setDate(date.toDate(), preventOnSelect);\n }\n },\n\n /**\n * return a Date object of the current selection\n */\n getDate: function()\n {\n return isDate(this._d) ? new Date(this._d.getTime()) : null;\n },\n\n /**\n * set the current selection\n */\n setDate: function(date, preventOnSelect)\n {\n if (!date) {\n this._d = null;\n\n if (this._o.field) {\n this._o.field.value = '';\n fireEvent(this._o.field, 'change', { firedBy: this });\n }\n\n return this.draw();\n }\n if (typeof date === 'string') {\n date = new Date(Date.parse(date));\n }\n if (!isDate(date)) {\n return;\n }\n\n var min = this._o.minDate,\n max = this._o.maxDate;\n\n if (isDate(min) && date < min) {\n date = min;\n } else if (isDate(max) && date > max) {\n date = max;\n }\n\n this._d = new Date(date.getTime());\n setToStartOfDay(this._d);\n this.gotoDate(this._d);\n\n if (this._o.field) {\n this._o.field.value = this.toString();\n fireEvent(this._o.field, 'change', { firedBy: this });\n }\n if (!preventOnSelect && typeof this._o.onSelect === 'function') {\n this._o.onSelect.call(this, this.getDate());\n }\n },\n\n /**\n * clear and reset the date\n */\n clear: function()\n {\n this.setDate(null);\n },\n\n /**\n * change view to a specific date\n */\n gotoDate: function(date)\n {\n var newCalendar = true;\n\n if (!isDate(date)) {\n return;\n }\n\n if (this.calendars) {\n var firstVisibleDate = new Date(this.calendars[0].year, this.calendars[0].month, 1),\n lastVisibleDate = new Date(this.calendars[this.calendars.length-1].year, this.calendars[this.calendars.length-1].month, 1),\n visibleDate = date.getTime();\n // get the end of the month\n lastVisibleDate.setMonth(lastVisibleDate.getMonth()+1);\n lastVisibleDate.setDate(lastVisibleDate.getDate()-1);\n newCalendar = (visibleDate < firstVisibleDate.getTime() || lastVisibleDate.getTime() < visibleDate);\n }\n\n if (newCalendar) {\n this.calendars = [{\n month: date.getMonth(),\n year: date.getFullYear()\n }];\n if (this._o.mainCalendar === 'right') {\n this.calendars[0].month += 1 - this._o.numberOfMonths;\n }\n }\n\n this.adjustCalendars();\n },\n\n adjustDate: function(sign, days) {\n\n var day = this.getDate() || new Date();\n var difference = parseInt(days)*24*60*60*1000;\n\n var newDay;\n\n if (sign === 'add') {\n newDay = new Date(day.valueOf() + difference);\n } else if (sign === 'subtract') {\n newDay = new Date(day.valueOf() - difference);\n }\n\n this.setDate(newDay);\n },\n\n adjustCalendars: function() {\n this.calendars[0] = adjustCalendar(this.calendars[0]);\n for (var c = 1; c < this._o.numberOfMonths; c++) {\n this.calendars[c] = adjustCalendar({\n month: this.calendars[0].month + c,\n year: this.calendars[0].year\n });\n }\n this.draw();\n },\n\n gotoToday: function()\n {\n this.gotoDate(new Date());\n },\n\n /**\n * change view to a specific month (zero-index, e.g. 0: January)\n */\n gotoMonth: function(month)\n {\n if (!isNaN(month)) {\n this.calendars[0].month = parseInt(month, 10);\n this.adjustCalendars();\n }\n },\n\n nextMonth: function()\n {\n this.calendars[0].month++;\n this.adjustCalendars();\n },\n\n prevMonth: function()\n {\n this.calendars[0].month--;\n this.adjustCalendars();\n },\n\n /**\n * change view to a specific full year (e.g. \"2012\")\n */\n gotoYear: function(year)\n {\n if (!isNaN(year)) {\n this.calendars[0].year = parseInt(year, 10);\n this.adjustCalendars();\n }\n },\n\n /**\n * change the minDate\n */\n setMinDate: function(value)\n {\n if(value instanceof Date) {\n setToStartOfDay(value);\n this._o.minDate = value;\n this._o.minYear = value.getFullYear();\n this._o.minMonth = value.getMonth();\n } else {\n this._o.minDate = defaults.minDate;\n this._o.minYear = defaults.minYear;\n this._o.minMonth = defaults.minMonth;\n this._o.startRange = defaults.startRange;\n }\n\n this.draw();\n },\n\n /**\n * change the maxDate\n */\n setMaxDate: function(value)\n {\n if(value instanceof Date) {\n setToStartOfDay(value);\n this._o.maxDate = value;\n this._o.maxYear = value.getFullYear();\n this._o.maxMonth = value.getMonth();\n } else {\n this._o.maxDate = defaults.maxDate;\n this._o.maxYear = defaults.maxYear;\n this._o.maxMonth = defaults.maxMonth;\n this._o.endRange = defaults.endRange;\n }\n\n this.draw();\n },\n\n setStartRange: function(value)\n {\n this._o.startRange = value;\n },\n\n setEndRange: function(value)\n {\n this._o.endRange = value;\n },\n\n /**\n * refresh the HTML\n */\n draw: function(force)\n {\n if (!this._v && !force) {\n return;\n }\n var opts = this._o,\n minYear = opts.minYear,\n maxYear = opts.maxYear,\n minMonth = opts.minMonth,\n maxMonth = opts.maxMonth,\n html = '',\n randId;\n\n if (this._y <= minYear) {\n this._y = minYear;\n if (!isNaN(minMonth) && this._m < minMonth) {\n this._m = minMonth;\n }\n }\n if (this._y >= maxYear) {\n this._y = maxYear;\n if (!isNaN(maxMonth) && this._m > maxMonth) {\n this._m = maxMonth;\n }\n }\n\n for (var c = 0; c < opts.numberOfMonths; c++) {\n randId = 'pika-title-' + Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 2);\n html += '
' + renderTitle(this, c, this.calendars[c].year, this.calendars[c].month, this.calendars[0].year, randId) + this.render(this.calendars[c].year, this.calendars[c].month, randId) + '
';\n }\n\n this.el.innerHTML = html;\n\n if (opts.bound) {\n if(opts.field.type !== 'hidden') {\n sto(function() {\n opts.trigger.focus();\n }, 1);\n }\n }\n\n if (typeof this._o.onDraw === 'function') {\n this._o.onDraw(this);\n }\n\n if (opts.bound) {\n // let the screen reader user know to use arrow keys\n opts.field.setAttribute('aria-label', opts.ariaLabel);\n }\n },\n\n adjustPosition: function()\n {\n var field, pEl, width, height, viewportWidth, viewportHeight, scrollTop, left, top, clientRect, leftAligned, bottomAligned;\n\n if (this._o.container) return;\n\n this.el.style.position = 'absolute';\n\n field = this._o.trigger;\n pEl = field;\n width = this.el.offsetWidth;\n height = this.el.offsetHeight;\n viewportWidth = window.innerWidth || document.documentElement.clientWidth;\n viewportHeight = window.innerHeight || document.documentElement.clientHeight;\n scrollTop = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;\n leftAligned = true;\n bottomAligned = true;\n\n if (typeof field.getBoundingClientRect === 'function') {\n clientRect = field.getBoundingClientRect();\n left = clientRect.left + window.pageXOffset;\n top = clientRect.bottom + window.pageYOffset;\n } else {\n left = pEl.offsetLeft;\n top = pEl.offsetTop + pEl.offsetHeight;\n while((pEl = pEl.offsetParent)) {\n left += pEl.offsetLeft;\n top += pEl.offsetTop;\n }\n }\n\n // default position is bottom & left\n if ((this._o.reposition && left + width > viewportWidth) ||\n (\n this._o.position.indexOf('right') > -1 &&\n left - width + field.offsetWidth > 0\n )\n ) {\n left = left - width + field.offsetWidth;\n leftAligned = false;\n }\n if ((this._o.reposition && top + height > viewportHeight + scrollTop) ||\n (\n this._o.position.indexOf('top') > -1 &&\n top - height - field.offsetHeight > 0\n )\n ) {\n top = top - height - field.offsetHeight;\n bottomAligned = false;\n }\n\n this.el.style.left = left + 'px';\n this.el.style.top = top + 'px';\n\n addClass(this.el, leftAligned ? 'left-aligned' : 'right-aligned');\n addClass(this.el, bottomAligned ? 'bottom-aligned' : 'top-aligned');\n removeClass(this.el, !leftAligned ? 'left-aligned' : 'right-aligned');\n removeClass(this.el, !bottomAligned ? 'bottom-aligned' : 'top-aligned');\n },\n\n /**\n * render HTML for a particular month\n */\n render: function(year, month, randId)\n {\n var opts = this._o,\n now = new Date(),\n days = getDaysInMonth(year, month),\n before = new Date(year, month, 1).getDay(),\n data = [],\n row = [];\n setToStartOfDay(now);\n if (opts.firstDay > 0) {\n before -= opts.firstDay;\n if (before < 0) {\n before += 7;\n }\n }\n var previousMonth = month === 0 ? 11 : month - 1,\n nextMonth = month === 11 ? 0 : month + 1,\n yearOfPreviousMonth = month === 0 ? year - 1 : year,\n yearOfNextMonth = month === 11 ? year + 1 : year,\n daysInPreviousMonth = getDaysInMonth(yearOfPreviousMonth, previousMonth);\n var cells = days + before,\n after = cells;\n while(after > 7) {\n after -= 7;\n }\n cells += 7 - after;\n var isWeekSelected = false;\n for (var i = 0, r = 0; i < cells; i++)\n {\n var day = new Date(year, month, 1 + (i - before)),\n isSelected = isDate(this._d) ? compareDates(day, this._d) : false,\n isToday = compareDates(day, now),\n hasEvent = opts.events.indexOf(day.toDateString()) !== -1 ? true : false,\n isEmpty = i < before || i >= (days + before),\n dayNumber = 1 + (i - before),\n monthNumber = month,\n yearNumber = year,\n isStartRange = opts.startRange && compareDates(opts.startRange, day),\n isEndRange = opts.endRange && compareDates(opts.endRange, day),\n isInRange = opts.startRange && opts.endRange && opts.startRange < day && day < opts.endRange,\n isDisabled = (opts.minDate && day < opts.minDate) ||\n (opts.maxDate && day > opts.maxDate) ||\n (opts.disableWeekends && isWeekend(day)) ||\n (opts.disableDayFn && opts.disableDayFn(day));\n\n if (isEmpty) {\n if (i < before) {\n dayNumber = daysInPreviousMonth + dayNumber;\n monthNumber = previousMonth;\n yearNumber = yearOfPreviousMonth;\n } else {\n dayNumber = dayNumber - days;\n monthNumber = nextMonth;\n yearNumber = yearOfNextMonth;\n }\n }\n\n var dayConfig = {\n day: dayNumber,\n month: monthNumber,\n year: yearNumber,\n hasEvent: hasEvent,\n isSelected: isSelected,\n isToday: isToday,\n isDisabled: isDisabled,\n isEmpty: isEmpty,\n isStartRange: isStartRange,\n isEndRange: isEndRange,\n isInRange: isInRange,\n showDaysInNextAndPreviousMonths: opts.showDaysInNextAndPreviousMonths,\n enableSelectionDaysInNextAndPreviousMonths: opts.enableSelectionDaysInNextAndPreviousMonths\n };\n\n if (opts.pickWholeWeek && isSelected) {\n isWeekSelected = true;\n }\n\n row.push(renderDay(dayConfig));\n\n if (++r === 7) {\n if (opts.showWeekNumber) {\n row.unshift(renderWeek(i - before, month, year, opts.firstWeekOfYearMinDays));\n }\n data.push(renderRow(row, opts.isRTL, opts.pickWholeWeek, isWeekSelected));\n row = [];\n r = 0;\n isWeekSelected = false;\n }\n }\n return renderTable(opts, data, randId);\n },\n\n isVisible: function()\n {\n return this._v;\n },\n\n show: function()\n {\n if (!this.isVisible()) {\n this._v = true;\n this.draw();\n removeClass(this.el, 'is-hidden');\n if (this._o.bound) {\n addEvent(document, 'click', this._onClick);\n this.adjustPosition();\n }\n if (typeof this._o.onOpen === 'function') {\n this._o.onOpen.call(this);\n }\n }\n },\n\n hide: function()\n {\n var v = this._v;\n if (v !== false) {\n if (this._o.bound) {\n removeEvent(document, 'click', this._onClick);\n }\n\n if (!this._o.container) {\n this.el.style.position = 'static'; // reset\n this.el.style.left = 'auto';\n this.el.style.top = 'auto';\n }\n addClass(this.el, 'is-hidden');\n this._v = false;\n if (v !== undefined && typeof this._o.onClose === 'function') {\n this._o.onClose.call(this);\n }\n }\n },\n\n /**\n * GAME OVER\n */\n destroy: function()\n {\n var opts = this._o;\n\n this.hide();\n removeEvent(this.el, 'mousedown', this._onMouseDown, true);\n removeEvent(this.el, 'touchend', this._onMouseDown, true);\n removeEvent(this.el, 'change', this._onChange);\n if (opts.keyboardInput) {\n removeEvent(document, 'keydown', this._onKeyChange);\n }\n if (opts.field) {\n removeEvent(opts.field, 'change', this._onInputChange);\n if (opts.bound) {\n removeEvent(opts.trigger, 'click', this._onInputClick);\n removeEvent(opts.trigger, 'focus', this._onInputFocus);\n removeEvent(opts.trigger, 'blur', this._onInputBlur);\n }\n }\n if (this.el.parentNode) {\n this.el.parentNode.removeChild(this.el);\n }\n }\n\n };\n\n return Pikaday;\n}));\n"]}