!function(c,h,n){"use strict";function s(t,e){this.elem=t,this.options=e,this.metadata=this.elem.getAttribute("data-plugin-options")?JSON.parse(this.elem.getAttribute("data-plugin-options")):{}}s.defaults=(s.prototype={public:function(){return{startDate:moment().startOf("day"),endDate:moment().startOf("day"),format:"L",dateSeparator:" - ",calendarCount:2,mobileBreakpoint:760,isHotelBooking:!1,inline:!1,minDate:null,maxDate:null,showHeader:!0,showFooter:!0,rangeOrientation:"horizontal",verticalRangeWidth:180,showButtons:!1,startOnMonday:!1,container:"body",oneCalendarWidth:230,enableKeyboard:!0,showOn:"bottom",arrowOn:"left",autoAlign:!0,locale:moment.locale(),singleDate:!1,target:null,autoCloseOnSelect:!1,startEmpty:!1,isRTL:!1,ranges:[{title:"Today",startDate:moment(),endDate:moment()},{title:"3 Days",startDate:moment(),endDate:moment().add(2,"days")},{title:"5 Days",startDate:moment(),endDate:moment().add(4,"days")},{title:"1 Week",startDate:moment(),endDate:moment().add(6,"days")},{title:"Till Next Week",startDate:moment(),endDate:moment().endOf("week")},{title:"Till Next Month",startDate:moment(),endDate:moment().endOf("month")}],rangeLabel:"Ranges: ",cancelLabel:"Cancel",applyLabel:"Apply",nextMonthIcon:"",prevMonthIcon:"",rangeIcon:"",headerSeparator:"",onbeforeselect:function(){return!0},onafterselect:function(){},onbeforeshow:function(){},onbeforehide:function(){},onaftershow:function(){},onafterhide:function(){},onfirstselect:function(){},onrangeselect:function(){},onbeforemonthchange:function(){return!0},onaftermonthchange:function(){},onafteryearchange:function(){},ondraw:function(){},onBeforeInit:function(){},onBeforeDestroy:function(){return!0},oninit:function(){},ondestroy:function(){},validateClick:function(){return!0},onCancel:function(){return!0},disableDays:function(){return!1},disabledRanges:[],continuous:!1,disableOnlyStart:!1,disableOnlyEnd:!1,minSelectedDays:0,enableMonthSwitcher:!0,enableYearSwitcher:!0,enableSwipe:!0,numericMonthSwitcher:!1,monthSwitcherFormat:"MMMM",showWeekNumbers:!1,hideOutOfRange:!1,DOBCalendar:!1}},private:function(){return{startSelected:!1,currentDate:moment().startOf("day"),endSelected:!0,hoverDate:null,keyboardHoverDate:null,headerStartDay:null,headerStartDate:null,headerStartWeekday:null,headerEndDay:null,headerEndDate:null,headerEndWeekday:null,swipeX:0,swipeY:0,swipeStart:0,swipeTimeout:null,isMobile:!1,valElements:["BUTTON","OPTION","INPUT","LI","METER","PROGRESS","PARAM"],dontHideOnce:!1,initiator:null,initComplete:!1,startDateBackup:null,startDateInitial:null,endDateInitial:null,firstValueSelected:!1,throttleTimeout:null,instanceId:null,documentEvent:null,delayInputUpdate:!1,lastScrollX:0,lastScrollY:0,isTicking:!1,parentScrollEventsAttached:!1,rafID:0,disabledDays:{}}},init:function(){return this.config=this.extend(this.extend(this.public(),this.options),this.metadata),this.globals=this.private(),this.globals.isMobile=this.checkMobile(),this.globals.instanceId=Math.round(+new Date+100*Math.random()),this.events=this.eventsPrototype(),this.events.init(this.globals.instanceId),this.config.onBeforeInit(this),this.applyConfig(),this.fetchInputs(),this.drawUserInterface(),this.drawOverlay(),this.addInitialEvents(),this.addKeyboardEvents(),(this.elem.caleran=this).config.oninit(this),this.globals.initComplete=!0,this.globals.lastScrollX=0,this.globals.lastScrollY=0,this.events.dispatch(c,"resize"),this},validateDates:function(){var t;(moment.isMoment(this.config.startDate)&&this.config.startDate.isValid()||moment(this.config.startDate,this.config.format).isValid())&&(moment.isMoment(this.config.endDate)&&this.config.endDate.isValid()||moment(this.config.endDate,this.config.format).isValid())?(this.config.startDate=moment(this.config.startDate,this.config.format).middleOfDay().locale(this.config.locale),this.config.endDate=moment(this.config.endDate,this.config.format).middleOfDay().locale(this.config.locale),this.config.startDate.isAfter(this.config.endDate,"day")&&(t=this.config.startDate.clone(),this.config.startDate=this.config.endDate.clone(),this.config.endDate=t.clone(),t=null)):(this.config.startDate=moment().middleOfDay().locale(this.config.locale),this.config.endDate=moment().middleOfDay().locale(this.config.locale)),this.globals.currentDate=moment(this.config.startDate,this.config.format),null!==this.config.minDate&&moment(this.config.minDate,this.config.format).isValid()?this.config.minDate=moment(this.config.minDate,this.config.format).middleOfDay():this.config.minDate=null,null!==this.config.maxDate&&moment(this.config.maxDate,this.config.format).isValid()?this.config.maxDate=moment(this.config.maxDate,this.config.format).middleOfDay():this.config.maxDate=null,null!==this.config.minDate&&null!==this.config.maxDate&&this.config.minDate.isAfter(this.config.maxDate,"day")&&(t=this.config.minDate.clone(),this.config.minDate=this.config.maxDate.clone(),this.config.maxDate=t.clone(),t=null),null!==this.config.minDate&&null!==this.config.startDate&&this.config.minDate.isAfter(this.config.startDate,"day")&&(this.config.startDate=this.config.minDate.clone()),null!==this.config.minDate&&null!==this.config.endDate&&this.config.minDate.isAfter(this.config.endDate,"day")&&(this.config.endDate=this.config.minDate.clone()),null!==this.config.maxDate&&null!==this.config.startDate&&this.config.maxDate.isBefore(this.config.startDate,"day")&&(this.config.startDate=this.config.maxDate.clone()),null!==this.config.maxDate&&null!==this.config.endDate&&this.config.maxDate.isBefore(this.config.endDate,"day")&&(this.config.endDate=this.config.maxDate.clone()),(!1===this.checkRangeContinuity()||1==this.config.disableOnlyStart&&this.isDisabled(this.config.startDate,this.config.isHotelBooking)||!1===this.config.singleDate&&this.config.disableOnlyEnd&&this.isDisabled(this.config.endDate,this.config.isHotelBooking)||this.config.startEmpty&&0==this.globals.firstValueSelected)&&this.clearInput()},applyConfig:function(){null===this.config.target&&(this.config.target=this.elem),!0===this.config.inline&&(this.config.DOBCalendar=!1),1==this.config.DOBCalendar&&(this.config.singleDate=!0),"string"==typeof this.config.container&&(this.config.container=h.querySelector(this.config.container));for(var t=["startDate","endDate","minDate","maxDate"],e=0;e .caleran-container-mobile");if(0"+this.config.headerSeparator+"
"),t+="
",this.input.insertAdjacentHTML("beforeend",t),!1===this.config.showHeader){t=this.input.querySelectorAll(".caleran-header");for(var e=0;e"+this.config.prevMonthIcon+"");if(!i)for(t=0;t"+this.config.nextMonthIcon+"")}else this.config.isRTL?(e||a[a.length-1].insertAdjacentHTML("afterbegin","
"+this.config.prevMonthIcon+"
"),i||a[0].insertAdjacentHTML("beforeend","
"+this.config.nextMonthIcon+"
")):(e||a[0].insertAdjacentHTML("afterbegin","
"+this.config.prevMonthIcon+"
"),i||a[a.length-1].insertAdjacentHTML("beforeend","
"+this.config.nextMonthIcon+"
"))},drawCalendarOfMonth:function(t){var e=moment(t).locale(this.config.locale).startOf("month").startOf("isoweek").middleOfDay(),i=e.day();1==i&&!1===this.config.startOnMonday?(e.add(-1,"days"),i=0):0===i&&!0===this.config.startOnMonday&&(e.add(1,"days"),i=1),e.isAfter(moment(t).date(1))&&e.add(-7,"day");var a="
",n=0,s="",o="";this.config.enableMonthSwitcher&&(s=" class='caleran-month-switch'"),this.config.enableYearSwitcher&&(o=" class='caleran-year-switch'"),a+="
"+t.locale(this.config.locale).format("MMMM")+" "+this.localizeNumbers(t.year())+"
",a+="
";var l=moment.localeData(this.config.locale).weekdaysShort();this.config.showWeekNumbers&&(a+="
 
");for(var r=i;r"+l[r%7]+"
";for(var c=!0,h=null;n<42;){var d=e.middleOfDay().unix(),f=t.month()==e.month()?"caleran-day":"caleran-disabled";n%7==0&&this.config.showWeekNumbers&&(a+="
"+e.format("ww")+"
"),a+="
"+this.localizeNumbers(e.date())+"
",this.isDisabledOnDraw(e)?(this.globals.disabledDays[d]=1==c?2:1,c=!0,h=d):(1==c&&null!=h&&(this.globals.disabledDays[h]=3),c=!1),e.add(moment.duration({days:1})),n++}a+="
",a+="",this.calendars.insertAdjacentHTML("beforeend",a)},drawFooter:function(){if(!1===this.config.singleDate&&!0===this.config.showFooter){if("horizontal"===this.config.rangeOrientation||this.globals.isMobile)this.input.insertAdjacentHTML("beforeend","
");else{this.input.classList.add("caleran-input-vertical-range");var t=h.createElement("div");for(t.classList.add("caleran-left");this.input.firstChild;)t.appendChild(this.input.firstChild);this.input.appendChild(t),t.insertAdjacentHTML("afterend","
")}var e=this.input.querySelector(".caleran-ranges");e.insertAdjacentHTML("beforeend",""+this.config.rangeIcon+"
"+this.config.rangeLabel+"
");for(var i=0;i"+this.config.ranges[i].title+"")}this.globals.isMobile&&!this.config.inline&&(!0!==this.config.singleDate&&!1!==this.config.showFooter||this.input.insertAdjacentHTML("beforeend","
")),(this.globals.isMobile&&!this.config.inline||!this.globals.isMobile&&!this.config.inline&&this.config.showButtons)&&("horizontal"===this.config.rangeOrientation||this.globals.isMobile?this.input.insertAdjacentHTML("beforeend",""):this.input.querySelector(".caleran-right").insertAdjacentHTML("beforeend",""),this.footer=this.input.querySelector(".caleran-footer"),this.footer.insertAdjacentHTML("beforeend",""),this.footer.insertAdjacentHTML("beforeend",""),!1===this.globals.firstValueSelected&&1==this.config.startEmpty&&this.footer.querySelector(".caleran-apply").setAttribute("disabled","disabled"),this.globals.isMobile&&!1===this.globals.endSelected&&this.footer.querySelector(".caleran-apply").setAttribute("disabled","disabled"))},drawNextMonth:function(t){if(t=t||c.event,1==this.config.hideOutOfRange&&this.config.maxDate&&this.globals.currentDate.clone().add(this.config.calendarCount,"month").isAfter(this.config.maxDate,"month"))return!1;if(null===this.globals.swipeTimeout){var e=this;this.globals.swipeTimeout=setTimeout(function(){if(!0===e.config.onbeforemonthchange(e,e.globals.currentDate.clone().startOfMonth(),"next")){var t=e.calendars.scrollTop;e.globals.currentDate.middleOfDay().add(1,"month"),e.reDrawCalendars(),e.calendars.scrollTop=t,e.config.onaftermonthchange(e,e.globals.currentDate.clone().startOfMonth())}e.globals.swipeTimeout=null},100)}return!!t.isCancellable&&this.stopBubbling(t)},drawPrevMonth:function(t){if(t=t||c.event,1==this.config.hideOutOfRange&&this.config.minDate&&this.globals.currentDate.clone().add(-1,"month").isBefore(this.config.minDate,"month"))return!1;if(null===this.globals.swipeTimeout){var e=this;this.globals.swipeTimeout=setTimeout(function(){if(!0===e.config.onbeforemonthchange(e,e.globals.currentDate.clone().startOfMonth(),"prev")){var t=e.calendars.scrollTop;e.globals.currentDate.middleOfDay().subtract(1,"month"),e.reDrawCalendars(),e.calendars.scrollTop=t,e.config.onaftermonthchange(e,e.globals.currentDate.clone().startOfMonth())}e.globals.swipeTimeout=null},100)}return!!t.isCancellable&&this.stopBubbling(t)},cellClicked:function(t){var e=t||c.event,i=e.target||e.srcElement;!1===i.classList.contains("caleran-day")&&(i=this.closest(i,".caleran-day"));var a=parseInt(i.getAttribute("data-value"),10),n=moment.unix(a).middleOfDay();if(0==this.config.validateClick(n))return!1;if(!1===this.config.singleDate)if(!1===this.globals.startSelected){null!==this.config.startDate&&(this.globals.startDateBackup=this.config.startDate.clone()),this.config.startDate=n,this.config.endDate=null,this.globals.startSelected=!0,this.globals.endSelected=!1;var s=void 0===this.footer?[]:this.footer.querySelector(".caleran-apply");0");for(var t=this.calendars.querySelector(".caleran-month-selector"),i=this.globals.currentDate.get("month"),a=0;a<12;a++)t.insertAdjacentHTML("beforeend","
"+(this.config.numericMonthSelector?a+1:moment({day:15,hour:12,month:a}).locale(this.config.locale).format(this.config.monthSwitcherFormat))+"
");t.style.display="block",this.optimizeFontSize(t.querySelectorAll(".caleran-ms-month")),this.rebindEventEach(t,".caleran-ms-month","click",function(t){return!!e.globals&&(e.globals.currentDate.month(parseInt(t.target.getAttribute("data-month"),10)),e.config.onaftermonthchange(e,e.globals.currentDate.clone().startOfMonth()),e.reDrawCalendars(),e.stopBubbling(t))})}},yearSwitchClicked:function(){if(!(0");var s=this.calendars.querySelector(".caleran-year-selector"),t=this.globals.currentDate.get("year");s.insertAdjacentHTML("beforeend","
"),s.setAttribute("data-year",t);for(var e=t-6;e"+this.localizeNumbers(e)+"");s.insertAdjacentHTML("beforeend","
"),s.style.display="block",this.optimizeFontSize(s.querySelectorAll(".caleran-ys-year")),this.rebindEventScoped(h,".caleran-ys-year","click.caleranys",function(t){return!!n.globals&&(n.globals.currentDate.year(parseInt(t.target.getAttribute("data-year"))),n.config.onafteryearchange(n,n.globals.currentDate.clone().startOf("year")),n.reDrawCalendars(),1==n.config.DOBCalendar&&n.calendars.querySelectorAll(".caleran-calendar")[0].querySelector(".caleran-month-switch").click(),n.stopBubbling(t))}),this.rebindEventScoped(h,".caleran-ys-year-prev","click.caleranysprev",function(t){if(!n.globals)return!1;var e=parseInt(s.getAttribute("data-year"),10)-13,i=n.globals.currentDate.get("year");s.setAttribute("data-year",e),s.innerHTML="",s.insertAdjacentHTML("beforeend","
");for(var a=e-6;a<7+e;a++)s.insertAdjacentHTML("beforeend","
"+n.localizeNumbers(a)+"
");return s.insertAdjacentHTML("beforeend","
"),n.stopBubbling(t)}),this.rebindEventScoped(h,".caleran-ys-year-next","click.caleranysnext",function(t){if(!n.globals)return!1;var e=parseInt(s.getAttribute("data-year"),10)+13,i=n.globals.currentDate.get("year");s.setAttribute("data-year",e),s.innerHTML="",s.insertAdjacentHTML("beforeend","
");for(var a=e-6;a"+n.localizeNumbers(a)+"");return s.insertAdjacentHTML("beforeend","
"),n.stopBubbling(t)})}},optimizeFontSize:function(t){for(var e=0;ei");var s=a,o=n.querySelector(".font-adjuster");if(s.offsetHeight===o.offsetHeight){for(o.parentNode.removeChild(o);s.firstChild;)n.appendChild(s.firstChild);s.parentNode.removeChild(s)}else{for(var l=0;s.offsetHeight!==o.offsetHeight&&l<16;){var r=0;if(r=void 0!==c.getComputedStyle?parseFloat(c.getComputedStyle(o,null).getPropertyValue("font-size")):parseFloat(o.style.fontSize.replace(/px$/,"")),s.parentNode.style.fontSize=r-1+"px",o.style.fontSize=r-1+"px",r<2)break;l++}for(o.parentNode.removeChild(o);s.firstChild;)n.appendChild(s.firstChild);s.parentNode.removeChild(s)}}},showDropdown:function(t){var e=t||c.event||jQuery.Event("click",{target:this.elem}),i=e.target||e.srcElement;(!this.globals.isMobile&&"none"==this.container.style.display||this.globals.isMobile&&"none"==this.input.style.display)&&(i!==this.elem&&(this.globals.dontHideOnce=!0,this.globals.initiator=i),this.fetchInputs(),this.reDrawCalendars(),this.globals.startDateInitial=this.config.startDate,this.globals.endDateInitial=this.config.endDate,this.config.onbeforeshow(this),this.globals.isMobile?(this.input.style.display="flex",this.overlay.style.display="block",h.body.classList.add("caleran-open")):this.container.style.display="block",this.setViewport(),1==this.config.DOBCalendar&&this.calendars.querySelectorAll(".caleran-calendar")[0].querySelector(".caleran-year-switch").click(),this.config.onaftershow(this))},hideDropdown:function(t){var e=t||c.event||new Event("click",{target:"body"}),i=e.target||e.srcElement;this.globals.initiator!==i&&!1===this.config.inline&&(!this.globals.isMobile&&"none"!==this.container.style.display||this.globals.isMobile&&"none"!==this.input.style.display)&&(this.config.onbeforehide(this),this.globals.isMobile?(this.input.style.display="none",this.overlay.style.display="none",h.body.classList.remove("caleran-open")):this.container.style.display="none",(this.globals.hoverDate=null)!==this.globals.startDateBackup&&(this.config.startDate=this.globals.startDateBackup,this.globals.startSelected=!1),this.config.onafterhide(this))},reDrawCells:function(){var t=null!=this.config.startDate?this.config.startDate.middleOfDay().unix():null,e=null!=this.config.endDate?this.config.endDate.middleOfDay().unix():null,i=null!=this.config.minDate?this.config.minDate.middleOfDay().unix():null,a=null!=this.config.maxDate?this.config.maxDate.middleOfDay().unix():null,n=null!=this.globals.hoverDate?this.globals.hoverDate.middleOfDay().unix():null,s=null!=this.globals.keyboardHoverDate?this.globals.keyboardHoverDate.middleOfDay().unix():null,o=moment().middleOfDay().unix();this.lastHoverStatus=!1;for(var l=0;l div:not(.caleran-dayofweek):not(.caleran-weeknumber)"),h=parseInt(r.getAttribute("data-month"),10),d=0;dt.left-50?this.positionOnLeft(!1,t):this.positionOnRight(!1,t)},positionOnRightAlign:function(t){var e=this.positionOnRight(!0,t),i=this.getDimensions(this.container);e.left+i.widtht.top?this.positionOnTop(!1,t):this.positionOnBottom(!1,t)},getDimensions:function(t,e){var i={left:0,top:0},a=t;for(this.attachScrollEvents(t);null!=a&&a!=h.body;){var n=c.getComputedStyle(a);if("fixed"==n.position){i.top=i.top+c.scrollY+parseInt(n.top,10),i.left=i.left+c.scrollX+parseInt(n.left,10);break}i.left=i.left+a.offsetLeft,i.top=i.top+a.offsetTop,a=a.offsetParent}return{width:t.offsetWidth,height:t.offsetHeight,offsetLeft:i.left,offsetTop:i.top}},attachScrollEvents:function(t){var e=h.body;if(t===this.elem&&0==this.globals.parentScrollEventsAttached){var i=this.proxy(function(){this.globals&&(this.globals.isTicking||(this.globals.isTicking=!0,this.globals.rafID=this.requestAnimFrame(this.proxy(function(){this.setViewport(),this.cancelAnimFrame(this.globals.rafID),this.globals.isTicking=!1},this))))},this);if(t!==e)for(var a=t.parentNode;a!==e&&null!==a;)a.scrollHeight>a.offsetHeight&&this.rebindEvent(a,"scroll",i),a=a.parentNode;this.globals.parentScrollEventsAttached=!0}},getViewport:function(){var t=this.globals.lastScrollY,e=this.globals.lastScrollX,i=t+c.innerHeight;return{top:t,left:e,right:e+c.innerWidth,bottom:i}},debugPosition:function(t,e,i,a,n,s){0;");var o=h.querySelector("#"+t);o.style.top=e+"px",o.style.left=i+"px",o.style.right=a+"px",o.style.bottom=n+"px",o.style.position="absolute",o.style.backgroundColor=s,o.style.zIndex=1e5,o.style.opacity=.5,o.style.width=a-i+"px",o.style.height=n-e+"px",o.style.pointerEvents="none"},rebindEventEach:function(t,e,i,a,n){for(var s=t.querySelectorAll(e),o=0;o=t.changedTouches[0].screenX&&i())}.bind(this))),!this.globals.isMobile&&!this.config.showButtons||this.config.inline||(this.rebindEventEach(this.input,".caleran-cancel","click",this.proxy(function(t){1==this.config.onCancel(this,this.config.startDate,this.config.endDate)&&(this.globals.startDateInitial&&(this.config.startDate=this.globals.startDateInitial.clone()),this.globals.endDateInitial&&(this.config.endDate=this.globals.endDateInitial.clone()),this.hideDropdown(t))},this),!1),this.rebindEventEach(this.input,".caleran-apply","click",this.proxy(function(t){!0===this.config.onbeforeselect(this,this.config.startDate.clone(),this.config.endDate.clone())&&!0===this.checkRangeContinuity()?(this.globals.firstValueSelected=!0,this.globals.delayInputUpdate?(this.globals.delayInputUpdate=!1,this.updateInput(!0),this.globals.delayInputUpdate=!0):this.updateInput(!0)):this.fetchInputs(),this.hideDropdown(t)},this),!1))},isVisible:function(t){return 0c.innerHeight?e.input.style.height=t+"px":e.input.style.height="auto"),e.cancelAnimFrame(e.globals.rafID)}})}),"none"!==this.input.style.display&&this.globals.isMobile&&this.events.dispatch(this.container,"caleran:resize"),!1===this.globals.isMobile&&this.rebindEvent(c,"resize scroll",function(){e.globals&&(e.globals.isTicking||(e.globals.isTicking=!0,e.globals.lastScrollX=c.scrollX||c.pageXOffset||h.documentElement.scrollLeft,e.globals.lastScrollY=c.scrollY||c.pageYOffset||h.documentElement.scrollTop,e.globals.rafID=e.requestAnimFrame(e.proxy(function(){this.globals&&(this.setViewport(),this.globals.isTicking=!1,this.cancelAnimFrame(this.globals.rafID))},e))))})},contains:function(t,e){return"contains"in t?t.contains(e):t.compareDocumentPosition(e)%16},stopBubbling:function(t){return void 0!==t.stopPropagation?t.stopPropagation():void 0!==t.cancelBubble&&(t.cancelBubble=!0),void 0!==t.preventDefault&&t.preventDefault(),t.returnValue=!1},debounce:function(a,n,s){return function(){var t=this,e=arguments;if(t.globals){var i=s&&!t.globals.throttleTimeout;clearTimeout(t.globals.throttleTimeout),t.globals.throttleTimeout=setTimeout(function(){t.globals&&(t.globals.throttleTimeout=null,s||a.apply(t,e))},n),i&&a.apply(t,e)}}},proxy:function(t,e){return t.bind(e)},extend:function(t,e){var i={};function a(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])}return a(i,t),a(i,e),i},requestAnimFrame:function(t){return"function"==typeof c.requestAnimationFrame?requestAnimationFrame(t):"function"==typeof c.webkitRequestAnimationFrame?webkitRequestAnimationFrame(t):"function"==typeof c.mozRequestAnimationFrame?mozRequestAnimationFrame(t):setTimeout(t,100/6)},cancelAnimFrame:function(t){return("function"==typeof c.cancelAnimationFrame?cancelAnimationFrame:"function"==typeof c.webkitCancelAnimationFrame?webkitCancelAnimationFrame:"function"==typeof c.mozCancelAnimationFrame?mozCancelAnimationFrame:clearTimeout)(t)},addKeyboardEvents:function(){if(this.config.enableKeyboard){var t=function(t){var e=t.which?t.which:t.keyCode;null===this.globals.keyboardHoverDate?null===this.config.startDate?this.globals.keyboardHoverDate=moment({day:1,month:parseInt(this.calendars.first().getAttribute("data-month"))}).middleOfDay():this.globals.keyboardHoverDate=this.config.startDate.clone().middleOfDay():this.globals.keyboardHoverDate.middleOfDay();var i=!1,a=!1;switch(e){case 37:this.globals.keyboardHoverDate.add(-1,"day"),a=i=!0;break;case 38:this.globals.keyboardHoverDate.add(-1,"week"),a=i=!0;break;case 39:this.globals.keyboardHoverDate.add(1,"day"),a=i=!0;break;case 40:this.globals.keyboardHoverDate.add(1,"week"),a=i=!0;break;case 32:this.input.querySelectorAll(".caleran-day[data-value='"+this.globals.keyboardHoverDate.middleOfDay().unix()+"']")[0].click(),a=!(i=!1);break;case 33:t.shiftKey?this.globals.keyboardHoverDate.add(-1,"years"):this.globals.keyboardHoverDate.add(-1,"months"),a=i=!0;break;case 34:t.shiftKey?this.globals.keyboardHoverDate.add(1,"years"):this.globals.keyboardHoverDate.add(1,"months"),a=i=!0;break;case 27:case 9:this.hideDropdown(t);break;case 36:t.shiftKey&&(this.globals.keyboardHoverDate=moment().middleOfDay(),a=i=!0)}if(i||a){this.globals.keyboardHoverDate=this.globals.keyboardHoverDate.middleOfDay();var n=this.input.querySelectorAll(".caleran-day[data-value]");return(this.globals.keyboardHoverDate.isBefore(moment.unix(n[0].getAttribute("data-value")),"day")||this.globals.keyboardHoverDate.isAfter(moment.unix(n[n.length-1].getAttribute("data-value")),"day"))&&(this.globals.currentDate=this.globals.keyboardHoverDate.clone().startOfMonth(),this.reDrawCalendars(),i=!1),i&&(this.globals.hoverDate=null,this.reDrawCells()),!!a&&this.stopBubbling(t)}}.bind(this);this.rebindEvent(this.elem,"keydown",t,!1),this.rebindEvent(this.container,"keydown",t,!1)}},destroy:function(){if(this.config.onBeforeDestroy(this)){this.events.remove(this.container,"caleran:resize"),this.config.inline?(this.input.parentNode.removeChild(this.input),this.globals.isMobile?this.unwrap(this.elem,"caleran-container-mobile"):this.unwrap(this.elem,"caleran-container"),this.elem.type="text"):this.container.parentNode.removeChild(this.container),this.events.remove(h,this.globals.documentEvent),this.elem.caleran=null,this.config.ondestroy(this);var t=null;for(t in this.config)this.config[t]=null;for(t in this.config=null,this.globals)this.globals[t]=null;this.globals=null}},unwrap:function(t,e){if(t&&t.parentNode&&t.parentNode.classList.contains(e)){t.parentNode.insertAdjacentHTML("beforebegin",t.parentNode.innerHTML);var i=t.parentNode.parentNode.querySelector("."+e);i.parentNode.removeChild(i)}},checkMobile:function(){return c.matchMedia("only screen and (max-width: "+this.config.mobileBreakpoint+"px)").matches},fixDateTime:function(t){return null!=t&&0==moment.isMoment(t)&&(t="string"==typeof t?moment(t,this.config.format).locale(this.config.locale):moment(t).locale(this.config.locale)),t},setStart:function(t){var e=this.fixDateTime(t);!1===this.isDisabled(e)&&moment(e).isValid()&&(this.config.startDate=moment(e),this.refreshValues())},setEnd:function(t){var e=this.fixDateTime(t);!1===this.isDisabled(e)&&moment(e).isValid()&&(this.config.endDate=moment(e),this.refreshValues())},setMinDate:function(t){var e=this.fixDateTime(t);moment(e).isValid()&&(this.config.minDate=moment(e),this.refreshValues())},setMaxDate:function(t){var e=this.fixDateTime(t);moment(e).isValid()&&(this.config.maxDate=moment(e),this.refreshValues())},setDisplayDate:function(t){var e=this.fixDateTime(t);moment(e).isValid()&&(this.globals.currentDate=moment(e),this.reDrawCalendars())},refreshValues:function(){var t=this.globals.delayInputUpdate;this.globals.delayInputUpdate=!1,this.validateDates(),this.updateInput(),this.globals.delayInputUpdate=t,this.reDrawCells()},eventsPrototype:function(){return{instanceId:null,init:function(t){this.instanceId=t},add:function(e,i,a,t){var n=this;e.eventsList=e.eventsList||{};var s=(i+=".caleran_"+this.instanceId)+"__"+Object.keys(e.eventsList).filter(function(t){return 0===t.indexOf(i+"__")}).length;e.eventsList[s]=t?function(t){a(t),n.remove(e,i,a)}:function(t){a(t)};var o=i.split(/\./)[0];e.addEventListener?e.addEventListener(o,e.eventsList[s],!1):e.attachEvent?e.attachEvent("on"+o,e.eventsList[s]):e["on"+o]=e.eventsList[s]},remove:function(t,e,i){if("object"==typeof t.eventsList){var a;e+=".caleran_"+this.instanceId,a=Object.keys(t.eventsList).filter(function(t){return 0===t.indexOf(e+"__")});for(var n=0;n