From: <jon...@us...> - 2014-03-30 17:57:08
|
Revision: 50579 http://sourceforge.net/p/tikiwiki/code/50579 Author: jonnybradley Date: 2014-03-30 17:57:02 +0000 (Sun, 30 Mar 2014) Log Message: ----------- [FIX] trackercalendar: Minor update for FullCalendar-Resourceviews to latest (just in case) Modified Paths: -------------- branches/12.x/vendor_extra/fullcalendar-resourceviews/changelog.txt branches/12.x/vendor_extra/fullcalendar-resourceviews/fullcalendar/fullcalendar.css branches/12.x/vendor_extra/fullcalendar-resourceviews/fullcalendar/fullcalendar.js branches/12.x/vendor_extra/fullcalendar-resourceviews/fullcalendar/fullcalendar.min.js branches/12.x/vendor_extra/fullcalendar-resourceviews/fullcalendar/fullcalendar.print.css branches/12.x/vendor_extra/fullcalendar-resourceviews/fullcalendar/gcal.js Modified: branches/12.x/vendor_extra/fullcalendar-resourceviews/changelog.txt =================================================================== --- branches/12.x/vendor_extra/fullcalendar-resourceviews/changelog.txt 2014-03-30 17:15:12 UTC (rev 50578) +++ branches/12.x/vendor_extra/fullcalendar-resourceviews/changelog.txt 2014-03-30 17:57:02 UTC (rev 50579) @@ -1,3 +1,15 @@ +version 1.6.1.6 (12/3/13) + - fixed a bug in event fetching when paginating was used +version 1.6.1.5 (11/28/13) + - fixed a bug in calendar start time calculation +version 1.6.1.4 (11/25/13) + + - Added largePrev and largeNext button type which can be used to skip full weeks/months if pagination is used in days (see paginateResourceWeek etc.) + +version 1.6.1.3 (11/11/13) + - added eventDropOutside callback which is triggered when event is dropped outside the calendar + - added paginateResourceWeek and paginateResourceNextWeeks options, view pagination. + version 1.6.1.2 (9/25/13) - Fixed a bug in ResourceNextWeeks starting day calculation - Fixed issue #41 (event is not showing if endtime - starttime < 30 minute) Modified: branches/12.x/vendor_extra/fullcalendar-resourceviews/fullcalendar/fullcalendar.css =================================================================== --- branches/12.x/vendor_extra/fullcalendar-resourceviews/fullcalendar/fullcalendar.css 2014-03-30 17:15:12 UTC (rev 50578) +++ branches/12.x/vendor_extra/fullcalendar-resourceviews/fullcalendar/fullcalendar.css 2014-03-30 17:57:02 UTC (rev 50579) @@ -1,5 +1,5 @@ /*! - * FullCalendar-Resourceviews v1.6.1.2 Stylesheet + * FullCalendar-Resourceviews v1.6.1.6 Stylesheet * Docs & License: http://arshaw.com/fullcalendar/, http://tux.fi/~jarnok/fullcalendar-resourceviews * (c) 2013 Adam Shaw, 2013 Jarno Kurlin (Resource Views) */ Modified: branches/12.x/vendor_extra/fullcalendar-resourceviews/fullcalendar/fullcalendar.js =================================================================== --- branches/12.x/vendor_extra/fullcalendar-resourceviews/fullcalendar/fullcalendar.js 2014-03-30 17:15:12 UTC (rev 50578) +++ branches/12.x/vendor_extra/fullcalendar-resourceviews/fullcalendar/fullcalendar.js 2014-03-30 17:57:02 UTC (rev 50579) @@ -1,5 +1,5 @@ /*! - * FullCalendar-Resourceviews v1.6.1.2 + * FullCalendar-Resourceviews v1.6.1.6 * Docs & License: http://arshaw.com/fullcalendar/, http://tux.fi/~jarnok/fullcalendar-resourceviews * (c) 2013 Adam Shaw, 2013 Jarno Kurlin (Resource Views) */ @@ -79,6 +79,8 @@ buttonText: { prev: "<span class='fc-text-arrow'>‹</span>", next: "<span class='fc-text-arrow'>›</span>", + largePrev: "<span class='fc-text-arrow'>«</span>", + largeNext: "<span class='fc-text-arrow'>»</span>", prevYear: "<span class='fc-text-arrow'>«</span>", nextYear: "<span class='fc-text-arrow'>»</span>", today: 'today', @@ -105,8 +107,14 @@ // ResourceNextWeeks week count numberOfWeeks: 4, - weekPrefix: 'Week' + weekPrefix: 'Week', + // resource views default paginate + paginateResourceWeek: 7, + paginateResourceNextWeeks: 7, + paginateResourceMonth: 'month' + + }; // right-to-left defaults @@ -132,7 +140,7 @@ ;; -var fc = $.fullCalendar = { version: "1.6.1.2" }; +var fc = $.fullCalendar = { version: "1.6.1.6" }; var fcViews = fc.views = {}; @@ -219,6 +227,8 @@ t.unselect = unselect; t.prev = prev; t.next = next; + t.largePrev = largePrev; + t.largeNext = largeNext; t.prevYear = prevYear; t.nextYear = nextYear; t.today = today; @@ -616,8 +626,15 @@ function next() { renderView(1); } + + function largePrev() { + renderView(-100); + } - + function largeNext() { + renderView(100); + } + function prevYear() { addYears(date, -1); renderView(); @@ -4570,6 +4587,7 @@ var t = this; + // exports t.render = render; @@ -4583,13 +4601,27 @@ function render(date, delta) { - if (delta) { - addMonths(date, delta * 1); - date.setDate(1); + if (delta === 100 || delta === -100) { + // 100 means we want to skip full month (largePrev/largeNext pressed) + var start = addMonths(date, (delta > 0 ? 1 : -1)); + var end = addMonths(cloneDate(start), 1); } - var start = cloneDate(date, true); - start.setDate(1); - var end = addMonths(cloneDate(start), 1); + else if (delta) { + if(opt('paginateResourceMonth') === 'month') { + var start = addMonths(date, delta * 1); + start.setDate(1); + var end = addMonths(cloneDate(start), 1); + } + else { + var start = addDays(date, delta * opt('paginateResourceMonth')); + var end = addMonths(cloneDate(start), 1); + } + } + else { + var start = cloneDate(date.setDate(1), true); + var end = addMonths(cloneDate(start.setDate(1), true), 1); + } + var visStart = cloneDate(start); var visEnd = cloneDate(end); var weekends = opt('weekends'); @@ -4638,7 +4670,6 @@ // exports t.render = render; - // imports ResourceView.call(t, element, calendar, 'resourceWeek'); var opt = t.opt; @@ -4648,11 +4679,20 @@ function render(date, delta) { - if (delta) { - addDays(date, delta * 7); + if (delta === 100 || delta === -100) { + // 100 means we want to skip full week (largePrev/largeNext pressed) + var start = addDays(date, (delta > 0 ? 7 : -7), false); + var end = addDays(cloneDate(start), 7); } - var start = addDays(cloneDate(date), -((date.getDay() - opt('firstDay') + 7) % 7)); - var end = addDays(cloneDate(start), 7); + else if (delta) { + var start = addDays(cloneDate(t.visStart), delta * opt('paginateResourceWeek'), false); + var end = addDays(cloneDate(start), 7); + } + else { + var start = addDays(cloneDate(date, true), -((date.getDay() - opt('firstDay') + 7) % 7)); + var end = addDays(cloneDate(start), 7); + } + var visStart = cloneDate(start); var visEnd = cloneDate(end); var weekends = opt('weekends'); @@ -4671,8 +4711,6 @@ t.visEnd = visEnd; renderBasic(getResources.length, getResources.length, weekends ? 7 : 5, false); } - - } ;; @@ -4699,14 +4737,23 @@ function render(date, delta) { var weekends = opt('weekends'); + var weekDays = weekends ? 7 : 5; + if (delta === 100 || delta === -100) { + // 100 means we want to skip full view (largePrev/largeNext pressed) + var start = addDays(date, opt('numberOfWeeks') * (delta > 0 ? 7 : -7), false); + var end = addDays(cloneDate(start), opt('numberOfWeeks') * 7); + } + else if (delta) { - addDays(date, delta * (opt('numberOfWeeks') * weekends ? 7 : 5)); + var start = addDays(cloneDate(t.visStart), delta * opt('paginateResourceNextWeeks'), false); + var end = addDays(cloneDate(start), opt('numberOfWeeks') * 7); } + else { + var start = addDays(cloneDate(date), -((date.getDay() - opt('firstDay') + weekDays) % weekDays), false); + var end = addDays(cloneDate(start), opt('numberOfWeeks')*7); + } - var weekDays = weekends ? 7 : 5; - var start = addDays(cloneDate(date), -((date.getDay() - opt('firstDay') + weekDays) % weekDays)); - var end = addWeeks(cloneDate(start), opt('numberOfWeeks')); var visStart = cloneDate(start); var visEnd = cloneDate(end); @@ -4813,7 +4860,7 @@ t.allDayBounds = allDayBounds; t.getRowCnt = function() { return rowCnt }; t.getColCnt = function() { return colCnt }; - t.getResources = calendar.fetchResources(); + t.getResources = calendar.fetchResources(!calendar.options['refetchResources']); t.getColWidth = function() { return colWidth }; t.getViewName = function() { return viewName }; t.getDaySegmentContainer = function() { return daySegmentContainer }; @@ -5298,36 +5345,8 @@ if (viewName == 'resourceDay') { col = timeOfDayCol(date); } - else if (viewName == 'resourceNextWeeks') { - // Start from first slot and test every date - year = date.getFullYear(); - month = date.getMonth(); - day = date.getDate(); - - for (var i=0; i < colCnt; i++) { - cmpDate = _cellDate(i); - cmpYear = cmpDate.getFullYear(); - cmpMonth = cmpDate.getMonth(); - cmpDay = cmpDate.getDate(); - - if (year == cmpYear && month == cmpMonth && day == cmpDay) { - col = i; - break; - } - else if (cmpDate > date && !weekends) { - // No weekends in the calendar, this must be the right column! - col = i-1; - break; - } - }; - - if (typeof col == 'undefined') { - // date is in next weekview, select last column - col = i; - } - } else { - col = dayOfWeekCol(date.getDay()); + col = Math.round((cloneDate(date, true)-t.visStart)/1000/60/60/24); // TODO: handle weekends: false } return { col: col }; } @@ -5557,7 +5576,7 @@ else { visEventsEnds = $.map(events, exclEndDay); } - + for (i=0; i<rowCnt; i++) { currentResource = resources[i].id; row = sliceSegs(events, visEventsEnds, d1, d2); @@ -5699,9 +5718,13 @@ }, ev, 'drag'); }, stop: function(ev, ui) { - hoverListener.stop(); + var cell = hoverListener.stop(); clearOverlays(); trigger('eventDragStop', eventElement, event, ev, ui); + + if(!cell) { + trigger('eventDropOutside', eventElement, event, ev, ui); + } if (viewName == 'resourceDay' && (minuteDelta || resourceDelta)) { eventDrop(this, event, 0, minuteDelta, event.allDay, ev, ui, newResourceId); } @@ -5940,6 +5963,7 @@ t.hideEvents = hideEvents; t.eventDrop = eventDrop; t.eventResize = eventResize; + t.getShownEvents = getShownEvents; // t.title // t.start, t.end // t.visStart, t.visEnd @@ -5957,17 +5981,19 @@ var eventElementsByID = {}; var options = calendar.options; + // Get currently shown events + function getShownEvents() { + evs = []; + for (id in eventElementsByID){ + evs.push(eventsByID[id]); + } + return evs; + } - function opt(name, viewNameOverride) { var v = options[name]; if (typeof v == 'object') { - if(name == 'resources') { - return v; - } - else { - return smartProperty(v, viewNameOverride || viewName); - } + return smartProperty(v, viewNameOverride || viewName); } return v; } @@ -6349,44 +6375,8 @@ right = seg.isEnd ? colContentRight(rightCol) : maxLeft; } - // TODO: better implementation for this one.. - if (viewName == 'resourceMonth') { - // for resourceMonth view - leftCol = seg.start.getDate()-1; - rightCol = seg.end.getDate()-2; - - if(!weekends) { - // Drop out weekends - weekendSumColStart=0 - weekendSumColEnd=0 - - for(var j=0; j<=leftCol; j++) { - weekendTestDate = addDays(cloneDate(t.start), j); - - if(weekendTestDate.getDay() == 0 || weekendTestDate.getDay() == 6) { - weekendSumColStart++; - } - } - leftCol -= weekendSumColStart; - - if (seg.start.getDay() == 6 || seg.start.getDay() == 0) leftCol++; - - for(j=0; j<=rightCol; j++) { - weekendTestDate = addDays(cloneDate(t.start), j); - - if(weekendTestDate.getDay() == 0 || weekendTestDate.getDay() == 6) { - weekendSumColEnd++; - } - } - rightCol -= weekendSumColEnd; - } - - if(rightCol < 0) { - // end is in the next month so rightCol is the last column - rightCol = getColCnt()-1; - } - } - else if (viewName == 'resourceNextWeeks') { + // TODO: better implementation for this one.. + if (viewName == 'resourceMonth' || viewName == 'resourceNextWeeks' || viewName == 'resourceWeek') { leftCol = dateCell(seg.start).col; rightCol = dateCell(seg.end).col-1; if(!weekends) { Modified: branches/12.x/vendor_extra/fullcalendar-resourceviews/fullcalendar/fullcalendar.min.js =================================================================== --- branches/12.x/vendor_extra/fullcalendar-resourceviews/fullcalendar/fullcalendar.min.js 2014-03-30 17:15:12 UTC (rev 50578) +++ branches/12.x/vendor_extra/fullcalendar-resourceviews/fullcalendar/fullcalendar.min.js 2014-03-30 17:57:02 UTC (rev 50579) @@ -1,8 +1,8 @@ /*! - * FullCalendar-Resourceviews v1.6.1.2 + * FullCalendar-Resourceviews v1.6.1.6 * Docs & License: http://arshaw.com/fullcalendar/, http://tux.fi/~jarnok/fullcalendar-resourceviews * (c) 2013 Adam Shaw, 2013 Jarno Kurlin (Resource Views) */ -(function(e,t){function n(t){e.extend(!0,xt,t)}function r(n,r,l){function f(e){nt?(E(),S(),W(),w(e)):d()}function d(){rt=r.theme?"ui":"fc",n.addClass("fc"),r.isRTL?n.addClass("fc-rtl"):n.addClass("fc-ltr"),r.theme&&n.addClass("ui-widget"),nt=e("<div class='fc-content' style='position:relative'/>").prependTo(n),et=new a(Q,r),tt=et.render(),tt&&n.prepend(tt),D(r.defaultView),e(window).resize(k),y()||v()}function v(){setTimeout(function(){!at.start&&y()&&w()},0)}function g(){e(window).unbind("resize",k),et.destroy(),nt.remove(),n.removeClass("fc fc-rtl ui-widget")}function p(){return 0!==ut.offsetWidth}function y(){return 0!==e("body")[0].offsetWidth}function D(t){if(!at||t!=at.name){vt++,L();var n,r=at;r?((r.beforeHide||Y)(),j(nt,nt.height()),r.element.hide()):j(nt,1),nt.css("overflow","hidden"),at=ft[t],at?at.element.show():at=ft[t]=new Rt[t](n=st=e("<div class='fc-view fc-view-"+t+"' style='position:absolute'/>").appendTo(nt),Q),r&&et.deactivateButton(r.name),et.activateButton(t),w(),nt.css("overflow",""),r&&j(nt,1),n||(at.afterShow||Y)(),vt--}}function w(e){if(p()){vt++,L(),it===t&&E();var r=!1;!at.start||e||at.start>ht||ht>=at.end?(at.render(ht,e||0),x(!0),r=!0):at.sizeDirty?(at.clearEvents(),x(),r=!0):at.eventsDirty&&(at.clearEvents(),r=!0),at.sizeDirty=!1,at.eventsDirty=!1,T(r),ot=n.outerWidth(),et.updateTitle(at.title);var a=new Date;a>=at.start&&at.end>a?et.disableButton("today"):et.enableButton("today"),vt--,at.trigger("viewDisplay",ut)}}function b(){S(),p()&&(E(),x(),L(),at.clearEvents(),at.renderEvents(gt),at.sizeDirty=!1)}function S(){e.each(ft,function(e,t){t.sizeDirty=!0})}function E(){it=r.contentHeight?r.contentHeight:r.height?r.height-(tt?tt.height():0)-B(nt):Math.round(nt.width()/Math.max(r.aspectRatio,.5))}function x(e){vt++,at.setHeight(it,e),st&&(st.css("position","relative"),st=null),at.setWidth(nt.width(),e),vt--}function k(){if(!vt)if(at.start){var e=++dt;setTimeout(function(){e==dt&&!vt&&p()&&ot!=(ot=n.outerWidth())&&(vt++,b(),at.trigger("windowResize",ut),vt--)},200)}else v()}function T(e){!r.lazyFetching||G(at.visStart,at.visEnd)?(R(),r.refetchResources&&N()):e&&F()}function R(){K(at.visStart,at.visEnd)}function N(){lt(!1,at),ft=[],at.element.remove(),at=ft[at.name]=new Rt[at.name](st=e("<div class='fc-view fc-view-"+at.name+"' style='position:absolute'/>").appendTo(nt),Q),w()}function z(e){gt=e,F()}function H(e){F(e)}function F(e){W(),p()&&(at.clearEvents(),at.renderEvents(gt,e),at.eventsDirty=!1)}function W(){e.each(ft,function(e,t){t.eventsDirty=!0})}function A(e,n,r){at.select(e,n,r===t?!0:r)}function L(){at&&at.unselect()}function O(){w(-1)}function _(){w(1)}function q(){s(ht,-1),w()}function I(){s(ht,1),w()}function P(){ht=new Date,w()}function V(e,t,n){e instanceof Date?ht=h(e):m(ht,e,t,n),w()}function J(e,n,r){e!==t&&s(ht,e),n!==t&&c(ht,n),r!==t&&u(ht,r),w()}function X(){return h(ht)}function U(){return at}function Z(e,n){return n===t?r[e]:(("height"==e||"contentHeight"==e||"aspectRatio"==e)&&(r[e]=n,b()),t)}function $(e,n){return r[e]?r[e].apply(n||ut,Array.prototype.slice.call(arguments,2)):t}var Q=this;Q.options=r,Q.render=f,Q.destroy=g,Q.refetchEvents=R,Q.reportEvents=z,Q.refetchResources=N,Q.reportEventChange=H,Q.rerenderEvents=F,Q.changeView=D,Q.select=A,Q.unselect=L,Q.prev=O,Q.next=_,Q.prevYear=q,Q.nextYear=I,Q.today=P,Q.gotoDate=V,Q.incrementDate=J,Q.formatDate=function(e,t){return M(e,t,r)},Q.formatDates=function(e,t,n){return C(e,t,n,r)},Q.getDate=X,Q.getView=U,Q.option=Z,Q.trigger=$,o.call(Q,r,l);var G=Q.isFetchNeeded,K=Q.fetchEvents;i.call(Q,r);var et,tt,nt,rt,at,ot,it,st,ct,lt=Q.fetchResources,ut=n[0],ft={},dt=0,vt=0,ht=new Date,gt=[];m(ht,r.year,r.month,r.date),r.droppable&&e(document).bind("dragstart",function(t,n){var a=t.target,o=e(a);if(!o.parents(".fc").length){var i=r.dropAccept;(e.isFunction(i)?i.call(a,o):o.is(i))&&(ct=a,at.dragStart(ct,t,n))}}).bind("dragstop",function(e,t){ct&&(at.dragStop(ct,e,t),ct=null)})}function a(n,r){function a(){v=r.theme?"ui":"fc";var n=r.header;return n?h=e("<table class='fc-header' style='width:100%'/>").append(e("<tr/>").append(i("left")).append(i("center")).append(i("right"))):t}function o(){h.remove()}function i(t){var a=e("<td class='fc-header-"+t+"'/>"),o=r.header[t];return o&&e.each(o.split(" "),function(t){t>0&&a.append("<span class='fc-header-space'/>");var o;e.each(this.split(","),function(t,i){if("title"==i)a.append("<span class='fc-header-title'><h2> </h2></span>"),o&&o.addClass(v+"-corner-right"),o=null;else{var s;if(n[i]?s=n[i]:Rt[i]&&(s=function(){u.removeClass(v+"-state-hover"),n.changeView(i)}),s){var c=r.theme?X(r.buttonIcons,i):null,l=X(r.buttonText,i),u=e("<span class='fc-button fc-button-"+i+" "+v+"-state-default'>"+(c?"<span class='fc-icon-wrap'><span class='ui-icon ui-icon-"+c+"'/>"+"</span>":l)+"</span>").click(function(){u.hasClass(v+"-state-disabled")||s()}).mousedown(function(){u.not("."+v+"-state-active").not("."+v+"-state-disabled").addClass(v+"-state-down")}).mouseup(function(){u.removeClass(v+"-state-down")}).hover(function(){u.not("."+v+"-state-active").not("."+v+"-state-disabled").addClass(v+"-state-hover")},function(){u.removeClass(v+"-state-hover").removeClass(v+"-state-down")}).appendTo(a);$(u),o||u.addClass(v+"-corner-left"),o=u}}}),o&&o.addClass(v+"-corner-right")}),a}function s(e){h.find("h2").html(e)}function c(e){h.find("span.fc-button-"+e).addClass(v+"-state-active")}function l(e){h.find("span.fc-button-"+e).removeClass(v+"-state-active")}function u(e){h.find("span.fc-button-"+e).addClass(v+"-state-disabled")}function f(e){h.find("span.fc-button-"+e).removeClass(v+"-state-disabled")}var d=this;d.render=a,d.destroy=o,d.updateTitle=s,d.activateButton=c,d.deactivateButton=l,d.disableButton=u,d.enableButton=f;var v,h=e([])}function o(n,r){function a(e,t){return!S||S>e||t>E}function o(e,t){S=e,E=t,W=[];var n=++z,r=N.length;H=r;for(var a=0;r>a;a++)i(N[a],n)}function i(t,r){s(t,function(a){if(r==z){if(a){n.eventDataTransform&&(a=e.map(a,n.eventDataTransform)),t.eventDataTransform&&(a=e.map(a,t.eventDataTransform));for(var o=0;a.length>o;o++)a[o].source=t,m(a[o]);W=W.concat(a)}H--,H||T(W)}})}function s(r,a){var o,i,c=Tt.sourceFetchers;for(o=0;c.length>o;o++){if(i=c[o](r,S,E,a),i===!0)return;if("object"==typeof i)return s(i,a),t}var l=r.events;if(l)e.isFunction(l)?(p(),l(h(S),h(E),function(e){a(e),y()})):e.isArray(l)?a(l):a();else{var u=r.url;if(u){var f=r.success,d=r.error,v=r.complete,g=e.extend({},r.data||{}),m=tt(r.startParam,n.startParam),D=tt(r.endParam,n.endParam);m&&(g[m]=Math.round(+S/1e3)),D&&(g[D]=Math.round(+E/1e3)),p(),e.ajax(e.extend({},Nt,r,{data:g,success:function(t){t=t||[];var n=et(f,this,arguments);e.isArray(n)&&(t=n),a(t)},error:function(){et(d,this,arguments),a()},complete:function(){et(v,this,arguments),y()}}))}else a()}}function c(e){e=l(e),e&&(H++,i(e,z))}function l(n){return e.isFunction(n)||e.isArray(n)?n={events:n}:"string"==typeof n&&(n={url:n}),"object"==typeof n?(w(n),N.push(n),n):t}function u(t){N=e.grep(N,function(e){return!b(e,t)}),W=e.grep(W,function(e){return!b(e.source,t)}),T(W)}function f(e){var t,n,r=W.length,a=k().defaultEventEnd,o=e.start-e._start,i=e.end?e.end-(e._end||a(e)):0;for(t=0;r>t;t++)n=W[t],n._id==e._id&&n!=e&&(n.start=new Date(+n.start+o),n.end=e.end?n.end?new Date(+n.end+i):new Date(+a(n)+i):null,n.title=e.title,n.url=e.url,n.allDay=e.allDay,n.className=e.className,n.editable=e.editable,n.color=e.color,n.backgroudColor=e.backgroudColor,n.borderColor=e.borderColor,n.textColor=e.textColor,m(n));m(e),T(W)}function d(e,t){m(e),e.source||(t&&(R.events.push(e),e.source=R),W.push(e)),T(W)}function v(t){if(t){if(!e.isFunction(t)){var n=t+"";t=function(e){return e._id==n}}W=e.grep(W,t,!0);for(var r=0;N.length>r;r++)e.isArray(N[r].events)&&(N[r].events=e.grep(N[r].events,t,!0))}else{W=[];for(var r=0;N.length>r;r++)e.isArray(N[r].events)&&(N[r].events=[])}T(W)}function g(t){return e.isFunction(t)?e.grep(W,t):t?(t+="",e.grep(W,function(e){return e._id==t})):W}function p(){F++||x("loading",null,!0)}function y(){--F||x("loading",null,!1)}function m(e){var r=e.source||{},a=tt(r.ignoreTimezone,n.ignoreTimezone);e._id=e._id||(e.id===t?"_fc"+zt++:e.id+""),e.date&&(e.start||(e.start=e.date),delete e.date),e._start=h(e.start=D(e.start,a)),e.end=D(e.end,a),e.end&&e.end<=e.start&&(e.end=null),e._end=e.end?h(e.end):null,e.allDay===t&&(e.allDay=tt(r.allDayDefault,n.allDayDefault)),e.className?"string"==typeof e.className&&(e.className=e.className.split(/\s+/)):e.className=[]}function w(e){e.className?"string"==typeof e.className&&(e.className=e.className.split(/\s+/)):e.className=[];for(var t=Tt.sourceNormalizers,n=0;t.length>n;n++)t[n](e)}function b(e,t){return e&&t&&M(e)==M(t)}function M(e){return("object"==typeof e?e.events||e.url:"")||e}var C=this;C.isFetchNeeded=a,C.fetchEvents=o,C.addEventSource=c,C.removeEventSource=u,C.updateEvent=f,C.renderEvent=d,C.removeEvents=v,C.clientEvents=g,C.normalizeEvent=m;for(var S,E,x=C.trigger,k=C.getView,T=C.reportEvents,R={events:[]},N=[R],z=0,H=0,F=0,W=[],A=0;r.length>A;A++)l(r[A])}function i(n){function r(t){var n={};if(e.isFunction(t))n={resources:t},l.push(n);else if("string"==typeof t)n={url:t},l.push(n);else if("object"==typeof t)for(var r=0;t.length>r;r++){var a=t[r];i(a),n={resources:a},l.push(n)}}function a(e,n){if(e=e!==t?e:!0,c!=t&&e)return c;c=[];for(var r=l.length,a=0;r>a;a++){var i=o(l[a],n);c=c.concat(i)}return c}function o(t,r){var a=t.resources;if(a){if(e.isFunction(a))return a()}else{var o=t.url;if(o){var i={};if("object"==typeof r){var s=n.startParam,c=n.endParam;s&&(i[s]=Math.round(+r.visStart/1e3)),c&&(i[c]=Math.round(+r.visEnd/1e3))}e.ajax(e.extend({},t,{data:i,dataType:"json",cache:!1,success:function(e){e=e||[],a=e},error:function(){alert("ajax error getting json from "+o)},async:!1}))}}return a}function i(e){e.className?"string"==typeof e.className&&(e.className=e.className.split(/\s+/)):e.className=[];for(var t=Tt.sourceNormalizers,n=0;t.length>n;n++)t[n](e)}var s=this;s.fetchResources=a;var c,l=[];r(n.resources)}function s(e,t,n){return e.setFullYear(e.getFullYear()+t),n||v(e),e}function c(e,t,n){if(+e){var r=e.getMonth()+t,a=h(e);for(a.setDate(1),a.setMonth(r),e.setMonth(r),n||v(e);e.getMonth()!=a.getMonth();)e.setDate(e.getDate()+(a>e?1:-1))}return e}function l(e,t,n){return u(e,7*t,n),e}function u(e,t,n){if(+e){var r=e.getDate()+t,a=h(e);a.setHours(9),a.setDate(r),e.setDate(r),n||v(e),f(e,a)}return e}function f(e,t){if(+e)for(;e.getDate()!=t.getDate();)e.setTime(+e+(t>e?1:-1)*Wt)}function d(e,t){return e.setMinutes(e.getMinutes()+t),e}function v(e){return e.setHours(0),e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0),e}function h(e,t){return t?v(new Date(+e)):new Date(+e)}function g(){var e,t=0;do e=new Date(1970,t++,1);while(e.getHours());return e}function p(e,t,n){for(t=t||1;!e.getDay()||n&&1==e.getDay()||!n&&6==e.getDay();)u(e,t);return e}function y(e,t){return Math.round((h(e,!0)-h(t,!0))/Ft)}function m(e,n,r,a){n!==t&&n!=e.getFullYear()&&(e.setDate(1),e.setMonth(0),e.setFullYear(n)),r!==t&&r!=e.getMonth()&&(e.setDate(1),e.setMonth(r)),a!==t&&e.setDate(a)}function D(e,n){return"object"==typeof e?e:"number"==typeof e?new Date(1e3*e):"string"==typeof e?e.match(/^\d+(\.\d+)?$/)?new Date(1e3*parseFloat(e)):(n===t&&(n=!0),w(e,n)||(e?new Date(e):null)):null}function w(e,t){var n=e.match(/^([0-9]{4})(-([0-9]{2})(-([0-9]{2})([T ]([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?(Z|(([-+])([0-9]{2})(:?([0-9]{2}))?))?)?)?)?$/);if(!n)return null;var r=new Date(n[1],0,1);if(t||!n[13]){var a=new Date(n[1],0,1,9,0);n[3]&&(r.setMonth(n[3]-1),a.setMonth(n[3]-1)),n[5]&&(r.setDate(n[5]),a.setDate(n[5])),f(r,a),n[7]&&r.setHours(n[7]),n[8]&&r.setMinutes(n[8]),n[10]&&r.setSeconds(n[10]),n[12]&&r.setMilliseconds(1e3*Number("0."+n[12])),f(r,a)}else if(r.setUTCFullYear(n[1],n[3]?n[3]-1:0,n[5]||1),r.setUTCHours(n[7]||0,n[8]||0,n[10]||0,n[12]?1e3*Number("0."+n[12]):0),n[14]){var o=60*Number(n[16])+(n[18]?Number(n[18]):0);o*="-"==n[15]?1:-1,r=new Date(+r+1e3*60*o)}return r}function b(e){if("number"==typeof e)return 60*e;if("object"==typeof e)return 60*e.getHours()+e.getMinutes();var t=e.match(/(\d+)(?::(\d+))?\s*(\w+)?/);if(t){var n=parseInt(t[1],10);return t[3]&&(n%=12,"p"==t[3].toLowerCase().charAt(0)&&(n+=12)),60*n+(t[2]?parseInt(t[2],10):0)}}function M(e,t,n){return C(e,null,t,n)}function C(e,t,n,r){r=r||xt;var a,o,i,s,c=e,l=t,u=n.length,f="";for(a=0;u>a;a++)if(o=n.charAt(a),"'"==o){for(i=a+1;u>i;i++)if("'"==n.charAt(i)){c&&(f+=i==a+1?"'":n.substring(a+1,i),a=i);break}}else if("("==o){for(i=a+1;u>i;i++)if(")"==n.charAt(i)){var d=M(c,n.substring(a+1,i),r);parseInt(d.replace(/\D/,""),10)&&(f+=d),a=i;break}}else if("["==o){for(i=a+1;u>i;i++)if("]"==n.charAt(i)){var v=n.substring(a+1,i),d=M(c,v,r);d!=M(l,v,r)&&(f+=d),a=i;break}}else if("{"==o)c=t,l=e;else if("}"==o)c=e,l=t;else{for(i=u;i>a;i--)if(s=Lt[n.substring(a,i)]){c&&(f+=s(c,r)),a=i-1;break}i==a&&c&&(f+=o)}return f}function S(e){var t,n=new Date(e.getTime());return n.setDate(n.getDate()+4-(n.getDay()||7)),t=n.getTime(),n.setMonth(0),n.setDate(1),Math.floor(Math.round((t-n)/864e5)/7)+1}function E(e){return e.end?x(e.end,e.allDay):u(h(e.start),1)}function x(e,t){return e=h(e),t||e.getHours()||e.getMinutes()?u(e,1):v(e)}function k(e,t){return 100*(t.msLength-e.msLength)+(e.event.start-t.event.start)}function T(e,t){return e.end>t.start&&e.start<t.end}function R(e,t,n,r){var a,o,i,s,c,l,u,f,d=[],v=e.length;for(a=0;v>a;a++)o=e[a],i=o.start,s=t[a],s>n&&r>i&&(n>i?(c=h(n),u=!1):(c=i,u=!0),s>r?(l=h(r),f=!1):(l=s,f=!0),d.push({event:o,start:c,end:l,isStart:u,isEnd:f,msLength:l-c}));return d.sort(k)}function N(e){var t,n,r,a,o,i=[],s=e.length;for(t=0;s>t;t++){for(n=e[t],r=0;;){if(a=!1,i[r])for(o=0;i[r].length>o;o++)if(T(i[r][o],n)){a=!0;break}if(!a)break;r++}i[r]?i[r].push(n):i[r]=[n]}return i}function z(n,r,a){n.unbind("mouseover").mouseover(function(n){for(var o,i,s,c=n.target;c!=this;)o=c,c=c.parentNode;(i=o._fci)!==t&&(o._fci=t,s=r[i],a(s.event,s.element,s),e(n.target).trigger(n)),n.stopPropagation()})}function H(t,n,r){for(var a,o=0;t.length>o;o++)a=e(t[o]),a.width(Math.max(0,n-W(a,r)))}function F(t,n,r){for(var a,o=0;t.length>o;o++)a=e(t[o]),a.height(Math.max(0,n-B(a,r)))}function W(e,t){return A(e)+O(e)+(t?L(e):0)}function A(t){return(parseFloat(e.css(t[0],"paddingLeft",!0))||0)+(parseFloat(e.css(t[0],"paddingRight",!0))||0)}function L(t){return(parseFloat(e.css(t[0],"marginLeft",!0))||0)+(parseFloat(e.css(t[0],"marginRight",!0))||0)}function O(t){return(parseFloat(e.css(t[0],"borderLeftWidth",!0))||0)+(parseFloat(e.css(t[0],"borderRightWidth",!0))||0)}function B(e,t){return _(e)+I(e)+(t?q(e):0)}function _(t){return(parseFloat(e.css(t[0],"paddingTop",!0))||0)+(parseFloat(e.css(t[0],"paddingBottom",!0))||0)}function q(t){return(parseFloat(e.css(t[0],"marginTop",!0))||0)+(parseFloat(e.css(t[0],"marginBottom",!0))||0)}function I(t){return(parseFloat(e.css(t[0],"borderTopWidth",!0))||0)+(parseFloat(e.css(t[0],"borderBottomWidth",!0))||0)}function j(e,t){t="number"==typeof t?t+"px":t,e.each(function(e,n){n.style.cssText+=";min-height:"+t+";_height:"+t})}function Y(){}function P(e,t){return e-t}function V(e){return Math.max.apply(Math,e)}function J(e){return(10>e?"0":"")+e}function X(e,n){if(e[n]!==t)return e[n];for(var r,a=n.split(/(?=[A-Z])/),o=a.length-1;o>=0;o--)if(r=e[a[o].toLowerCase()],r!==t)return r;return e[""]}function U(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'").replace(/"/g,""").replace(/\n/g,"<br />")}function Z(e){return e.id+"/"+e.className+"/"+e.style.cssText.replace(/(^|;)\s*(top|left|width|height)\s*:[^;]*/gi,"")}function $(e){e.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return!1})}function Q(e){e.children().removeClass("fc-first fc-last").filter(":first-child").addClass("fc-first").end().filter(":last-child").addClass("fc-last")}function G(e,t){e.each(function(e,n){n.className=n.className.replace(/^fc-\w*/,"fc-"+Ht[t.getDay()])})}function K(e,t){var n=e.source||{},r=e.color,a=n.color,o=t("eventColor"),i=e.backgroundColor||r||n.backgroundColor||a||t("eventBackgroundColor")||o,s=e.borderColor||r||n.borderColor||a||t("eventBorderColor")||o,c=e.textColor||n.textColor||t("eventTextColor"),l=[];return i&&l.push("background-color:"+i),s&&l.push("border-color:"+s),c&&l.push("color:"+c),l.join(";")}function et(t,n,r){if(e.isFunction(t)&&(t=[t]),t){var a,o;for(a=0;t.length>a;a++)o=t[a].apply(n,r)||o;return o}}function tt(){for(var e=0;arguments.length>e;e++)if(arguments[e]!==t)return arguments[e]}function nt(e,t){function n(e,t){t&&(c(e,t),e.setDate(1));var n=h(e,!0);n.setDate(1);var s=c(h(n),1),l=h(n),f=h(s),d=a("firstDay"),v=a("weekends")?0:1;v&&(p(l),p(f,-1,!0)),u(l,-((l.getDay()-Math.max(d,v)+7)%7)),u(f,(7-f.getDay()+Math.max(d,v))%7);var g=Math.round((f-l)/(7*Ft));"fixed"==a("weekMode")&&(u(f,7*(6-g)),g=6),r.title=i(n,a("titleFormat")),r.start=n,r.end=s,r.visStart=l,r.visEnd=f,o(g,v?5:7,!0)}var r=this;r.render=n,ot.call(r,e,t,"month");var a=r.opt,o=r.renderBasic,i=t.formatDate}function rt(e,t){function n(e,t){t&&u(e,7*t);var n=u(h(e),-((e.getDay()-a("firstDay")+7)%7)),s=u(h(n),7),c=h(n),l=h(s),f=a("weekends");f||(p(c),p(l,-1,!0)),r.title=i(c,u(h(l),-1),a("titleFormat")),r.start=n,r.end=s,r.visStart=c,r.visEnd=l,o(1,f?7:5,!1)}var r=this;r.render=n,ot.call(r,e,t,"basicWeek");var a=r.opt,o=r.renderBasic,i=t.formatDates}function at(e,t){function n(e,t){t&&(u(e,t),a("weekends")||p(e,0>t?-1:1)),r.title=i(e,a("titleFormat")),r.start=r.visStart=h(e,!0),r.end=r.visEnd=u(h(r.start),1),o(1,1,!1)}var r=this;r.render=n,ot.call(r,e,t,"basicDay");var a=r.opt,o=r.renderBasic,i=t.formatDate}function ot(t,n,r){function a(e,t,n){nt=e,rt=t,o();var r=!P;r?i():xt(),s(n)}function o(){ct=Dt("isRTL"),ct?(lt=-1,ut=rt-1):(lt=1,ut=0),ft=Dt("firstDay"),dt=Dt("weekends")?0:1,vt=Dt("theme")?"ui":"fc",ht=Dt("columnFormat"),gt=Dt("weekNumbers"),pt=Dt("weekNumberTitle"),yt="iso"!=Dt("weekNumberCalculation")?"w":"W"}function i(){Z=e("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(t)}function s(n){var r,a,o,i,s="",c=vt+"-widget-header",l=vt+"-widget-content",u=_.start.getMonth(),d=v(new Date);for(s+="<table class='fc-border-separate' style='width:100%' cellspacing='0'><thead><tr>",gt&&(s+="<th class='fc-week-number "+c+"'/>"),r=0;rt>r;r++)o=N(0,r),s+="<th class='fc-day-header fc-"+Ht[o.getDay()]+" "+c+"'/>";for(s+="</tr></thead><tbody>",r=0;nt>r;r++){for(s+="<tr class='fc-week'>",gt&&(s+="<td class='fc-week-number "+l+"'>"+"<div/>"+"</td>"),a=0;rt>a;a++)o=N(r,a),i=["fc-day","fc-"+Ht[o.getDay()],l],o.getMonth()!=u&&i.push("fc-other-month"),+o==+d&&(i.push("fc-today"),i.push(vt+"-state-highlight")),s+="<td class='"+i.join(" ")+"'"+" data-date='"+Nt(o,"yyyy-MM-dd")+"'"+">"+"<div>",n&&(s+="<div class='fc-day-number'>"+o.getDate()+"</div>"),s+="<div class='fc-day-content'><div style='position:relative'> </div></div></div></td>";s+="</tr>"}s+="</tbody></table>",L(),q&&q.remove(),q=e(s).appendTo(t),I=q.find("thead"),Y=I.find(".fc-day-header"),P=q.find("tbody"),V=P.find("tr"),J=P.find(".fc-day"),X=V.find("td:first-child"),U=V.eq(0).find(".fc-day-content > div"),Q(I.add(I.find("tr"))),Q(V),V.eq(0).addClass("fc-first"),V.filter(":last").addClass("fc-last"),gt&&I.find(".fc-week-number").text(pt),Y.each(function(t,n){var r=z(t);e(n).text(Nt(r,ht))}),gt&&P.find(".fc-week-number > div").each(function(t,n){var r=N(t,0);e(n).text(Nt(r,yt))}),J.each(function(t,n){var r=z(t);St("dayRender",_,r,e(n))}),f(J)}function c(t){K=t;var n,r,a,o=K-I.height();"variable"==Dt("weekMode")?n=r=Math.floor(o/(1==nt?2:6)):(n=Math.floor(o/nt),r=o-n*(nt-1)),X.each(function(t,o){nt>t&&(a=e(o),j(a.find("> div"),(t==nt-1?r:n)-B(a)))}),O()}function l(e){G=e,st.clear(),tt=0,gt&&(tt=I.find("th.fc-week-number").outerWidth()),et=Math.floor((G-tt)/rt),H(Y.slice(0,-1),et)}function f(e){e.click(d).mousedown(Rt)}function d(t){if(!Dt("selectable")){var n=w(e(this).data("date"));St("dayClick",this,n,!0,t)}}function g(e,t,n){n&&at.build();for(var r=h(_.visStart),a=u(h(r),rt),o=0;nt>o;o++){var i=new Date(Math.max(r,e)),s=new Date(Math.min(a,t));if(s>i){var c,l;ct?(c=y(s,r)*lt+ut+1,l=y(i,r)*lt+ut+1):(c=y(i,r),l=y(s,r)),f(p(o,c,o,l-1))}u(r,7),u(a,7)}}function p(e,n,r,a){var o=at.rect(e,n,r,a,t);return kt(o,t)}function m(e){return h(e)}function D(e,t){g(e,u(h(t),1),!0)}function b(){Tt()}function M(e,t,n){var r=T(e),a=J[r.row*rt+r.col];St("dayClick",a,e,t,n)}function C(e,t){ot.start(function(e){Tt(),e&&p(e.row,e.col,e.row,e.col)},t)}function S(e,t,n){var r=ot.stop();if(Tt(),r){var a=R(r);St("drop",e,a,!0,t,n)}}function E(e){return h(e.start)}function x(e){return st.left(e)}function k(e){return st.right(e)}function T(e){return{row:Math.floor(y(e,_.visStart)/7),col:F(e.getDay())}}function R(e){return N(e.row,e.col)}function N(e,t){return u(h(_.visStart),7*e+t*lt+ut)}function z(e){return N(Math.floor(e/rt),e%rt)}function F(e){return(e-Math.max(ft,dt)+rt)%rt*lt+ut}function W(e){return V.eq(e)}function A(){var e=0;return gt&&(e+=tt),{left:e,right:G}}function L(){j(t,t.height())}function O(){j(t,1)}var _=this;_.renderBasic=a,_.setHeight=c,_.setWidth=l,_.renderDayOverlay=g,_.defaultSelectionEnd=m,_.renderSelection=D,_.clearSelection=b,_.reportDayClick=M,_.dragStart=C,_.dragStop=S,_.defaultEventEnd=E,_.getHoverListener=function(){return ot},_.colContentLeft=x,_.colContentRight=k,_.dayOfWeekCol=F,_.dateCell=T,_.cellDate=R,_.cellIsAllDay=function(){return!0},_.allDayRow=W,_.allDayBounds=A,_.getRowCnt=function(){return nt},_.getColCnt=function(){return rt},_.getColWidth=function(){return et},_.getViewName=function(){return r},_.getDaySegmentContainer=function(){return Z},mt.call(_,t,n,r),bt.call(_),wt.call(_),it.call(_);var q,I,Y,P,V,J,X,U,Z,G,K,et,tt,nt,rt,at,ot,st,ct,lt,ut,ft,dt,vt,ht,gt,pt,yt,Dt=_.opt,St=_.trigger,xt=_.clearEvents,kt=_.renderOverlay,Tt=_.clearOverlays,Rt=_.daySelectionMousedown,Nt=n.formatDate;$(t.addClass("fc-grid")),at=new Mt(function(t,n){var r,a,o;Y.each(function(t,i){r=e(i),a=r.offset().left,t&&(o[1]=a),o=[a],n[t]=o}),o[1]=a+r.outerWidth(),V.each(function(n,i){nt>n&&(r=e(i),a=r.offset().top,n&&(o[1]=a),o=[a],t[n]=o)}),o[1]=a+r.outerHeight()}),ot=new Ct(at),st=new Et(function(e){return U.eq(e)})}function it(){function t(e,t){d(e),x(r(e),t),c("eventAfterAllRender")}function n(){v(),D().empty()}function r(t){var n,r,a,o,s,c,l=C(),f=S(),d=h(i.visStart),v=u(h(d),f),g=e.map(t,E),p=[];for(n=0;l>n;n++){for(r=N(R(t,g,d,v)),a=0;r.length>a;a++)for(o=r[a],s=0;o.length>s;s++)c=o[s],c.row=n,c.level=a,p.push(c);u(d,7),u(v,7)}return p}function a(e,t,n){l(e)&&o(e,t),n.isEnd&&f(e)&&k(e,t,n),g(e,t)}function o(e,t){var n,r=w();t.draggable({zIndex:9,delay:50,opacity:s("dragOpacity"),revertDuration:s("dragRevertDuration"),start:function(a,o){c("eventDragStart",t,e,a,o),y(e,t),r.start(function(r,a,o,i){t.draggable("option","revert",!r||!o&&!i),M(),r?(n=7*o+i*(s("isRTL")?-1:1),b(u(h(e.start),n),u(E(e),n))):n=0},a,"drag")},stop:function(a,o){r.stop(),M(),c("eventDragStop",t,e,a,o),n?m(this,e,n,0,e.allDay,a,o):(t.css("filter",""),p(e,t))}})}var i=this;i.renderEvents=t,i.compileDaySegs=r,i.clearEvents=n,i.bindDaySeg=a,Dt.call(i);var s=i.opt,c=i.trigger,l=i.isEventDraggable,f=i.isEventResizable,d=i.reportEvents,v=i.reportEventClear,g=i.eventElementHandlers,p=i.showEvents,y=i.hideEvents,m=i.eventDrop,D=i.getDaySegmentContainer,w=i.getHoverListener,b=i.renderDayOverlay,M=i.clearOverlays,C=i.getRowCnt,S=i.getColCnt,x=i.renderDaySegs,k=i.resizableDayEvent}function st(e,t){function n(e,t){t&&u(e,7*t);var n=u(h(e),-((e.getDay()-a("firstDay")+7)%7)),s=u(h(n),7),c=h(n),l=h(s),f=a("weekends");f||(p(c),p(l,-1,!0)),r.title=i(c,u(h(l),-1),a("titleFormat")),r.start=n,r.end=s,r.visStart=c,r.visEnd=l,o(f?7:5)}var r=this;r.render=n,lt.call(r,e,t,"agendaWeek");var a=r.opt,o=r.renderAgenda,i=t.formatDates}function ct(e,t){function n(e,t){t&&(u(e,t),a("weekends")||p(e,0>t?-1:1));var n=h(e,!0),s=u(h(n),1);r.title=i(e,a("titleFormat")),r.start=r.visStart=n,r.end=r.visEnd=s,o(1)}var r=this;r.render=n,lt.call(r,e,t,"agendaDay");var a=r.opt,o=r.renderAgenda,i=t.formatDate}function lt(n,r,a){function o(e){Lt=e,i(),et?nn():s(),c()}function i(){jt=en("theme")?"ui":"fc",Pt=en("weekends")?0:1,Yt=en("firstDay"),(Vt=en("isRTL"))?(Jt=-1,Xt=Lt-1):(Jt=1,Xt=0),Ut=b(en("minTime")),Zt=b(en("maxTime")),$t=en("columnFormat"),Qt=en("weekNumbers"),Gt=en("weekNumberTitle"),Kt="iso"!=en("weekNumberCalculation")?"w":"W",Ft=en("snapMinutes")||en("slotMinutes")}function s(){var t,r,a,o,i,s=jt+"-widget-header",c=jt+"-widget-content",l=0==en("slotMinutes")%15;for(t="<table style='width:100%' class='fc-agenda-days fc-border-separate' cellspacing='0'><thead><tr>",t+=Qt?"<th class='fc-agenda-axis fc-week-number "+s+"'/>":"<th class='fc-agenda-axis "+s+"'> </th>",r=0;Lt>r;r++)t+="<th class='fc- fc-col"+r+" "+s+"'/>";for(t+="<th class='fc-agenda-gutter "+s+"'> </th>"+"</tr>"+"</thead>"+"<tbody>"+"<tr>"+"<th class='fc-agenda-axis "+s+"'> </th>",r=0;Lt>r;r++)t+="<td class='fc- fc-col"+r+" "+c+"'>"+"<div>"+"<div class='fc-day-content'>"+"<div style='position:relative'> </div>"+"</div>"+"</div>"+"</td>";for(t+="<td class='fc-agenda-gutter "+c+"'> </td>"+"</tr>"+"</tbody>"+"</table>",et=e(t).appendTo(n),tt=et.find("thead"),nt=tt.find("th").slice(1,-1),rt=et.find("tbody"),at=rt.find("td").slice(0,-1),ot=at.find("div.fc-day-content div"),it=at.eq(0),st=it.find("> div"),Q(tt.add(tt.find("tr"))),Q(rt.add(rt.find("tr"))),Dt=tt.find("th:first"),St=et.find(".fc-agenda-gutter"),ct=e("<div style='position:absolute;z-index:2;left:0;width:100%'/>").appendTo(n),en("allDaySlot")?(lt=e("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(ct),t="<table style='width:100%' class='fc-agenda-allday' cellspacing='0'><tr><th class='"+s+" fc-agenda-axis'>"+en("allDayText")+"</th>"+"<td>"+"<div class='fc-day-content'><div style='position:relative'/></div>"+"</td>"+"<th class='"+s+" fc-agenda-gutter'> </th>"+"</tr>"+"</table>",ft=e(t).appendTo(ct),dt=ft.find("tr"),w(dt.find("td")),Dt=Dt.add(ft.find("th:first")),St=St.add(ft.find("th.fc-agenda-gutter")),ct.append("<div class='fc-agenda-divider "+s+"'>"+"<div class='fc-agenda-divider-inner'/>"+"</div>")):lt=e([]),vt=e("<div style='position:absolute;width:100%;overflow-x:hidden;overflow-y:auto'/>").appendTo(ct),ht=e("<div style='position:relative;width:100%;overflow:hidden'/>").appendTo(vt),gt=e("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(ht),t="<table class='fc-agenda-slots' style='width:100%' cellspacing='0'><tbody>",a=g(),o=d(h(a),Zt),d(a,Ut),Ot=0,r=0;o>a;r++)i=a.getMinutes(),t+="<tr class='fc-slot"+r+" "+(i?"fc-minor":"")+"'>"+"<th class='fc-agenda-axis "+s+"'>"+(l&&i?" ":un(a,en("axisFormat")))+"</th>"+"<td class='"+c+"'>"+"<div style='position:relative'> </div>"+"</td>"+"</tr>",d(a,en("slotMinutes")),Ot++;t+="</tbody></table>",pt=e(t).appendTo(ht),yt=pt.find("div:first"),M(pt.find("td")),Dt=Dt.add(pt.find("th:first"))}function c(){var e,t,n,r,a=v(new Date);if(Qt){var o=un(z(0),Kt);Vt?o+=Gt:o=Gt+o,tt.find(".fc-week-number").text(o)}for(e=0;Lt>e;e++)r=z(e),t=nt.eq(e),t.html(un(r,$t)),n=at.eq(e),+r==+a?n.addClass(jt+"-state-highlight fc-today"):n.removeClass(jt+"-state-highlight fc-today"),G(t.add(n),r)}function l(e,n){e===t&&(e=Tt),Tt=e,fn={};var r=rt.position().top,a=vt.position().top,o=Math.min(e-r,pt.height()+a+1);st.height(o-B(it)),ct.css("top",r),vt.height(o-a-1),Ht=yt.height()+1,Wt=en("slotMinutes")/Ft,At=Ht/Wt,n&&p()}function f(t){kt=t,qt.clear(),Rt=0,H(Dt.width("").each(function(t,n){Rt=Math.max(Rt,e(n).outerWidth())}),Rt);var n=vt[0].clientWidth;zt=vt.width()-n,zt?(H(St,zt),St.show().prev().removeClass("fc-last")):St.hide().prev().addClass("fc-last"),Nt=Math.floor((n-Rt)/Lt),H(nt.slice(0,-1),Nt)}function p(){function e(){vt.scrollTop(r)}var t=g(),n=h(t);n.setHours(en("firstHour"));var r=L(t,n)+1;e(),setTimeout(e,0)}function m(){It=vt.scrollTop()}function D(){vt.scrollTop(It)}function w(e){e.click(C).mousedown(cn)}function M(e){e.click(C).mousedown(J)}function C(e){if(!en("selectable")){var t=Math.min(Lt-1,Math.floor((e.pageX-et.offset().left-Rt)/Nt)),n=z(t),r=this.parentNode.className.match(/fc-slot(\d+)/);if(r){var a=parseInt(r[1])*en("slotMinutes"),o=Math.floor(a/60);n.setHours(o),n.setMinutes(a%60+Ut),tn("dayClick",at[t],n,!1,e)}else tn("dayClick",at[t],n,!0,e)}}function S(e,t,n){n&&Bt.build();var r,a,o=h(K.visStart);Vt?(r=y(t,o)*Jt+Xt+1,a=y(e,o)*Jt+Xt+1):(r=y(e,o),a=y(t,o)),r=Math.max(0,r),a=Math.min(Lt,a),a>r&&w(E(0,r,0,a-1))}function E(e,t,n,r){var a=Bt.rect(e,t,n,r,ct);return rn(a,ct)}function x(e,t){for(var n=h(K.visStart),r=u(h(n),1),a=0;Lt>a;a++){var o=new Date(Math.max(n,e)),i=new Date(Math.min(r,t));if(i>o){var s=a*Jt+Xt,c=Bt.rect(0,s,0,s,ht),l=L(n,o),f=L(n,i);c.top=l,c.height=f-l,M(rn(c,ht))}u(n,1),u(r,1)}}function k(e){return qt.left(e)}function T(e){return qt.right(e)}function R(e){return{row:Math.floor(y(e,K.visStart)/7),col:A(e.getDay())}}function N(e){var t=z(e.col),n=e.row;return en("allDaySlot")&&n--,n>=0&&d(t,Ut+n*Ft),t}function z(e){return u(h(K.visStart),e*Jt+Xt)}function W(e){return en("allDaySlot")&&!e.row}function A(e){return(e-Math.max(Yt,Pt)+Lt)%Lt*Jt+Xt}function L(e,n){if(e=h(e,!0),d(h(e),Ut)>n)return 0;if(n>=d(h(e),Zt))return pt.height();var r=en("slotMinutes"),a=60*n.getHours()+n.getMinutes()-Ut,o=Math.floor(a/r),i=fn[o];return i===t&&(i=fn[o]=pt.find("tr:eq("+o+") td div")[0].offsetTop),Math.max(0,Math.round(i-1+Ht*(a%r/r)))}function O(){return{left:Rt,right:kt-zt}}function _(){return dt}function q(e){var t=h(e.start);return e.allDay?t:d(t,en("defaultEventMinutes"))}function I(e,t){return t?h(e):d(h(e),en("slotMinutes"))}function j(e,t,n){n?en("allDaySlot")&&S(e,u(h(t),1),!0):Y(e,t)}function Y(t,n){var r=en("selectHelper");if(Bt.build(),r){var a=y(t,K.visStart)*Jt+Xt;if(a>=0&&Lt>a){var o=Bt.rect(0,a,0,a,ht),i=L(t,t),s=L(t,n);if(s>i){if(o.top=i,o.height=s-i,o.left+=2,o.width-=5,e.isFunction(r)){var c=r(t,n);c&&(o.position="absolute",o.zIndex=8,xt=e(c).css(o).appendTo(ht))}else o.isStart=!0,o.isEnd=!0,xt=e(ln({title:"",start:t,end:n,className:["fc-select-helper"],editable:!1},o)),xt.css("opacity",en("dragOpacity"));xt&&(M(xt),ht.append(xt),H(xt,o.width,!0),F(xt,o.height,!0))}}}else x(t,n)}function V(){an(),xt&&(xt.remove(),xt=null)}function J(t){if(1==t.which&&en("selectable")){sn(t);var n;_t.start(function(e,t){if(V(),e&&e.col==t.col&&!W(e)){var r=N(t),a=N(e);n=[r,d(h(r),Ft),a,d(h(a),Ft)].sort(P),Y(n[0],n[3])}else n=null},t),e(document).one("mouseup",function(e){_t.stop(),n&&(+n[0]==+n[1]&&X(n[0],!1,e),on(n[0],n[3],!1,e))})}}function X(e,t,n){tn("dayClick",at[A(e.getDay())],e,t,n)}function U(e,t){_t.start(function(e){if(an(),e)if(W(e))E(e.row,e.col,e.row,e.col);else{var t=N(e),n=d(h(t),en("defaultEventMinutes"));x(t,n)}},t)}function Z(e,t,n){var r=_t.stop();an(),r&&tn("drop",e,N(r),W(r),t,n)}var K=this;K.renderAgenda=o,K.setWidth=f,K.setHeight=l,K.beforeHide=m,K.afterShow=D,K.defaultEventEnd=q,K.timePosition=L,K.dayOfWeekCol=A,K.dateCell=R,K.cellDate=N,K.cellIsAllDay=W,K.allDayRow=_,K.allDayBounds=O,K.getHoverListener=function(){return _t},K.colContentLeft=k,K.colContentRight=T,K.getDaySegmentContainer=function(){return lt},K.getSlotSegmentContainer=function(){return gt},K.getMinMinute=function(){return Ut},K.getMaxMinute=function(){return Zt},K.getBodyContent=function(){return ht},K.getRowCnt=function(){return 1},K.getColCnt=function(){return Lt},K.getColWidth=function(){return Nt},K.getViewName=function(){return a},K.getSnapHeight=function(){return At},K.getSnapMinutes=function(){return Ft},K.defaultSelectionEnd=I,K.renderDayOverlay=S,K.renderSelection=j,K.clearSelection=V,K.reportDayClick=X,K.dragStart=U,K.dragStop=Z,mt.call(K,n,r,a),bt.call(K),wt.call(K),ut.call(K);var et,tt,nt,rt,at,ot,it,st,ct,lt,ft,dt,vt,ht,gt,pt,yt,Dt,St,xt,kt,Tt,Rt,Nt,zt,Ht,Ft,Wt,At,Lt,Ot,Bt,_t,qt,It,jt,Yt,Pt,Vt,Jt,Xt,Ut,Zt,$t,Qt,Gt,Kt,en=K.opt,tn=K.trigger,nn=K.clearEvents,rn=K.renderOverlay,an=K.clearOverlays,on=K.reportSelection,sn=K.unselect,cn=K.daySelectionMousedown,ln=K.slotSegHtml,un=r.formatDate,fn={}; -$(n.addClass("fc-agenda")),Bt=new Mt(function(t,n){function r(e){return Math.max(c,Math.min(l,e))}var a,o,i;nt.each(function(t,r){a=e(r),o=a.offset().left,t&&(i[1]=o),i=[o],n[t]=i}),i[1]=o+a.outerWidth(),en("allDaySlot")&&(a=dt,o=a.offset().top,t[0]=[o,o+a.outerHeight()]);for(var s=ht.offset().top,c=vt.offset().top,l=c+vt.outerHeight(),u=0;Ot*Wt>u;u++)t.push([r(s+At*u),r(s+At*(u+1))])}),_t=new Ct(Bt),qt=new Et(function(e){return ot.eq(e)})}function ut(){function n(e,t){C(e);var n,r=e.length,i=[],c=[];for(n=0;r>n;n++)e[n].allDay?i.push(e[n]):c.push(e[n]);m("allDaySlot")&&(j(a(i),t),k()),s(o(c),t),D("eventAfterAllRender")}function r(){S(),T().empty(),H().empty()}function a(t){var n,r,a,o,i=N(R(t,e.map(t,E),y.visStart,y.visEnd)),s=i.length,c=[];for(n=0;s>n;n++)for(r=i[n],a=0;r.length>a;a++)o=r[a],o.row=0,o.level=n,c.push(o);return c}function o(t){var n,r,a,o,s,c,l=P(),f=O(),v=L(),g=d(h(y.visStart),f),p=e.map(t,i),m=[];for(n=0;l>n;n++){for(r=N(R(t,p,g,d(h(g),v-f))),ft(r),a=0;r.length>a;a++)for(o=r[a],s=0;o.length>s;s++)c=o[s],c.col=n,c.level=a,m.push(c);u(g,1,!0)}return m}function i(e){return e.end?h(e.end):d(h(e.start),m("defaultEventMinutes"))}function s(n,r){var a,o,i,s,l,u,d,v,h,g,p,y,w,b,M,C,S,E,x,k,T,R,N=n.length,F="",A={},L={},O=H(),j=P();for((k=m("isRTL"))?(T=-1,R=j-1):(T=1,R=0),a=0;N>a;a++)o=n[a],i=o.event,s=_(o.start,o.start),l=_(o.start,o.end),u=o.col,d=o.level,v=o.forward||0,h=q(u*T+R),g=I(u*T+R)-h,g=Math.min(g-6,.95*g),p=d?g/(d+v+1):v?2*(g/(v+1)-6):g,y=h+g/(d+v+1)*d*T+(k?g-p:0),o.top=s,o.left=y,o.outerWidth=p,o.outerHeight=l-s,F+=c(i,o);for(O[0].innerHTML=F,w=O.children(),a=0;N>a;a++)o=n[a],i=o.event,b=e(w[a]),M=D("eventRender",i,i,b),M===!1?b.remove():(M&&M!==!0&&(b.remove(),b=e(M).css({position:"absolute",top:o.top,left:o.left}).appendTo(O)),o.element=b,i._id===r?f(i,b,o):b[0]._fci=a,Q(i,b));for(z(O,n,f),a=0;N>a;a++)o=n[a],(b=o.element)&&(S=A[C=o.key=Z(b[0])],o.vsides=S===t?A[C]=B(b,!0):S,S=L[C],o.hsides=S===t?L[C]=W(b,!0):S,E=b.find(".fc-event-title"),E.length&&(o.contentTop=E[0].offsetTop));for(a=0;N>a;a++)o=n[a],(b=o.element)&&(b[0].style.width=Math.max(0,o.outerWidth-o.hsides)+"px",x=Math.max(0,o.outerHeight-o.vsides),b[0].style.height=x+"px",i=o.event,o.contentTop!==t&&10>x-o.contentTop&&(b.find("div.fc-event-time").text(it(i.start,m("timeFormat"))+" - "+i.title),b.find("div.fc-event-title").remove()),D("eventAfterRender",i,i,b))}function c(e,t){var n="<",r=e.url,a=K(e,m),o=["fc-event","fc-event-vert"];return w(e)&&o.push("fc-event-draggable"),t.isStart&&o.push("fc-event-start"),t.isEnd&&o.push("fc-event-end"),o=o.concat(e.className),e.source&&(o=o.concat(e.source.className||[])),n+=r?"a href='"+U(e.url)+"'":"div",n+=" class='"+o.join(" ")+"'"+" style='position:absolute;z-index:8;top:"+t.top+"px;left:"+t.left+"px;"+a+"'"+">"+"<div class='fc-event-inner'>"+"<div class='fc-event-time'>"+U(st(e.start,e.end,m("timeFormat")))+"</div>"+"<div class='fc-event-title'>"+U(e.title)+"</div>"+"</div>"+"<div class='fc-event-bg'></div>",t.isEnd&&b(e)&&(n+="<div class='ui-resizable-handle ui-resizable-s'>=</div>"),n+="</"+(r?"a":"div")+">"}function l(e,t,n){w(e)&&v(e,t,n.isStart),n.isEnd&&b(e)&&Y(e,t,n),x(e,t)}function f(e,t,n){var r=t.find("div.fc-event-time");w(e)&&g(e,t,r),n.isEnd&&b(e)&&p(e,t,r),x(e,t)}function v(e,t,n){function r(){s||(t.width(a).height("").draggable("option","grid",null),s=!0)}var a,o,i,s=!0,c=m("isRTL")?-1:1,l=A(),f=V(),d=J(),v=X(),g=O();t.draggable({zIndex:9,opacity:m("dragOpacity","month"),revertDuration:m("dragRevertDuration"),start:function(g,p){D("eventDragStart",t,e,g,p),et(e,t),a=t.width(),l.start(function(a,l,g,p){at(),a?(o=!1,i=p*c,a.row?n?s&&(t.width(f-10),F(t,d*Math.round((e.end?(e.end-e.start)/At:m("defaultEventMinutes"))/v)),t.draggable("option","grid",[f,1]),s=!1):o=!0:(rt(u(h(e.start),i),u(E(e),i)),r()),o=o||s&&!i):(r(),o=!0),t.draggable("option","revert",o)},g,"drag")},stop:function(n,a){if(l.stop(),at(),D("eventDragStop",t,e,n,a),o)r(),t.css("filter",""),G(e,t);else{var c=0;s||(c=Math.round((t.offset().top-$().offset().top)/d)*v+g-(60*e.start.getHours()+e.start.getMinutes())),tt(this,e,i,c,s,n,a)}}})}function g(e,t,n){function r(t){var r,a=d(h(e.start),t);e.end&&(r=d(h(e.end),t)),n.text(st(a,r,m("timeFormat")))}function a(){l&&(n.css("display",""),t.draggable("option","grid",[p,y]),l=!1)}var o,i,s,c,l=!1,f=m("isRTL")?-1:1,v=A(),g=P(),p=V(),y=J(),w=X();t.draggable({zIndex:9,scroll:!1,grid:[p,y],axis:1==g?"y":!1,opacity:m("dragOpacity"),revertDuration:m("dragRevertDuration"),start:function(r,d){D("eventDragStart",t,e,r,d),et(e,t),o=t.position(),s=c=0,v.start(function(r,o,s,c){t.draggable("option","revert",!r),at(),r&&(i=c*f,m("allDaySlot")&&!r.row?(l||(l=!0,n.hide(),t.draggable("option","grid",null)),rt(u(h(e.start),i),u(E(e),i))):a())},r,"drag")},drag:function(e,t){s=Math.round((t.position.top-o.top)/y)*w,s!=c&&(l||r(s),c=s)},stop:function(n,c){var u=v.stop();at(),D("eventDragStop",t,e,n,c),u&&(i||s||l)?tt(this,e,i,l?0:s,l,n,c):(a(),t.css("filter",""),t.css(o),r(0),G(e,t))}})}function p(e,t,n){var r,a,o=J(),i=X();t.resizable({handles:{s:".ui-resizable-handle"},grid:o,start:function(n,o){r=a=0,et(e,t),t.css("z-index",9),D("eventResizeStart",this,e,n,o)},resize:function(s,c){r=Math.round((Math.max(o,t.height())-c.originalSize.height)/o),r!=a&&(n.text(st(e.start,r||e.end?d(M(e),i*r):null,m("timeFormat"))),a=r)},stop:function(n,a){D("eventResizeStop",this,e,n,a),r?nt(this,e,0,i*r,n,a):(t.css("z-index",8),G(e,t))}})}var y=this;y.renderEvents=n,y.compileDaySegs=a,y.clearEvents=r,y.slotSegHtml=c,y.bindDaySeg=l,Dt.call(y);var m=y.opt,D=y.trigger,w=y.isEventDraggable,b=y.isEventResizable,M=y.eventEnd,C=y.reportEvents,S=y.reportEventClear,x=y.eventElementHandlers,k=y.setHeight,T=y.getDaySegmentContainer,H=y.getSlotSegmentContainer,A=y.getHoverListener,L=y.getMaxMinute,O=y.getMinMinute,_=y.timePosition,q=y.colContentLeft,I=y.colContentRight,j=y.renderDaySegs,Y=y.resizableDayEvent,P=y.getColCnt,V=y.getColWidth,J=y.getSnapHeight,X=y.getSnapMinutes,$=y.getBodyContent,Q=y.reportEventElement,G=y.showEvents,et=y.hideEvents,tt=y.eventDrop,nt=y.eventResize,rt=y.renderDayOverlay,at=y.clearOverlays,ot=y.calendar,it=ot.formatDate,st=ot.formatDates}function ft(e){var t,n,r,a,o,i;for(t=e.length-1;t>0;t--)for(a=e[t],n=0;a.length>n;n++)for(o=a[n],r=0;e[t-1].length>r;r++)i=e[t-1][r],T(o,i)&&(i.forward=Math.max(i.forward||0,(o.forward||0)+1))}function dt(e,t){function n(e,t){t&&(c(e,1*t),e.setDate(1));var n=h(e,!0);n.setDate(1);var l=c(h(n),1),f=h(n),d=h(l),v=a("weekends");v||(p(f),p(d,-1,!0)),r.title=i(f,u(h(d),-1),a("titleFormat")),r.start=n,r.end=l,r.visStart=f,r.visEnd=d;var g,y=Math.round((d-f)/Ft);if(!v){for(var m=0,D=1;y>=D;D++)g=u(h(f),D-1),(0==g.getDay()||6==g.getDay())&&m++;y-=m}o(s.length,s.length,y,!1)}var r=this;r.render=n,pt.call(r,e,t,"resourceMonth");var a=r.opt,o=r.renderBasic,i=t.formatDates,s=r.getResources}function vt(e,t){function n(e,t){t&&u(e,7*t);var n=u(h(e),-((e.getDay()-a("firstDay")+7)%7)),c=u(h(n),7),l=h(n),f=h(c),d=a("weekends");d||(p(l),p(f,-1,!0)),r.title=i(l,u(h(f),-1),a("titleFormat")),r.start=n,r.end=c,r.visStart=l,r.visEnd=f,o(s.length,s.length,d?7:5,!1)}var r=this;r.render=n,pt.call(r,e,t,"resourceWeek");var a=r.opt,o=r.renderBasic,i=t.formatDates,s=r.getResources}function ht(e,t){function n(e,t){var n=a("weekends");t&&u(e,t*(a("numberOfWeeks")*n?7:5));var c=n?7:5,f=u(h(e),-((e.getDay()-a("firstDay")+c)%c)),d=l(h(f),a("numberOfWeeks")),v=h(f),g=h(d);n||(p(v),p(g,-1,!0)),r.title=i(v,u(h(g),-1),a("titleFormat")),r.start=f,r.end=d,r.visStart=v,r.visEnd=g,o(s.length,s.length,n?7*a("numberOfWeeks"):5*a("numberOfWeeks"),!1)}var r=this;r.render=n,pt.call(r,e,t,"resourceNextWeeks");var a=r.opt,o=r.renderBasic,i=t.formatDates,s=r.getResources}function gt(e,t){function n(e,t){t&&(u(e,1*t),a("weekends")||p(e,0>t?-1:1));var n=d(h(e,!0),b(a("minTime"))),c=d(h(n),b(a("maxTime"))-b(a("minTime"))),l=h(n),f=h(c);r.title=i(l,u(h(f),-1),a("titleFormat")),r.start=n,r.end=c,r.visStart=l,r.visEnd=f;var v=Math.round((f-l)/1e3/60/a("slotMinutes"));o(s.length,s.length,v,!1)}var r=this;r.render=n,pt.call(r,e,t,"resourceDay");var a=r.opt,o=r.renderBasic,i=t.formatDates,s=r.getResources}function pt(n,r,a){function o(e,t,n,r){rt=t,at=n,i();var o=!X;o||"resourceMonth"==a?s(e,r):Dt(),c(o)}function i(){ct=gt("isRTL"),ct?(lt=-1,ut=at-1):(lt=1,ut=0),ft=gt("firstDay"),dt=gt("weekends")?0:1,vt=gt("theme")?"ui":"fc",ht=gt("columnFormat")}function s(t,r){var o,i,s,c,l,u,f=vt+"-widget-header",d=vt+"-widget-content",v=Y.getResources;for(o="<table class='fc-border-separate' style='width:100%' cellspacing='0'><thead><tr class='fc-first fc-last'><th class='fc-resourceName'> </th>",i=0;at>i;i++)o+="<th class='fc- "+f+"'/>";for(o+="</tr></thead><tbody>",i=0;t>i;i++){for(c=v[i].id,l=v[i].name,o+="<tr class='fc-resourcerow-"+c+"'><td class='fc-resourceName'>"+l+"</td>",s=0;at>s;s++)o+="<td class='fc- "+d+" fc-day"+s+" fc-resource"+c+"'>"+"<div>"+(r?"<div class='fc-day-number'/>":"")+"<div class='fc-day-content'>"+"<div style='position:relative'> </div>"+"</div>"+"</div>"+"</td>";o+="</tr>"}o+="</tbody></table>",u=n.html(e(o)),V=u.find("thead"),J=V.find("th:not(th.fc-resourceName)"),X=u.find("tbody"),U=X.find("tr"),Z=X.find("td:not(td.fc-resourceName)"),Q=U.children().filter(":first-child"),G=U.eq(0).find("div.fc-day-content div"),X.find("td.fc-resourceName").each(function(e,t){pt("resourceRender",v[e],t,a)}),J.removeClass("fc-first fc-last").filter(":first").addClass("fc-first").end().filter(":last").addClass("fc-last"),Z.removeClass("fc-first fc-last"),U.each(function(){e(this).children("td:not(td.fc-resourceName):first").addClass("fc-first"),e(this).children("td:not(td.fc-resourceName):last").addClass("fc-last")}),U.eq(0).addClass("fc-first"),g(Z),K=e("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(n)}function c(){Y.start.getMonth();var t,n,r,o=v(new Date),i=0;gt("weekends"),J.each(function(r,o){t=e(o),n=W(r),t.html(kt(n,ht)),(0==n.getDay()||6==n.getDay())&&t.addClass("fc-weekend"),1==n.getDay()&&"resourceNextWeeks"==a&&t.html(t.html()+"<br>"+gt("weekPrefix")+" "+S(n)),t.each(function(e,t){t.className=t.className.replace(/^fc-\w*/,"fc-id"+n.getTime())})}),i=0,Z.each(function(r,a){t=e(a),n=W(r),+n==+o?t.addClass(vt+"-state-highlight fc-today"):t.removeClass(vt+"-state-highlight fc-today"),(0==n.getDay()||6==n.getDay())&&t.addClass("fc-weekend-column"),t.find("div.fc-day-number").text(n.getDate()),t.each(function(e,t){t.className=t.className.replace(/^fc-\w*/,"fc-id"+n.getTime())})}),U.each(function(t,n){r=e(n),rt>t?(r.show(),t==rt-1?r.addClass("fc-last"):r.removeClass("fc-last")):r.hide()})}function l(t){tt=t;var n,r,a,o=tt-V.height();"variable"==gt("weekMode")?n=r=Math.floor(o/(1==rt?2:6)):(n=Math.floor(o/rt),r=o-n*(rt-1)),Q.each(function(t,o){rt>t&&(a=e(o),j(a.find("> div"),(t==rt-1?r:n)-B(a)))})}function f(t){et=t,et-=e("th.fc-resourceName").css("width").replace("px",""),st.clear(),nt=Math.floor(et/at),H(J.slice(0,-1),nt)}function g(e){e.click(p).mousedown(I)}function p(e){if(!gt("selectable")){var t=parseInt(this.className.match(/fc\-day(\d+)/)[1]),n=W(t);pt("dayClick",this,n,!0,e)}}function m(e,t,n,r){n&&ot.build();var o=h(Y.visStart),i=u(h(o),at);"resourceDay"==a?i=d(h(o),gt("slotMinutes")*at):gt("weekends")||(i=h(Y.visEnd));var s=new Date(Math.max(o,e)),c=new Date(Math.min(i,t));if(c>s){var l,f;if("resourceDay"==a)l=(s-o)/1e3/60/gt("slotMinutes"),f=(c-o)/1e3/60/gt("slotMinutes");else if(ct?(l=y(c,o)*lt+ut+1,f=y(s,o)*lt+ut+1):(l=y(s,o),f=y(c,o)),!gt("weekends")){for(var v,p=0,m=0;l>=m;m++)v=u(h(Y.visStart),m),(0==v.getDay()||6==v.getDay())&&p++;l-=p;var w=0;for(m=0;f-1>=m;m++)v=u(h(Y.visStart),m),(0==v.getDay()||6==v.getDay())&&w++;f-=w}g(D(r,l,r,f-1))}}function D(e,t,r,a){var o=ot.rect(e,Math.round(t),r,Math.round(a),n);return St(o,n)}function w(e){return h(e)}function b(e,t,n,r){"resourceDay"==a?m(e,d(h(t),gt("slotMinutes")),!0,r):m(e,u(h(t),1),!0,r)}function M(){xt()}function C(e,t,n,r){var a=N(e),o=Z[a.col];pt("dayClick",o,e,t,n,r)}function E(e,t){it.start(function(e){xt(),e&&D(e.row,e.col,e.row,e.col)},t)}function x(e,t,n){var r=it.stop();if(xt(),r){var a=Y.getResources,o=a[r.row],i=z(r);pt("drop",e,i,!0,t,n,o)}}function k(e){return h(e.start)}function T(e){return st.left(e)}function R(e){return st.right(e)}function N(e){var n,r,o,i,s,c,l,u,f=gt("weekends");if("resourceDay"==a)n=L(e);else if("resourceNextWeeks"==a){r=e.getFullYear(),o=e.getMonth(),i=e.getDate();for(var d=0;at>d;d++){if(s=F(d),c=s.getFullYear(),l=s.getMonth(),u=s.getDate(),r==c&&o==l&&i==u){n=d;break}if(s>e&&!f){n=d-1;break}}n===t&&(n=d)}else n=A(e.getDay());return{col:n}}function z(e){return F(e.col)}function F(e){if("resourceDay"==a)return d(h(Y.visStart),e*gt("slotMinutes"));if(!gt("weekends")){var t,n;for(n=0;e>=n;n++)t=u(h(Y.visStart),n),(6==t.getDay()||0==t.getDay())&&e++}return u(h(Y.visStart),e,!0)}function W(e){return F(e%at)}function A(e){return(e-Math.max(ft,dt)+at)%at*lt+ut}function L(e){for(var t,n,r,a,o=e.getHours(),i=e.getMinutes(),s=gt("slotMinutes"),c=0;60/s>=c;c++)t=c*s,n=Math.abs(t-i),(r>=n||0==c)&&(r=n,a=t),60==a&&(o++,a=0);i=a;for(var c=0;at>c;c++)if(W(c).getHours()==o&&W(c).getMinutes()==i)return c;return at}function O(e){return U.eq(e)}function _(){var t=parseInt(e(V).find("th.fc-resourceName").css("width").replace("px",""));return{left:t,right:et+t}}function q(e,n,r,a,o){return"object"==typeof o&&o.readonly===!0?!1:(selected=!0,pt("select",null,e,n,r,a,"",o),t)}function I(t){var n,r,o=Y.cellDate,i=Y.cellIsAllDay,s=Y.getHoverListener(),c=Y.unselect,l=Y.reportDayClick,u=Y.getResources||[];if(1==t.which&>("selectable")){c(t);var f;s.start(function(e,t){M(),e&&(r="object"==typeof u[e.row]?u[e.row].readonly:!1),e&&i(e)&&r!==!0?(f=[o(t),o(e)].sort(P),b(f[0],f[1],"resourceDay"==a?!1:!0,e.row),n=e.row):f=null},t),e(document).one("mouseup",function(e){s.stop(),f&&(+f[0]==+f[1]&&l(f[0],"resourceDay"==a?!1:!0,e,u[n]),q(f[0],"resourceDay"==a?d(f[1],gt("slotMinutes")):f[1],"resourceDay"==a?!1:!0,e,u[n]))})}}var Y=this;Y.renderBasic=o,Y.setHeight=l,Y.setWidth=f,Y.renderDayOverlay=m,Y.defaultSelectionEnd=w,Y.renderSelection=b,Y.clearSelection=M,Y.reportDayClick=C,Y.dragStart=E,Y.dragStop=x,Y.defaultEventEnd=k,Y.getHoverListener=function(){return it},Y.colContentLeft=T,Y.colContentRight=R,Y.dayOfWeekCol=A,Y.timeOfDayCol=L,Y.dateCell=N,Y.cellDate=z,Y.cellIsAllDay=function(){return!0},Y.allDayRow=O,Y.allDayBounds=_,Y.getRowCnt=function(){return rt},Y.getColCnt=function(){return at},Y.getResources=r.fetchResources(),Y.getColWidth=function(){return nt},Y.getViewName=function(){return a},Y.getDaySegmentContainer=function(){return K},mt.call(Y,n,r,a),bt.call(Y),wt.call(Y),yt.call(Y);var V,J,X,U,Z,Q,G,K,et,tt,nt,rt,at,ot,it,st,ct,lt,ut,ft,dt,vt,ht,gt=Y.opt,pt=Y.trigger,Dt=Y.clearEvents,St=Y.renderOverlay,xt=Y.clearOverlays,kt=r.formatDate;$(n.addClass("fc-grid")),ot=new Mt(function(t,n){var r,a,o;J.each(function(t,i){r=e(i),a=r.offset().left,t&&(o[1]=a),o=[a],n[t]=o}),o[1]=a+r.outerWidth(),U.each(function(n,i){rt>n&&(r=e(i),a=r.offset().top,n&&(o[1]=a),o=[a],t[n]=o)}),o[1]=a+r.outerHeight()}),it=new Ct(ot),st=new Et(function(e){return G.eq(e)})}function yt(){function n(e,t){p(e),z(a(e),t),f("eventAfterAllRender")}function r(){y(),M().empty()}function a(t){var n,r,a,o,i,s,f,v,g,p,y=k(),m=(T(),c.getResources),D=h(c.visStart),w=h(c.visEnd),b=N(),M=[],C=l("weekends");for(n="resourceDay"==b?e.map(t,function(e){return e.end||d(h(e.start),l("slotMinutes"))}):e.map(t,E),r=0;y>r;r++)for(s=m[r].id,a=R(t,n,D,w),o=0;a.length>o;o++)i=a[o],i... [truncated message content] |