-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathcalendar.min.js
More file actions
1 lines (1 loc) · 4.25 KB
/
calendar.min.js
File metadata and controls
1 lines (1 loc) · 4.25 KB
1
(function(t){var e=function(e,n,a){function r(t){t&&"undefined"!=typeof calLanguages&&calLanguages[t]&&(b=t)}function l(){x<11?x++:(x=0,D++),h()}function s(){x>0?x--:(x=11,D--),h()}function o(t){t&&(D=t.getFullYear(),x=t.getMonth(),h())}function u(){L.single?p():i()}function p(){null!=L.url&&""!=L.url&&(null===w&&t.ajax({url:L.url,async:!1,success:function(t){w=t,c(Object.keys(w))}}),null!==w&&d()&&(C.posts=w[D+"-"+(x+1)]))}function i(){null===T&&t.ajax({url:L.root+"list.json",async:!1,success:function(t){c(t)}}),d()&&t.ajax({url:L.root+D+"-"+(x+1)+".json",async:!1,success:function(t){C.posts=t}})}function c(t){T=t.map(function(t){var e=t.split("-");return new Date(Date.UTC(+e[0],+e[1]-1))})}function d(){var t=Date.UTC(D,x);if(null===T||0===T.length)return!1;if(0===C.posts.length&&(null===C.prev&&null!==C.next&&C.next.getTime()>t||null===C.next&&null!==C.prev&&C.prev.getTime()<t))return!1;C.posts=[];for(var e=0;e<T.length;e++){var n=T[e].getTime();if(t===n)return C.prev=0===e?null:T[e-1],C.next=e===T.length-1?null:T[e+1],!0;if(t<n){C.prev=0===e?null:T[e-1],C.next=T[e];break}C.prev=T[e],C.next=null}return!1}function f(t,e){var n={"LMM+":L.months[t.getMonth()],"MM+":t.getMonth()+1};/(y+)/.test(e)&&(e=e.replace(RegExp.$1,(t.getFullYear()+"").substr(4-RegExp.$1.length)));for(var a in n)new RegExp("("+a+")").test(e)&&(e=e.replace(RegExp.$1,"LMM+"===a?n[a]:("00"+n[a]).substr((""+n[a]).length)));return e}function h(){u();var e=new Date(D,x,1).getDay()-L.weekOffset;e<=0&&(e=6-(e+1)*-1);var n=new Date(D,x+1,0).getDate(),a=new Date(D,x,0).getDate()-e+1,r=t("<div/>").addClass("cal-head"),p=t("<div/>"),i=t("<div/>"),c=t("<div/>").addClass("cal-title");i.html(L.headArrows.previous),p.html(L.headArrows.next),curDate=new Date(Date.UTC(D,x)),0===C.posts.length?c.html(f(curDate,L.titleFormat)):(cTitleLink=t("<a/>").attr("href",f(curDate,L.titleLinkFormat)).attr("title",f(curDate,L.postsMonthTip)).html(f(curDate,L.titleFormat)),c.html(cTitleLink)),i.on("click",s),p.on("click",l),r.append(i),r.append(c),r.append(p);for(var d=t("<table/>").addClass("cal"),h=L.weekOffset,g=t("<thead/>"),y=t("<tr/>"),w=0;w<7;w++){h>6&&(h=0);var T=t("<th/>").attr("scope","col").attr("title",L.dayOfWeek[h]);T.html(L.dayOfWeekShort[h]),y.append(T),h++}g.append(y),d.append(g);var b=t("<tfoot/>"),F=t("<tr/>"),O=t("<td/>").attr("colspan",3),j=t("<td/>").html(" "),A=t("<td/>").attr("colspan",3);C.prev&&O.html(L.footArrows.previous+L.months[C.prev.getMonth()]).addClass("cal-foot").attr("title",f(C.prev,L.postsMonthTip)),C.next&&A.html(L.months[C.next.getMonth()]+L.footArrows.next).addClass("cal-foot").attr("title",f(C.next,L.postsMonthTip)),O.on("click",function(){o(C.prev)}),A.on("click",function(){o(C.next)}),F.append(O),F.append(j),F.append(A),b.append(F);for(var S=t("<tbody/>"),W=1,E=1,w=0;w<6;w++){for(var R=t("<tr/>"),J=0;J<7;J++){var U=t("<td/>");if(7*w+J<e)U.addClass("cal-gray"),U.html(a++);else if(W<=n){W==M&&v==x&&m==D&&U.addClass("cal-today");for(var Y={num:0,keys:[]},$=0;$<C.posts.length;$++){var N=new Date(Date.parse(C.posts[$].date));N.getDate()==W&&(Y.keys[Y.num++]=$)}if(0!==Y.num){var P=Y.keys[0],Q=t("<a>").attr("href",C.posts[P].link).attr("title",C.posts[P].title).html(W++);U.append(Q)}else U.html(W++)}else U.addClass("cal-gray"),U.html(E++);R.append(U)}S.append(R)}d.append(g),d.append(b),d.append(S),t(k).html(r),t(k).append(d)}var g=new Date,y=g.getDate(),v=g.getMonth(),m=g.getFullYear(),M=y,x=v,D=m,k=a,w=null,T=null,C={posts:[],prev:null,next:null},b="en";r(e);var L=t.extend({},t.fn.aCalendar.defaults,"undefined"==typeof calLanguages?{}:calLanguages[b],n);return"/"!==L.root[0]&&(L.root="/"+L.root),"/"!==L.root[L.root.length-1]&&(L.root+="/"),h()};t.fn.aCalendar=function(n,a){return this.each(function(){return e(n,a,t(this))})},t.fn.aCalendar.defaults={months:["January","February","March","April","May","June","July","August","September","October","November","December"],dayOfWeekShort:["S","M","T","W","T","F","S"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],postsMonthTip:"Posts published in LMM yyyy",titleFormat:"yyyy LMM",titleLinkFormat:"/archives/yyyy/MM/",headArrows:{previous:'<span class="cal-prev"></span>',next:'<span class="cal-next"></span>'},footArrows:{previous:"« ",next:" »"},weekOffset:0,single:!0,root:"/calendar/",url:"/calendar.json"}})(jQuery);