/*! clndr.min.js v1.4.7 2016-11-26 */ !function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):"object"==typeof exports?a(require("jquery"),require("moment")):a(jQuery,moment)}(function(a,b){function c(c,e){var g,h,i;this.element=c,this.options=a.extend(!0,{},f,e),this.options.moment&&(b=this.options.moment),this.constraints={next:!0,today:!0,previous:!0,nextYear:!0,previousYear:!0},this.options.events.length&&(this.options.multiDayEvents?this.options.events=this.addMultiDayMomentObjectsToEvents(this.options.events):this.options.events=this.addMomentObjectToEvents(this.options.events)),this.options.lengthOfTime.months||this.options.lengthOfTime.days?this.options.lengthOfTime.months?(this.options.lengthOfTime.days=null,this.options.lengthOfTime.startDate?this.intervalStart=b(this.options.lengthOfTime.startDate).startOf("month"):this.options.startWithMonth?this.intervalStart=b(this.options.startWithMonth).startOf("month"):this.intervalStart=b().startOf("month"),this.intervalEnd=b(this.intervalStart).add(this.options.lengthOfTime.months,"months").subtract(1,"days"),this.month=this.intervalStart.clone()):this.options.lengthOfTime.days&&(this.options.lengthOfTime.startDate?this.intervalStart=b(this.options.lengthOfTime.startDate).startOf("day"):this.intervalStart=b().weekday(0).startOf("day"),this.intervalEnd=b(this.intervalStart).add(this.options.lengthOfTime.days-1,"days").endOf("day"),this.month=this.intervalStart.clone()):(this.month=b().startOf("month"),this.intervalStart=b(this.month),this.intervalEnd=b(this.month).endOf("month")),this.options.startWithMonth&&(this.month=b(this.options.startWithMonth).startOf("month"),this.intervalStart=b(this.month),this.intervalEnd=this.options.lengthOfTime.days?b(this.month).add(this.options.lengthOfTime.days-1,"days").endOf("day"):b(this.month).endOf("month")),this.options.constraints&&(this.options.constraints.startDate&&(i=b(this.options.constraints.startDate),this.options.lengthOfTime.days?(this.intervalStart.isBefore(i,"week")&&(this.intervalStart=i.startOf("week")),g=this.intervalStart.diff(this.intervalEnd,"days"),(gc;c++)this.daysOfTheWeek.push(b().weekday(c).format("dd").charAt(0))}if(this.options.weekOffset&&(this.daysOfTheWeek=this.shiftWeekdayLabels(this.options.weekOffset)),!a.isFunction(this.options.render)){if(this.options.render=null,"undefined"==typeof _)throw new Error("Underscore was not found. Please include underscore.js OR provide a custom render function.");this.compiledClndrTemplate=_.template(this.options.template)}a(this.element).html("
"),this.calendarContainer=a(".clndr",this.element),this.bindEvents(),this.render(),this.options.ready&&this.options.ready.apply(this,[])},c.prototype.shiftWeekdayLabels=function(a){for(var b=this.daysOfTheWeek,c=0;a>c;c++)b.push(b.shift());return b},c.prototype.createDaysObject=function(c,d){var e,f,g,h,i,j,k=[],l=c.clone();d.diff(c,"days");if(this._currentIntervalStart=c.clone(),this.eventsLastMonth=[],this.eventsNextMonth=[],this.eventsThisInterval=[],this.options.events.length&&(this.eventsThisInterval=a(this.options.events).filter(function(){var a=this._clndrStartDateObject.isAfter(d),b=this._clndrEndDateObject.isBefore(c);return b||a?!1:!0}).toArray(),this.options.showAdjacentMonths&&(e=c.clone().subtract(1,"months").startOf("month"),f=e.clone().endOf("month"),g=d.clone().add(1,"months").startOf("month"),h=g.clone().endOf("month"),this.eventsLastMonth=a(this.options.events).filter(function(){var a=this._clndrEndDateObject.isBefore(e),b=this._clndrStartDateObject.isAfter(f);return a||b?!1:!0}).toArray(),this.eventsNextMonth=a(this.options.events).filter(function(){var a=this._clndrEndDateObject.isBefore(g),b=this._clndrStartDateObject.isAfter(h);return a||b?!1:!0}).toArray())),!this.options.lengthOfTime.days)if(i=l.weekday()-this.options.weekOffset,0>i&&(i+=7),this.options.showAdjacentMonths)for(var m=1;i>=m;m++){var n=b([c.year(),c.month(),m]).subtract(i,"days");k.push(this.createDayObject(n,this.eventsLastMonth))}else for(var m=0;i>m;m++)k.push(this.calendarDay({classes:this.options.targets.empty+" "+this.options.classes.lastMonth}));for(j=c.clone();j.isBefore(d)||j.isSame(d,"day");)k.push(this.createDayObject(j.clone(),this.eventsThisInterval)),j.add(1,"days");if(!this.options.lengthOfTime.days)for(;k.length%7!==0;)this.options.showAdjacentMonths?k.push(this.createDayObject(j.clone(),this.eventsNextMonth)):k.push(this.calendarDay({classes:this.options.targets.empty+" "+this.options.classes.nextMonth})),j.add(1,"days");if(this.options.forceSixRows&&42!==k.length)for(;k.length<42;)this.options.showAdjacentMonths?(k.push(this.createDayObject(j.clone(),this.eventsNextMonth)),j.add(1,"days")):k.push(this.calendarDay({classes:this.options.targets.empty+" "+this.options.classes.nextMonth}));return k},c.prototype.createDayObject=function(a,c){var d,e,f,g=0,h=b(),i=[],j="",k={isToday:!1,isInactive:!1,isAdjacentMonth:!1};for(!a.isValid()&&a.hasOwnProperty("_d")&&void 0!=a._d&&(a=b(a._d)),g;ga.month()?(j+=" "+this.options.classes.adjacentMonth,k.isAdjacentMonth=!0,j+=this._currentIntervalStart.year()===a.year()?" "+this.options.classes.lastMonth:" "+this.options.classes.nextMonth):this._currentIntervalStart.month()1?arguments[1]:this,d=c.options.lengthOfTime,e={withCallbacks:!1},f={end:c.intervalEnd.clone(),start:c.intervalStart.clone()};return b=a.extend(!0,{},e,b),c.constraints.previous?(d.days?(c.intervalStart.subtract(d.interval,"days").startOf("day"),c.intervalEnd=c.intervalStart.clone().add(d.days-1,"days").endOf("day"),c.month=c.intervalStart.clone()):(c.intervalStart.subtract(d.interval,"months").startOf("month"),c.intervalEnd=c.intervalStart.clone().add(d.months||d.interval,"months").subtract(1,"days").endOf("month"),c.month=c.intervalStart.clone()),c.render(),b.withCallbacks&&c.triggerEvents(c,f),c):c},c.prototype.backAction=function(a){var b=a.data.context;b.backActionWithContext(b)},c.prototype.backActionWithContext=function(a){a.back({withCallbacks:!0},a)},c.prototype.previous=function(a){return this.back(a)},c.prototype.forward=function(b){var c=arguments.length>1?arguments[1]:this,d=c.options.lengthOfTime,e={withCallbacks:!1},f={end:c.intervalEnd.clone(),start:c.intervalStart.clone()};return b=a.extend(!0,{},e,b),c.constraints.next?(c.options.lengthOfTime.days?(c.intervalStart.add(d.interval,"days").startOf("day"),c.intervalEnd=c.intervalStart.clone().add(d.days-1,"days").endOf("day"),c.month=c.intervalStart.clone()):(c.intervalStart.add(d.interval,"months").startOf("month"),c.intervalEnd=c.intervalStart.clone().add(d.months||d.interval,"months").subtract(1,"days").endOf("month"),c.month=c.intervalStart.clone()),c.render(),b.withCallbacks&&c.triggerEvents(c,f),c):c},c.prototype.forwardAction=function(a){var b=a.data.context;b.forwardActionWithContext(b)},c.prototype.forwardActionWithContext=function(a){a.forward({withCallbacks:!0},a)},c.prototype.next=function(a){return this.forward(a)},c.prototype.previousYear=function(b){var c=arguments.length>1?arguments[1]:this,d={withCallbacks:!1},e={end:c.intervalEnd.clone(),start:c.intervalStart.clone()};return b=a.extend(!0,{},d,b),c.constraints.previousYear?(c.month.subtract(1,"year"),c.intervalStart.subtract(1,"year"),c.intervalEnd.subtract(1,"year"),c.render(),b.withCallbacks&&c.triggerEvents(c,e),c):c},c.prototype.previousYearAction=function(a){var b=a.data.context;b.previousYear({withCallbacks:!0},b)},c.prototype.nextYear=function(b){var c=arguments.length>1?arguments[1]:this,d={withCallbacks:!1},e={end:c.intervalEnd.clone(),start:c.intervalStart.clone()};return b=a.extend(!0,{},d,b),c.constraints.nextYear?(c.month.add(1,"year"),c.intervalStart.add(1,"year"),c.intervalEnd.add(1,"year"),c.render(),b.withCallbacks&&c.triggerEvents(c,e),c):c},c.prototype.nextYearAction=function(a){var b=a.data.context;b.nextYear({withCallbacks:!0},b)},c.prototype.today=function(c){var d=arguments.length>1?arguments[1]:this,e=d.options.lengthOfTime,f={withCallbacks:!1},g={end:d.intervalEnd.clone(),start:d.intervalStart.clone()};c=a.extend(!0,{},f,c),d.month=b().startOf("month"),e.days?(e.startDate?d.intervalStart=b().weekday(e.startDate.weekday()).startOf("day"):d.intervalStart=b().weekday(0).startOf("day"),d.intervalEnd=d.intervalStart.clone().add(e.days-1,"days").endOf("day")):(d.intervalStart=b().startOf("month"),d.intervalEnd=d.intervalStart.clone().add(e.months||e.interval,"months").subtract(1,"days").endOf("month")),d.intervalStart.isSame(g.start)&&d.intervalEnd.isSame(g.end)||d.render(),c.withCallbacks&&(d.options.clickEvents.today&&d.options.clickEvents.today.apply(d,[b(d.month)]),d.triggerEvents(d,g))},c.prototype.todayAction=function(a){var b=a.data.context;b.today({withCallbacks:!0},b)},c.prototype.setMonth=function(a,b){var c=this.options.lengthOfTime,d={end:this.intervalEnd.clone(),start:this.intervalStart.clone()};return c.days||c.months?(console.log("You are using a custom date interval. Use Clndr.setIntervalStart(startDate) instead."),this):(this.month.month(a),this.intervalStart=this.month.clone().startOf("month"),this.intervalEnd=this.intervalStart.clone().endOf("month"),this.render(),b&&b.withCallbacks&&this.triggerEvents(this,d),this)},c.prototype.setYear=function(a,b){var c={end:this.intervalEnd.clone(),start:this.intervalStart.clone()};return this.month.year(a),this.intervalEnd.year(a),this.intervalStart.year(a),this.render(),b&&b.withCallbacks&&this.triggerEvents(this,c),this},c.prototype.setIntervalStart=function(a,c){var d=this.options.lengthOfTime,e={end:this.intervalEnd.clone(),start:this.intervalStart.clone()};return d.days||d.months?(d.days?(this.intervalStart=b(a).startOf("day"),this.intervalEnd=this.intervalStart.clone().add(d-1,"days").endOf("day")):(this.intervalStart=b(a).startOf("month"),this.intervalEnd=this.intervalStart.clone().add(d.months||d.interval,"months").subtract(1,"days").endOf("month")),this.month=this.intervalStart.clone(),this.render(),c&&c.withCallbacks&&this.triggerEvents(this,e),this):(console.log("You are using a custom date interval. Use Clndr.setIntervalStart(startDate) instead."),this)},c.prototype.setEvents=function(a){return this.options.multiDayEvents?this.options.events=this.addMultiDayMomentObjectsToEvents(a):this.options.events=this.addMomentObjectToEvents(a),this.render(),this},c.prototype.addEvents=function(b){var c=arguments.length>1?arguments[1]:!0;return this.options.multiDayEvents?this.options.events=a.merge(this.options.events,this.addMultiDayMomentObjectsToEvents(b)):this.options.events=a.merge(this.options.events,this.addMomentObjectToEvents(b)),c&&this.render(),this},c.prototype.removeEvents=function(a){for(var b=this.options.events.length-1;b>=0;b--)1==a(this.options.events[b])&&this.options.events.splice(b,1);return this.render(),this},c.prototype.addMomentObjectToEvents=function(a){var c=0,d=this;for(c;c1)throw new Error("CLNDR does not support multiple elements yet. Make sure your clndr selector returns only one element.");if(!this.length)throw new Error("CLNDR cannot be instantiated on an empty selector.");return this.data("plugin_clndr")?this.data("plugin_clndr"):(b=new c(this,a),this.data("plugin_clndr",b),b)}});