/* FullCalendar v1.5.4 http://arshaw.com/fullcalendar/ Use fullcalendar.css for basic styling. For event drag & drop, requires jQuery UI draggable. For event resizing, requires jQuery UI resizable. Copyright (c) 2011 Adam Shaw Dual licensed under the MIT and GPL licenses, located in MIT-LICENSE.txt and GPL-LICENSE.txt respectively. Date: Tue Sep 4 23:38:33 2012 -0700 */ (function(h,w){function lb(a,c,b){function e(){setTimeout(function(){!s.start&&0!==h("body")[0].offsetWidth&&f()},0)}function d(a){if(!s||a!=s.name){F++;p();var c=s,b;c?((c.beforeHide||Pa)(),ta(z,z.height()),c.element.hide()):ta(z,1);z.css("overflow","hidden");(s=J[a])?s.element.show():s=J[a]=new ca[a](b=N=h("
").appendTo(z),v);c&&C.deactivateButton(c.name);C.activateButton(a);f();z.css("overflow","");c&&ta(z,1);b||(s.afterShow||Pa)();F--}} function f(b){if(0!==x.offsetWidth){F++;p();fa===w&&m();var d=!1;!s.start||b||u=s.end?(s.render(u,b||0),l(!0),d=!0):s.sizeDirty?(s.clearEvents(),l(),d=!0):s.eventsDirty&&(s.clearEvents(),d=!0);s.sizeDirty=!1;s.eventsDirty=!1;b=d;!c.lazyFetching||k(s.visStart,s.visEnd)?j():b&&t();V=a.outerWidth();C.updateTitle(s.title);b=new Date;b>=s.start&&b").prependTo(a),C=new mb(v,c),(H=C.render())&&a.prepend(H),d(c.defaultView),h(window).resize(g), 0!==h("body")[0].offsetWidth||e())};v.destroy=function(){h(window).unbind("resize",g);C.destroy();z.remove();a.removeClass("fc fc-rtl ui-widget")};v.refetchEvents=j;v.reportEvents=function(a){A=a;t()};v.reportEventChange=function(a){t(a)};v.rerenderEvents=t;v.changeView=d;v.select=function(a,c,b){s.select(a,c,b===w?!0:b)};v.unselect=p;v.prev=function(){f(-1)};v.next=function(){f(1)};v.prevYear=function(){xa(u,-1);f()};v.nextYear=function(){xa(u,1);f()};v.today=function(){u=new Date;f()};v.gotoDate= function(a,c,b){a instanceof Date?u=o(a):Qa(u,a,c,b);f()};v.incrementDate=function(a,c,b){a!==w&&xa(u,a);c!==w&&ya(u,c);b!==w&&q(u,b);f()};v.formatDate=function(a,b){return da(a,b,c)};v.formatDates=function(a,b,d){return za(a,b,d,c)};v.getDate=function(){return o(u)};v.getView=function(){return s};v.option=function(a,b){if(b===w)return c[a];if("height"==a||"contentHeight"==a||"aspectRatio"==a)c[a]=b,i()};v.trigger=function(a,b){if(c[a])return c[a].apply(b||x,Array.prototype.slice.call(arguments,2))}; nb.call(v,c,b);var k=v.isFetchNeeded,n=v.fetchEvents,x=a[0],C,H,z,s,J={},V,fa,N,R=0,F=0,u=new Date,A=[],D;Qa(u,c.year,c.month,c.date);c.droppable&&h(document).bind("dragstart",function(a,b){var d=a.target,C=h(d);if(!C.parents(".fc").length){var e=c.dropAccept;if(h.isFunction(e)?e.call(d,C):C.is(e))D=d,s.dragStart(D,a,b)}}).bind("dragstop",function(a,c){D&&(s.dragStop(D,a,c),D=null)})}function mb(a,c){function b(b){var e=h("");(b=c.header[b])&&h.each(b.split(" "),function(b){0< b&&e.append("");var f;h.each(this.split(","),function(b,g){if("title"==g)e.append(""),f&&f.addClass(d+"-corner-right"),f=null;else{var r;a[g]?r=a[g]:ca[g]&&(r=function(){p.removeClass(d+"-state-hover");a.changeView(g)});if(r){var o=c.theme?Aa(c.buttonIcons,g):null,q=Aa(c.buttonText,g),p=h(""+(o?"":q)+""); p&&(p.click(function(){p.hasClass(d+"-state-disabled")||r()}).mousedown(function(){p.not("."+d+"-state-active").not("."+d+"-state-disabled").addClass(d+"-state-down")}).mouseup(function(){p.removeClass(d+"-state-down")}).hover(function(){p.not("."+d+"-state-active").not("."+d+"-state-disabled").addClass(d+"-state-hover")},function(){p.removeClass(d+"-state-hover").removeClass(d+"-state-down")}).appendTo(e),f||p.addClass(d+"-corner-left"),f=p)}}});f&&f.addClass(d+"-corner-right")});return e}this.render= function(){d=c.theme?"ui":"fc";if(c.header)return e=h("").append(h("").append(b("left")).append(b("center")).append(b("right")))};this.destroy=function(){e.remove()};this.updateTitle=function(a){e.find("h2").html(a)};this.activateButton=function(a){e.find("span.fc-button-"+a).addClass(d+"-state-active")};this.deactivateButton=function(a){e.find("span.fc-button-"+a).removeClass(d+"-state-active")};this.disableButton=function(a){e.find("span.fc-button-"+ a).addClass(d+"-state-disabled")};this.enableButton=function(a){e.find("span.fc-button-"+a).removeClass(d+"-state-disabled")};var e=h([]),d}function nb(a,c){function b(a,c){e(a,function(b){if(c==p){if(b){for(var d=0;dP};this.fetchEvents=function(a,c){q=a;P=c;n=[];var d=++p,e=j.length;v=e;for(var f=0;fi;l--)if(g= rb[b.substring(i,l)]){d&&(j+=g(d,e));i=l-1;break}l==i&&d&&(j+=m)}return j}function ra(a){if(a.end){var c=a.end,a=a.allDay,c=o(c);return a||c.getHours()||c.getMinutes()?q(c,1):ja(c)}return q(o(a.start),1)}function sb(a,c){return 100*(c.msLength-a.msLength)+(a.event.start-c.event.start)}function Ea(a,c,b,e){var d=[],f,i=a.length,h,m,l,g,j;for(f=0;fb&&me?(l=o(e),j=!1):j=!0,d.push({event:h,start:m,end:l,isStart:g,isEnd:j,msLength:l-m});return d.sort(sb)} function Fa(a){var c=[],b,e=a.length,d,f,i,h;for(b=0;bd.start&&c[f][h].start a?"0":"")+a}function Aa(a,c){if(a[c]!==w)return a[c];for(var b=c.split(/(?=[A-Z])/),e=b.length-1,d;0<=e;e--)if(d=a[b[e].toLowerCase()],d!==w)return d;return a[""]}function W(a){return a.replace(/&/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""").replace(/\n/g,"
")}function Ya(a){return a.id+"/"+a.className+"/"+a.style.cssText.replace(/(^|;)\s*(top|left|width|height)\s*:[^;]*/ig,"")}function Ja(a){a.attr("unselectable","on").css("MozUserSelect", "none").bind("selectstart.ui",function(){return!1})}function va(a){a.children().removeClass("fc-first fc-last").filter(":first-child").addClass("fc-first").end().filter(":last-child").addClass("fc-last")}function Ka(a,c){a.each(function(a,e){e.className=e.className.replace(/^fc-\w*/,"fc-"+tb[c.getDay()])})}function Za(a,c){var b=a.source||{},e=a.color,d=b.color,f=c("eventColor"),i=a.backgroundColor||e||b.backgroundColor||d||c("eventBackgroundColor")||f,e=a.borderColor||e||b.borderColor||d||c("eventBorderColor")|| f,b=a.textColor||b.textColor||c("eventTextColor"),d=[];i&&d.push("background-color:"+i);e&&d.push("border-color:"+e);b&&d.push("color:"+b);return d.join(";")}function ua(a,c,b){h.isFunction(a)&&(a=[a]);if(a){var e,d;for(e=0;e";for(r=0;r";d+="
";for(r=0;r";for(i=0;i";d+=""}b=h(d+"").appendTo(a);x=b.find("thead");C=x.find("th");H=b.find("tbody");z=H.find("tr");s=H.find("td");J=s.filter(":first-child");V=z.eq(0).find("div.fc-day-content div");va(x.add(x.find("tr")));va(z);z.eq(0).addClass("fc-first");s.click(e).mousedown(k);fa=h("").appendTo(a)}else w(); var o=c||1==u,M=g.start.getMonth(),v=ja(new Date),q,p,t;o&&C.each(function(a,b){q=h(b);p=m(a);q.html(n(p,aa));Ka(q,p)});s.each(function(a,b){q=h(b);p=m(a);p.getMonth()==M?q.removeClass("fc-other-month"):q.addClass("fc-other-month");+p==+v?q.addClass(O+"-state-highlight fc-today"):q.removeClass(O+"-state-highlight fc-today");q.find("div.fc-day-number").text(p.getDate());o&&Ka(q,p)});z.each(function(a,b){t=h(b);if(a div"),(a==u-1?c:b)-pa(d))}})};g.setWidth=function(a){N=a;M.clear();F=Math.floor(N/A);sa(C.slice(0,-1),F)};g.renderDayOverlay=d;g.defaultSelectionEnd=function(a){return o(a)};g.renderSelection=function(a,b){d(a,q(o(b),1),!0)};g.clearSelection=function(){v()};g.reportDayClick=function(a,b,c){var d=i(a);t("dayClick", s[d.row*A+d.col],a,b,c)};g.dragStart=function(a,b){E.start(function(a){v();a&&f(a.row,a.col,a.row,a.col)},b)};g.dragStop=function(a,b,c){var d=E.stop();v();d&&(d=r(d),t("drop",a,d,!0,b,c))};g.defaultEventEnd=function(a){return o(a.start)};g.getHoverListener=function(){return E};g.colContentLeft=function(a){return M.left(a)};g.colContentRight=function(a){return M.right(a)};g.dayOfWeekCol=l;g.dateCell=i;g.cellDate=r;g.cellIsAllDay=function(){return!0};g.allDayRow=function(a){return z.eq(a)};g.allDayBounds= function(){return{left:0,right:N}};g.getRowCnt=function(){return u};g.getColCnt=function(){return A};g.getColWidth=function(){return F};g.getDaySegmentContainer=function(){return fa};db.call(g,a,c,b);eb.call(g);fb.call(g);ub.call(g);var j=g.opt,t=g.trigger,w=g.clearEvents,p=g.renderOverlay,v=g.clearOverlays,k=g.daySelectionMousedown,n=c.formatDate,x,C,H,z,s,J,V,fa,N,R,F,u,A,D,E,M,G,y,S,L,U,O,aa;Ja(a.addClass("fc-grid"));D=new gb(function(a,b){var c,d,e;C.each(function(a,f){c=h(f);d=c.offset().left; a&&(e[1]=d);e=[d];b[a]=e});e[1]=d+c.outerWidth();z.each(function(b,f){b=E(o(a),W))return ka.height(); var c=n("slotMinutes"),d=60*b.getHours()+b.getMinutes()-la,e=Math.floor(d/c),f=Oa[e];f===w&&(f=Oa[e]=ka.find("tr:eq("+e+") td div")[0].offsetTop);return Math.max(0,Math.round(f-1+T*(d%c/c)))}function t(a,b){var c=n("selectHelper");Y.build();if(c){var d=$(a,k.visStart)*ha+ia;if(0<=d&&df){d.top=f;d.height=g-f;d.left+=2;d.width-=5;if(h.isFunction(c)){if(c=c(a,b))d.position="absolute",d.zIndex=8,ba=h(c).css(d).appendTo(aa)}else d.isStart=!0,d.isEnd= !0,ba=h(fa({title:"",start:a,end:b,className:["fc-select-helper"],editable:!1},d)),ba.css("opacity",n("dragOpacity"));ba&&(ba.click(e).mousedown(p),aa.append(ba),sa(ba,d.width,!0),Va(ba,d.height,!0))}}}else i(a,b)}function P(){z();ba&&(ba.remove(),ba=null)}function p(a){if(1==a.which&&n("selectable")){J(a);var b;oa.start(function(a,c){P();if(a&&a.col==c.col&&!l(a)){var d=r(c),e=r(a);b=[d,E(o(d),n("slotMinutes")),e,E(o(e),n("slotMinutes"))].sort(Xa);t(b[0],b[3])}else b=null},a);h(document).one("mouseup", function(a){oa.stop();b&&(+b[0]==+b[1]&&v(b[0],!1,a),s(b[0],b[3],!1,a))})}}function v(a,b,c){x("dayClick",D[g(a.getDay())],a,b,c)}var k=this;k.renderAgenda=function(b){K=b;Q=n("theme")?"ui":"fc";da=n("weekends")?0:1;ca=n("firstDay");(ea=n("isRTL"))?(ha=-1,ia=K-1):(ha=1,ia=0);la=Da(n("minTime"));W=Da(n("maxTime"));ga=n("columnFormat");if(R)C();else{var b=Q+"-widget-header",c=Q+"-widget-content",d,f,i,g,l,r=0==n("slotMinutes")%15;d="| | ";for(f=0;f";d+=" |
|---|
| | ";for(f=0;f";R=h(d+(" |
|---|
")).appendTo(a);F=R.find("thead");u=F.find("th").slice(1,-1);A=R.find("tbody");D=A.find("td").slice(0, -1);I=D.find("div.fc-day-content div");M=D.eq(0);G=M.find("> div");va(F.add(F.find("tr")));va(A.add(A.find("tr")));ma=F.find("th:first");na=R.find(".fc-agenda-gutter");y=h("").appendTo(a);n("allDaySlot")?(S=h("").appendTo(y),d="",L=h(d).appendTo(y),U=L.find("tr"),U.find("td").click(e).mousedown(V),ma=ma.add(L.find("th:first")),na=na.add(L.find("th.fc-agenda-gutter")),y.append("")):S=h([]);O=h("").appendTo(y);aa=h("").appendTo(O);$a=h("").appendTo(aa); d="";i=Ra();g=E(o(i),W);E(i,la);for(f=Na=0;i| "+(!r||!l?N(i,n("axisFormat")):" ")+" | | ",E(i,n("slotMinutes")),Na++;ka=h(d+"
").appendTo(aa);ab=ka.find("div:first");ka.find("td").click(e).mousedown(p);ma=ma.add(ka.find("th:first"))}i= ja(new Date);for(b=0;b"+W(L(a.start,a.end,f("timeFormat")))+"
";b.isEnd&&m(a)&&(c+="=
");return c+(""+(d?"a":"div")+">")}function e(a,b,c){var d=b.find("div.fc-event-time");if(r(a)){var e=function(b){var c= E(o(a.start),b),e;a.end&&(e=E(o(a.end),b));d.text(L(c,e,f("timeFormat")))},g=function(){j&&(d.css("display",""),b.draggable("option","grid",[z,y]),j=!1)},h,j=!1,x,s,C,n=f("isRTL")?-1:1,p=k(),v=V(),z=I(),y=N();b.draggable({zIndex:9,scroll:!1,grid:[z,y],axis:1==v?"y":!1,opacity:f("dragOpacity"),revertDuration:f("dragRevertDuration"),start:function(c,e){i("eventDragStart",b,a,c,e);A(a,b);h=b.position();s=C=0;p.start(function(c,e,i,h){b.draggable("option","revert",!c);G();c&&(x=h*n,f("allDaySlot")&&!c.row? (j||(j=!0,d.hide(),b.draggable("option","grid",null)),M(q(o(a.start),x),q(ra(a),x))):g())},c,"drag")},drag:function(a,b){s=Math.round((b.position.top-h.top)/y)*f("slotMinutes");s!=C&&(j||e(s),C=s)},stop:function(c,d){var f=p.stop();G();i("eventDragStop",b,a,c,d);f&&(x||s||j)?D(this,a,x,j?0:s,j,c,d):(g(),b.css("filter",""),b.css(h),e(0),u(a,b))}})}if(c.isEnd&&m(a)){var H,S,w=N();b.resizable({handles:{s:"div.ui-resizable-s"},grid:w,start:function(c,d){H=S=0;A(a,b);b.css("z-index",9);i("eventResizeStart", this,a,c,d)},resize:function(c,e){H=Math.round((Math.max(w,b.height())-e.originalSize.height)/w);H!=S&&(d.text(L(a.start,!H&&!a.end?null:E(l(a),f("slotMinutes")*H),f("timeFormat"))),S=H)},stop:function(c,d){i("eventResizeStop",this,a,c,d);H?Q(this,a,0,f("slotMinutes")*H,c,d):(b.css("z-index",8),u(a,b))}})}t(a,b)}var d=this;d.renderEvents=function(l,m){g(l);var r,j=l.length,k=[],L=[];for(r=0;rD.start&&K.startM-k.contentTop&&(B.find("div.fc-event-time").text(S(y.start,f("timeFormat"))+" - "+ y.title),B.find("div.fc-event-title").remove()),i("eventAfterRender",y,y,B)};d.compileDaySegs=a;d.clearEvents=function(){j();p().empty();v().empty()};d.slotSegHtml=b;d.bindDaySeg=function(a,b,c){if(r(a)){var d=c.isStart,e=function(){j||(b.width(g).height("").draggable("option","grid",null),j=!0)},g,h,j=!0,l,y=f("isRTL")?-1:1,s=k(),L=I(),p=N(),C=x();b.draggable({zIndex:9,opacity:f("dragOpacity","month"),revertDuration:f("dragRevertDuration"),start:function(c,k){i("eventDragStart",b,a,c,k);A(a,b);g= b.width();s.start(function(c,i,g,k){G();c?(h=!1,l=k*y,c.row?d?j&&(b.width(L-10),Va(b,p*Math.round((a.end?(a.end-a.start)/wb:f("defaultEventMinutes"))/f("slotMinutes"))),b.draggable("option","grid",[L,1]),j=!1):h=!0:(M(q(o(a.start),l),q(ra(a),l)),e()),h=h||j&&!l):(e(),h=!0);b.draggable("option","revert",h)},c,"drag")},stop:function(c,d){s.stop();G();i("eventDragStop",b,a,c,d);if(h)e(),b.css("filter",""),u(a,b);else{var g=0;j||(g=Math.round((b.offset().top-R().offset().top)/p)*f("slotMinutes")+C-(60* a.start.getHours()+a.start.getMinutes()));D(this,a,l,g,j,c,d)}}})}c.isEnd&&m(a)&&J(a,b,c);t(a,b)};jb.call(d);var f=d.opt,i=d.trigger,r=d.isEventDraggable,m=d.isEventResizable,l=d.eventEnd,g=d.reportEvents,j=d.reportEventClear,t=d.eventElementHandlers,P=d.setHeight,p=d.getDaySegmentContainer,v=d.getSlotSegmentContainer,k=d.getHoverListener,n=d.getMaxMinute,x=d.getMinMinute,C=d.timePosition,H=d.colContentLeft,z=d.colContentRight,s=d.renderDaySegs,J=d.resizableDayEvent,V=d.getColCnt,I=d.getColWidth, N=d.getSlotHeight,R=d.getBodyContent,F=d.reportEventElement,u=d.showEvents,A=d.hideEvents,D=d.eventDrop,Q=d.eventResize,M=d.renderDayOverlay,G=d.clearOverlays,y=d.calendar,S=y.formatDate,L=y.formatDates}function db(a,c,b){function e(a,c){var d=n[a];return"object"==typeof d?Aa(d,c||b):d}function d(a,b){return c.trigger.apply(c,[a,b||g].concat(Array.prototype.slice.call(arguments,2),[g]))}function f(a){return ga(a.editable,(a.source||{}).editable,e("editable"))}function i(a){return a.end?o(a.end):j(a)} function h(a,b,c){var a=k[a._id],d,e=a.length;for(d=0;d",!f.allDay&&e.isStart&&(n+=""+W(u(f.start,f.end,l("timeFormat")))+""),n+=""+W(f.title)+"
",e.isEnd&&t(f)&&(n+="
"),n+=""+(i?"a":"div")+">",e.left=o,e.outerWidth=p-o,e.startCol=r,e.endCol=m+1;return n}function c(a,b){var c,d=a.length,e,f,i;for(c=0;c div");return c}function i(a){var b,c=a.length,d=[];for(b=0;b"),z=R(),C=p.length,E;x[0].innerHTML= a(p);x=x.children();z.append(x);c(p,x);b(p);e(p);d(p);r(p,i(f()));x=[];for(z=0;z"));d[0].parentNode!=e[0]&&d.appendTo(e);a.push(d.css(b).show());return d};this.clearOverlays=function(){for(var b;b=a.shift();)c.push(b.hide().unbind())};var a=[],c=[]}function gb(a){var c,b;this.build=function(){c=[];b=[];a(c,b)};this.cell=function(a,d){var f=c.length,i=b.length,h,m=-1,l=-1;for(h=0;h=c[h][0]&&d=b[h][0]&&aa.getHours()?"a":"p"},tt:function(a){return 12>a.getHours()?"am":"pm"},T:function(a){return 12>a.getHours()?"A":"P"},TT:function(a){return 12>a.getHours()?"AM":"PM"},u:function(a){return da(a,"yyyy-MM-dd'T'HH:mm:ss'Z'")},S:function(a){a=a.getDate();return 10a?"th":["st","nd","rd"][a%10-1]||"th"}};I.applyAll=ua;ca.month=function(a,c){var b=this;b.render=function(a,c){c&&(ya(a, c),a.setDate(1));var h=o(a,!0);h.setDate(1);var l=ya(o(h),1),g=o(h),j=o(l),t=e("firstDay"),w=e("weekends")?0:1;w&&(Q(g),Q(j,-1,!0));q(g,-((g.getDay()-Math.max(t,w)+7)%7));q(j,(7-j.getDay()+Math.max(t,w))%7);t=Math.round((j-g)/(7*Sa));"fixed"==e("weekMode")&&(q(j,7*(6-t)),t=6);b.title=f(h,e("titleFormat"));b.start=h;b.end=l;b.visStart=g;b.visEnd=j;d(6,t,w?5:7,!0)};La.call(b,a,c,"month");var e=b.opt,d=b.renderBasic,f=c.formatDate};ca.basicWeek=function(a,c){var b=this;b.render=function(a,c){c&&q(a, 7*c);var h=q(o(a),-((a.getDay()-e("firstDay")+7)%7)),l=q(o(h),7),g=o(h),j=o(l),t=e("weekends");t||(Q(g),Q(j,-1,!0));b.title=f(g,q(o(j),-1),e("titleFormat"));b.start=h;b.end=l;b.visStart=g;b.visEnd=j;d(1,1,t?7:5,!1)};La.call(b,a,c,"basicWeek");var e=b.opt,d=b.renderBasic,f=c.formatDates};ca.basicDay=function(a,c){var b=this;b.render=function(a,c){c&&(q(a,c),e("weekends")||Q(a,0>c?-1:1));b.title=f(a,e("titleFormat"));b.start=b.visStart=o(a,!0);b.end=b.visEnd=q(o(b.start),1);d(1,1,1,!1)};La.call(b,a, c,"basicDay");var e=b.opt,d=b.renderBasic,f=c.formatDate};h.extend(!0,qa,{weekMode:"fixed"});ca.agendaWeek=function(a,c){var b=this;b.render=function(a,c){c&&q(a,7*c);var h=q(o(a),-((a.getDay()-e("firstDay")+7)%7)),l=q(o(h),7),g=o(h),j=o(l),t=e("weekends");t||(Q(g),Q(j,-1,!0));b.title=f(g,q(o(j),-1),e("titleFormat"));b.start=h;b.end=l;b.visStart=g;b.visEnd=j;d(t?7:5)};kb.call(b,a,c,"agendaWeek");var e=b.opt,d=b.renderAgenda,f=c.formatDates};ca.agendaDay=function(a,c){var b=this;b.render=function(a, c){c&&(q(a,c),e("weekends")||Q(a,0>c?-1:1));var h=o(a,!0),l=q(o(h),1);b.title=f(a,e("titleFormat"));b.start=b.visStart=h;b.end=b.visEnd=l;d(1)};kb.call(b,a,c,"agendaDay");var e=b.opt,d=b.renderAgenda,f=c.formatDate};h.extend(!0,qa,{allDaySlot:!0,allDayText:"all-day",firstHour:6,slotMinutes:30,defaultEventMinutes:120,axisFormat:"h(:mm)tt",timeFormat:{agenda:"h:mm{ - h:mm}"},dragOpacity:{agenda:0.5},minTime:0,maxTime:24})})(jQuery);