/********************************************************************
 *	Kalendae, a framework agnostic javascript date picker           *
 *	Copyright(c) 2013 Jarvis Badgley (chipersoft@gmail.com)         *
 *	http://github.com/ChiperSoft/Kalendae                           *
 *	Version 0.5.1                                                   *
 ********************************************************************/

(function(ma){var v,m,q=function(a,b){if("function"===typeof document.addEventListener||f.isIE8()){var e=!1;try{e=a instanceof Element}catch(q){e=!!a&&1===e.nodeType}e||"string"===typeof a||(b=a);var d=this,k=d.classes,g=d.settings=f.merge(d.defaults,{attachTo:a},b||{}),e=d.container=f.make("div",{"class":k.container}),n=d.calendars=[],x=m().day(g.weekStart),p,A=[],r,l,u,v;r=[];var L;l=0;p=g.months;f.isIE8()&&f.addClassName(e,"ie8");for(l=7;l--;)A.push(x.format(g.columnHeaderFormat)),x.add(1,"days");
F(d);if("object"===typeof g.subscribe)for(l in g.subscribe)g.subscribe.hasOwnProperty(l)&&d.subscribe(l,g.subscribe[l]);p=g.viewStartDate?m(g.viewStartDate,g.format):m();d.viewStartDate=p.date(1);d._sel=[];g.selected&&(d.setSelected(g.selected,!1),d.viewStartDate=m(d._sel[0]));(p={past:g.months-1,"today-past":g.months-1,any:2<g.months?Math.floor(g.months/2):0,"today-future":0,future:0}[this.settings.direction])&&m().month()==m(d.viewStartDate).month()&&(d.viewStartDate=m(d.viewStartDate).subtract({M:p}).date(1));
d.defaultView=m(d.viewStartDate);if("function"===typeof g.blackout)d.blackout=g.blackout;else if(g.blackout){var D=B(g.blackout,g.parseSplitDelimiter,g.format);d.blackout=function(a){a=m(a).startOf("day").yearDay();if(1>a||!d._sel)return!1;for(var e=D.length;e--;)if(D[e].startOf("day").yearDay()===a)return!0;return!1}}else d.blackout=function(){return!1};d.direction=d.directions[g.direction]?d.directions[g.direction]:d.directions.any;for(p=Math.max(g.months,1);p--;){r=f.make("div",{"class":k.calendar},
e);r.setAttribute("data-cal-index",p);1<g.months&&(p==Math.max(g.months-1,1)?f.addClassName(r,k.monthFirst):0===p?f.addClassName(r,k.monthLast):f.addClassName(r,k.monthMiddle));l=f.make("div",{"class":k.title},r);g.useYearNav||f.addClassName(l,k.disableYearNav);f.make("a",{"class":k.previousYear},l);f.make("a",{"class":k.previousMonth},l);f.make("a",{"class":k.nextYear},l);f.make("a",{"class":k.nextMonth},l);x=f.make("span",{"class":k.caption},l);u=f.make("div",{"class":k.header},r);l=0;do L=f.make("span",
{},u),L.innerHTML=A[l];while(7>++l);u=f.make("div",{"class":k.days},r);l=0;r=[];do"week"==g.mode?(0===l%7&&(v=f.make("div",{"class":k.week+" clearfix"},u),r.push(v)),f.make("span",{},v)):r.push(f.make("span",{},u));while(42>++l);n.push({caption:x,days:r});p&&f.make("div",{"class":k.monthSeparator},e)}d.draw();f.addEvent(e,"mousedown",function(a,e){var b;if(f.hasClassName(e,k.nextMonth))d.disableNext||!1===d.publish("view-changed",d,["next-month"])||(d.viewStartDate.add(1,"months"),d.draw());else if(f.hasClassName(e,
k.previousMonth))d.disablePreviousMonth||!1===d.publish("view-changed",d,["previous-month"])||(d.viewStartDate.subtract("months",1),d.draw());else if(f.hasClassName(e,k.nextYear))d.disableNext||!1===d.publish("view-changed",d,["next-year"])||(d.viewStartDate.add(1,"years"),d.draw());else if(f.hasClassName(e,k.previousYear))d.disablePreviousMonth||!1===d.publish("view-changed",d,["previous-year"])||(d.viewStartDate.subtract("years",1),d.draw());else if((f.hasClassName(e.parentNode,k.days)||f.hasClassName(e.parentNode,
k.week))&&f.hasClassName(e,k.dayActive)&&(b=e.getAttribute("data-date"))){if(b=m(b,g.dayAttributeFormat).hours(12),!1!==d.publish("date-clicked",d,[b]))switch(g.mode){case "multiple":d.addSelected(b)||d.removeSelected(b);break;case "range":d.addSelected(b);break;case "week":d.weekSelected(b);break;default:d.addSelected(b)}}else f.hasClassName(e.parentNode,k.week)&&(b=e.getAttribute("data-date"))&&(b=m(b,g.dayAttributeFormat).hours(12),!1!==d.publish("date-clicked",d,[b])&&"week"==g.mode&&d.weekSelected(b));
return!1});(g.attachTo=f.$(g.attachTo))&&g.attachTo.appendChild(e)}};q.prototype={defaults:{attachTo:null,months:1,weekStart:0,direction:"any",directionScrolling:!0,viewStartDate:null,blackout:null,selected:null,mode:"single",dayOutOfMonthClickable:!1,format:null,subscribe:null,columnHeaderFormat:"dd",titleFormat:"MMMM, YYYY",dayNumberFormat:"D",dayAttributeFormat:"YYYY-MM-DD",parseSplitDelimiter:/,\s*|\s+-\s+/,rangeDelimiter:" - ",multipleDelimiter:", ",useYearNav:!0,dateClassMap:{}},classes:{container:"kalendae",
calendar:"k-calendar",monthFirst:"k-first-month",monthMiddle:"k-middle-month",monthLast:"k-last-month",title:"k-title",previousMonth:"k-btn-previous-month",nextMonth:"k-btn-next-month",previousYear:"k-btn-previous-year",nextYear:"k-btn-next-year",caption:"k-caption",header:"k-header",days:"k-days",week:"k-week",dayOutOfMonth:"k-out-of-month",dayInMonth:"k-in-month",dayActive:"k-active",daySelected:"k-selected",dayInRange:"k-range",dayToday:"k-today",monthSeparator:"k-separator",disablePreviousMonth:"k-disable-previous-month-btn",
disableNextMonth:"k-disable-next-month-btn",disablePreviousYear:"k-disable-previous-year-btn",disableNextYear:"k-disable-next-year-btn",disableYearNav:"k-disable-year-nav"},disablePreviousMonth:!1,disableNextMonth:!1,disablePreviousYear:!1,disableNextYear:!1,directions:{past:function(a){return m(a).startOf("day").yearDay()>=v.yearDay()},"today-past":function(a){return m(a).startOf("day").yearDay()>v.yearDay()},any:function(a){return!1},"today-future":function(a){return m(a).startOf("day").yearDay()<
v.yearDay()},future:function(a){return m(a).startOf("day").yearDay()<=v.yearDay()}},getSelectedAsDates:function(){for(var a=[],b=0,e=this._sel.length;b<e;b++)a.push(this._sel[b].toDate());return a},getSelectedAsText:function(a){for(var b=[],e=0,d=this._sel.length;e<d;e++)b.push(this._sel[e].format(a||this.settings.format||"YYYY-MM-DD"));return b},getSelectedRaw:function(){for(var a=[],b=0,e=this._sel.length;b<e;b++)a.push(m(this._sel[b]));return a},getSelected:function(a){a=this.getSelectedAsText(a);
switch(this.settings.mode){case "week":case "range":return a.splice(2),a.join(this.settings.rangeDelimiter);case "multiple":return a.join(this.settings.multipleDelimiter);default:return a[0]||null}},isSelected:function(a){a=m(a).startOf("day").yearDay();if(1>a||!this._sel||1>this._sel.length)return!1;switch(this.settings.mode){case "week":case "range":var b=this._sel[0]?this._sel[0].startOf("day").yearDay():0,e=this._sel[1]?this._sel[1].startOf("day").yearDay():0;return b===a||e===a?1:b&&e?a>b&&a<
e||b<e&&a<b&&a>e?-1:!1:0;case "multiple":for(b=this._sel.length;b--;)if(this._sel[b].startOf("day").yearDay()===a)return!0;return!1;default:return this._sel[0]&&this._sel[0].startOf("day").yearDay()===a}},setSelected:function(a,b){var e,d=B(a,this.settings.parseSplitDelimiter,this.settings.format),k=B(this.getSelected(),this.settings.parseSplitDelimiter,this.settings.format);for(e=k.length;e--;)this.removeSelected(k[e],!1);for(e=d.length;e--;)this.addSelected(d[e],!1);!1!==b&&(d[0]&&(this.viewStartDate=
m(d[0],this.settings.format)),this.draw())},addSelected:function(a,b){a=m(a,this.settings.format).hours(12);this.settings.dayOutOfMonthClickable&&"range"!==this.settings.mode&&this.makeSelectedDateVisible(a);switch(this.settings.mode){case "multiple":if(this.isSelected(a))return!1;this._sel.push(a);break;case "range":1!==this._sel.length?this._sel=[a]:a.startOf("day").yearDay()>this._sel[0].startOf("day").yearDay()?this._sel[1]=a:this._sel=[a,this._sel[0]];break;default:this._sel=[a]}this._sel.sort(function(a,
b){return a.startOf("day").yearDay()-b.startOf("day").yearDay()});this.publish("change",this,[a]);!1!==b&&this.draw();return!0},weekSelected:function(a){var b=a.toDate(),e=m(b).startOf("week"),b=m(b).endOf("week").subtract("day",1);this._sel=[e,b];this.publish("change",this,[a.day()]);this.draw()},makeSelectedDateVisible:function(a){outOfViewMonth=m(a).date("1").diff(this.viewStartDate,"months");0>outOfViewMonth?this.viewStartDate.subtract("months",1):0<outOfViewMonth&&outOfViewMonth>=this.settings.months&&
this.viewStartDate.add(1,"months")},removeSelected:function(a,b){a=m(a,this.settings.format).hours(12);for(var e=this._sel.length;e--;)if(this._sel[e].startOf("day").yearDay()===a.startOf("day").yearDay())return this._sel.splice(e,1),this.publish("change",this,[a]),!1!==b&&this.draw(),!0;return!1},draw:function(){var a=m(this.viewStartDate).startOf("day").add(12,"hours"),b,e=this.classes,d,k,g,n=0,q,p=0,A,r,l=this.settings;q=this.calendars.length;do{b=m(a).date(1);b.day(b.day()<this.settings.weekStart?
this.settings.weekStart-7:this.settings.weekStart);d=this.calendars[n];d.caption.innerHTML=a.format(this.settings.titleFormat);A=p=0;do"week"==l.mode?(0===p%7&&0!==p&&A++,k=d.days[A].childNodes[p%7]):k=d.days[p],g=[],(r=this.isSelected(b))&&g.push({"-1":e.dayInRange,1:e.daySelected,"true":e.daySelected}[r]),b.month()!=a.month()?g.push(e.dayOutOfMonth):g.push(e.dayInMonth),(!(this.blackout(b)||this.direction(b)||b.month()!=a.month()&&!1===l.dayOutOfMonthClickable)||0<r)&&g.push(e.dayActive),b.clone().startOf("day").yearDay()===
v.yearDay()&&g.push(e.dayToday),r=b.format(this.settings.dayAttributeFormat),l.dateClassMap[r]&&g.push(l.dateClassMap[r]),k.innerHTML=b.format(l.dayNumberFormat),k.className=g.join(" "),k.setAttribute("data-date",r),b.add(1,"days");while(42>++p);a.add(1,"months")}while(++n<q);if(l.directionScrolling){b=m().startOf("day").hours(12);a=a.diff(b,"months",!0);if("today-past"===l.direction||"past"===l.direction)0>=a?(this.disableNextMonth=!1,f.removeClassName(this.container,e.disableNextMonth)):(this.disableNextMonth=
!0,f.addClassName(this.container,e.disableNextMonth));else if("today-future"===l.direction||"future"===l.direction)a>l.months?(this.disablePreviousMonth=!1,f.removeClassName(this.container,e.disablePreviousMonth)):(this.disablePreviousMonth=!0,f.addClassName(this.container,e.disablePreviousMonth));if("today-past"===l.direction||"past"===l.direction)-11>=a?(this.disableNextYear=!1,f.removeClassName(this.container,e.disableNextYear)):(this.disableNextYear=!0,f.addClassName(this.container,e.disableNextYear));
else if("today-future"===l.direction||"future"===l.direction)a>11+l.months?(this.disablePreviousYear=!1,f.removeClassName(this.container,e.disablePreviousYear)):(this.disablePreviousYear=!0,f.addClassName(this.container,e.disablePreviousYear))}}};var B=function(a,b,e){var d=[];"string"===typeof a?a=a.split(b):f.isArray(a)||(a=[a]);b=a.length;var k=0,g;do a[k]&&(g=m(a[k],e).hours(12),g.isValid()&&d.push(g));while(++k<b);return d};window.Kalendae=q;var f=q.util={isIE8:function(){return!(!/msie 8./i.test(navigator.appVersion)||
/opera/i.test(navigator.userAgent)||!window.ActiveXObject||!XDomainRequest||window.msPerformance)},$:function(a){return"string"==typeof a?document.getElementById(a):a},$$:function(a){return document.querySelectorAll(a)},make:function(a,b,e){var d;a=document.createElement(a);if(b)for(d in b)b.hasOwnProperty(d)&&a.setAttribute(d,b[d]);e&&e.appendChild(a);return a},isVisible:function(a){return 0<a.offsetWidth||0<a.offsetHeight},getStyle:function(a,b){var e;a.currentStyle?e=a.currentStyle[b]:window.getComputedStyle&&
(e=(e=window.getComputedStyle(a,null))?e[b]:"");return e},domReady:function(a){var b=document.readyState;"complete"===b||"interactive"===b?a():setTimeout(function(){f.domReady(a)},9)},addEvent:function(a,b,e){var d=function(b){b=b||window.event;var d=e.apply(a,[b,b.target||b.srcElement]);!1===d&&(b.preventDefault?b.preventDefault():(b.returnValue=!1,b.cancelBubble=!0));return d};a.attachEvent?a.attachEvent("on"+b,d):a.addEventListener(b,d,!1);return d},removeEvent:function(a,b,e){a.detachEvent?a.detachEvent("on"+
b,e):a.removeEventListener(b,e,!1)},fireEvent:function(a,b){if(document.createEvent){var e=document.createEvent("HTMLEvents");e.initEvent(b,!1,!0);a.dispatchEvent(e)}else if(document.createEventObject)a.fireEvent("on"+b);else if("function"==typeof a["on"+b])a["on"+b]()},hasClassName:function(a,b){if(!(a=f.$(a)))return!1;var e=a.className;return 0<e.length&&(e==b||(new RegExp("(^|\\s)"+b+"(\\s|$)")).test(e))},addClassName:function(a,b){(a=f.$(a))&&!f.hasClassName(a,b)&&(a.className+=(a.className?" ":
"")+b)},removeClassName:function(a,b){if(a=f.$(a))a.className=f.trimString(a.className.replace(new RegExp("(^|\\s+)"+b+"(\\s+|$)")," "))},isFixed:function(a){do if("fixed"===f.getStyle(a,"position"))return!0;while(a=a.offsetParent);return!1},scrollContainer:function(a){do{var b=f.getStyle(a,"overflow");if("auto"===b||"scroll"===b)return a}while((a=a.parentNode)&&a!=window.document.body);return null},getPosition:function(a,b){var e=a.offsetLeft,d=a.offsetTop,f={};if(!b)for(;a=a.offsetParent;)e+=a.offsetLeft,
d+=a.offsetTop;f[0]=f.left=e;f[1]=f.top=d;return f},getHeight:function(a){return a.offsetHeight||a.scrollHeight},getWidth:function(a){return a.offsetWidth||a.scrollWidth},trimString:function(a){return a.replace(/^\s+/,"").replace(/\s+$/,"")},merge:function(){for(var a=!0===arguments[0],b={},e=a?1:0;e<arguments.length;e++){var d=b,f=arguments[e];if("object"===typeof f){var g=void 0;for(g in f)f.hasOwnProperty(g)&&(a&&"object"===typeof d[g]&&"object"===typeof f[g]?_update(d[g],f[g]):d[g]=f[g])}}return b},
isArray:function(a){return"[object Array]"==Object.prototype.toString.call(a)}};"function"===typeof document.addEventListener&&q.util.domReady(function(){for(var a=f.$$(".auto-kal"),b=a.length,e,d;b--;)e=a[b],d=e.getAttribute("data-kal"),d=null==d||""==d?{}:(new Function("return {"+d+"};"))(),"INPUT"===e.tagName?new q.Input(e,d):new q(f.merge(d,{attachTo:e}))});q.Input=function(a,b){if("function"===typeof document.addEventListener||f.isIE8()){var e=this.input=f.$(a),d,k,g=!1;if(!e||"INPUT"!==e.tagName)throw"First argument for Kalendae.Input must be an <input> element or a valid element id.";
var n=this,x=n.classes;k=n.settings=f.merge(n.defaults,b);this._events={};k.attachTo=window.document.body;k.selected?d=!0:k.selected=e.value;q.call(n,k);k.closeButton&&(k=f.make("a",{"class":x.closeButton},n.container),f.addEvent(k,"click",function(){e.blur()}));d&&(e.value=n.getSelected());d=n.container;var p=!1;d.style.display="none";f.addClassName(d,x.positioned);this._events.containerMouseDown=f.addEvent(d,"mousedown",function(a,b){p=!0});this._events.documentMousedown=f.addEvent(window.document,
"mousedown",function(a,b){p=!1});this._events.inputFocus=f.addEvent(e,"focus",function(){g=!0;n.setSelected(this.value);g=!1;n.show()});this._events.inputBlur=f.addEvent(e,"blur",function(){p&&f.isIE8()?(p=!1,e.focus()):n.hide()});this._events.inputKeyup=f.addEvent(e,"keyup",function(a){g=!0;(a=B(this.value,n.settings.parseSplitDelimiter,n.settings.format))&&a.length&&a[0]&&1E3<a[0].year?n.setSelected(this.value):(n.setSelected("",null),n.viewStartDate=m(n.defaultView),n.draw());g=!1});(x=f.scrollContainer(e))&&
f.addEvent(x,"scroll",function(a){e.blur()});n.subscribe("change",function(){g||(e.value=n.getSelected(),f.fireEvent(e,"change"))})}};q.Input.prototype=f.merge(q.prototype,{defaults:f.merge(q.prototype.defaults,{format:"MM/DD/YYYY",side:"bottom",closeButton:!0,offsetLeft:0,offsetTop:0}),classes:f.merge(q.prototype.classes,{positioned:"k-floating",closeButton:"k-btn-close"}),show:function(){var a=this.container,b=a.style,e=this.input,d=f.getPosition(e),k=f.scrollContainer(e),g=k?k.scrollTop:0,k=k?
k.scrollLeft:0,n=this.settings;b.display="";switch(n.side){case "left":b.left=d.left-f.getWidth(a)+n.offsetLeft-k+"px";b.top=d.top+n.offsetTop-g+"px";break;case "right":b.left=d.left+f.getWidth(e)-k+"px";b.top=d.top+n.offsetTop-g+"px";break;case "top":b.left=d.left+n.offsetLeft-k+"px";b.top=d.top-f.getHeight(a)+n.offsetTop-g+"px";break;case "bottom right":b.left=d.left-f.getWidth(a)+f.getWidth(e)+n.offsetLeft+"px";b.top=d.top+f.getHeight(e)+n.offsetTop-g+"px";break;default:b.left=d.left+n.offsetLeft-
k+"px",b.top=d.top+f.getHeight(e)+n.offsetTop-g+"px"}b.position=f.isFixed(e)?"fixed":"absolute";this.publish("show",this)},hide:function(){this.container.style.display="none";this.publish("hide",this)},destroy:function(){var a=this.container,b=this.input;f.removeEvent(a,"mousedown",this._events.containerMousedown);f.removeEvent(window.document,"mousedown",this._events.documentMousedown);f.removeEvent(b,"focus",this._events.inputFocus);f.removeEvent(b,"blur",this._events.inputBlur);f.removeEvent(b,
"keyup",this._events.inputKeyup);a.remove()}});var F=function(a){a||(a=this);var b=a.c_||{};a.publish=function(a,d,f){for(var g=(a=b[a])?a.length:0,n;g--;)if(n=a[g].apply(d,f||[]),"boolean"===typeof n)return n};a.subscribe=function(a,d,f){b[a]||(b[a]=[]);f?b[a].push(d):b[a].unshift(d);return[a,d]};a.unsubscribe=function(a){var d=b[a[0]];a=a[1];for(var f=d?d.length:0;f--;)d[f]===a&&d.splice(f,1)}};(function(a){function b(c,w){return function(a){return p(c.call(this,a),w)}}function e(c,w){return function(a){return this.lang().ordinal(c.call(this,
a),w)}}function d(){}function f(c){n(this,c)}function g(c){var w=c.years||c.year||c.y||0,a=c.months||c.month||c.M||0,b=c.weeks||c.week||c.w||0,e=c.days||c.day||c.d||0,d=c.hours||c.hour||c.h||0,f=c.minutes||c.minute||c.m||0,g=c.seconds||c.second||c.s||0,h=c.milliseconds||c.millisecond||c.ms||0;this._input=c;this._milliseconds=h+1E3*g+6E4*f+36E5*d;this._days=e+7*b;this._months=a+12*w;this._data={};this._bubble()}function n(c,w){for(var a in w)w.hasOwnProperty(a)&&(c[a]=w[a]);return c}function m(c){return 0>
c?Math.ceil(c):Math.floor(c)}function p(c,w){for(var a=c+"";a.length<w;)a="0"+a;return a}function q(c,a,b,e){var d=a._milliseconds,f=a._days;a=a._months;var g,k;d&&c._d.setTime(+c._d+d*b);if(f||a)g=c.minute(),k=c.hour();f&&c.date(c.date()+f*b);a&&c.month(c.month()+a*b);d&&!e&&h.updateOffset(c);if(f||a)c.minute(g),c.hour(k)}function r(c,a){var b=Math.min(c.length,a.length),e=Math.abs(c.length-a.length),d=0,f;for(f=0;f<b;f++)~~c[f]!==~~a[f]&&d++;return d+e}function l(c){return c?X[c]||c.toLowerCase().replace(/(.)s$/,
"$1"):c}function u(c){if(!c)return h.fn._lang;if(!C[c]&&O)try{require("./lang/"+c)}catch(a){return h.fn._lang}return C[c]}function v(c){return c.match(/\[.*\]/)?c.replace(/^\[|\]$/g,""):c.replace(/\\/g,"")}function B(c){var a=c.match(P),b,e;b=0;for(e=a.length;b<e;b++)a[b]=y[a[b]]?y[a[b]]:v(a[b]);return function(d){var f="";for(b=0;b<e;b++)f+=a[b]instanceof Function?a[b].call(d,c):a[b];return f}}function D(c,a){function b(a){return c.lang().longDateFormat(a)||a}for(var e=5;e--&&Q.test(a);)a=a.replace(Q,
b);G[a]||(G[a]=B(a));return G[a](c)}function F(c,a){switch(c){case "DDDD":return Y;case "YYYY":return Z;case "YYYYY":return aa;case "S":case "SS":case "SSS":case "DDD":return ba;case "MMM":case "MMMM":case "dd":case "ddd":case "dddd":return ca;case "a":case "A":return u(a._l)._meridiemParse;case "X":return da;case "Z":case "ZZ":return H;case "T":return ea;case "MM":case "DD":case "YY":case "HH":case "hh":case "mm":case "ss":case "M":case "D":case "d":case "H":case "h":case "m":case "s":return fa;
default:return new RegExp(c.replace("\\",""))}}function M(c){c=((H.exec(c)||[])[0]+"").match(ga)||["-",0,0];var a=+(60*c[1])+~~c[2];return"+"===c[0]?-a:a}function N(c){var a,b=[];if(!c._d){for(a=0;7>a;a++)c._a[a]=b[a]=null==c._a[a]?2===a?1:0:c._a[a];b[3]+=~~((c._tzm||0)/60);b[4]+=~~((c._tzm||0)%60);a=new Date(0);c._useUTC?(a.setUTCFullYear(b[0],b[1],b[2]),a.setUTCHours(b[3],b[4],b[5],b[6])):(a.setFullYear(b[0],b[1],b[2]),a.setHours(b[3],b[4],b[5],b[6]));c._d=a}}function I(c){var a=c._f.match(P),b=
c._i,e,d;c._a=[];for(e=0;e<a.length;e++)if((d=(F(a[e],c).exec(b)||[])[0])&&(b=b.slice(b.indexOf(d)+d.length)),y[a[e]]){var f=c,g=void 0,h=f._a;switch(a[e]){case "M":case "MM":h[1]=null==d?0:~~d-1;break;case "MMM":case "MMMM":g=u(f._l).monthsParse(d);null!=g?h[1]=g:f._isValid=!1;break;case "D":case "DD":case "DDD":case "DDDD":null!=d&&(h[2]=~~d);break;case "YY":h[0]=~~d+(68<~~d?1900:2E3);break;case "YYYY":case "YYYYY":h[0]=~~d;break;case "a":case "A":f._isPm=u(f._l).isPM(d);break;case "H":case "HH":case "h":case "hh":h[3]=
~~d;break;case "m":case "mm":h[4]=~~d;break;case "s":case "ss":h[5]=~~d;break;case "S":case "SS":case "SSS":h[6]=~~(1E3*("0."+d));break;case "X":f._d=new Date(1E3*parseFloat(d));break;case "Z":case "ZZ":f._useUTC=!0,f._tzm=M(d)}null==d&&(f._isValid=!1)}b&&(c._il=b);c._isPm&&12>c._a[3]&&(c._a[3]+=12);!1===c._isPm&&12===c._a[3]&&(c._a[3]=0);N(c)}function ha(c,a,b,d,e){return e.relativeTime(a||1,!!b,c,d)}function E(c,a,b){a=b-a;b-=c.day();b>a&&(b-=7);b<a-7&&(b+=7);c=h(c).add("d",b);return{week:Math.ceil(c.dayOfYear()/
7),year:c.year()}}function R(c){var b=c._i,d=c._f;if(null===b||""===b)return null;"string"===typeof b&&(c._i=b=u().preparse(b));if(h.isMoment(b))c=n({},b),c._d=new Date(+b._d);else if(d)if("[object Array]"===Object.prototype.toString.call(d)){var b=c,e,g,l=99,m;for(m=0;m<b._f.length;m++)e=n({},b),e._f=b._f[m],I(e),d=new f(e),e=r(e._a,d.toArray()),d._il&&(e+=d._il.length),e<l&&(l=e,g=d);n(b,g)}else I(c);else if(g=c,b=g._i,d=ia.exec(b),b===a)g._d=new Date;else if(d)g._d=new Date(+d[1]);else if("string"===
typeof b)if(b=g._i,d=ja.exec(b)){g._f="YYYY-MM-DD"+(d[2]||" ");for(d=0;4>d;d++)if(S[d][1].exec(b)){g._f+=S[d][0];break}H.exec(b)&&(g._f+=" Z");I(g)}else g._d=new Date(b);else"[object Array]"===Object.prototype.toString.call(b)?(g._a=b.slice(0),N(g)):g._d=b instanceof Date?new Date(+b):new Date(b);return new f(c)}function T(c,a){h.fn[c]=h.fn[c+"s"]=function(c){var b=this._isUTC?"UTC":"";return null!=c?(this._d["set"+b+a](c),h.updateOffset(this),this):this._d["get"+b+a]()}}function ka(c){h.duration.fn[c]=
function(){return this._data[c]}}function U(c,a){h.duration.fn["as"+c]=function(){return+this/a}}for(var h,z=Math.round,t,C={},O="undefined"!==typeof module&&module.exports,ia=/^\/?Date\((\-?\d+)/i,la=/(\-)?(\d*)?\.?(\d+)\:(\d+)\:(\d+)\.?(\d{3})?/,P=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|SS?S?|X|zz?|ZZ?|.)/g,Q=/(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,fa=/\d\d?/,ba=/\d{1,3}/,Y=/\d{3}/,Z=/\d{1,4}/,aa=/[+\-]?\d{1,6}/,
ca=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,H=/Z|[\+\-]\d\d:?\d\d/i,ea=/T/i,da=/[\+\-]?\d+(\.\d{1,3})?/,ja=/^\s*\d{4}-\d\d-\d\d((T| )(\d\d(:\d\d(:\d\d(\.\d\d?\d?)?)?)?)?([\+\-]\d\d:?\d\d)?)?/,S=[["HH:mm:ss.S",/(T| )\d\d:\d\d:\d\d\.\d{1,3}/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],ga=/([\+\-]|\d\d)/gi,J=["Date","Hours","Minutes","Seconds","Milliseconds"],K={Milliseconds:1,Seconds:1E3,
Minutes:6E4,Hours:36E5,Days:864E5,Months:2592E6,Years:31536E6},X={ms:"millisecond",s:"second",m:"minute",h:"hour",d:"day",w:"week",M:"month",y:"year"},G={},V="DDD w W M D d".split(" "),W="MDHhmswW".split(""),y={M:function(){return this.month()+1},MMM:function(c){return this.lang().monthsShort(this,c)},MMMM:function(c){return this.lang().months(this,c)},D:function(){return this.date()},DDD:function(){return this.dayOfYear()},d:function(){return this.day()},dd:function(c){return this.lang().weekdaysMin(this,
c)},ddd:function(c){return this.lang().weekdaysShort(this,c)},dddd:function(c){return this.lang().weekdays(this,c)},w:function(){return this.week()},W:function(){return this.isoWeek()},YY:function(){return p(this.year()%100,2)},YYYY:function(){return p(this.year(),4)},YYYYY:function(){return p(this.year(),5)},gg:function(){return p(this.weekYear()%100,2)},gggg:function(){return this.weekYear()},ggggg:function(){return p(this.weekYear(),5)},GG:function(){return p(this.isoWeekYear()%100,2)},GGGG:function(){return this.isoWeekYear()},
GGGGG:function(){return p(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.lang().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.lang().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return~~(this.milliseconds()/100)},SS:function(){return p(~~(this.milliseconds()/
10),2)},SSS:function(){return p(this.milliseconds(),3)},Z:function(){var c=-this.zone(),a="+";0>c&&(c=-c,a="-");return a+p(~~(c/60),2)+":"+p(~~c%60,2)},ZZ:function(){var c=-this.zone(),a="+";0>c&&(c=-c,a="-");return a+p(~~(10*c/6),4)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},X:function(){return this.unix()}};V.length;)t=V.pop(),y[t+"o"]=e(y[t],t);for(;W.length;)t=W.pop(),y[t+t]=b(y[t],2);y.DDDD=b(y.DDD,3);d.prototype={set:function(c){var a,b;for(b in c)a=c[b],"function"===
typeof a?this[b]=a:this["_"+b]=a},_months:"January February March April May June July August September October November December".split(" "),months:function(c){return this._months[c.month()]},_monthsShort:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),monthsShort:function(c){return this._monthsShort[c.month()]},monthsParse:function(c){var a,b;this._monthsParse||(this._monthsParse=[]);for(a=0;12>a;a++)if(this._monthsParse[a]||(b=h([2E3,a]),b="^"+this.months(b,"")+"|^"+this.monthsShort(b,
""),this._monthsParse[a]=new RegExp(b.replace(".",""),"i")),this._monthsParse[a].test(c))return a},_weekdays:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),weekdays:function(c){return this._weekdays[c.day()]},_weekdaysShort:"Sun Mon Tue Wed Thu Fri Sat".split(" "),weekdaysShort:function(c){return this._weekdaysShort[c.day()]},_weekdaysMin:"Su Mo Tu We Th Fr Sa".split(" "),weekdaysMin:function(c){return this._weekdaysMin[c.day()]},weekdaysParse:function(c){var a,b;this._weekdaysParse||
(this._weekdaysParse=[]);for(a=0;7>a;a++)if(this._weekdaysParse[a]||(b=h([2E3,1]).day(a),b="^"+this.weekdays(b,"")+"|^"+this.weekdaysShort(b,"")+"|^"+this.weekdaysMin(b,""),this._weekdaysParse[a]=new RegExp(b.replace(".",""),"i")),this._weekdaysParse[a].test(c))return a},_longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D YYYY",LLL:"MMMM D YYYY LT",LLLL:"dddd, MMMM D YYYY LT"},longDateFormat:function(c){var a=this._longDateFormat[c];!a&&this._longDateFormat[c.toUpperCase()]&&(a=this._longDateFormat[c.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,
function(c){return c.slice(1)}),this._longDateFormat[c]=a);return a},isPM:function(c){return"p"===(c+"").toLowerCase()[0]},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(c,a,b){return 11<c?b?"pm":"PM":b?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(c,a){var b=this._calendar[c];return"function"===typeof b?b.apply(a):b},_relativeTime:{future:"in %s",past:"%s ago",
s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(c,a,b,d){var e=this._relativeTime[b];return"function"===typeof e?e(c,a,b,d):e.replace(/%d/i,c)},pastFuture:function(c,a){var b=this._relativeTime[0<c?"future":"past"];return"function"===typeof b?b(a):b.replace(/%s/i,a)},ordinal:function(c){return this._ordinal.replace("%d",c)},_ordinal:"%d",preparse:function(c){return c},postformat:function(c){return c},
week:function(c){return E(c,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6}};h=function(c,a,b){return R({_i:c,_f:a,_l:b,_isUTC:!1})};h.utc=function(c,a,b){return R({_useUTC:!0,_isUTC:!0,_l:b,_i:c,_f:a})};h.unix=function(c){return h(1E3*c)};h.duration=function(c,a){var b=h.isDuration(c),d="number"===typeof c,e=b?c._input:d?{}:c,f=la.exec(c);d?a?e[a]=c:e.milliseconds=c:f&&(d="-"===f[1]?-1:1,e={y:0,d:~~f[2]*d,h:~~f[3]*d,m:~~f[4]*d,s:~~f[5]*d,ms:~~f[6]*d});f=new g(e);b&&c.hasOwnProperty("_lang")&&
(f._lang=c._lang);return f};h.version="2.1.0";h.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";h.updateOffset=function(){};h.lang=function(c,a){if(!c)return h.fn._lang._abbr;a?(a.abbr=c,C[c]||(C[c]=new d),C[c].set(a)):C[c]||u(c);h.duration.fn._lang=h.fn._lang=u(c)};h.langData=function(c){c&&c._lang&&c._lang._abbr&&(c=c._lang._abbr);return u(c)};h.isMoment=function(c){return c instanceof f};h.isDuration=function(c){return c instanceof g};h.fn=f.prototype={clone:function(){return h(this)},valueOf:function(){return+this._d+
6E4*(this._offset||0)},unix:function(){return Math.floor(+this/1E3)},toString:function(){return this.format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){return D(h(this).utc(),"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")},toArray:function(){return[this.year(),this.month(),this.date(),this.hours(),this.minutes(),this.seconds(),this.milliseconds()]},isValid:function(){null==this._isValid&&(this._isValid=this._a?!r(this._a,(this._isUTC?
h.utc(this._a):h(this._a)).toArray()):!isNaN(this._d.getTime()));return!!this._isValid},utc:function(){return this.zone(0)},local:function(){this.zone(0);this._isUTC=!1;return this},format:function(c){c=D(this,c||h.defaultFormat);return this.lang().postformat(c)},add:function(c,a){var b;b="string"===typeof c?h.duration(+a,c):h.duration(c,a);q(this,b,1);return this},subtract:function(c,a){var b;b="string"===typeof c?h.duration(+a,c):h.duration(c,a);q(this,b,-1);return this},diff:function(c,a,b){c=
this._isUTC?h(c).zone(this._offset||0):h(c).local();var d=6E4*(this.zone()-c.zone()),e;a=l(a);"year"===a||"month"===a?(e=432E5*(this.daysInMonth()+c.daysInMonth()),d=12*(this.year()-c.year())+(this.month()-c.month()),d+=(this-h(this).startOf("month")-(c-h(c).startOf("month")))/e,d-=6E4*(this.zone()-h(this).startOf("month").zone()-(c.zone()-h(c).startOf("month").zone()))/e,"year"===a&&(d/=12)):(e=this-c,d="second"===a?e/1E3:"minute"===a?e/6E4:"hour"===a?e/36E5:"day"===a?(e-d)/864E5:"week"===a?(e-d)/
6048E5:e);return b?d:m(d)},from:function(a,b){return h.duration(this.diff(a)).lang(this.lang()._abbr).humanize(!b)},fromNow:function(a){return this.from(h(),a)},calendar:function(){var a=this.diff(h().startOf("day"),"days",!0),a=-6>a?"sameElse":-1>a?"lastWeek":0>a?"lastDay":1>a?"sameDay":2>a?"nextDay":7>a?"nextWeek":"sameElse";return this.format(this.lang().calendar(a,this))},isLeapYear:function(){var a=this.year();return 0===a%4&&0!==a%100||0===a%400},isDST:function(){return this.zone()<this.clone().month(0).zone()||
this.zone()<this.clone().month(5).zone()},day:function(a){var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?"string"===typeof a&&(a=this.lang().weekdaysParse(a),"number"!==typeof a)?this:this.add({d:a-b}):b},month:function(a){var b=this._isUTC?"UTC":"",d;if(null!=a){if("string"===typeof a&&(a=this.lang().monthsParse(a),"number"!==typeof a))return this;d=this.date();this.date(1);this._d["set"+b+"Month"](a);this.date(Math.min(d,this.daysInMonth()));h.updateOffset(this);return this}return this._d["get"+
b+"Month"]()},startOf:function(a){a=l(a);switch(a){case "year":this.month(0);case "month":this.date(1);case "week":case "day":this.hours(0);case "hour":this.minutes(0);case "minute":this.seconds(0);case "second":this.milliseconds(0)}"week"===a&&this.weekday(0);return this},endOf:function(a){return this.startOf(a).add(a,1).subtract("ms",1)},isAfter:function(a,b){b="undefined"!==typeof b?b:"millisecond";return+this.clone().startOf(b)>+h(a).startOf(b)},isBefore:function(a,b){b="undefined"!==typeof b?
b:"millisecond";return+this.clone().startOf(b)<+h(a).startOf(b)},isSame:function(a,b){b="undefined"!==typeof b?b:"millisecond";return+this.clone().startOf(b)===+h(a).startOf(b)},min:function(a){a=h.apply(null,arguments);return a<this?this:a},max:function(a){a=h.apply(null,arguments);return a>this?this:a},zone:function(a){var b=this._offset||0;if(null!=a)"string"===typeof a&&(a=M(a)),16>Math.abs(a)&&(a*=60),this._offset=a,this._isUTC=!0,b!==a&&q(this,h.duration(b-a,"m"),1,!0);else return this._isUTC?
b:this._d.getTimezoneOffset();return this},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},daysInMonth:function(){return h.utc([this.year(),this.month()+1,0]).date()},dayOfYear:function(a){var b=z((h(this).startOf("day")-h(this).startOf("year"))/864E5)+1;return null==a?b:this.add("d",a-b)},weekYear:function(a){var b=E(this,this.lang()._week.dow,this.lang()._week.doy).year;return null==a?b:this.add("y",a-b)},isoWeekYear:function(a){var b=
E(this,1,4).year;return null==a?b:this.add("y",a-b)},week:function(a){var b=this.lang().week(this);return null==a?b:this.add("d",7*(a-b))},isoWeek:function(a){var b=E(this,1,4).week;return null==a?b:this.add("d",7*(a-b))},weekday:function(a){var b=(this._d.getDay()+7-this.lang()._week.dow)%7;return null==a?b:this.add("d",a-b)},isoWeekday:function(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)},lang:function(b){if(b===a)return this._lang;this._lang=u(b);return this}};for(t=0;t<J.length;t++)T(J[t].toLowerCase().replace(/s$/,
""),J[t]);T("year","FullYear");h.fn.days=h.fn.day;h.fn.months=h.fn.month;h.fn.weeks=h.fn.week;h.fn.isoWeeks=h.fn.isoWeek;h.fn.toJSON=h.fn.toISOString;h.duration.fn=g.prototype={_bubble:function(){var a=this._milliseconds,b=this._days,d=this._months,e=this._data;e.milliseconds=a%1E3;a=m(a/1E3);e.seconds=a%60;a=m(a/60);e.minutes=a%60;a=m(a/60);e.hours=a%24;b+=m(a/24);e.days=b%30;d+=m(b/30);e.months=d%12;b=m(d/12);e.years=b},weeks:function(){return m(this.days()/7)},valueOf:function(){return this._milliseconds+
864E5*this._days+this._months%12*2592E6+31536E6*~~(this._months/12)},humanize:function(a){var b=+this,d;d=!a;var e=this.lang(),f=z(Math.abs(b)/1E3),g=z(f/60),h=z(g/60),k=z(h/24),l=z(k/365),f=45>f&&["s",f]||1===g&&["m"]||45>g&&["mm",g]||1===h&&["h"]||22>h&&["hh",h]||1===k&&["d"]||25>=k&&["dd",k]||45>=k&&["M"]||345>k&&["MM",z(k/30)]||1===l&&["y"]||["yy",l];f[2]=d;f[3]=0<b;f[4]=e;d=ha.apply({},f);a&&(d=this.lang().pastFuture(b,d));return this.lang().postformat(d)},add:function(a,b){var d=h.duration(a,
b);this._milliseconds+=d._milliseconds;this._days+=d._days;this._months+=d._months;this._bubble();return this},subtract:function(a,b){var d=h.duration(a,b);this._milliseconds-=d._milliseconds;this._days-=d._days;this._months-=d._months;this._bubble();return this},get:function(a){a=l(a);return this[a.toLowerCase()+"s"]()},as:function(a){a=l(a);return this["as"+a.charAt(0).toUpperCase()+a.slice(1)+"s"]()},lang:h.fn.lang};for(t in K)K.hasOwnProperty(t)&&(U(t,K[t]),ka(t.toLowerCase()));U("Weeks",6048E5);
h.duration.fn.asMonths=function(){return(+this-31536E6*this.years())/2592E6+12*this.years()};h.lang("en",{ordinal:function(a){var b=a%10;return a+(1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th")}});O&&(module.exports=h);"undefined"===typeof ender&&(this.moment=h);"function"===typeof define&&define.amd&&define("moment",[],function(){return h});this.moment=h}).call("undefined"===typeof q?window:q);if(!q.moment)if(window.moment)q.moment=window.moment;else throw"Kalendae requires moment.js. You must use kalendae.standalone.js if moment is not available on the page.";
m=q.moment;m.fn.yearDay=function(a){var b=Math.floor(this._d/864E5);return"undefined"===typeof a?b:this.add({d:a-b})};v=q.moment().startOf("day");"undefined"===typeof jQuery||"function"!==typeof document.addEventListener&&!f.isIE8()||(jQuery.fn.kalendae=function(a){this.each(function(b,e){"INPUT"===e.tagName?jQuery(e).data("kalendae",new q.Input(e,a)):jQuery(e).data("kalendae",new q(jQuery.extend({},{attachTo:e},a)))});return this})})();
