1/******************************************************************** 2 * Kalendae, a framework agnostic javascript date picker * 3 * Copyright(c) 2013 Jarvis Badgley ([email protected]) * 4 * http://github.com/ChiperSoft/Kalendae * 5 * Version 0.4.1 * 6 ********************************************************************/ 7 8(function(){var q,h,k=function(a,b){if("function"===typeof document.addEventListener||d.isIE8()){var c=!1;try{c=a instanceof Element}catch(j){c=!!a&&1===c.nodeType}c||"string"===typeof a||(b=a);var e=this,f=e.classes,g=e.settings=d.merge(e.defaults,{attachTo:a},b||{}),c=e.container=d.make("div",{"class":f.container}),k=e.calendars=[],r=h().day(g.weekStart),l,n=[],p,m,q;p=[];var t;m=0;l=g.months;d.isIE8()&&d.addClassName(c,"ie8");for(m=7;m--;)n.push(r.format(g.columnHeaderFormat)),r.add("days",1); 9v(e);if("object"===typeof g.subscribe)for(m in g.subscribe)g.subscribe.hasOwnProperty(m)&&e.subscribe(m,g.subscribe[m]);e._sel=[];g.selected&&e.setSelected(g.selected,!1);l=g.viewStartDate?h(g.viewStartDate,g.format):0<e._sel.length?h(e._sel[0]):h();e.viewStartDate=l.date(1);if((l={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])&&h().month()==h(e.viewStartDate).month())e.viewStartDate=h(e.viewStartDate).subtract({M:l}).date(1); 10if("function"===typeof g.blackout)e.blackout=g.blackout;else if(g.blackout){var u=s(g.blackout,g.parseSplitDelimiter,g.format);e.blackout=function(a){a=h(a).yearDay();if(1>a||!e._sel)return!1;for(var c=u.length;c--;)if(u[c].yearDay()===a)return!0;return!1}}else e.blackout=function(){return!1};e.direction=e.directions[g.direction]?e.directions[g.direction]:e.directions.any;for(l=Math.max(g.months,1);l--;){p=d.make("div",{"class":f.calendar},c);p.setAttribute("data-cal-index",l);1<g.months&&(l==Math.max(g.months- 111,1)?d.addClassName(p,f.monthFirst):0===l?d.addClassName(p,f.monthLast):d.addClassName(p,f.monthMiddle));m=d.make("div",{"class":f.title},p);g.useYearNav||d.addClassName(m,f.disableYearNav);d.make("a",{"class":f.previousYear},m);d.make("a",{"class":f.previousMonth},m);d.make("a",{"class":f.nextYear},m);d.make("a",{"class":f.nextMonth},m);r=d.make("span",{"class":f.caption},m);q=d.make("div",{"class":f.header},p);m=0;do t=d.make("span",{},q),t.innerHTML=n[m];while(7>++m);q=d.make("div",{"class":f.days}, 12p);m=0;for(p=[];42>m++;)p.push(d.make("span",{},q));k.push({caption:r,days:p});l&&d.make("div",{"class":f.monthSeparator},c)}e.draw();d.addEvent(c,"mousedown",function(a,c){var b;if(d.hasClassName(c,f.nextMonth))!e.disableNext&&!1!==e.publish("view-changed",e,["next-month"])&&(e.viewStartDate.add("months",1),e.draw());else if(d.hasClassName(c,f.previousMonth))!e.disablePreviousMonth&&!1!==e.publish("view-changed",e,["previous-month"])&&(e.viewStartDate.subtract("months",1),e.draw());else if(d.hasClassName(c, 13f.nextYear))!e.disableNext&&!1!==e.publish("view-changed",e,["next-year"])&&(e.viewStartDate.add("years",1),e.draw());else if(d.hasClassName(c,f.previousYear))!e.disablePreviousMonth&&!1!==e.publish("view-changed",e,["previous-year"])&&(e.viewStartDate.subtract("years",1),e.draw());else if(d.hasClassName(c.parentNode,f.days)&&d.hasClassName(c,f.dayActive)&&(b=c.getAttribute("data-date")))if(b=h(b,g.dayAttributeFormat).hours(12),!1!==e.publish("date-clicked",e,[b]))switch(g.mode){case "multiple":e.addSelected(b)|| 14e.removeSelected(b);break;case "range":e.addSelected(b);break;default:e.addSelected(b)}return!1});(g.attachTo=d.$(g.attachTo))&&g.attachTo.appendChild(c)}};k.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+/, 15rangeDelimiter:" - ",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",dayOutOfMonth:"k-out-of-month",dayInMonth:"k-in-month",dayActive:"k-active",daySelected:"k-selected", 16dayInRange:"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 h(a).yearDay()>=q.yearDay()},"today-past":function(a){return h(a).yearDay()>q.yearDay()}, 17any:function(){return!1},"today-future":function(a){return h(a).yearDay()<q.yearDay()},future:function(a){return h(a).yearDay()<=q.yearDay()}},getSelectedAsDates:function(){for(var a=[],b=0,c=this._sel.length;b<c;b++)a.push(this._sel[b].toDate());return a},getSelectedAsText:function(a){for(var b=[],c=0,d=this._sel.length;c<d;c++)b.push(this._sel[c].format(a||this.settings.format||"YYYY-MM-DD"));return b},getSelectedRaw:function(){for(var a=[],b=0,c=this._sel.length;b<c;b++)a.push(h(this._sel[b])); 18return a},getSelected:function(a){a=this.getSelectedAsText(a);switch(this.settings.mode){case "range":return a.splice(2),a.join(this.settings.rangeDelimiter);case "multiple":return a.join(this.settings.multipleDelimiter);default:return a[0]}},isSelected:function(a){a=h(a).yearDay();if(1>a||!this._sel||1>this._sel.length)return!1;switch(this.settings.mode){case "range":var b=this._sel[0]?this._sel[0].yearDay():0,c=this._sel[1]?this._sel[1].yearDay():0;return b===a||c===a?1:!b||!c?0:a>b&&a<c||b<c&& 19a<b&&a>c?-1:!1;case "multiple":for(b=this._sel.length;b--;)if(this._sel[b].yearDay()===a)return!0;return!1;default:return this._sel[0]&&this._sel[0].yearDay()===a}},setSelected:function(a,b){var c,d=s(a,this.settings.parseSplitDelimiter,this.settings.format),e=s(this.getSelected(),this.settings.parseSplitDelimiter,this.settings.format);for(c=e.length;c--;)this.removeSelected(e[c],b);for(c=d.length;c--;)this.addSelected(d[c],b);!1!==b&&this.draw()},addSelected:function(a,b){a=h(a,this.settings.format).hours(12); 20this.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.yearDay()>this._sel[0].yearDay()?this._sel[1]=a:this._sel=[a,this._sel[0]];break;default:this._sel=[a]}this._sel.sort(function(a,b){return a.yearDay()-b.yearDay()});this.publish("change",this,[a]);!1!==b&&this.draw();return!0},makeSelectedDateVisible:function(a){outOfViewMonth= 21h(a).date("1").diff(this.viewStartDate,"months");0>outOfViewMonth?this.viewStartDate.subtract("months",1):0<outOfViewMonth&&outOfViewMonth>=this.settings.months&&this.viewStartDate.add("months",1)},removeSelected:function(a,b){a=h(a,this.settings.format).hours(12);for(var c=this._sel.length;c--;)if(this._sel[c].yearDay()===a.yearDay())return this._sel.splice(c,1),this.publish("change",this,[a]),!1!==b&&this.draw(),!0;return!1},draw:function(){var a=h(this.viewStartDate).hours(12),b,c=this.classes, 22j,e,f,g=0,k,r=0,l,n=this.settings;k=this.calendars.length;do{b=h(a).date(1);b.day(b.day()<this.settings.weekStart?this.settings.weekStart-7:this.settings.weekStart);j=this.calendars[g];j.caption.innerHTML=a.format(this.settings.titleFormat);r=0;do e=j.days[r],f=[],(l=this.isSelected(b))&&f.push({"-1":c.dayInRange,1:c.daySelected,"true":c.daySelected}[l]),b.month()!=a.month()?f.push(c.dayOutOfMonth):f.push(c.dayInMonth),(!this.blackout(b)&&!(this.direction(b)||b.month()!=a.month()&&!1===n.dayOutOfMonthClickable)|| 230<l)&&f.push(c.dayActive),b.yearDay()===q.yearDay()&&f.push(c.dayToday),l=b.format(this.settings.dayAttributeFormat),n.dateClassMap[l]&&f.push(n.dateClassMap[l]),e.innerHTML=b.format(n.dayNumberFormat),e.className=f.join(" "),e.setAttribute("data-date",l),b.add("days",1);while(42>++r);a.add("months",1)}while(++g<k);if(n.directionScrolling){if("today-past"===n.direction||"past"===n.direction)b=a.add({m:1}).diff(h(),"months",!0),0>=b?(this.disableNextMonth=!1,d.removeClassName(this.container,c.disableNextMonth)): 24(this.disableNextMonth=!0,d.addClassName(this.container,c.disableNextMonth));else if("today-future"===n.direction||"future"===n.direction)b=a.subtract({m:1}).diff(h(),"months",!0),b>n.months?(this.disablePreviousMonth=!1,d.removeClassName(this.container,c.disablePreviousMonth)):(this.disablePreviousMonth=!0,d.addClassName(this.container,c.disablePreviousMonth));if("today-past"===n.direction||"past"===n.direction)b=a.add({m:12}).diff(h(),"months",!0),-11>=b?(this.disableNextYear=!1,d.removeClassName(this.container, 25c.disableNextYear)):(this.disableNextYear=!0,d.addClassName(this.container,c.disableNextYear));else if("today-future"===n.direction||"future"===n.direction)b=a.subtract({m:12}).diff(h(),"months",!0),b>11+n.months?(this.disablePreviousYear=!1,d.removeClassName(this.container,c.disablePreviousYear)):(this.disablePreviousYear=!0,d.addClassName(this.container,c.disablePreviousYear))}}};var s=function(a,b,c){var j=[];
25"string"===typeof a?a=a.split(b):d.isArray(a)||(a=[a]);b=a.length;var e=0;do a[e]&&j.push(h(a[e], 26c).hours(12));while(++e<b);return j};window.Kalendae=k;var d=k.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,c){var d;a=document.createElement(a);if(b)for(d in b)b.hasOwnProperty(d)&&a.setAttribute(d,b[d]);c&&c.appendChild(a);return a},isVisible:function(a){return 0< 27a.offsetWidth||0<a.offsetHeight},getStyle:function(a,b){var c;a.currentStyle?c=a.currentStyle[b]:window.getComputedStyle&&(c=window.getComputedStyle(a,null)[b]);return c},domReady:function(a){/in/.test(document.readyState)?setTimeout(function(){d.domReady(a)},9):a()},addEvent:function(a,b,c){var d=function(b){b=b||window.event;var d=c.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, 28d):a.addEventListener(b,d,!1);return d},removeEvent:function(a,b,c){a.detachEvent?a.detachEvent("on"+b,c):a.removeEventListener(b,c,!1)},hasClassName:function(a,b){if(!(a=d.$(a)))return!1;var c=a.className;return 0<c.length&&(c==b||RegExp("(^|\\s)"+b+"(\\s|$)").test(c))},addClassName:function(a,b){if((a=d.$(a))&&!d.hasClassName(a,b))a.className+=(a.className?" ":"")+b},removeClassName:function(a,b){if(a=d.$(a))a.className=d.trimString(a.className.replace(RegExp("(^|\\s+)"+b+"(\\s+|$)")," "))},isFixed:function(a){do if("fixed"=== 29d.getStyle(a,"position"))return!0;while(a=a.offsetParent);return!1},scrollContainer:function(a){do{var b=d.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 c=a.offsetLeft,d=a.offsetTop,e={};if(!b)for(;a=a.offsetParent;)c+=a.offsetLeft,d+=a.offsetTop;e[0]=e.left=c;e[1]=e.top=d;return e},getHeight:function(a){return a.offsetHeight||a.scrollHeight},getWidth:function(a){return a.offsetWidth||a.scrollWidth}, 30trimString:function(a){return a.replace(/^\s+/,"").replace(/\s+$/,"")},merge:function(){for(var a=!0===arguments[0],b={},c=a?1:0;c<arguments.length;c++){var d=b,e=arguments[c];if("object"===typeof e){var f=void 0;for(f in e)e.hasOwnProperty(f)&&(a&&"object"===typeof d[f]&&"object"===typeof e[f]?_update(d[f],e[f]):d[f]=e[f])}}return b},isArray:function(a){return"[object Array]"==Object.prototype.toString.call(a)}};"function"===typeof document.addEventListener&&k.util.domReady(function(){for(var a= 31d.$$(".auto-kal"),b=a.length,c,j;b--;)c=a[b],j=c.getAttribute("data-kal"),j=null==j||""==j?{}:(new Function("return {"+j+"};"))(),"INPUT"===c.tagName?new k.Input(c,j):new k(d.merge(j,{attachTo:c}))});k.Input=function(a,b){if("function"===typeof document.addEventListener||d.isIE8()){var c=this.input=d.$(a),j,e;if(!c||"INPUT"!==c.tagName)throw"First argument for Kalendae.Input must be an <input> element or a valid element id.";var f=this,g=f.classes;e=f.settings=d.merge(f.defaults,b);e.attachTo=window.document.body; 32e.selected?j=!0:e.selected=c.value;k.call(f,e);e.closeButton&&(e=d.make("a",{"class":g.closeButton},f.container),d.addEvent(e,"click",function(){c.blur()}));j&&(c.value=f.getSelected());j=f.container;var h=!1;j.style.display="none";d.addClassName(j,g.positioned);d.addEvent(j,"mousedown",function(){h=!0});d.addEvent(window.document,"mousedown",function(){h=!1});d.addEvent(c,"focus",function(){f.setSelected(this.value);f.show()});d.addEvent(c,"blur",function(){h&&d.isIE8()?(h=!1,c.focus()):f.hide()}); 33d.addEvent(c,"keyup",function(){f.setSelected(this.value)});(g=d.scrollContainer(c))&&d.addEvent(g,"scroll",function(){c.blur()});f.subscribe("change",function(){c.value=f.getSelected()})}};k.Input.prototype=d.merge(k.prototype,{defaults:d.merge(k.prototype.defaults,{format:"MM/DD/YYYY",side:"bottom",closeButton:!0,offsetLeft:0,offsetTop:0}),classes:d.merge(k.prototype.classes,{positioned:"k-floating",closeButton:"k-btn-close"}),show:function(){var a=this.container,b=a.style,c=this.input,j=d.getPosition(c), 34e=d.scrollContainer(c),e=e?e.scrollTop:0,f=this.settings;b.display="";
34switch(f.side){case "left":b.left=j.left-d.getWidth(a)+f.offsetLeft+"px";b.top=j.top+f.offsetTop-e+"px";break;case "right":b.left=j.left+d.getWidth(c)+"px";b.top=j.top+f.offsetTop-e+"px";break;case "top":b.left=j.left+f.offsetLeft+"px";b.top=j.top-d.getHeight(a)+f.offsetTop-e+"px";break;default:b.left=j.left+f.offsetLeft+"px",b.top=j.top+d.getHeight(c)+f.offsetTop-e+"px"}b.position=d.isFixed(c)?"fixed":"absolute";this.publish("show", 35this)},hide:function(){this.container.style.display="none";this.publish("hide",this)}});var v=function(a){a||(a=this);var b=a.c_||{};a.publish=function(a,d,e){for(var f=(a=b[a])?a.length:0,g;f--;)if(g=a[f].apply(d,e||[]),"boolean"===typeof g)return g};a.subscribe=function(a,d,e){b[a]||(b[a]=[]);e?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 e=d?d.length:0;e--;)d[e]===a&&d.splice(e,1)}};if(!k.moment)if(window.moment)k.moment=window.moment;else throw"Kalendae requires moment.js. You must use kalendae.standalone.js if moment is not available on the page."; 36h=k.moment;h.fn.stripTime=function(){this._d=new Date(864E5*Math.floor(this._d.valueOf()/864E5));return this};h.fn.yearDay=function(a){var b=Math.floor(this._d/864E5);return"undefined"===typeof a?b:this.add({d:a-b})};q=k.moment().stripTime();if("undefined"!==typeof jQuery&&("function"===typeof document.addEventListener||d.isIE8()))jQuery.fn.kalendae=function(a){this.each(function(b,c){"INPUT"===c.tagName?$(c).data("kalendae",new k.Input(c,a)):$(c).data("kalendae",new k($.extend({},{attachTo:c},a)))}); 37return this}})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.