TMMU China/js/fullcalendar-min

/*

FullCalendar v1.5.3
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: Mon Feb 6 22:40:40 2012 -0800
  • /

(function(m, ma) {

   function wb(a) {
       m.extend(true, Ya, a)
   }
   function Yb(a, b, e) {
       function d(k) {
           if (E) {
               u();
               q();
               na();
               S(k)
           } else f()
       }
       function f() {
           B = b.theme ? "ui": "fc";
           a.addClass("fc");
           b.isRTL && a.addClass("fc-rtl");
           b.theme && a.addClass("ui-widget");
           E = m("<div class='fc-content' style='position:relative'/>").prependTo(a);
           C = new Zb(X, b); (P = C.render()) && a.prepend(P);
           y(b.defaultView);
           m(window).resize(oa);
           t() || g()
       }
       function g() {
           setTimeout(function() { ! n.start && t() && S()
           },
           0)
       }
       function l() {
           m(window).unbind("resize", oa);
           C.destroy();
           E.remove();
           a.removeClass("fc fc-rtl ui-widget")
       }
       function j() {
           return i.offsetWidth !== 0
       }
       function t() {
           return m("body")[0].offsetWidth !== 0
       }
       function y(k) {
           if (!n || k != n.name) {
               F++;
               pa();
               var D = n,
               Z;
               if (D) { (D.beforeHide || xb)();
                   Za(E, E.height());
                   D.element.hide()
               } else Za(E, 1);
               E.css("overflow", "hidden");
               if (n = Y[k]) n.element.show();
               else n = Y[k] = new Ja[k](Z = s = m("<div class='fc-view fc-view-" + k + "' style='position:absolute'/>").appendTo(E), X);
               D && C.deactivateButton(D.name);
               C.activateButton(k);
               S();
               E.css("overflow", "");
               D && Za(E, 1);
               Z || (n.afterShow || xb)();
               F--
           }
       }
       function S(k) {
           if (j()) {
               F++;
               pa();
               o === ma && u();
               var D = false;
               if (!n.start || k || r < n.start || r >= n.end) {
                   n.render(r, k || 0);
                   fa(true);
                   D = true
               } else if (n.sizeDirty) {
                   n.clearEvents();
                   fa();
                   D = true
               } else if (n.eventsDirty) {
                   n.clearEvents();
                   D = true
               }
               n.sizeDirty = false;
               n.eventsDirty = false;
               ga(D);
               W = a.outerWidth();
               C.updateTitle(n.title);
               k = new Date;
               k >= n.start && k < n.end ? C.disableButton("today") : C.enableButton("today");
               F--;
               n.trigger("viewDisplay", i)
           }
       }
       function Q() {
           q();
           if (j()) {
               u();
               fa();
               pa();
               n.clearEvents();
               n.renderEvents(J);
               n.sizeDirty = false
           }
       }
       function q() {
           m.each(Y,
           function(k, D) {
               D.sizeDirty = true
           })
       }
       function u() {
           o = b.contentHeight ? b.contentHeight: b.height ? b.height - (P ? P.height() : 0) - Sa(E) : Math.round(E.width() / Math.max(b.aspectRatio, 0.5))
       }
       function fa(k) {
           F++;
           n.setHeight(o, k);
           if (s) {
               s.css("position", "relative");
               s = null
           }
           n.setWidth(E.width(), k);
           F--
       }
       function oa() {
           if (!F) if (n.start) {
               var k = ++v;
               setTimeout(function() {
                   if (k == v && !F && j()) if (W != (W = a.outerWidth())) {
                       F++;
                       Q();
                       n.trigger("windowResize", i);
                       F--
                   }
               },
               200)
           } else g()
       }
       function ga(k) {
           if (!b.lazyFetching || ya(n.visStart, n.visEnd)) ra();
           else k && da()
       }
       function ra() {
           K(n.visStart, n.visEnd)
       }
       function sa(k) {
           J = k;
           da()
       }
       function ha(k) {
           da(k)
       }
       function da(k) {
           na();
           if (j()) {
               n.clearEvents();
               n.renderEvents(J, k);
               n.eventsDirty = false
           }
       }
       function na() {
           m.each(Y,
           function(k, D) {
               D.eventsDirty = true
           })
       }
       function ua(k, D, Z) {
           n.select(k, D, Z === ma ? true: Z)
       }
       function pa() {
           n && n.unselect()
       }
       function U() {
           S( - 1)
       }
       function ca() {
           S(1)
       }
       function ka() {
           gb(r, -1);
           S()
       }
       function qa() {
           gb(r, 1);
           S()
       }
       function G() {
           r = new Date;
           S()
       }
       function p(k, D, Z) {
           if (k instanceof Date) r = N(k);
           else yb(r, k, D, Z);
           S()
       }
       function L(k, D, Z) {
           k !== ma && gb(r, k);
           D !== ma && hb(r, D);
           Z !== ma && ba(r, Z);
           S()
       }
       function c() {
           return N(r)
       }
       function z() {
           return n
       }
       function H(k, D) {
           if (D === ma) return b[k];
           if (k == "height" || k == "contentHeight" || k == "aspectRatio") {
               b[k] = D;
               Q()
           }
       }
       function T(k, D) {
           if (b[k]) return b[k].apply(D || i, Array.prototype.slice.call(arguments, 2))
       }
       var X = this;
       X.options = b;
       X.render = d;
       X.destroy = l;
       X.refetchEvents = ra;
       X.reportEvents = sa;
       X.reportEventChange = ha;
       X.rerenderEvents = da;
       X.changeView = y;
       X.select = ua;
       X.unselect = pa;
       X.prev = U;
       X.next = ca;
       X.prevYear = ka;
       X.nextYear = qa;
       X.today = G;
       X.gotoDate = p;
       X.incrementDate = L;
       X.formatDate = function(k, D) {
           return Oa(k, D, b)
       };
       X.formatDates = function(k, D, Z) {
           return ib(k, D, Z, b)
       };
       X.getDate = c;
       X.getView = z;
       X.option = H;
       X.trigger = T;
       $b.call(X, b, e);
       var ya = X.isFetchNeeded,
       K = X.fetchEvents,
       i = a[0],
       C,
       P,
       E,
       B,
       n,
       Y = {},
       W,
       o,
       s,
       v = 0,
       F = 0,
       r = new Date,
       J = [],
       M;
       yb(r, b.year, b.month, b.date);
       b.droppable && m(document).bind("dragstart",
       function(k, D) {
           var Z = k.target,
           ja = m(Z);
           if (!ja.parents(".fc").length) {
               var ia = b.dropAccept;
               if (m.isFunction(ia) ? ia.call(Z, ja) : ja.is(ia)) {
                   M = Z;
                   n.dragStart(M, k, D)
               }
           }
       }).bind("dragstop",
       function(k, D) {
           if (M) {
               n.dragStop(M, k, D);
               M = null
           }
       })
   }
   function Zb(a, b) {
       function e() {
           q = b.theme ? "ui": "fc";
           if (b.header) return Q = m("<table class='fc-header' style='width:100%'/>").append(m("<tr/>").append(f("left")).append(f("center")).append(f("right")))
       }
       function d() {
           Q.remove()
       }
       function f(u) {
           var fa = m("<td class='fc-header-" + u + "'/>"); (u = b.header[u]) && m.each(u.split(" "),
           function(oa) {
               oa > 0 && fa.append("<span class='fc-header-space'/>");
               var ga;
               m.each(this.split(","),
               function(ra, sa) {
                   if (sa == "title") {
fa.append("

 

");
                       ga && ga.addClass(q + "-corner-right");
                       ga = null
                   } else {
                       var ha;
                       if (a[sa]) ha = a[sa];
                       else if (Ja[sa]) ha = function() {
                           na.removeClass(q + "-state-hover");
                           a.changeView(sa)
                       };
                       if (ha) {
                           ra = b.theme ? jb(b.buttonIcons, sa) : null;
                           var da = jb(b.buttonText, sa),
                           na = m("" + (ra ? "<span class='ui-icon ui-icon-" + ra + "'/>": da) + "");
                           if (na) {
                               na.click(function() {
                                   na.hasClass(q + "-state-disabled") || ha()
                               }).mousedown(function() {
                                   na.not("." + q + "-state-active").not("." + q + "-state-disabled").addClass(q + "-state-down")
                               }).mouseup(function() {
                                   na.removeClass(q + "-state-down")
                               }).hover(function() {
                                   na.not("." + q + "-state-active").not("." + q + "-state-disabled").addClass(q + "-state-hover")
                               },
                               function() {
                                   na.removeClass(q + "-state-hover").removeClass(q + "-state-down")
                               }).appendTo(fa);
                               ga || na.addClass(q + "-corner-left");
                               ga = na
                           }
                       }
                   }
               });
               ga && ga.addClass(q + "-corner-right")
           });
           return fa
       }
       function g(u) {
           Q.find("h2").html(u)
       }
       function l(u) {
           Q.find("span.fc-button-" + u).addClass(q + "-state-active")
       }
       function j(u) {
           Q.find("span.fc-button-" + u).removeClass(q + "-state-active")
       }
       function t(u) {
           Q.find("span.fc-button-" + u).addClass(q + "-state-disabled")
       }
       function y(u) {
           Q.find("span.fc-button-" + u).removeClass(q + "-state-disabled")
       }
       var S = this;
       S.render = e;
       S.destroy = d;
       S.updateTitle = g;
       S.activateButton = l;
       S.deactivateButton = j;
       S.disableButton = t;
       S.enableButton = y;
       var Q = m([]),
       q
   }
   function $b(a, b) {
       function e(c, z) {
           return ! ca || c < ca || z > ka
       }
       function d(c, z) {
           ca = c;
           ka = z;
           L = [];
           c = ++qa;
           G = z = U.length;
           for (var H = 0; H < z; H++) f(U[H], c)
       }
       function f(c, z) {
           g(c,
           function(H) {
               if (z == qa) {
                   if (H) {
                       for (var T = 0; T < H.length; T++) {
                           H[T].source = c;
                           oa(H[T])
                       }
                       L = L.concat(H)
                   }
                   G--;
                   G || ua(L)
               }
           })
       }
       function g(c, z) {
           var H, T = Aa.sourceFetchers,
           X;
           for (H = 0; H < T.length; H++) {
               X = T[H](c, ca, ka, z);
               if (X === true) return;
               else if (typeof X == "object") {
                   g(X, z);
                   return
               }
           }
           if (H = c.events) if (m.isFunction(H)) {
               u();
               H(N(ca), N(ka),
               function(C) {
                   z(C);
                   fa()
               })
           } else m.isArray(H) ? z(H) : z();
           else if (c.url) {
               var ya = c.success,
               K = c.error,
               i = c.complete;
               H = m.extend({},
               c.data || {});
               T = Ta(c.startParam, a.startParam);
               X = Ta(c.endParam, a.endParam);
               if (T) H[T] = Math.round( + ca / 1E3);
               if (X) H[X] = Math.round( + ka / 1E3);
               u();
               m.ajax(m.extend({},
               ac, c, {
                   data: H,
                   success: function(C) {
                       C = C || [];
                       var P = $a(ya, this, arguments);
                       if (m.isArray(P)) C = P;
                       z(C)
                   },
                   error: function() {
                       $a(K, this, arguments);
                       z()
                   },
                   complete: function() {
                       $a(i, this, arguments);
                       fa()
                   }
               }))
           } else z()
       }
       function l(c) {
           if (c = j(c)) {
               G++;
               f(c, qa)
           }
       }
       function j(c) {
           if (m.isFunction(c) || m.isArray(c)) c = {
               events: c
           };
           else if (typeof c == "string") c = {
               url: c
           };
           if (typeof c == "object") {
               ga(c);
               U.push(c);
               return c
           }
       }
       function t(c) {
           U = m.grep(U,
           function(z) {
               return ! ra(z, c)
           });
           L = m.grep(L,
           function(z) {
               return ! ra(z.source, c)
           });
           ua(L)
       }
       function y(c) {
           var z, H = L.length,
           T, X = na().defaultEventEnd,
           ya = c.start - c._start,
           K = c.end ? c.end - (c._end || X(c)) : 0;
           for (z = 0; z < H; z++) {
               T = L[z];
               if (T._id == c._id && T != c) {
                   T.start = new Date( + T.start + ya);
                   T.end = c.end ? T.end ? new Date( + T.end + K) : new Date( + X(T) + K) : null;
                   T.title = c.title;
                   T.url = c.url;
                   T.allDay = c.allDay;
                   T.className = c.className;
                   T.editable = c.editable;
                   T.color = c.color;
                   T.backgroudColor = c.backgroudColor;
                   T.borderColor = c.borderColor;
                   T.textColor = c.textColor;
                   oa(T)
               }
           }
           oa(c);
           ua(L)
       }
       function S(c, z) {
           oa(c);
           if (!c.source) {
               if (z) {
                   pa.events.push(c);
                   c.source = pa
               }
               L.push(c)
           }
           ua(L)
       }
       function Q(c) {
           if (c) {
               if (!m.isFunction(c)) {
                   var z = c + "";
                   c = function(T) {
                       return T._id == z
                   }
               }
               L = m.grep(L, c, true);
               for (H = 0; H < U.length; H++) if (m.isArray(U[H].events)) U[H].events = m.grep(U[H].events, c, true)
           } else {
               L = [];
               for (var H = 0; H < U.length; H++) if (m.isArray(U[H].events)) U[H].events = []
           }
           ua(L)
       }
       function q(c) {
           if (m.isFunction(c)) return m.grep(L, c);
           else if (c) {
               c += "";
               return m.grep(L,
               function(z) {
                   return z._id == c
               })
           }
           return L
       }
       function u() {
           p++||da("loading", null, true)
       }
       function fa() {--p || da("loading", null, false)
       }
       function oa(c) {
           var z = c.source || {},
           H = Ta(z.ignoreTimezone, a.ignoreTimezone);
           c._id = c._id || (c.id === ma ? "_fc" + bc++:c.id + "");
           if (c.date) {
               if (!c.start) c.start = c.date;
               delete c.date
           }
           c._start = N(c.start = kb(c.start, H));
           c.end = kb(c.end, H);
           if (c.end && c.end <= c.start) c.end = null;
           c._end = c.end ? N(c.end) : null;
           if (c.allDay === ma) c.allDay = Ta(z.allDayDefault, a.allDayDefault);
           if (c.className) {
               if (typeof c.className == "string") c.className = c.className.split(/\s+/)
           } else c.className = []
       }
       function ga(c) {
           if (c.className) {
               if (typeof c.className == "string") c.className = c.className.split(/\s+/)
           } else c.className = [];
           for (var z = Aa.sourceNormalizers,
           H = 0; H < z.length; H++) z[H](c)
       }
       function ra(c, z) {
           return c && z && sa(c) == sa(z)
       }
       function sa(c) {
           return (typeof c == "object" ? c.events || c.url: "") || c
       }
       var ha = this;
       ha.isFetchNeeded = e;
       ha.fetchEvents = d;
       ha.addEventSource = l;
       ha.removeEventSource = t;
       ha.updateEvent = y;
       ha.renderEvent = S;
       ha.removeEvents = Q;
       ha.clientEvents = q;
       ha.normalizeEvent = oa;
       var da = ha.trigger,
       na = ha.getView,
       ua = ha.reportEvents,
       pa = {
           events: []
       },
       U = [pa],
       ca,
       ka,
       qa = 0,
       G = 0,
       p = 0,
       L = [];
       for (ha = 0; ha < b.length; ha++) j(b[ha])
   }
   function gb(a, b, e) {
       a.setFullYear(a.getFullYear() + b);
       e || Ka(a);
       return a
   }
   function hb(a, b, e) {
       if ( + a) {
           b = a.getMonth() + b;
           var d = N(a);
           d.setDate(1);
           d.setMonth(b);
           a.setMonth(b);
           for (e || Ka(a); a.getMonth() != d.getMonth();) a.setDate(a.getDate() + (a < d ? 1 : -1))
       }
       return a
   }
   function ba(a, b, e) {
       if ( + a) {
           b = a.getDate() + b;
           var d = N(a);
           d.setHours(9);
           d.setDate(b);
           a.setDate(b);
           e || Ka(a);
           lb(a, d)
       }
       return a
   }
   function lb(a, b) {
       if ( + a) for (; a.getDate() != b.getDate();) a.setTime( + a + (a < b ? 1 : -1) * cc)
   }
   function xa(a, b) {
       a.setMinutes(a.getMinutes() + b);
       return a
   }
   function Ka(a) {
       a.setHours(0);
       a.setMinutes(0);
       a.setSeconds(0);
       a.setMilliseconds(0);
       return a
   }
   function N(a, b) {
       if (b) return Ka(new Date( + a));
       return new Date( + a)
   }
   function zb() {
       var a = 0,
       b;
       do b = new Date(1970, a++, 1);
       while (b.getHours());
       return b
   }
   function Fa(a, b, e) {
       for (b = b || 1; ! a.getDay() || e && a.getDay() == 1 || !e && a.getDay() == 6;) ba(a, b);
       return a
   }
   function Ca(a, b) {
       return Math.round((N(a, true) - N(b, true)) / Ab)
   }
   function yb(a, b, e, d) {
       if (b !== ma && b != a.getFullYear()) {
           a.setDate(1);
           a.setMonth(0);
           a.setFullYear(b)
       }
       if (e !== ma && e != a.getMonth()) {
           a.setDate(1);
           a.setMonth(e)
       }
       d !== ma && a.setDate(d)
   }
   function kb(a, b) {
       if (typeof a == "object") return a;
       if (typeof a == "number") return new Date(a * 1E3);
       if (typeof a == "string") {
           if (a.match(/^\d+(\.\d+)?$/)) return new Date(parseFloat(a) * 1E3);
           if (b === ma) b = true;
           return Bb(a, b) || (a ? new Date(a) : null)
       }
       return null
   }
   function Bb(a, b) {
       a = a.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 (!a) return null;
       var e = new Date(a[1], 0, 1);
       if (b || !a[13]) {
           b = new Date(a[1], 0, 1, 9, 0);
           if (a[3]) {
               e.setMonth(a[3] - 1);
               b.setMonth(a[3] - 1)
           }
           if (a[5]) {
               e.setDate(a[5]);
               b.setDate(a[5])
           }
           lb(e, b);
           a[7] && e.setHours(a[7]);
           a[8] && e.setMinutes(a[8]);
           a[10] && e.setSeconds(a[10]);
           a[12] && e.setMilliseconds(Number("0." + a[12]) * 1E3);
           lb(e, b)
       } else {
           e.setUTCFullYear(a[1], a[3] ? a[3] - 1 : 0, a[5] || 1);
           e.setUTCHours(a[7] || 0, a[8] || 0, a[10] || 0, a[12] ? Number("0." + a[12]) * 1E3: 0);
           if (a[14]) {
               b = Number(a[16]) * 60 + (a[18] ? Number(a[18]) : 0);
               b *= a[15] == "-" ? 1 : -1;
               e = new Date( + e + b * 60 * 1E3)
           }
       }
       return e
   }
   function mb(a) {
       if (typeof a == "number") return a * 60;
       if (typeof a == "object") return a.getHours() * 60 + a.getMinutes();
       if (a = a.match(/(\d+)(?::(\d+))?\s*(\w+)?/)) {
           var b = parseInt(a[1], 10);
           if (a[3]) {
               b %= 12;
               if (a[3].toLowerCase().charAt(0) == "p") b += 12
           }
           return b * 60 + (a[2] ? parseInt(a[2], 10) : 0)
       }
   }
   function Oa(a, b, e) {
       return ib(a, null, b, e)
   }
   function ib(a, b, e, d) {
       d = d || Ya;
       var f = a,
       g = b,
       l, j = e.length,
       t, y, S, Q = "";
       for (l = 0; l < j; l++) {
           t = e.charAt(l);
           if (t == "'") for (y = l + 1; y < j; y++) {
               if (e.charAt(y) == "'") {
                   if (f) {
                       Q += y == l + 1 ? "'": e.substring(l + 1, y);
                       l = y
                   }
                   break
               }
           } else if (t == "(") for (y = l + 1; y < j; y++) {
               if (e.charAt(y) == ")") {
                   l = Oa(f, e.substring(l + 1, y), d);
                   if (parseInt(l.replace(/\D/, ""), 10)) Q += l;
                   l = y;
                   break
               }
           } else if (t == "[") for (y = l + 1; y < j; y++) {
               if (e.charAt(y) == "]") {
                   t = e.substring(l + 1, y);
                   l = Oa(f, t, d);
                   if (l != Oa(g, t, d)) Q += l;
                   l = y;
                   break
               }
           } else if (t == "{") {
               f = b;
               g = a
           } else if (t == "}") {
               f = a;
               g = b
           } else {
               for (y = j; y > l; y--) if (S = dc[e.substring(l, y)]) {
                   if (f) Q += S(f, d);
                   l = y - 1;
                   break
               }
               if (y == l) if (f) Q += t
           }
       }
       return Q
   }
   function Ua(a) {
       return a.end ? ec(a.end, a.allDay) : ba(N(a.start), 1)
   }
   function ec(a, b) {
       a = N(a);
       return b || a.getHours() || a.getMinutes() ? ba(a, 1) : Ka(a)
   }
   function fc(a, b) {
       return (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start)
   }
   function Cb(a, b) {
       return a.end > b.start && a.start < b.end
   }
   function nb(a, b, e, d) {
       var f = [],
       g,
       l = a.length,
       j,
       t,
       y,
       S,
       Q;
       for (g = 0; g < l; g++) {
           j = a[g];
           t = j.start;
           y = b[g];
           if (y > e && t < d) {
               if (t < e) {
                   t = N(e);
                   S = false
               } else {
                   t = t;
                   S = true
               }
               if (y > d) {
                   y = N(d);
                   Q = false
               } else {
                   y = y;
                   Q = true
               }
               f.push({
                   event: j,
                   start: t,
                   end: y,
                   isStart: S,
                   isEnd: Q,
                   msLength: y - t
               })
           }
       }
       return f.sort(fc)
   }
   function ob(a) {
       var b = [],
       e,
       d = a.length,
       f,
       g,
       l,
       j;
       for (e = 0; e < d; e++) {
           f = a[e];
           for (g = 0;;) {
               l = false;
               if (b[g]) for (j = 0; j < b[g].length; j++) if (Cb(b[g][j], f)) {
                   l = true;
                   break
               }
               if (l) g++;
               else break
           }
           if (b[g]) b[g].push(f);
           else b[g] = [f]
       }
       return b
   }
   function Db(a, b, e) {
       a.unbind("mouseover").mouseover(function(d) {
           for (var f = d.target,
           g; f != this;) {
               g = f;
               f = f.parentNode
           }
           if ((f = g._fci) !== ma) {
               g._fci = ma;
               g = b[f];
               e(g.event, g.element, g);
               m(d.target).trigger(d)
           }
           d.stopPropagation()
       })
   }
   function Va(a, b, e) {
       for (var d = 0,
       f; d < a.length; d++) {
           f = m(a[d]);
           f.width(Math.max(0, b - pb(f, e)))
       }
   }
   function Eb(a, b, e) {
       for (var d = 0,
       f; d < a.length; d++) {
           f = m(a[d]);
           f.height(Math.max(0, b - Sa(f, e)))
       }
   }
   function pb(a, b) {
       return gc(a) + hc(a) + (b ? ic(a) : 0)
   }
   function gc(a) {
       return (parseFloat(m.curCSS(a[0], "paddingLeft", true)) || 0) + (parseFloat(m.curCSS(a[0], "paddingRight", true)) || 0)
   }
   function ic(a) {
       return (parseFloat(m.curCSS(a[0], "marginLeft", true)) || 0) + (parseFloat(m.curCSS(a[0], "marginRight", true)) || 0)
   }
   function hc(a) {
       return (parseFloat(m.curCSS(a[0], "borderLeftWidth", true)) || 0) + (parseFloat(m.curCSS(a[0], "borderRightWidth", true)) || 0)
   }
   function Sa(a, b) {
       return jc(a) + kc(a) + (b ? Fb(a) : 0)
   }
   function jc(a) {
       return (parseFloat(m.curCSS(a[0], "paddingTop", true)) || 0) + (parseFloat(m.curCSS(a[0], "paddingBottom", true)) || 0)
   }
   function Fb(a) {
       return (parseFloat(m.curCSS(a[0], "marginTop", true)) || 0) + (parseFloat(m.curCSS(a[0], "marginBottom", true)) || 0)
   }
   function kc(a) {
       return (parseFloat(m.curCSS(a[0], "borderTopWidth", true)) || 0) + (parseFloat(m.curCSS(a[0], "borderBottomWidth", true)) || 0)
   }
   function Za(a, b) {
       b = typeof b == "number" ? b + "px": b;
       a.each(function(e, d) {
           d.style.cssText += ";min-height:" + b + ";_height:" + b
       })
   }
   function xb() {}
   function Gb(a, b) {
       return a - b
   }
   function Hb(a) {
       return Math.max.apply(Math, a)
   }
   function Pa(a) {
       return (a < 10 ? "0": "") + a
   }
   function jb(a, b) {
       if (a[b] !== ma) return a[b];
       b = b.split(/(?=[A-Z])/);
       for (var e = b.length - 1,
       d; e >= 0; e--) {
           d = a[b[e].toLowerCase()];
           if (d !== ma) return d
       }
       return a[""]
   }
   function Qa(a) {
       return a.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/'/g, "'").replace(/"/g, """).replace(/\n/g, "
") } function Ib(a) { return a.id + "/" + a.className + "/" + a.style.cssText.replace(/(^|;)\s*(top|left|width|height)\s*:[^;]*/ig, "") } function qb(a) { a.attr("unselectable", "on").css("MozUserSelect", "none").bind("selectstart.ui", function() { return false }) } function ab(a) { a.children().removeClass("fc-first fc-last").filter(":first-child").addClass("fc-first").end().filter(":last-child").addClass("fc-last") } function rb(a, b) { a.each(function(e, d) { d.className = d.className.replace(/^fc-\w*/, "fc-" + lc[b.getDay()]) }) } function Jb(a, b) { var e = a.source || {}, d = a.color, f = e.color, g = b("eventColor"), l = a.backgroundColor || d || e.backgroundColor || f || b("eventBackgroundColor") || g; d = a.borderColor || d || e.borderColor || f || b("eventBorderColor") || g; a = a.textColor || e.textColor || b("eventTextColor"); b = []; l && b.push("background-color:" + l); d && b.push("border-color:" + d); a && b.push("color:" + a); return b.join(";") } function $a(a, b, e) { if (m.isFunction(a)) a = [a]; if (a) { var d, f; for (d = 0; d < a.length; d++) f = a[d].apply(b, e) || f; return f } } function Ta() { for (var a = 0; a < arguments.length; a++) if (arguments[a] !== ma) return arguments[a] } function mc(a, b) { function e(j, t) { if (t) { hb(j, t); j.setDate(1) } j = N(j, true); j.setDate(1); t = hb(N(j), 1); var y = N(j), S = N(t), Q = f("firstDay"), q = f("weekends") ? 0 : 1; if (q) { Fa(y); Fa(S, -1, true) } ba(y, -((y.getDay() - Math.max(Q, q) + 7) % 7)); ba(S, (7 - S.getDay() + Math.max(Q, q)) % 7); Q = Math.round((S - y) / (Ab * 7)); if (f("weekMode") == "fixed") { ba(S, (6 - Q) * 7); Q = 6 } d.title = l(j, f("titleFormat")); d.start = j; d.end = t; d.visStart = y; d.visEnd = S; g(6, Q, q ? 5 : 7, true) } var d = this; d.render = e; sb.call(d, a, b, "month"); var f = d.opt, g = d.renderBasic, l = b.formatDate } function nc(a, b) { function e(j, t) { t && ba(j, t * 7); j = ba(N(j), -((j.getDay() - f("firstDay") + 7) % 7)); t = ba(N(j), 7); var y = N(j), S = N(t), Q = f("weekends"); if (!Q) { Fa(y); Fa(S, -1, true) } d.title = l(y, ba(N(S), -1), f("titleFormat")); d.start = j; d.end = t; d.visStart = y; d.visEnd = S; g(1, 1, Q ? 7 : 5, false) } var d = this; d.render = e; sb.call(d, a, b, "basicWeek"); var f = d.opt, g = d.renderBasic, l = b.formatDates } function oc(a, b) { function e(j, t) { if (t) { ba(j, t); f("weekends") || Fa(j, t < 0 ? -1 : 1) } d.title = l(j, f("titleFormat")); d.start = d.visStart = N(j, true); d.end = d.visEnd = ba(N(d.start), 1); g(1, 1, 1, false) } var d = this; d.render = e; sb.call(d, a, b, "basicDay"); var f = d.opt, g = d.renderBasic, l = b.formatDate } function sb(a, b, e) { function d(w, I, R, V) { v = I; F = R; f(); (I = !C) ? g(w, V) : z(); l(I) } function f() { if (k = L("isRTL")) { D = -1; Z = F - 1 } else { D = 1; Z = 0 } ja = L("firstDay"); ia = L("weekends") ? 0 : 1; la = L("theme") ? "ui": "fc"; $ = L("columnFormat") } function g(w, I) { var R, V = la + "-widget-header", ea = la + "-widget-content", aa;
R = "<thead>"; for (aa = 0; aa < F; aa++) R += "</thead><tbody>"; for (aa = 0; aa < w; aa++) { R += ""; for (V = 0; V < F; V++) R += ""; R += "" } R += "</tbody>
"; R += "
" + (I ? "<div class='fc-day-number'/>": "") + "
 
";
           w = m(R).appendTo(a);
           K = w.find("thead");
           i = K.find("th");
           C = w.find("tbody");
           P = C.find("tr");
           E = C.find("td");
           B = E.filter(":first-child");
           n = P.eq(0).find("div.fc-day-content div");
           ab(K.add(K.find("tr")));
           ab(P);
           P.eq(0).addClass("fc-first");
           y(E);
           Y = m("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(a)
       }
       function l(w) {
           var I = w || v == 1,
           R = p.start.getMonth(),
           V = Ka(new Date),
           ea,
           aa,
           va;
           I && i.each(function(wa, Ga) {
               ea = m(Ga);
               aa = ca(wa);
               ea.html(ya(aa, $));
               rb(ea, aa)
           });
           E.each(function(wa, Ga) {
               ea = m(Ga);
               aa = ca(wa);
               aa.getMonth() == R ? ea.removeClass("fc-other-month") : ea.addClass("fc-other-month"); + aa == +V ? ea.addClass(la + "-state-highlight fc-today") : ea.removeClass(la + "-state-highlight fc-today");
               ea.find("div.fc-day-number").text(aa.getDate());
               I && rb(ea, aa)
           });
           P.each(function(wa, Ga) {
               va = m(Ga);
               if (wa < v) {
                   va.show();
                   wa == v - 1 ? va.addClass("fc-last") : va.removeClass("fc-last")
               } else va.hide()
           })
       }
       function j(w) {
           o = w;
           w = o - K.height();
           var I, R, V;
           if (L("weekMode") == "variable") I = R = Math.floor(w / (v == 1 ? 2 : 6));
           else {
               I = Math.floor(w / v);
               R = w - I * (v - 1)
           }
           B.each(function(ea, aa) {
               if (ea < v) {
                   V = m(aa);
                   Za(V.find("> div"), (ea == v - 1 ? R: I) - Sa(V))
               }
           })
       }
       function t(w) {
           W = w;
           M.clear();
           s = Math.floor(W / F);
           Va(i.slice(0, -1), s)
       }
       function y(w) {
           w.click(S).mousedown(X)
       }
       function S(w) {
           if (!L("selectable")) {
               var I = parseInt(this.className.match(/fc\-day(\d+)/)[1]);
               I = ca(I);
               c("dayClick", this, I, true, w)
           }
       }
       function Q(w, I, R) {
           R && r.build();
           R = N(p.visStart);
           for (var V = ba(N(R), F), ea = 0; ea < v; ea++) {
               var aa = new Date(Math.max(R, w)),
               va = new Date(Math.min(V, I));
               if (aa < va) {
                   var wa;
                   if (k) {
                       wa = Ca(va, R) * D + Z + 1;
                       aa = Ca(aa, R) * D + Z + 1
                   } else {
                       wa = Ca(aa, R);
                       aa = Ca(va, R)
                   }
                   y(q(ea, wa, ea, aa - 1))
               }
               ba(R, 7);
               ba(V, 7)
           }
       }
       function q(w, I, R, V) {
           w = r.rect(w, I, R, V, a);
           return H(w, a)
       }
       function u(w) {
           return N(w)
       }
       function fa(w, I) {
           Q(w, ba(N(I), 1), true)
       }
       function oa() {
           T()
       }
       function ga(w, I, R) {
           var V = ua(w);
           c("dayClick", E[V.row * F + V.col], w, I, R)
       }
       function ra(w, I) {
           J.start(function(R) {
               T();
               R && q(R.row, R.col, R.row, R.col)
           },
           I)
       }
       function sa(w, I, R) {
           var V = J.stop();
           T();
           if (V) {
               V = pa(V);
               c("drop", w, V, true, I, R)
           }
       }
       function ha(w) {
           return N(w.start)
       }
       function da(w) {
           return M.left(w)
       }
       function na(w) {
           return M.right(w)
       }
       function ua(w) {
           return {
               row: Math.floor(Ca(w, p.visStart) / 7),
               col: ka(w.getDay())
           }
       }
       function pa(w) {
           return U(w.row, w.col)
       }
       function U(w, I) {
           return ba(N(p.visStart), w * 7 + I * D + Z)
       }
       function ca(w) {
           return U(Math.floor(w / F), w % F)
       }
       function ka(w) {
           return (w - Math.max(ja, ia) + F) % F * D + Z
       }
       function qa(w) {
           return P.eq(w)
       }
       function G() {
           return {
               left: 0,
               right: W
           }
       }
       var p = this;
       p.renderBasic = d;
       p.setHeight = j;
       p.setWidth = t;
       p.renderDayOverlay = Q;
       p.defaultSelectionEnd = u;
       p.renderSelection = fa;
       p.clearSelection = oa;
       p.reportDayClick = ga;
       p.dragStart = ra;
       p.dragStop = sa;
       p.defaultEventEnd = ha;
       p.getHoverListener = function() {
           return J
       };
       p.colContentLeft = da;
       p.colContentRight = na;
       p.dayOfWeekCol = ka;
       p.dateCell = ua;
       p.cellDate = pa;
       p.cellIsAllDay = function() {
           return true
       };
       p.allDayRow = qa;
       p.allDayBounds = G;
       p.getRowCnt = function() {
           return v
       };
       p.getColCnt = function() {
           return F
       };
       p.getColWidth = function() {
           return s
       };
       p.getDaySegmentContainer = function() {
           return Y
       };
       Kb.call(p, a, b, e);
       Lb.call(p);
       Mb.call(p);
       pc.call(p);
       var L = p.opt,
       c = p.trigger,
       z = p.clearEvents,
       H = p.renderOverlay,
       T = p.clearOverlays,
       X = p.daySelectionMousedown,
       ya = b.formatDate,
       K, i, C, P, E, B, n, Y, W, o, s, v, F, r, J, M, k, D, Z, ja, ia, la, $;
       qb(a.addClass("fc-grid"));
       r = new Nb(function(w, I) {
           var R, V, ea;
           i.each(function(aa, va) {
               R = m(va);
               V = R.offset().left;
               if (aa) ea[1] = V;
               ea = [V];
               I[aa] = ea
           });
           ea[1] = V + R.outerWidth();
           P.each(function(aa, va) {
               if (aa < v) {
                   R = m(va);
                   V = R.offset().top;
                   if (aa) ea[1] = V;
                   ea = [V];
                   w[aa] = ea
               }
           });
           ea[1] = V + R.outerHeight()
       });
       J = new Ob(r);
       M = new Pb(function(w) {
           return n.eq(w)
       })
   }
   function pc() {
       function a(U, ca) {
           S(U);
           ua(e(U), ca)
       }
       function b() {
           Q();
           ga().empty()
       }
       function e(U) {
           var ca = da(),
           ka = na(),
           qa = N(g.visStart);
           ka = ba(N(qa), ka);
           var G = m.map(U, Ua),
           p,
           L,
           c,
           z,
           H,
           T,
           X = [];
           for (p = 0; p < ca; p++) {
               L = ob(nb(U, G, qa, ka));
               for (c = 0; c < L.length; c++) {
                   z = L[c];
                   for (H = 0; H < z.length; H++) {
                       T = z[H];
                       T.row = p;
                       T.level = c;
                       X.push(T)
                   }
               }
               ba(qa, 7);
               ba(ka, 7)
           }
           return X
       }
       function d(U, ca, ka) {
           t(U) && f(U, ca);
           ka.isEnd && y(U) && pa(U, ca, ka);
           q(U, ca)
       }
       function f(U, ca) {
           var ka = ra(),
           qa;
           ca.draggable({
               zIndex: 9,
               delay: 50,
               opacity: l("dragOpacity"),
               revertDuration: l("dragRevertDuration"),
               start: function(G, p) {
                   j("eventDragStart", ca, U, G, p);
                   fa(U, ca);
                   ka.start(function(L, c, z, H) {
                       ca.draggable("option", "revert", !L || !z && !H);
                       ha();
                       if (L) {
                           qa = z * 7 + H * (l("isRTL") ? -1 : 1);
                           sa(ba(N(U.start), qa), ba(Ua(U), qa))
                       } else qa = 0
                   },
                   G, "drag")
               },
               stop: function(G, p) {
                   ka.stop();
                   ha();
                   j("eventDragStop", ca, U, G, p);
                   if (qa) oa(this, U, qa, 0, U.allDay, G, p);
                   else {
                       ca.css("filter", "");
                       u(U, ca)
                   }
               }
           })
       }
       var g = this;
       g.renderEvents = a;
       g.compileDaySegs = e;
       g.clearEvents = b;
       g.bindDaySeg = d;
       Qb.call(g);
       var l = g.opt,
       j = g.trigger,
       t = g.isEventDraggable,
       y = g.isEventResizable,
       S = g.reportEvents,
       Q = g.reportEventClear,
       q = g.eventElementHandlers,
       u = g.showEvents,
       fa = g.hideEvents,
       oa = g.eventDrop,
       ga = g.getDaySegmentContainer,
       ra = g.getHoverListener,
       sa = g.renderDayOverlay,
       ha = g.clearOverlays,
       da = g.getRowCnt,
       na = g.getColCnt,
       ua = g.renderDaySegs,
       pa = g.resizableDayEvent
   }
   function qc(a, b) {
       function e(j, t) {
           t && ba(j, t * 7);
           j = ba(N(j), -((j.getDay() - f("firstDay") + 7) % 7));
           t = ba(N(j), 7);
           var y = N(j),
           S = N(t),
           Q = f("weekends");
           if (!Q) {
               Fa(y);
               Fa(S, -1, true)
           }
           d.title = l(y, ba(N(S), -1), f("titleFormat"));
           d.start = j;
           d.end = t;
           d.visStart = y;
           d.visEnd = S;
           g(Q ? 7 : 5)
       }
       var d = this;
       d.render = e;
       Rb.call(d, a, b, "agendaWeek");
       var f = d.opt,
       g = d.renderAgenda,
       l = b.formatDates
   }
   function rc(a, b) {
       function e(j, t) {
           if (t) {
               ba(j, t);
               f("weekends") || Fa(j, t < 0 ? -1 : 1)
           }
           t = N(j, true);
           var y = ba(N(t), 1);
           d.title = l(j, f("titleFormat"));
           d.start = d.visStart = t;
           d.end = d.visEnd = y;
           g(1)
       }
       var d = this;
       d.render = e;
       Rb.call(d, a, b, "agendaDay");
       var f = d.opt,
       g = d.renderAgenda,
       l = b.formatDate
   }
   function Rb(a, b, e) {
       function d(h) {
           Ba = h;
           f();
           v ? P() : g();
           l()
       }
       function f() {
           Wa = i("theme") ? "ui": "fc";
           Sb = i("weekends") ? 0 : 1;
           Tb = i("firstDay");
           if (Ub = i("isRTL")) {
               Ha = -1;
               Ia = Ba - 1
           } else {
               Ha = 1;
               Ia = 0
           }
           La = mb(i("minTime"));
           bb = mb(i("maxTime"));
           Vb = i("columnFormat")
       }
       function g() {
           var h = Wa + "-widget-header",
           O = Wa + "-widget-content",
           x, A, ta, za, Da, Ea = i("slotMinutes") % 15 == 0;
x = "<thead>"; for (A = 0; A < Ba; A++) x += "</thead><tbody>"; for (A = 0; A < Ba; A++) x += ""; x += "</tbody>
 "; x += " 
 
 
 
";
           v = m(x).appendTo(a);
           F = v.find("thead");
           r = F.find("th").slice(1, -1);
           J = v.find("tbody");
           M = J.find("td").slice(0, -1);
           k = M.find("div.fc-day-content div");
           D = M.eq(0);
           Z = D.find("> div");
           ab(F.add(F.find("tr")));
           ab(J.add(J.find("tr")));
           aa = F.find("th:first");
           va = v.find(".fc-agenda-gutter");
           ja = m("<div style='position:absolute;z-index:2;left:0;width:100%'/>").appendTo(a);
           if (i("allDaySlot")) {
               ia = m("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(ja);
x = "
" + i("allDayText") + "
<div style='position:relative'/>
 
";
               la = m(x).appendTo(ja);
               $ = la.find("tr");
               q($.find("td"));
               aa = aa.add(la.find("th:first"));
               va = va.add(la.find("th.fc-agenda-gutter"));
ja.append("
<div class='fc-agenda-divider-inner'/>
")
           } else ia = m([]);
           w = m("<div style='position:absolute;width:100%;overflow-x:hidden;overflow-y:auto'/>").appendTo(ja);
           I = m("<div style='position:relative;width:100%;overflow:hidden'/>").appendTo(w);
           R = m("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(I);
x = "<tbody>"; ta = zb(); za = xa(N(ta), bb); xa(ta, La); for (A = tb = 0; ta < za; A++) { Da = ta.getMinutes(); x += "";
               xa(ta, i("slotMinutes"));
               tb++
           }
x += "</tbody>
" + (!Ea || !Da ? s(ta, i("axisFormat")) : " ") + "
 
";
           V = m(x).appendTo(I);
           ea = V.find("div:first");
           u(V.find("td"));
           aa = aa.add(V.find("th:first"))
       }
       function l() {
           var h, O, x, A, ta = Ka(new Date);
           for (h = 0; h < Ba; h++) {
               A = ua(h);
               O = r.eq(h);
               O.html(s(A, Vb));
               x = M.eq(h); + A == +ta ? x.addClass(Wa + "-state-highlight fc-today") : x.removeClass(Wa + "-state-highlight fc-today");
               rb(O.add(x), A)
           }
       }
       function j(h, O) {
           if (h === ma) h = Wb;
           Wb = h;
           ub = {};
           var x = J.position().top,
           A = w.position().top;
           h = Math.min(h - x, V.height() + A + 1);
           Z.height(h - Sa(D));
           ja.css("top", x);
           w.height(h - A - 1);
           Xa = ea.height() + 1;
           O && y()
       }
       function t(h) {
           Ga = h;
           cb.clear();
           Ma = 0;
           Va(aa.width("").each(function(O, x) {
               Ma = Math.max(Ma, m(x).outerWidth())
           }), Ma);
           h = w[0].clientWidth;
           if (vb = w.width() - h) {
               Va(va, vb);
               va.show().prev().removeClass("fc-last")
           } else va.hide().prev().addClass("fc-last");
           db = Math.floor((h - Ma) / Ba);
           Va(r.slice(0, -1), db)
       }
       function y() {
           function h() {
               w.scrollTop(A)
           }
           var O = zb(),
           x = N(O);
           x.setHours(i("firstHour"));
           var A = ca(O, x) + 1;
           h();
           setTimeout(h, 0)
       }
       function S() {
           Xb = w.scrollTop()
       }
       function Q() {
           w.scrollTop(Xb)
       }
       function q(h) {
           h.click(fa).mousedown(W)
       }
       function u(h) {
           h.click(fa).mousedown(H)
       }
       function fa(h) {
           if (!i("selectable")) {
               var O = Math.min(Ba - 1, Math.floor((h.pageX - v.offset().left - Ma) / db)),
               x = ua(O),
               A = this.parentNode.className.match(/fc-slot(\d+)/);
               if (A) {
                   A = parseInt(A[1]) * i("slotMinutes");
                   var ta = Math.floor(A / 60);
                   x.setHours(ta);
                   x.setMinutes(A % 60 + La);
                   C("dayClick", M[O], x, false, h)
               } else C("dayClick", M[O], x, true, h)
           }
       }
       function oa(h, O, x) {
           x && Na.build();
           var A = N(K.visStart);
           if (Ub) {
               x = Ca(O, A) * Ha + Ia + 1;
               h = Ca(h, A) * Ha + Ia + 1
           } else {
               x = Ca(h, A);
               h = Ca(O, A)
           }
           x = Math.max(0, x);
           h = Math.min(Ba, h);
           x < h && q(ga(0, x, 0, h - 1))
       }
       function ga(h, O, x, A) {
           h = Na.rect(h, O, x, A, ja);
           return E(h, ja)
       }
       function ra(h, O) {
           for (var x = N(K.visStart), A = ba(N(x), 1), ta = 0; ta < Ba; ta++) {
               var za = new Date(Math.max(x, h)),
               Da = new Date(Math.min(A, O));
               if (za < Da) {
                   var Ea = ta * Ha + Ia;
                   Ea = Na.rect(0, Ea, 0, Ea, I);
                   za = ca(x, za);
                   Da = ca(x, Da);
                   Ea.top = za;
                   Ea.height = Da - za;
                   u(E(Ea, I))
               }
               ba(x, 1);
               ba(A, 1)
           }
       }
       function sa(h) {
           return cb.left(h)
       }
       function ha(h) {
           return cb.right(h)
       }
       function da(h) {
           return {
               row: Math.floor(Ca(h, K.visStart) / 7),
               col: U(h.getDay())
           }
       }
       function na(h) {
           var O = ua(h.col);
           h = h.row;
           i("allDaySlot") && h--;
           h >= 0 && xa(O, La + h * i("slotMinutes"));
           return O
       }
       function ua(h) {
           return ba(N(K.visStart), h * Ha + Ia)
       }
       function pa(h) {
           return i("allDaySlot") && !h.row
       }
       function U(h) {
           return (h - Math.max(Tb, Sb) + Ba) % Ba * Ha + Ia
       }
       function ca(h, O) {
           h = N(h, true);
           if (O < xa(N(h), La)) return 0;
           if (O >= xa(N(h), bb)) return V.height();
           h = i("slotMinutes");
           O = O.getHours() * 60 + O.getMinutes() - La;
           var x = Math.floor(O / h),
           A = ub[x];
           if (A === ma) A = ub[x] = V.find("tr:eq(" + x + ") td div")[0].offsetTop;
           return Math.max(0, Math.round(A - 1 + Xa * (O % h / h)))
       }
       function ka() {
           return {
               left: Ma,
               right: Ga - vb
           }
       }
       function qa() {
           return $
       }
       function G(h) {
           var O = N(h.start);
           if (h.allDay) return O;
           return xa(O, i("defaultEventMinutes"))
       }
       function p(h, O) {
           if (O) return N(h);
           return xa(N(h), i("slotMinutes"))
       }
       function L(h, O, x) {
           if (x) i("allDaySlot") && oa(h, ba(N(O), 1), true);
           else c(h, O)
       }
       function c(h, O) {
           var x = i("selectHelper");
           Na.build();
           if (x) {
               var A = Ca(h, K.visStart) * Ha + Ia;
               if (A >= 0 && A < Ba) {
                   A = Na.rect(0, A, 0, A, I);
                   var ta = ca(h, h),
                   za = ca(h, O);
                   if (za > ta) {
                       A.top = ta;
                       A.height = za - ta;
                       A.left += 2;
                       A.width -= 5;
                       if (m.isFunction(x)) {
                           if (h = x(h, O)) {
                               A.position = "absolute";
                               A.zIndex = 8;
                               wa = m(h).css(A).appendTo(I)
                           }
                       } else {
                           A.isStart = true;
                           A.isEnd = true;
                           wa = m(o({
                               title: "",
                               start: h,
                               end: O,
                               className: ["fc-select-helper"],
                               editable: false
                           },
                           A));
                           wa.css("opacity", i("dragOpacity"))
                       }
                       if (wa) {
                           u(wa);
                           I.append(wa);
                           Va(wa, A.width, true);
                           Eb(wa, A.height, true)
                       }
                   }
               }
           } else ra(h, O)
       }
       function z() {
           B();
           if (wa) {
               wa.remove();
               wa = null
           }
       }
       function H(h) {
           if (h.which == 1 && i("selectable")) {
               Y(h);
               var O;
               Ra.start(function(x, A) {
                   z();
                   if (x && x.col == A.col && !pa(x)) {
                       A = na(A);
                       x = na(x);
                       O = [A, xa(N(A), i("slotMinutes")), x, xa(N(x), i("slotMinutes"))].sort(Gb);
                       c(O[0], O[3])
                   } else O = null
               },
               h);
               m(document).one("mouseup",
               function(x) {
                   Ra.stop();
                   if (O) { + O[0] == +O[1] && T(O[0], false, x);
                       n(O[0], O[3], false, x)
                   }
               })
           }
       }
       function T(h, O, x) {
           C("dayClick", M[U(h.getDay())], h, O, x)
       }
       function X(h, O) {
           Ra.start(function(x) {
               B();
               if (x) if (pa(x)) ga(x.row, x.col, x.row, x.col);
               else {
                   x = na(x);
                   var A = xa(N(x), i("defaultEventMinutes"));
                   ra(x, A)
               }
           },
           O)
       }
       function ya(h, O, x) {
           var A = Ra.stop();
           B();
           A && C("drop", h, na(A), pa(A), O, x)
       }
       var K = this;
       K.renderAgenda = d;
       K.setWidth = t;
       K.setHeight = j;
       K.beforeHide = S;
       K.afterShow = Q;
       K.defaultEventEnd = G;
       K.timePosition = ca;
       K.dayOfWeekCol = U;
       K.dateCell = da;
       K.cellDate = na;
       K.cellIsAllDay = pa;
       K.allDayRow = qa;
       K.allDayBounds = ka;
       K.getHoverListener = function() {
           return Ra
       };
       K.colContentLeft = sa;
       K.colContentRight = ha;
       K.getDaySegmentContainer = function() {
           return ia
       };
       K.getSlotSegmentContainer = function() {
           return R
       };
       K.getMinMinute = function() {
           return La
       };
       K.getMaxMinute = function() {
           return bb
       };
       K.getBodyContent = function() {
           return I
       };
       K.getRowCnt = function() {
           return 1
       };
       K.getColCnt = function() {
           return Ba
       };
       K.getColWidth = function() {
           return db
       };
       K.getSlotHeight = function() {
           return Xa
       };
       K.defaultSelectionEnd = p;
       K.renderDayOverlay = oa;
       K.renderSelection = L;
       K.clearSelection = z;
       K.reportDayClick = T;
       K.dragStart = X;
       K.dragStop = ya;
       Kb.call(K, a, b, e);
       Lb.call(K);
       Mb.call(K);
       sc.call(K);
       var i = K.opt,
       C = K.trigger,
       P = K.clearEvents,
       E = K.renderOverlay,
       B = K.clearOverlays,
       n = K.reportSelection,
       Y = K.unselect,
       W = K.daySelectionMousedown,
       o = K.slotSegHtml,
       s = b.formatDate,
       v, F, r, J, M, k, D, Z, ja, ia, la, $, w, I, R, V, ea, aa, va, wa, Ga, Wb, Ma, db, vb, Xa, Xb, Ba, tb, Na, Ra, cb, ub = {},
       Wa, Tb, Sb, Ub, Ha, Ia, La, bb, Vb;
       qb(a.addClass("fc-agenda"));
       Na = new Nb(function(h, O) {
           function x(eb) {
               return Math.max(Ea, Math.min(tc, eb))
           }
           var A, ta, za;
           r.each(function(eb, uc) {
               A = m(uc);
               ta = A.offset().left;
               if (eb) za[1] = ta;
               za = [ta];
               O[eb] = za
           });
           za[1] = ta + A.outerWidth();
           if (i("allDaySlot")) {
               A = $;
               ta = A.offset().top;
               h[0] = [ta, ta + A.outerHeight()]
           }
           for (var Da = I.offset().top, Ea = w.offset().top, tc = Ea + w.outerHeight(), fb = 0; fb < tb; fb++) h.push([x(Da + Xa * fb), x(Da + Xa * (fb + 1))])
       });
       Ra = new Ob(Na);
       cb = new Pb(function(h) {
           return k.eq(h)
       })
   }
   function sc() {
       function a(o, s) {
           sa(o);
           var v, F = o.length,
           r = [],
           J = [];
           for (v = 0; v < F; v++) o[v].allDay ? r.push(o[v]) : J.push(o[v]);
           if (u("allDaySlot")) {
               L(e(r), s);
               na()
           }
           g(d(J), s)
       }
       function b() {
           ha();
           ua().empty();
           pa().empty()
       }
       function e(o) {
           o = ob(nb(o, m.map(o, Ua), q.visStart, q.visEnd));
           var s, v = o.length,
           F, r, J, M = [];
           for (s = 0; s < v; s++) {
               F = o[s];
               for (r = 0; r < F.length; r++) {
                   J = F[r];
                   J.row = 0;
                   J.level = s;
                   M.push(J)
               }
           }
           return M
       }
       function d(o) {
           var s = z(),
           v = ka(),
           F = ca(),
           r = xa(N(q.visStart), v),
           J = m.map(o, f),
           M,
           k,
           D,
           Z,
           ja,
           ia,
           la = [];
           for (M = 0; M < s; M++) {
               k = ob(nb(o, J, r, xa(N(r), F - v)));
               vc(k);
               for (D = 0; D < k.length; D++) {
                   Z = k[D];
                   for (ja = 0; ja < Z.length; ja++) {
                       ia = Z[ja];
                       ia.col = M;
                       ia.level = D;
                       la.push(ia)
                   }
               }
               ba(r, 1, true)
           }
           return la
       }
       function f(o) {
           return o.end ? N(o.end) : xa(N(o.start), u("defaultEventMinutes"))
       }
       function g(o, s) {
           var v, F = o.length,
           r, J, M, k, D, Z, ja, ia, la, $ = "",
           w, I, R = {},
           V = {},
           ea = pa(),
           aa;
           v = z();
           if (w = u("isRTL")) {
               I = -1;
               aa = v - 1
           } else {
               I = 1;
               aa = 0
           }
           for (v = 0; v < F; v++) {
               r = o[v];
               J = r.event;
               M = qa(r.start, r.start);
               k = qa(r.start, r.end);
               D = r.col;
               Z = r.level;
               ja = r.forward || 0;
               ia = G(D * I + aa);
               la = p(D * I + aa) - ia;
               la = Math.min(la - 6, la * 0.95);
               D = Z ? la / (Z + ja + 1) : ja ? (la / (ja + 1) - 6) * 2 : la;
               Z = ia + la / (Z + ja + 1) * Z * I + (w ? la - D: 0);
               r.top = M;
               r.left = Z;
               r.outerWidth = D;
               r.outerHeight = k - M;
               $ += l(J, r)
           }
           ea[0].innerHTML = $;
           w = ea.children();
           for (v = 0; v < F; v++) {
               r = o[v];
               J = r.event;
               $ = m(w[v]);
               I = fa("eventRender", J, J, $);
               if (I === false) $.remove();
               else {
                   if (I && I !== true) {
                       $.remove();
                       $ = m(I).css({
                           position: "absolute",
                           top: r.top,
                           left: r.left
                       }).appendTo(ea)
                   }
                   r.element = $;
                   if (J._id === s) t(J, $, r);
                   else $[0]._fci = v;
                   ya(J, $)
               }
           }
           Db(ea, o, t);
           for (v = 0; v < F; v++) {
               r = o[v];
               if ($ = r.element) {
                   J = R[s = r.key = Ib($[0])];
                   r.vsides = J === ma ? (R[s] = Sa($, true)) : J;
                   J = V[s];
                   r.hsides = J === ma ? (V[s] = pb($, true)) : J;
                   s = $.find("div.fc-event-content");
                   if (s.length) r.contentTop = s[0].offsetTop
               }
           }
           for (v = 0; v < F; v++) {
               r = o[v];
               if ($ = r.element) {
                   $[0].style.width = Math.max(0, r.outerWidth - r.hsides) + "px";
                   R = Math.max(0, r.outerHeight - r.vsides);
                   $[0].style.height = R + "px";
                   J = r.event;
                   if (r.contentTop !== ma && R - r.contentTop < 10) {
                       $.find("div.fc-event-time").text(Y(J.start, u("timeFormat")) + " - " + J.title);
                       $.find("div.fc-event-title").remove()
                   }
                   fa("eventAfterRender", J, J, $)
               }
           }
       }
       function l(o, s) {
           var v = "<",
           F = o.url,
           r = Jb(o, u),
           J = r ? " style='" + r + "'": "",
           M = ["fc-event", "fc-event-skin", "fc-event-vert"];
           oa(o) && M.push("fc-event-draggable");
           s.isStart && M.push("fc-corner-top");
           s.isEnd && M.push("fc-corner-bottom");
           M = M.concat(o.className);
           if (o.source) M = M.concat(o.source.className || []);
           v += F ? "a href='" + Qa(o.url) + "'": "div";
v += " class='" + M.join(" ") + "' style='position:absolute;z-index:8;top:" + s.top + "px;left:" + s.left + "px;" + r + "'>
" + Qa(W(o.start, o.end, u("timeFormat"))) + "
" + Qa(o.title) + "
"; if (s.isEnd && ga(o)) v += "
=
";
           v += "</" + (F ? "a": "div") + ">";
           return v
       }
       function j(o, s, v) {
           oa(o) && y(o, s, v.isStart);
           v.isEnd && ga(o) && c(o, s, v);
           da(o, s)
       }
       function t(o, s, v) {
           var F = s.find("div.fc-event-time");
           oa(o) && S(o, s, F);
           v.isEnd && ga(o) && Q(o, s, F);
           da(o, s)
       }
       function y(o, s, v) {
           function F() {
               if (!M) {
                   s.width(r).height("").draggable("option", "grid", null);
                   M = true
               }
           }
           var r, J, M = true,
           k, D = u("isRTL") ? -1 : 1,
           Z = U(),
           ja = H(),
           ia = T(),
           la = ka();
           s.draggable({
               zIndex: 9,
               opacity: u("dragOpacity", "month"),
               revertDuration: u("dragRevertDuration"),
               start: function($, w) {
                   fa("eventDragStart", s, o, $, w);
                   i(o, s);
                   r = s.width();
                   Z.start(function(I, R, V, ea) {
                       B();
                       if (I) {
                           J = false;
                           k = ea * D;
                           if (I.row) if (v) {
                               if (M) {
                                   s.width(ja - 10);
                                   Eb(s, ia * Math.round((o.end ? (o.end - o.start) / wc: u("defaultEventMinutes")) / u("slotMinutes")));
                                   s.draggable("option", "grid", [ja, 1]);
                                   M = false
                               }
                           } else J = true;
                           else {
                               E(ba(N(o.start), k), ba(Ua(o), k));
                               F()
                           }
                           J = J || M && !k
                       } else {
                           F();
                           J = true
                       }
                       s.draggable("option", "revert", J)
                   },
                   $, "drag")
               },
               stop: function($, w) {
                   Z.stop();
                   B();
                   fa("eventDragStop", s, o, $, w);
                   if (J) {
                       F();
                       s.css("filter", "");
                       K(o, s)
                   } else {
                       var I = 0;
                       M || (I = Math.round((s.offset().top - X().offset().top) / ia) * u("slotMinutes") + la - (o.start.getHours() * 60 + o.start.getMinutes()));
                       C(this, o, k, I, M, $, w)
                   }
               }
           })
       }
       function S(o, s, v) {
           function F(I) {
               var R = xa(N(o.start), I),
               V;
               if (o.end) V = xa(N(o.end), I);
               v.text(W(R, V, u("timeFormat")))
           }
           function r() {
               if (M) {
                   v.css("display", "");
                   s.draggable("option", "grid", [$, w]);
                   M = false
               }
           }
           var J, M = false,
           k, D, Z, ja = u("isRTL") ? -1 : 1,
           ia = U(),
           la = z(),
           $ = H(),
           w = T();
           s.draggable({
               zIndex: 9,
               scroll: false,
               grid: [$, w],
               axis: la == 1 ? "y": false,
               opacity: u("dragOpacity"),
               revertDuration: u("dragRevertDuration"),
               start: function(I, R) {
                   fa("eventDragStart", s, o, I, R);
                   i(o, s);
                   J = s.position();
                   D = Z = 0;
                   ia.start(function(V, ea, aa, va) {
                       s.draggable("option", "revert", !V);
                       B();
                       if (V) {
                           k = va * ja;
                           if (u("allDaySlot") && !V.row) {
                               if (!M) {
                                   M = true;
                                   v.hide();
                                   s.draggable("option", "grid", null)
                               }
                               E(ba(N(o.start), k), ba(Ua(o), k))
                           } else r()
                       }
                   },
                   I, "drag")
               },
               drag: function(I, R) {
                   D = Math.round((R.position.top - J.top) / w) * u("slotMinutes");
                   if (D != Z) {
                       M || F(D);
                       Z = D
                   }
               },
               stop: function(I, R) {
                   var V = ia.stop();
                   B();
                   fa("eventDragStop", s, o, I, R);
                   if (V && (k || D || M)) C(this, o, k, M ? 0 : D, M, I, R);
                   else {
                       r();
                       s.css("filter", "");
                       s.css(J);
                       F(0);
                       K(o, s)
                   }
               }
           })
       }
       function Q(o, s, v) {
           var F, r, J = T();
           s.resizable({
               handles: {
                   s: "div.ui-resizable-s"
               },
               grid: J,
               start: function(M, k) {
                   F = r = 0;
                   i(o, s);
                   s.css("z-index", 9);
                   fa("eventResizeStart", this, o, M, k)
               },
               resize: function(M, k) {
                   F = Math.round((Math.max(J, s.height()) - k.originalSize.height) / J);
                   if (F != r) {
                       v.text(W(o.start, !F && !o.end ? null: xa(ra(o), u("slotMinutes") * F), u("timeFormat")));
                       r = F
                   }
               },
               stop: function(M, k) {
                   fa("eventResizeStop", this, o, M, k);
                   if (F) P(this, o, 0, u("slotMinutes") * F, M, k);
                   else {
                       s.css("z-index", 8);
                       K(o, s)
                   }
               }
           })
       }
       var q = this;
       q.renderEvents = a;
       q.compileDaySegs = e;
       q.clearEvents = b;
       q.slotSegHtml = l;
       q.bindDaySeg = j;
       Qb.call(q);
       var u = q.opt,
       fa = q.trigger,
       oa = q.isEventDraggable,
       ga = q.isEventResizable,
       ra = q.eventEnd,
       sa = q.reportEvents,
       ha = q.reportEventClear,
       da = q.eventElementHandlers,
       na = q.setHeight,
       ua = q.getDaySegmentContainer,
       pa = q.getSlotSegmentContainer,
       U = q.getHoverListener,
       ca = q.getMaxMinute,
       ka = q.getMinMinute,
       qa = q.timePosition,
       G = q.colContentLeft,
       p = q.colContentRight,
       L = q.renderDaySegs,
       c = q.resizableDayEvent,
       z = q.getColCnt,
       H = q.getColWidth,
       T = q.getSlotHeight,
       X = q.getBodyContent,
       ya = q.reportEventElement,
       K = q.showEvents,
       i = q.hideEvents,
       C = q.eventDrop,
       P = q.eventResize,
       E = q.renderDayOverlay,
       B = q.clearOverlays,
       n = q.calendar,
       Y = n.formatDate,
       W = n.formatDates
   }
   function vc(a) {
       var b, e, d, f, g, l;
       for (b = a.length - 1; b > 0; b--) {
           f = a[b];
           for (e = 0; e < f.length; e++) {
               g = f[e];
               for (d = 0; d < a[b - 1].length; d++) {
                   l = a[b - 1][d];
                   if (Cb(g, l)) l.forward = Math.max(l.forward || 0, (g.forward || 0) + 1)
               }
           }
       }
   }
   function Kb(a, b, e) {
       function d(G, p) {
           G = qa[G];
           if (typeof G == "object") return jb(G, p || e);
           return G
       }
       function f(G, p) {
           return b.trigger.apply(b, [G, p || da].concat(Array.prototype.slice.call(arguments, 2), [da]))
       }
       function g(G) {
           return j(G) && !d("disableDragging")
       }
       function l(G) {
           return j(G) && !d("disableResizing")
       }
       function j(G) {
           return Ta(G.editable, (G.source || {}).editable, d("editable"))
       }
       function t(G) {
           U = {};
           var p, L = G.length,
           c;
           for (p = 0; p < L; p++) {
               c = G[p];
               if (U[c._id]) U[c._id].push(c);
               else U[c._id] = [c]
           }
       }
       function y(G) {
           return G.end ? N(G.end) : na(G)
       }
       function S(G, p) {
           ca.push(p);
           if (ka[G._id]) ka[G._id].push(p);
           else ka[G._id] = [p]
       }
       function Q() {
           ca = [];
           ka = {}
       }
       function q(G, p) {
           p.click(function(L) {
               if (!p.hasClass("ui-draggable-dragging") && !p.hasClass("ui-resizable-resizing")) return f("eventClick", this, G, L)
           }).hover(function(L) {
               f("eventMouseover", this, G, L)
           },
           function(L) {
               f("eventMouseout", this, G, L)
           })
       }
       function u(G, p) {
           oa(G, p, "show")
       }
       function fa(G, p) {
           oa(G, p, "hide")
       }
       function oa(G, p, L) {
           G = ka[G._id];
           var c, z = G.length;
           for (c = 0; c < z; c++) if (!p || G[c][0] != p[0]) G[c][L]()
       }
       function ga(G, p, L, c, z, H, T) {
           var X = p.allDay,
           ya = p._id;
           sa(U[ya], L, c, z);
           f("eventDrop", G, p, L, c, z,
           function() {
               sa(U[ya], -L, -c, X);
               pa(ya)
           },
           H, T);
           pa(ya)
       }
       function ra(G, p, L, c, z, H) {
           var T = p._id;
           ha(U[T], L, c);
           f("eventResize", G, p, L, c,
           function() {
               ha(U[T], -L, -c);
               pa(T)
           },
           z, H);
           pa(T)
       }
       function sa(G, p, L, c) {
           L = L || 0;
           for (var z, H = G.length,
           T = 0; T < H; T++) {
               z = G[T];
               if (c !== ma) z.allDay = c;
               xa(ba(z.start, p, true), L);
               if (z.end) z.end = xa(ba(z.end, p, true), L);
               ua(z, qa)
           }
       }
       function ha(G, p, L) {
           L = L || 0;
           for (var c, z = G.length,
           H = 0; H < z; H++) {
               c = G[H];
               c.end = xa(ba(y(c), p, true), L);
               ua(c, qa)
           }
       }
       var da = this;
       da.element = a;
       da.calendar = b;
       da.name = e;
       da.opt = d;
       da.trigger = f;
       da.isEventDraggable = g;
       da.isEventResizable = l;
       da.reportEvents = t;
       da.eventEnd = y;
       da.reportEventElement = S;
       da.reportEventClear = Q;
       da.eventElementHandlers = q;
       da.showEvents = u;
       da.hideEvents = fa;
       da.eventDrop = ga;
       da.eventResize = ra;
       var na = da.defaultEventEnd,
       ua = b.normalizeEvent,
       pa = b.reportEventChange,
       U = {},
       ca = [],
       ka = {},
       qa = b.options
   }
   function Qb() {
       function a(i, C) {
           var P = z(),
           E = pa(),
           B = U(),
           n = 0,
           Y,
           W,
           o = i.length,
           s,
           v;
           P[0].innerHTML = e(i);
           d(i, P.children());
           f(i);
           g(i, P, C);
           l(i);
           j(i);
           t(i);
           C = y();
           for (P = 0; P < E; P++) {
               Y = [];
               for (W = 0; W < B; W++) Y[W] = 0;
               for (; n < o && (s = i[n]).row == P;) {
                   W = Hb(Y.slice(s.startCol, s.endCol));
                   s.top = W;
                   W += s.outerHeight;
                   for (v = s.startCol; v < s.endCol; v++) Y[v] = W;
                   n++
               }
               C[P].height(Hb(Y))
           }
           Q(i, S(C))
       }
       function b(i, C, P) {
           var E = m("<div/>"),
           B = z(),
           n = i.length,
           Y;
           E[0].innerHTML = e(i);
           E = E.children();
           B.append(E);
           d(i, E);
           l(i);
           j(i);
           t(i);
           Q(i, S(y()));
           E = [];
           for (B = 0; B < n; B++) if (Y = i[B].element) {
               i[B].row === C && Y.css("top", P);
               E.push(Y[0])
           }
           return m(E)
       }
       function e(i) {
           var C = fa("isRTL"),
           P,
           E = i.length,
           B,
           n,
           Y,
           W;
           P = ka();
           var o = P.left,
           s = P.right,
           v, F, r, J, M, k = "";
           for (P = 0; P < E; P++) {
               B = i[P];
               n = B.event;
               W = ["fc-event", "fc-event-skin", "fc-event-hori"];
               ga(n) && W.push("fc-event-draggable");
               if (C) {
                   B.isStart && W.push("fc-corner-right");
                   B.isEnd && W.push("fc-corner-left");
                   v = p(B.end.getDay() - 1);
                   F = p(B.start.getDay());
                   r = B.isEnd ? qa(v) : o;
                   J = B.isStart ? G(F) : s
               } else {
                   B.isStart && W.push("fc-corner-left");
                   B.isEnd && W.push("fc-corner-right");
                   v = p(B.start.getDay());
                   F = p(B.end.getDay() - 1);
                   r = B.isStart ? qa(v) : o;
                   J = B.isEnd ? G(F) : s
               }
               W = W.concat(n.className);
               if (n.source) W = W.concat(n.source.className || []);
               Y = n.url;
               M = Jb(n, fa);
               k += Y ? "<a href='" + Qa(Y) + "'": "<div";
k += " class='" + W.join(" ") + "' style='position:absolute;z-index:8;left:" + r + "px;" + M + "'>
";
               if (!n.allDay && B.isStart) k += "" + Qa(T(n.start, n.end, fa("timeFormat"))) + "";
k += "" + Qa(n.title) + "
"; if (B.isEnd && ra(n)) k += "
   
";
               k += "</" + (Y ? "a": "div") + ">";
               B.left = r;
               B.outerWidth = J - r;
               B.startCol = v;
               B.endCol = F + 1
           }
           return k
       }
       function d(i, C) {
           var P, E = i.length,
           B, n, Y;
           for (P = 0; P < E; P++) {
               B = i[P];
               n = B.event;
               Y = m(C[P]);
               n = oa("eventRender", n, n, Y);
               if (n === false) Y.remove();
               else {
                   if (n && n !== true) {
                       n = m(n).css({
                           position: "absolute",
                           left: B.left
                       });
                       Y.replaceWith(n);
                       Y = n
                   }
                   B.element = Y
               }
           }
       }
       function f(i) {
           var C, P = i.length,
           E, B;
           for (C = 0; C < P; C++) {
               E = i[C]; (B = E.element) && ha(E.event, B)
           }
       }
       function g(i, C, P) {
           var E, B = i.length,
           n, Y, W;
           for (E = 0; E < B; E++) {
               n = i[E];
               if (Y = n.element) {
                   W = n.event;
                   if (W._id === P) H(W, Y, n);
                   else Y[0]._fci = E
               }
           }
           Db(C, i, H)
       }
       function l(i) {
           var C, P = i.length,
           E, B, n, Y, W = {};
           for (C = 0; C < P; C++) {
               E = i[C];
               if (B = E.element) {
                   n = E.key = Ib(B[0]);
                   Y = W[n];
                   if (Y === ma) Y = W[n] = pb(B, true);
                   E.hsides = Y
               }
           }
       }
       function j(i) {
           var C, P = i.length,
           E, B;
           for (C = 0; C < P; C++) {
               E = i[C];
               if (B = E.element) B[0].style.width = Math.max(0, E.outerWidth - E.hsides) + "px"
           }
       }
       function t(i) {
           var C, P = i.length,
           E, B, n, Y, W = {};
           for (C = 0; C < P; C++) {
               E = i[C];
               if (B = E.element) {
                   n = E.key;
                   Y = W[n];
                   if (Y === ma) Y = W[n] = Fb(B);
                   E.outerHeight = B[0].offsetHeight + Y
               }
           }
       }
       function y() {
           var i, C = pa(),
           P = [];
           for (i = 0; i < C; i++) P[i] = ca(i).find("td:first div.fc-day-content > div");
           return P
       }
       function S(i) {
           var C, P = i.length,
           E = [];
           for (C = 0; C < P; C++) E[C] = i[C][0].offsetTop;
           return E
       }
       function Q(i, C) {
           var P, E = i.length,
           B, n;
           for (P = 0; P < E; P++) {
               B = i[P];
               if (n = B.element) {
                   n[0].style.top = C[B.row] + (B.top || 0) + "px";
                   B = B.event;
                   oa("eventAfterRender", B, B, n)
               }
           }
       }
       function q(i, C, P) {
           var E = fa("isRTL"),
           B = E ? "w": "e",
           n = C.find("div.ui-resizable-" + B),
           Y = false;
           qb(C);
           C.mousedown(function(W) {
               W.preventDefault()
           }).click(function(W) {
               if (Y) {
                   W.preventDefault();
                   W.stopImmediatePropagation()
               }
           });
           n.mousedown(function(W) {
               function o(ia) {
                   oa("eventResizeStop", this, i, ia);
                   m("body").css("cursor", "");
                   s.stop();
                   ya();
                   k && ua(this, i, k, 0, ia);
                   setTimeout(function() {
                       Y = false
                   },
                   0)
               }
               if (W.which == 1) {
                   Y = true;
                   var s = u.getHoverListener(),
                   v = pa(),
                   F = U(),
                   r = E ? -1 : 1,
                   J = E ? F - 1 : 0,
                   M = C.css("top"),
                   k,
                   D,
                   Z = m.extend({},
                   i),
                   ja = L(i.start);
                   K();
                   m("body").css("cursor", B + "-resize").one("mouseup", o);
                   oa("eventResizeStart", this, i, W);
                   s.start(function(ia, la) {
                       if (ia) {
                           var $ = Math.max(ja.row, ia.row);
                           ia = ia.col;
                           if (v == 1) $ = 0;
                           if ($ == ja.row) ia = E ? Math.min(ja.col, ia) : Math.max(ja.col, ia);
                           k = $ * 7 + ia * r + J - (la.row * 7 + la.col * r + J);
                           la = ba(sa(i), k, true);
                           if (k) {
                               Z.end = la;
                               $ = D;
                               D = b(c([Z]), P.row, M);
                               D.find("*").css("cursor", B + "-resize");
                               $ && $.remove();
                               na(i)
                           } else if (D) {
                               da(i);
                               D.remove();
                               D = null
                           }
                           ya();
                           X(i.start, ba(N(la), 1))
                       }
                   },
                   W)
               }
           })
       }
       var u = this;
       u.renderDaySegs = a;
       u.resizableDayEvent = q;
       var fa = u.opt,
       oa = u.trigger,
       ga = u.isEventDraggable,
       ra = u.isEventResizable,
       sa = u.eventEnd,
       ha = u.reportEventElement,
       da = u.showEvents,
       na = u.hideEvents,
       ua = u.eventResize,
       pa = u.getRowCnt,
       U = u.getColCnt,
       ca = u.allDayRow,
       ka = u.allDayBounds,
       qa = u.colContentLeft,
       G = u.colContentRight,
       p = u.dayOfWeekCol,
       L = u.dateCell,
       c = u.compileDaySegs,
       z = u.getDaySegmentContainer,
       H = u.bindDaySeg,
       T = u.calendar.formatDates,
       X = u.renderDayOverlay,
       ya = u.clearOverlays,
       K = u.clearSelection
   }
   function Mb() {
       function a(Q, q, u) {
           b();
           q || (q = j(Q, u));
           t(Q, q, u);
           e(Q, q, u)
       }
       function b(Q) {
           if (S) {
               S = false;
               y();
               l("unselect", null, Q)
           }
       }
       function e(Q, q, u, fa) {
           S = true;
           l("select", null, Q, q, u, fa)
       }
       function d(Q) {
           var q = f.cellDate,
           u = f.cellIsAllDay,
           fa = f.getHoverListener(),
           oa = f.reportDayClick;
           if (Q.which == 1 && g("selectable")) {
               b(Q);
               var ga;
               fa.start(function(ra, sa) {
                   y();
                   if (ra && u(ra)) {
                       ga = [q(sa), q(ra)].sort(Gb);
                       t(ga[0], ga[1], true)
                   } else ga = null
               },
               Q);
               m(document).one("mouseup",
               function(ra) {
                   fa.stop();
                   if (ga) { + ga[0] == +ga[1] && oa(ga[0], true, ra);
                       e(ga[0], ga[1], true, ra)
                   }
               })
           }
       }
       var f = this;
       f.select = a;
       f.unselect = b;
       f.reportSelection = e;
       f.daySelectionMousedown = d;
       var g = f.opt,
       l = f.trigger,
       j = f.defaultSelectionEnd,
       t = f.renderSelection,
       y = f.clearSelection,
       S = false;
       g("selectable") && g("unselectAuto") && m(document).mousedown(function(Q) {
           var q = g("unselectCancel");
           if (q) if (m(Q.target).parents(q).length) return;
           b(Q)
       })
   }
   function Lb() {
       function a(g, l) {
           var j = f.shift();
           j || (j = m("<div class='fc-cell-overlay' style='position:absolute;z-index:3'/>"));
           j[0].parentNode != l[0] && j.appendTo(l);
           d.push(j.css(g).show());
           return j
       }
       function b() {
           for (var g; g = d.shift();) f.push(g.hide().unbind())
       }
       var e = this;
       e.renderOverlay = a;
       e.clearOverlays = b;
       var d = [],
       f = []
   }
   function Nb(a) {
       var b = this,
       e, d;
       b.build = function() {
           e = [];
           d = [];
           a(e, d)
       };
       b.cell = function(f, g) {
           var l = e.length,
           j = d.length,
           t, y = -1,
           S = -1;
           for (t = 0; t < l; t++) if (g >= e[t][0] && g < e[t][1]) {
               y = t;
               break
           }
           for (t = 0; t < j; t++) if (f >= d[t][0] && f < d[t][1]) {
               S = t;
               break
           }
           return y >= 0 && S >= 0 ? {
               row: y,
               col: S
           }: null
       };
       b.rect = function(f, g, l, j, t) {
           t = t.offset();
           return {
               top: e[f][0] - t.top,
               left: d[g][0] - t.left,
               width: d[j][1] - d[g][0],
               height: e[l][1] - e[f][0]
           }
       }
   }
   function Ob(a) {
       function b(j) {
           xc(j);
           j = a.cell(j.pageX, j.pageY);
           if (!j != !l || j && (j.row != l.row || j.col != l.col)) {
               if (j) {
                   g || (g = j);
                   f(j, g, j.row - g.row, j.col - g.col)
               } else f(j, g);
               l = j
           }
       }
       var e = this,
       d, f, g, l;
       e.start = function(j, t, y) {
           f = j;
           g = l = null;
           a.build();
           b(t);
           d = y || "mousemove";
           m(document).bind(d, b)
       };
       e.stop = function() {
           m(document).unbind(d, b);
           return l
       }
   }
   function xc(a) {
       if (a.pageX === ma) {
           a.pageX = a.originalEvent.pageX;
           a.pageY = a.originalEvent.pageY
       }
   }
   function Pb(a) {
       function b(l) {
           return d[l] = d[l] || a(l)
       }
       var e = this,
       d = {},
       f = {},
       g = {};
       e.left = function(l) {
           return f[l] = f[l] === ma ? b(l).position().left: f[l]
       };
       e.right = function(l) {
           return g[l] = g[l] === ma ? e.left(l) + b(l).width() : g[l]
       };
       e.clear = function() {
           d = {};
           f = {};
           g = {}
       }
   }
   var Ya = {
       defaultView: "month",
       aspectRatio: 1.35,
       header: {
           left: "title",
           center: "",
           right: "today prev,next"
       },
       weekends: true,
       allDayDefault: true,
       ignoreTimezone: true,
       lazyFetching: true,
       startParam: "start",
       endParam: "end",
       titleFormat: {
           month: "MMMM yyyy",
           week: "MMM d[ yyyy]{ '—'[ MMM] d yyyy}",
           day: "dddd, MMM d, yyyy"
       },
       columnFormat: {
           month: "ddd",
           week: "ddd M/d",
           day: "dddd M/d"
       },
       timeFormat: {
           "": "h(:mm)t"
       },
       isRTL: false,
       firstDay: 0,
       monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
       monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
       dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
       dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
       buttonText: {
           prev: " ◄ ",
           next: " ► ",
           prevYear: " << ",
           nextYear: " >> ",
           today: "today",
           month: "month",
           week: "week",
           day: "day"
       },
       theme: false,
       buttonIcons: {
           prev: "circle-triangle-w",
           next: "circle-triangle-e"
       },
       unselectAuto: true,
       dropAccept: "*"
   },
   yc = {
       header: {
           left: "next,prev today",
           center: "",
           right: "title"
       },
       buttonText: {
           prev: " ► ",
           next: " ◄ ",
           prevYear: " >> ",
           nextYear: " << "
       },
       buttonIcons: {
           prev: "circle-triangle-e",
           next: "circle-triangle-w"
       }
   },
   Aa = m.fullCalendar = {
       version: "1.5.3"
   },
   Ja = Aa.views = {};
   m.fn.fullCalendar = function(a) {
       if (typeof a == "string") {
           var b = Array.prototype.slice.call(arguments, 1),
           e;
           this.each(function() {
               var f = m.data(this, "fullCalendar");
               if (f && m.isFunction(f[a])) {
                   f = f[a].apply(f, b);
                   if (e === ma) e = f;
                   a == "destroy" && m.removeData(this, "fullCalendar")
               }
           });
           if (e !== ma) return e;
           return this
       }
       var d = a.eventSources || [];
       delete a.eventSources;
       if (a.events) {
           d.push(a.events);
           delete a.events
       }
       a = m.extend(true, {},
       Ya, a.isRTL || a.isRTL === ma && Ya.isRTL ? yc: {},
       a);
       this.each(function(f, g) {
           f = m(g);
           g = new Yb(f, a, d);
           f.data("fullCalendar", g);
           g.render()
       });
       return this
   };
   Aa.sourceNormalizers = [];
   Aa.sourceFetchers = [];
   var ac = {
       dataType: "json",
       cache: false
   },
   bc = 1;
   Aa.addDays = ba;
   Aa.cloneDate = N;
   Aa.parseDate = kb;
   Aa.parseISO8601 = Bb;
   Aa.parseTime = mb;
   Aa.formatDate = Oa;
   Aa.formatDates = ib;
   var lc = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"],
   Ab = 864E5,
   cc = 36E5,
   wc = 6E4,
   dc = {
       s: function(a) {
           return a.getSeconds()
       },
       ss: function(a) {
           return Pa(a.getSeconds())
       },
       m: function(a) {
           return a.getMinutes()
       },
       mm: function(a) {
           return Pa(a.getMinutes())
       },
       h: function(a) {
           return a.getHours() % 12 || 12
       },
       hh: function(a) {
           return Pa(a.getHours() % 12 || 12)
       },
       H: function(a) {
           return a.getHours()
       },
       HH: function(a) {
           return Pa(a.getHours())
       },
       d: function(a) {
           return a.getDate()
       },
       dd: function(a) {
           return Pa(a.getDate())
       },
       ddd: function(a, b) {
           return b.dayNamesShort[a.getDay()]
       },
       dddd: function(a, b) {
           return b.dayNames[a.getDay()]
       },
       M: function(a) {
           return a.getMonth() + 1
       },
       MM: function(a) {
           return Pa(a.getMonth() + 1)
       },
       MMM: function(a, b) {
           return b.monthNamesShort[a.getMonth()]
       },
       MMMM: function(a, b) {
           return b.monthNames[a.getMonth()]
       },
       yy: function(a) {
           return (a.getFullYear() + "").substring(2)
       },
       yyyy: function(a) {
           return a.getFullYear()
       },
       t: function(a) {
           return a.getHours() < 12 ? "a": "p"
       },
       tt: function(a) {
           return a.getHours() < 12 ? "am": "pm"
       },
       T: function(a) {
           return a.getHours() < 12 ? "A": "P"
       },
       TT: function(a) {
           return a.getHours() < 12 ? "AM": "PM"
       },
       u: function(a) {
           return Oa(a, "yyyy-MM-dd'T'HH:mm:ss'Z'")
       },
       S: function(a) {
           a = a.getDate();
           if (a > 10 && a < 20) return "th";
           return ["st", "nd", "rd"][a % 10 - 1] || "th"
       }
   };
   Aa.applyAll = $a;
   Ja.month = mc;
   Ja.basicWeek = nc;
   Ja.basicDay = oc;
   wb({
       weekMode: "fixed"
   });
   Ja.agendaWeek = qc;
   Ja.agendaDay = rc;
   wb({
       allDaySlot: true,
       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);