!function(root,factory){"use strict";var moment;if("object"==typeof exports){try{moment=require("moment")}catch(e){}module.exports=factory(moment)}else"function"==typeof define&&define.amd?define(function(req){var id="moment";try{moment=req(id)}catch(e){}return factory(moment)}):root.Pikaday=factory(root.moment)}(this,function(moment){"use strict";var hasMoment="function"==typeof moment,hasEventListeners=!!window.addEventListener,document=window.document,sto=window.setTimeout,addEvent=function(el,e,callback,capture){hasEventListeners?el.addEventListener(e,callback,!!capture):el.attachEvent("on"+e,callback)},removeEvent=function(el,e,callback,capture){hasEventListeners?el.removeEventListener(e,callback,!!capture):el.detachEvent("on"+e,callback)},trim=function(str){return str.trim?str.trim():str.replace(/^\s+|\s+$/g,"")},hasClass=function(el,cn){return(" "+el.className+" ").indexOf(" "+cn+" ")!==-1},addClass=function(el,cn){hasClass(el,cn)||(el.className=""===el.className?cn:el.className+" "+cn)},removeClass=function(el,cn){el.className=trim((" "+el.className+" ").replace(" "+cn+" "," "))},isArray=function(obj){return/Array/.test(Object.prototype.toString.call(obj))},isDate=function(obj){return/Date/.test(Object.prototype.toString.call(obj))&&!isNaN(obj.getTime())},isWeekend=function(date){var day=date.getDay();return 0===day||6===day},isLeapYear=function(year){return year%4===0&&year%100!==0||year%400===0},getDaysInMonth=function(year,month){return[31,isLeapYear(year)?29:28,31,30,31,30,31,31,30,31,30,31][month]},setToStartOfDay=function(date){isDate(date)&&date.setHours(0,0,0,0)},compareDates=function(a,b){return a.getTime()===b.getTime()},extend=function(to,from,overwrite){var prop,hasProp;for(prop in from)hasProp=void 0!==to[prop],hasProp&&"object"==typeof from[prop]&&null!==from[prop]&&void 0===from[prop].nodeName?isDate(from[prop])?overwrite&&(to[prop]=new Date(from[prop].getTime())):isArray(from[prop])?overwrite&&(to[prop]=from[prop].slice(0)):to[prop]=extend({},from[prop],overwrite):!overwrite&&hasProp||(to[prop]=from[prop]);return to},fireEvent=function(el,eventName,data){var ev;document.createEvent?(ev=document.createEvent("HTMLEvents"),ev.initEvent(eventName,!0,!1),ev=extend(ev,data),el.dispatchEvent(ev)):document.createEventObject&&(ev=document.createEventObject(),ev=extend(ev,data),el.fireEvent("on"+eventName,ev))},adjustCalendar=function(calendar){return calendar.month<0&&(calendar.year-=Math.ceil(Math.abs(calendar.month)/12),calendar.month+=12),calendar.month>11&&(calendar.year+=Math.floor(Math.abs(calendar.month)/12),calendar.month-=12),calendar},defaults={field:null,bound:void 0,position:"bottom left",reposition:!0,format:"YYYY-MM-DD",toString:null,parse:null,defaultDate:null,setDefaultDate:!1,firstDay:0,formatStrict:!1,minDate:null,maxDate:null,yearRange:10,showWeekNumber:!1,pickWholeWeek:!1,minYear:0,maxYear:9999,minMonth:void 0,maxMonth:void 0,startRange:null,endRange:null,isRTL:!1,yearSuffix:"",showMonthAfterYear:!1,showDaysInNextAndPreviousMonths:!1,enableSelectionDaysInNextAndPreviousMonths:!1,numberOfMonths:1,mainCalendar:"left",container:void 0,blurFieldOnSelect:!0,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","Tue","Wed","Thu","Fri","Sat"]},theme:null,events:[],onSelect:null,onOpen:null,onClose:null,onDraw:null},renderDayName=function(opts,day,abbr){for(day+=opts.firstDay;day>=7;)day-=7;return abbr?opts.i18n.weekdaysShort[day]:opts.i18n.weekdays[day]},renderDay=function(opts){var arr=[],ariaSelected="false";if(opts.isEmpty){if(!opts.showDaysInNextAndPreviousMonths)return'<td class="is-empty"></td>';arr.push("is-outside-current-month"),opts.enableSelectionDaysInNextAndPreviousMonths||arr.push("is-selection-disabled")}return opts.isDisabled&&arr.push("is-disabled"),opts.isToday&&arr.push("is-today"),opts.isSelected&&(arr.push("is-selected"),ariaSelected="true"),opts.hasEvent&&arr.push("has-event"),opts.isInRange&&arr.push("is-inrange"),opts.isStartRange&&arr.push("is-startrange"),opts.isEndRange&&arr.push("is-endrange"),'<td data-day="'+opts.day+'" class="'+arr.join(" ")+'" aria-selected="'+ariaSelected+'"><button class="pika-button pika-day" type="button" data-pika-year="'+opts.year+'" data-pika-month="'+opts.month+'" data-pika-day="'+opts.day+'">'+opts.day+"</button></td>"},renderWeek=function(d,m,y){var onejan=new Date(y,0,1),weekNum=Math.ceil(((new Date(y,m,d)-onejan)/864e5+onejan.getDay()+1)/7);return'<td class="pika-week">'+weekNum+"</td>"},renderRow=function(days,isRTL,pickWholeWeek,isRowSelected){return'<tr class="pika-row'+(pickWholeWeek?" pick-whole-week":"")+(isRowSelected?" is-selected":"")+'">'+(isRTL?days.reverse():days).join("")+"</tr>"},renderBody=function(rows){return"<tbody>"+rows.join("")+"</tbody>"},renderHead=function(opts){var i,arr=[];for(opts.showWeekNumber&&arr.push("<th></th>"),i=0;i<7;i++)arr.push('<th scope="col"><abbr title="'+renderDayName(opts,i)+'">'+renderDayName(opts,i,!0)+"</abbr></th>");return"<thead><tr>"+(opts.isRTL?arr.reverse():arr).join("")+"</tr></thead>"},renderTitle=function(instance,c,year,month,refYear,randId){var i,j,arr,monthHtml,yearHtml,opts=instance._o,isMinYear=year===opts.minYear,isMaxYear=year===opts.maxYear,html='<div id="'+randId+'" class="pika-title" role="heading" aria-live="assertive">',prev=!0,next=!0;for(arr=[],i=0;i<12;i++)arr.push('<option value="'+(year===refYear?i-c:12+i-c)+'"'+(i===month?' selected="selected"':"")+(isMinYear&&i<opts.minMonth||isMaxYear&&i>opts.maxMonth?'disabled="disabled"':"")+">"+opts.i18n.months[i]+"</option>");for(monthHtml='<div class="pika-label">'+opts.i18n.months[month]+'<select class="pika-select pika-select-month" tabindex="-1">'+arr.join("")+"</select></div>",isArray(opts.yearRange)?(i=opts.yearRange[0],j=opts.yearRange[1]+1):(i=year-opts.yearRange,j=1+year+opts.yearRange),arr=[];i<j&&i<=opts.maxYear;i++)i>=opts.minYear&&arr.push('<option value="'+i+'"'+(i===year?' selected="selected"':"")+">"+i+"</option>");return yearHtml='<div class="pika-label">'+year+opts.yearSuffix+'<select class="pika-select pika-select-year" tabindex="-1">'+arr.join("")+"</select></div>",html+=opts.showMonthAfterYear?yearHtml+monthHtml:monthHtml+yearHtml,isMinYear&&(0===month||opts.minMonth>=month)&&(prev=!1),isMaxYear&&(11===month||opts.maxMonth<=month)&&(next=!1),0===c&&(html+='<button class="pika-prev'+(prev?"":" is-disabled")+'" type="button">'+opts.i18n.previousMonth+"</button>"),c===instance._o.numberOfMonths-1&&(html+='<button class="pika-next'+(next?"":" is-disabled")+'" type="button">'+opts.i18n.nextMonth+"</button>"),html+="</div>"},renderTable=function(opts,data,randId){return'<table cellpadding="0" cellspacing="0" class="pika-table" role="grid" aria-labelledby="'+randId+'">'+renderHead(opts)+renderBody(data)+"</table>"},Pikaday=function(options){var self=this,opts=self.config(options);self._onMouseDown=function(e){if(self._v){e=e||window.event;var target=e.target||e.srcElement;if(target)if(hasClass(target,"is-disabled")||(!hasClass(target,"pika-button")||hasClass(target,"is-empty")||hasClass(target.parentNode,"is-disabled")?hasClass(target,"pika-prev")?self.prevMonth():hasClass(target,"pika-next")&&self.nextMonth():(self.setDate(new Date(target.getAttribute("data-pika-year"),target.getAttribute("data-pika-month"),target.getAttribute("data-pika-day"))),opts.bound&&sto(function(){self.hide(),opts.blurFieldOnSelect&&opts.field&&opts.field.blur()},100))),hasClass(target,"pika-select"))self._c=!0;else{if(!e.preventDefault)return e.returnValue=!1,!1;e.preventDefault()}}},self._onChange=function(e){e=e||window.event;var target=e.target||e.srcElement;target&&(hasClass(target,"pika-select-month")?self.gotoMonth(target.value):hasClass(target,"pika-select-year")&&self.gotoYear(target.value))},self._onKeyChange=function(e){if(e=e||window.event,self.isVisible())switch(e.keyCode){case 13:case 27:opts.field&&opts.field.blur();break;case 37:e.preventDefault(),self.adjustDate("subtract",1);break;case 38:self.adjustDate("subtract",7);break;case 39:self.adjustDate("add",1);break;case 40:self.adjustDate("add",7)}},self._onInputChange=function(e){var date;e.firedBy!==self&&(opts.parse?date=opts.parse(opts.field.value,opts.format):hasMoment?(date=moment(opts.field.value,opts.format,opts.formatStrict),date=date&&date.isValid()?date.toDate():null):date=new Date(Date.parse(opts.field.value)),isDate(date)&&self.setDate(date),self._v||self.show())},self._onInputFocus=function(){self.show()},self._onInputClick=function(){self.show()},self._onInputBlur=function(){var pEl=document.activeElement;do if(hasClass(pEl,"pika-single"))return;while(pEl=pEl.parentNode);self._c||(self._b=sto(function(){self.hide()},50)),self._c=!1},self._onClick=function(e){e=e||window.event;var target=e.target||e.srcElement,pEl=target;if(target){!hasEventListeners&&hasClass(target,"pika-select")&&(target.onchange||(target.setAttribute("onchange","return;"),addEvent(target,"change",self._onChange)));do if(hasClass(pEl,"pika-single")||pEl===opts.trigger)return;while(pEl=pEl.parentNode);self._v&&target!==opts.trigger&&pEl!==opts.trigger&&self.hide()}},self.el=document.createElement("div"),self.el.className="pika-single"+(opts.isRTL?" is-rtl":"")+(opts.theme?" "+opts.theme:""),addEvent(self.el,"mousedown",self._onMouseDown,!0),addEvent(self.el,"touchend",self._onMouseDown,!0),addEvent(self.el,"change",self._onChange),addEvent(document,"keydown",self._onKeyChange),opts.field&&(opts.container?opts.container.appendChild(self.el):opts.bound?document.body.appendChild(self.el):opts.field.parentNode.insertBefore(self.el,opts.field.nextSibling),addEvent(opts.field,"change",self._onInputChange),opts.defaultDate||(hasMoment&&opts.field.value?opts.defaultDate=moment(opts.field.value,opts.format).toDate():opts.defaultDate=new Date(Date.parse(opts.field.value)),opts.setDefaultDate=!0));var defDate=opts.defaultDate;isDate(defDate)?opts.setDefaultDate?self.setDate(defDate,!0):self.gotoDate(defDate):self.gotoDate(new Date),opts.bound?(this.hide(),self.el.className+=" is-bound",addEvent(opts.trigger,"click",self._onInputClick),addEvent(opts.trigger,"focus",self._onInputFocus),addEvent(opts.trigger,"blur",self._onInputBlur)):this.show()};return Pikaday.prototype={config:function(options){this._o||(this._o=extend({},defaults,!0));var opts=extend(this._o,options,!0);opts.isRTL=!!opts.isRTL,opts.field=opts.field&&opts.field.nodeName?opts.field:null,opts.theme="string"==typeof opts.theme&&opts.theme?opts.theme:null,opts.bound=!!(void 0!==opts.bound?opts.field&&opts.bound:opts.field),opts.trigger=opts.trigger&&opts.trigger.nodeName?opts.trigger:opts.field,opts.disableWeekends=!!opts.disableWeekends,opts.disableDayFn="function"==typeof opts.disableDayFn?opts.disableDayFn:null;var nom=parseInt(opts.numberOfMonths,10)||1;if(opts.numberOfMonths=nom>4?4:nom,isDate(opts.minDate)||(opts.minDate=!1),isDate(opts.maxDate)||(opts.maxDate=!1),opts.minDate&&opts.maxDate&&opts.maxDate<opts.minDate&&(opts.maxDate=opts.minDate=!1),opts.minDate&&this.setMinDate(opts.minDate),opts.maxDate&&this.setMaxDate(opts.maxDate),isArray(opts.yearRange)){var fallback=(new Date).getFullYear()-10;opts.yearRange[0]=parseInt(opts.yearRange[0],10)||fallback,opts.yearRange[1]=parseInt(opts.yearRange[1],10)||fallback}else opts.yearRange=Math.abs(parseInt(opts.yearRange,10))||defaults.yearRange,opts.yearRange>100&&(opts.yearRange=100);return opts},toString:function(format){return format=format||this._o.format,isDate(this._d)?this._o.toString?this._o.toString(this._d,format):hasMoment?moment(this._d).format(format):this._d.toDateString():""},getMoment:function(){return hasMoment?moment(this._d):null},setMoment:function(date,preventOnSelect){hasMoment&&moment.isMoment(date)&&this.setDate(date.toDate(),preventOnSelect)},getDate:function(){return isDate(this._d)?new Date(this._d.getTime()):null},setDate:function(date,preventOnSelect){if(!date)return this._d=null,this._o.field&&(this._o.field.value="",fireEvent(this._o.field,"change",{firedBy:this})),this.draw();if("string"==typeof date&&(date=new Date(Date.parse(date))),isDate(date)){var min=this._o.minDate,max=this._o.maxDate;isDate(min)&&date<min?date=min:isDate(max)&&date>max&&(date=max),this._d=new Date(date.getTime()),setToStartOfDay(this._d),this.gotoDate(this._d),this._o.field&&(this._o.field.value=this.toString(),fireEvent(this._o.field,"change",{firedBy:this})),preventOnSelect||"function"!=typeof this._o.onSelect||this._o.onSelect.call(this,this.getDate())}},gotoDate:function(date){var newCalendar=!0;if(isDate(date)){if(this.calendars){var firstVisibleDate=new Date(this.calendars[0].year,this.calendars[0].month,1),lastVisibleDate=new Date(this.calendars[this.calendars.length-1].year,this.calendars[this.calendars.length-1].month,1),visibleDate=date.getTime();lastVisibleDate.setMonth(lastVisibleDate.getMonth()+1),lastVisibleDate.setDate(lastVisibleDate.getDate()-1),newCalendar=visibleDate<firstVisibleDate.getTime()||lastVisibleDate.getTime()<visibleDate}newCalendar&&(this.calendars=[{month:date.getMonth(),year:date.getFullYear()}],"right"===this._o.mainCalendar&&(this.calendars[0].month+=1-this._o.numberOfMonths)),this.adjustCalendars()}},adjustDate:function(sign,days){var newDay,day=this.getDate()||new Date,difference=24*parseInt(days)*60*60*1e3;"add"===sign?newDay=new Date(day.valueOf()+difference):"subtract"===sign&&(newDay=new Date(day.valueOf()-difference)),this.setDate(newDay)},adjustCalendars:function(){this.calendars[0]=adjustCalendar(this.calendars[0]);for(var c=1;c<this._o.numberOfMonths;c++)this.calendars[c]=adjustCalendar({month:this.calendars[0].month+c,year:this.calendars[0].year});this.draw()},gotoToday:function(){this.gotoDate(new Date)},gotoMonth:function(month){isNaN(month)||(this.calendars[0].month=parseInt(month,10),this.adjustCalendars())},nextMonth:function(){this.calendars[0].month++,this.adjustCalendars()},prevMonth:function(){this.calendars[0].month--,this.adjustCalendars()},gotoYear:function(year){isNaN(year)||(this.calendars[0].year=parseInt(year,10),this.adjustCalendars())},setMinDate:function(value){value instanceof Date?(setToStartOfDay(value),this._o.minDate=value,this._o.minYear=value.getFullYear(),this._o.minMonth=value.getMonth()):(this._o.minDate=defaults.minDate,this._o.minYear=defaults.minYear,this._o.minMonth=defaults.minMonth,this._o.startRange=defaults.startRange),this.draw()},setMaxDate:function(value){value instanceof Date?(setToStartOfDay(value),this._o.maxDate=value,this._o.maxYear=value.getFullYear(),this._o.maxMonth=value.getMonth()):(this._o.maxDate=defaults.maxDate,this._o.maxYear=defaults.maxYear,this._o.maxMonth=defaults.maxMonth,this._o.endRange=defaults.endRange),this.draw()},setStartRange:function(value){this._o.startRange=value},setEndRange:function(value){this._o.endRange=value},draw:function(force){if(this._v||force){var randId,opts=this._o,minYear=opts.minYear,maxYear=opts.maxYear,minMonth=opts.minMonth,maxMonth=opts.maxMonth,html="";this._y<=minYear&&(this._y=minYear,!isNaN(minMonth)&&this._m<minMonth&&(this._m=minMonth)),this._y>=maxYear&&(this._y=maxYear,!isNaN(maxMonth)&&this._m>maxMonth&&(this._m=maxMonth)),randId="pika-title-"+Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,2);for(var c=0;c<opts.numberOfMonths;c++)html+='<div class="pika-lendar">'+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)+"</div>";this.el.innerHTML=html,opts.bound&&"hidden"!==opts.field.type&&sto(function(){opts.trigger.focus()},1),"function"==typeof this._o.onDraw&&this._o.onDraw(this),opts.bound&&opts.field.setAttribute("aria-label","Use the arrow keys to pick a date")}},adjustPosition:function(){var field,pEl,width,height,viewportWidth,viewportHeight,scrollTop,left,top,clientRect;if(!this._o.container){if(this.el.style.position="absolute",field=this._o.trigger,pEl=field,width=this.el.offsetWidth,height=this.el.offsetHeight,viewportWidth=window.innerWidth||document.documentElement.clientWidth,viewportHeight=window.innerHeight||document.documentElement.clientHeight,scrollTop=window.pageYOffset||document.body.scrollTop||document.documentElement.scrollTop,"function"==typeof field.getBoundingClientRect)clientRect=field.getBoundingClientRect(),left=clientRect.left+window.pageXOffset,top=clientRect.bottom+window.pageYOffset;else for(left=pEl.offsetLeft,top=pEl.offsetTop+pEl.offsetHeight;pEl=pEl.offsetParent;)left+=pEl.offsetLeft,top+=pEl.offsetTop;(this._o.reposition&&left+width>viewportWidth||this._o.position.indexOf("right")>-1&&left-width+field.offsetWidth>0)&&(left=left-width+field.offsetWidth),(this._o.reposition&&top+height>viewportHeight+scrollTop||this._o.position.indexOf("top")>-1&&top-height-field.offsetHeight>0)&&(top=top-height-field.offsetHeight),this.el.style.left=left+"px",this.el.style.top=top+"px"}},render:function(year,month,randId){var opts=this._o,now=new Date,days=getDaysInMonth(year,month),before=new Date(year,month,1).getDay(),data=[],row=[];setToStartOfDay(now),opts.firstDay>0&&(before-=opts.firstDay,before<0&&(before+=7));for(var previousMonth=0===month?11:month-1,nextMonth=11===month?0:month+1,yearOfPreviousMonth=0===month?year-1:year,yearOfNextMonth=11===month?year+1:year,daysInPreviousMonth=getDaysInMonth(yearOfPreviousMonth,previousMonth),cells=days+before,after=cells;after>7;)after-=7;cells+=7-after;for(var isWeekSelected=!1,i=0,r=0;i<cells;i++){var day=new Date(year,month,1+(i-before)),isSelected=!!isDate(this._d)&&compareDates(day,this._d),isToday=compareDates(day,now),hasEvent=opts.events.indexOf(day.toDateString())!==-1,isEmpty=i<before||i>=days+before,dayNumber=1+(i-before),monthNumber=month,yearNumber=year,isStartRange=opts.startRange&&compareDates(opts.startRange,day),isEndRange=opts.endRange&&compareDates(opts.endRange,day),isInRange=opts.startRange&&opts.endRange&&opts.startRange<day&&day<opts.endRange,isDisabled=opts.minDate&&day<opts.minDate||opts.maxDate&&day>opts.maxDate||opts.disableWeekends&&isWeekend(day)||opts.disableDayFn&&opts.disableDayFn(day);isEmpty&&(i<before?(dayNumber=daysInPreviousMonth+dayNumber,monthNumber=previousMonth,yearNumber=yearOfPreviousMonth):(dayNumber-=days,monthNumber=nextMonth,yearNumber=yearOfNextMonth));var dayConfig={day:dayNumber,month:monthNumber,year:yearNumber,hasEvent:hasEvent,isSelected:isSelected,isToday:isToday,isDisabled:isDisabled,isEmpty:isEmpty,isStartRange:isStartRange,isEndRange:isEndRange,isInRange:isInRange,showDaysInNextAndPreviousMonths:opts.showDaysInNextAndPreviousMonths,enableSelectionDaysInNextAndPreviousMonths:opts.enableSelectionDaysInNextAndPreviousMonths};opts.pickWholeWeek&&isSelected&&(isWeekSelected=!0),row.push(renderDay(dayConfig)),7===++r&&(opts.showWeekNumber&&row.unshift(renderWeek(i-before,month,year)),data.push(renderRow(row,opts.isRTL,opts.pickWholeWeek,isWeekSelected)),row=[],r=0,isWeekSelected=!1)}return renderTable(opts,data,randId)},isVisible:function(){return this._v},show:function(){this.isVisible()||(this._v=!0,this.draw(),removeClass(this.el,"is-hidden"),this._o.bound&&(addEvent(document,"click",this._onClick),this.adjustPosition()),"function"==typeof this._o.onOpen&&this._o.onOpen.call(this))},hide:function(){var v=this._v;v!==!1&&(this._o.bound&&removeEvent(document,"click",this._onClick),this.el.style.position="static",this.el.style.left="auto",this.el.style.top="auto",addClass(this.el,"is-hidden"),this._v=!1,void 0!==v&&"function"==typeof this._o.onClose&&this._o.onClose.call(this))},destroy:function(){this.hide(),removeEvent(this.el,"mousedown",this._onMouseDown,!0),removeEvent(this.el,"touchend",this._onMouseDown,!0),removeEvent(this.el,"change",this._onChange),removeEvent(document,"keydown",this._onKeyChange),this._o.field&&(removeEvent(this._o.field,"change",this._onInputChange),this._o.bound&&(removeEvent(this._o.trigger,"click",this._onInputClick),removeEvent(this._o.trigger,"focus",this._onInputFocus),removeEvent(this._o.trigger,"blur",this._onInputBlur))),this.el.parentNode&&this.el.parentNode.removeChild(this.el)}},Pikaday});