server/source/native: fix wrong usage of .lstrip that produce garbled error messages (closes #2777641)
Fixed an .rstrip(...) for the general case (untested).
Fixed an .lstrip(...) for the sqlite path (tested).
+ − /*
+ −
+ − FullCalendar v1.4.8
+ − 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) 2010 Adam Shaw
+ − Dual licensed under the MIT and GPL licenses, located in
+ − MIT-LICENSE.txt and GPL-LICENSE.txt respectively.
+ −
+ − Date: Sat Oct 16 17:10:03 2010 -0700
+ −
+ − */
+ − ( function ( m , Z ){ function fb ( a ){ m . extend ( true , Pa , a )} function Bb ( a , b , f ){ function h ( e ){ if ( qa ){ E (); ea (); M (); H ( e )} else i ()} function i (){ ya = b . theme ? "ui" : "fc" ; a . addClass ( "fc" ); b . isRTL && a . addClass ( "fc-rtl" ); b . theme && a . addClass ( "ui-widget" ); qa = m ( "<div class='fc-content " + ya + "-widget-content' style='position:relative'/>" ). prependTo ( a ); pa = new Cb ( p , b );( ta = pa . render ()) && a . prepend ( ta ); w ( b . defaultView ); m ( window ). resize ( y ); t () || s ()} function s (){ setTimeout ( function (){ ! F . start && t () && H ()}, 0 )} function j (){ m ( window ). unbind ( "resize" ,
+ − y ); pa . destroy (); qa . remove (); a . removeClass ( "fc fc-rtl fc-ui-widget" )} function l (){ return ca . offsetWidth !== 0 } function t (){ return m ( "body" )[ 0 ]. offsetWidth !== 0 } function w ( e ){ if ( ! F || e != F . name ){ g ++ ; N (); var q = F , J ; if ( q ){ if ( q . eventsChanged ){ M (); q . eventDirty = q . eventsChanged = false }( q . beforeHide || gb )(); Ra ( qa , qa . height ()); q . element . hide ()} else Ra ( qa , 1 ); qa . css ( "overflow" , "hidden" ); if ( F = ka [ e ]) F . element . show (); else F = ka [ e ] = new Ha [ e ]( J = ua = m ( "<div class='fc-view fc-view-" + e + "' style='position:absolute'/>" ). appendTo ( qa ),
+ − p ); q && pa . deactivateButton ( q . name ); pa . activateButton ( e ); H (); qa . css ( "overflow" , "" ); q && Ra ( qa , 1 ); J || ( F . afterShow || gb )(); g -- }} function H ( e ){ if ( l ()){ g ++ ; N (); ma === Z && E (); if ( ! F . start || e || n < F . start || n >= F . end ){ F . render ( n , e || 0 ); K ( true ); ! b . lazyFetching || fa () ? X () : F . renderEvents ( Y ())} else if ( F . sizeDirty || F . eventsDirty ||! b . lazyFetching ){ F . clearEvents (); F . sizeDirty && K (); ! b . lazyFetching || fa () ? X () : F . renderEvents ( Y ())} ia = a . outerWidth (); F . sizeDirty = false ; F . eventsDirty = false ; pa . updateTitle ( F . title ); e = new Date ; e >= F . start &&
+ − e < F . end ? pa . disableButton ( "today" ) : pa . enableButton ( "today" ); g -- ; F . trigger ( "viewDisplay" , ca )}} function E (){ ma = b . contentHeight ? b . contentHeight : b . height ? b . height - ( ta ? ta . height () : 0 ) - Sa ( qa [ 0 ]) : Math . round ( qa . width () / Math . max ( b . aspectRatio , 0.5 ))} function K ( e ){ g ++ ; F . setHeight ( ma , e ); if ( ua ){ ua . css ( "position" , "relative" ); ua = null } F . setWidth ( qa . width (), e ); g -- } function y (){ if ( ! g ) if ( F . start ){ var e =++ d ; setTimeout ( function (){ if ( e == d &&! g && l ()) if ( ia != ( ia = a . outerWidth ())){ g ++ ; P (); F . trigger ( "windowResize" , ca ); g -- }}, 200 )} else s ()}
+ − function P (){ ea (); if ( l ()){ E (); K (); N (); F . rerenderEvents (); F . sizeDirty = false }} function ea (){ m . each ( ka , function ( e , q ){ q . sizeDirty = true })} function S (){ M (); if ( l ()){ F . clearEvents (); F . renderEvents ( Y ()); F . eventsDirty = false }} function M (){ m . each ( ka , function ( e , q ){ q . eventsDirty = true })} function X (){ $ ( function ( e ){ F . renderEvents ( e )})} function ga ( e , q , J ){ F . select ( e , q , J === Z ? true : J )} function N (){ F && F . unselect ()} function U (){ H ( - 1 )} function u (){ H ( 1 )} function B (){ Ta ( n , - 1 ); H ()} function G (){ Ta ( n , 1 ); H ()} function k (){ n = new Date ;
+ − H ()} function c ( e , q , J ){ if ( e instanceof Date ) n = x ( e ); else hb ( n , e , q , J ); H ()} function A ( e , q , J ){ e !== Z && Ta ( n , e ); q !== Z && Ua ( n , q ); J !== Z && O ( n , J ); H ()} function C (){ return x ( n )} function I (){ return F } function V ( e , q ){ if ( q === Z ) return b [ e ]; if ( e == "height" || e == "contentHeight" || e == "aspectRatio" ){ b [ e ] = q ; P ()}} function r ( e , q ){ if ( b [ e ]) return b [ e ]. apply ( q || ca , Array . prototype . slice . call ( arguments , 2 ))} var p = this ; p . options = b ; p . render = h ; p . destroy = j ; p . changeView = w ; p . select = ga ; p . unselect = N ; p . rerenderEvents = S ; p . prev = U ; p . next = u ; p . prevYear =
+ − B ; p . nextYear = G ; p . today = k ; p . gotoDate = c ; p . incrementDate = A ; p . formatDate = function ( e , q ){ return Ja ( e , q , b )}; p . formatDates = function ( e , q , J ){ return Va ( e , q , J , b )}; p . getDate = C ; p . getView = I ; p . option = V ; p . trigger = r ; Db . call ( p , b , f ); var $ = p . fetchEvents , fa = p . isFetchNeeded , Y = p . clientEvents , ca = a [ 0 ], pa , ta , qa , ya , F , ka = {}, ia , ma , ua , d = 0 , g = 0 , n = new Date ; hb ( n , b . year , b . month , b . date ); var z ; b . droppable && m ( document ). bind ( "dragstart" , function ( e , q ){ var J = e . target , R = m ( J ); if ( ! R . parents ( ".fc" ). length ){ var Q = b . dropAccept ; if ( m . isFunction ( Q ) ?
+ − Q . call ( J , R ) : R . is ( Q )){ z = J ; F . dragStart ( z , e , q )}}}). bind ( "dragstop" , function ( e , q ){ if ( z ){ F . dragStop ( z , e , q ); z = null }})} function Cb ( a , b ){ function f (){ K = b . theme ? "ui" : "fc" ; var y = b . header ; if ( y ) return E = m ( "<table class='fc-header'/>" ). append ( m ( "<tr/>" ). append ( m ( "<td class='fc-header-left'/>" ). append ( i ( y . left ))). append ( m ( "<td class='fc-header-center'/>" ). append ( i ( y . center ))). append ( m ( "<td class='fc-header-right'/>" ). append ( i ( y . right ))))} function h (){ E . remove ()} function i ( y ){ if ( y ){ var P = m ( "<tr/>" ); m . each ( y . split ( " " ),
+ − function ( ea ){ ea > 0 && P . append ( "<td><span class='fc-header-space'/></td>" ); var S ; m . each ( this . split ( "," ), function ( M , X ){ if ( X == "title" ){ P . append ( "<td><h2 class='fc-header-title'> </h2></td>" ); S && S . addClass ( K + "-corner-right" ); S = null } else { var ga ; if ( a [ X ]) ga = a [ X ]; else if ( Ha [ X ]) ga = function (){ N . removeClass ( K + "-state-hover" ); a . changeView ( X )}; if ( ga ){ S && S . addClass ( K + "-no-right" ); var N ; M = b . theme ? Wa ( b . buttonIcons , X ) : null ; var U = Wa ( b . buttonText , X ); if ( M ) N = m ( "<div class='fc-button-" + X + " ui-state-default'><a><span class='ui-icon ui-icon-" +
+ − M + "'/></a></div>" ); else if ( U ) N = m ( "<div class='fc-button-" + X + " " + K + "-state-default'><a><span>" + U + "</span></a></div>" ); if ( N ){ N . click ( function (){ N . hasClass ( K + "-state-disabled" ) || ga ()}). mousedown ( function (){ N . not ( "." + K + "-state-active" ). not ( "." + K + "-state-disabled" ). addClass ( K + "-state-down" )}). mouseup ( function (){ N . removeClass ( K + "-state-down" )}). hover ( function (){ N . not ( "." + K + "-state-active" ). not ( "." + K + "-state-disabled" ). addClass ( K + "-state-hover" )}, function (){ N . removeClass ( K + "-state-hover" ). removeClass ( K +
+ − "-state-down" )}). appendTo ( m ( "<td/>" ). appendTo ( P )); S ? S . addClass ( K + "-no-right" ) : N . addClass ( K + "-corner-left" ); S = N }}}}); S && S . addClass ( K + "-corner-right" )}); return m ( "<table/>" ). append ( P )}} function s ( y ){ E . find ( "h2.fc-header-title" ). html ( y )} function j ( y ){ E . find ( "div.fc-button-" + y ). addClass ( K + "-state-active" )} function l ( y ){ E . find ( "div.fc-button-" + y ). removeClass ( K + "-state-active" )} function t ( y ){ E . find ( "div.fc-button-" + y ). addClass ( K + "-state-disabled" )} function w ( y ){ E . find ( "div.fc-button-" + y ). removeClass ( K +
+ − "-state-disabled" )} var H = this ; H . render = f ; H . destroy = h ; H . updateTitle = s ; H . activateButton = j ; H . deactivateButton = l ; H . disableButton = t ; H . enableButton = w ; var E = m ([]), K } function Db ( a , b ){ function f ( c ){ b . push ( c ); l ( c , N )} function h ( c ){ b = m . grep ( b , function ( A ){ return A != c }); G = m . grep ( G , function ( A ){ return A . source != c }); N ()} function i ( c ){ G = []; s ( b , c )} function s ( c , A ){ function C ( $ , fa ){ var Y = X (); if ( r != Y ) r . eventsDirty = true ; if ( I == U && u <= Y . visStart && B >= Y . visEnd ){ if ( m . inArray ( $ , b ) !=- 1 ){ for ( Y = 0 ; Y < fa . length ; Y ++ ){ S ( fa [ Y ]); fa [ Y ]. source =
+ − $ } G = G . concat ( fa )} -- V || A && A ( G )}} var I =++ U , V = c . length , r = X (); u = x ( r . visStart ); B = x ( r . visEnd ); for ( var p = 0 ; p < c . length ; p ++ ) j ( c [ p ], C )} function j ( c , A ){ function C ( r ){ A ( c , r )} function I ( r ){ C ( r ); ea ()} if ( typeof c == "string" ){ var V = {}; V [ a . startParam ] = Math . round ( u . getTime () / 1E3 ); V [ a . endParam ] = Math . round ( B . getTime () / 1E3 ); if ( a . cacheParam ) V [ a . cacheParam ] = ( new Date ). getTime (); P (); m . ajax ({ url : c , dataType : "json" , data : V , cache : a . cacheParam || false , success : I })} else if ( m . isFunction ( c )){ P (); c ( x ( u ), x ( B ), I )} else C ( c )} function l ( c ,
+ − A ){ s ([ c ], A )} function t (){ i ( N )} function w (){ var c = X (); return ! u || c . visStart < u || c . visEnd > B } function H ( c ){ var A , C = G . length , I , V = X (). defaultEventEnd , r = c . start - c . _start , p = c . end ? c . end - ( c . _end || V ( c )) : 0 ; for ( A = 0 ; A < C ; A ++ ){ I = G [ A ]; if ( I . _id == c . _id && I != c ){ I . start = new Date ( + I . start + r ); I . end = c . end ? I . end ? new Date ( + I . end + p ) : new Date ( + V ( I ) + p ) : null ; I . title = c . title ; I . url = c . url ; I . allDay = c . allDay ; I . className = c . className ; I . editable = c . editable ; S ( I )}} S ( c ); N ()} function E ( c , A ){ S ( c ); if ( ! c . source ){ if ( A )( c . source = b [ 0 ]). push ( c ); G . push ( c )} N ()}
+ − function K ( c ){ if ( c ){ if ( ! m . isFunction ( c )){ var A = c + "" ; c = function ( I ){ return I . _id == A }} G = m . grep ( G , c , true ); for ( C = 0 ; C < b . length ; C ++ ) if ( typeof b [ C ] == "object" ) b [ C ] = m . grep ( b [ C ], c , true )} else { G = []; for ( var C = 0 ; C < b . length ; C ++ ) if ( typeof b [ C ] == "object" ) b [ C ] = []} N ()} function y ( c ){ if ( m . isFunction ( c )) return m . grep ( G , c ); else if ( c ){ c += "" ; return m . grep ( G , function ( A ){ return A . _id == c })} return G } function P (){ k ++|| ga ( "loading" , null , true )} function ea (){ -- k || ga ( "loading" , null , false )} function S ( c ){ c . _id = c . _id || ( c . id === Z ? "_fc" +
+ − Eb ++: c . id + "" ); if ( c . date ){ if ( ! c . start ) c . start = c . date ; delete c . date } c . _start = x ( c . start = Xa ( c . start , a . ignoreTimezone )); c . end = Xa ( c . end , a . ignoreTimezone ); if ( c . end && c . end <= c . start ) c . end = null ; c . _end = c . end ? x ( c . end ) : null ; if ( c . allDay === Z ) c . allDay = a . allDayDefault ; if ( c . className ){ if ( typeof c . className == "string" ) c . className = c . className . split ( /\s+/ )} else c . className = []} var M = this ; M . fetchEvents = i ; M . refetchEvents = t ; M . isFetchNeeded = w ; M . addEventSource = f ; M . removeEventSource = h ; M . updateEvent = H ; M . renderEvent = E ; M . removeEvents =
+ − K ; M . clientEvents = y ; M . normalizeEvent = S ; var X = M . getView , ga = M . trigger , N = M . rerenderEvents , U = 0 , u , B , G = [], k = 0 ; b . unshift ([])} function Fb ( a , b ){ function f ( l , t ){ if ( t ){ Ua ( l , t ); l . setDate ( 1 )} l = x ( l , true ); l . setDate ( 1 ); t = Ua ( x ( l ), 1 ); var w = x ( l ), H = x ( t ), E = i ( "firstDay" ), K = i ( "weekends" ) ? 0 : 1 ; if ( K ){ va ( w ); va ( H , - 1 , true )} O ( w , - (( w . getDay () - Math . max ( E , K ) + 7 ) % 7 )); O ( H ,( 7 - H . getDay () + Math . max ( E , K )) % 7 ); E = Math . round (( H - w ) / ( ib * 7 )); if ( i ( "weekMode" ) == "fixed" ){ O ( H ,( 6 - E ) * 7 ); E = 6 } h . title = j ( l , i ( "titleFormat" )); h . start = l ; h . end = t ; h . visStart = w ;
+ − h . visEnd = H ; s ( E , K ? 5 : 7 , true )} var h = this ; h . render = f ; Ya . call ( h , a , b , "month" ); var i = h . opt , s = h . renderBasic , j = b . formatDate } function Gb ( a , b ){ function f ( l , t ){ t && O ( l , t * 7 ); l = O ( x ( l ), - (( l . getDay () - i ( "firstDay" ) + 7 ) % 7 )); t = O ( x ( l ), 7 ); var w = x ( l ), H = x ( t ), E = i ( "weekends" ); if ( ! E ){ va ( w ); va ( H , - 1 , true )} h . title = j ( w , O ( x ( H ), - 1 ), i ( "titleFormat" )); h . start = l ; h . end = t ; h . visStart = w ; h . visEnd = H ; s ( 1 , E ? 7 : 5 , false )} var h = this ; h . render = f ; Ya . call ( h , a , b , "basicWeek" ); var i = h . opt , s = h . renderBasic , j = b . formatDates } function Hb ( a , b ){ function f ( l , t ){ if ( t ){ O ( l ,
+ − t ); i ( "weekends" ) || va ( l , t < 0 ?- 1 : 1 )} h . title = j ( l , i ( "titleFormat" )); h . start = h . visStart = x ( l , true ); h . end = h . visEnd = O ( x ( h . start ), 1 ); s ( 1 , 1 , false )} var h = this ; h . render = f ; Ya . call ( h , a , b , "basicDay" ); var i = h . opt , s = h . renderBasic , j = b . formatDate } function Ya ( a , b , f ){ function h ( d , g , n ){ Y = d ; ca = g ; if ( V = B ( "isRTL" )){ r =- 1 ; p = ca - 1 } else { r = 1 ; p = 0 } $ = B ( "firstDay" ); fa = B ( "weekends" ) ? 0 : 1 ; var z = B ( "theme" ) ? "ui" : "fc" , e = B ( "columnFormat" ), q = u . start . getMonth (), J = Ia ( new Date ), R , Q = x ( u . visStart ); if ( F ){ k (); g = F . find ( "tr" ). length ; if ( Y < g ) F . find ( "tr:gt(" +
+ − ( Y - 1 ) + ")" ). remove (); else if ( Y > g ){ d = "" ; for ( g = g ; g < Y ; g ++ ){ d += "<tr class='fc-week" + g + "'>" ; for ( R = 0 ; R < ca ; R ++ ){ d += "<td class='fc-" + Da [ Q . getDay ()] + " " + z + "-state-default fc-new fc-day" + ( g * ca + R ) + ( R == p ? " fc-leftmost" : "" ) + "'>" + ( n ? "<div class='fc-day-number'></div>" : "" ) + "<div class='fc-day-content'><div style='position:relative'> </div></div></td>" ; O ( Q , 1 ); fa && va ( Q )} d += "</tr>" } F . append ( d )} j ( F . find ( "td.fc-new" ). removeClass ( "fc-new" )); Q = x ( u . visStart ); F . find ( "td" ). each ( function (){ var ha = m ( this ); if ( Y > 1 ) Q . getMonth () ==
+ − q ? ha . removeClass ( "fc-other-month" ) : ha . addClass ( "fc-other-month" ); + Q ==+ J ? ha . removeClass ( "fc-not-today" ). addClass ( "fc-today" ). addClass ( z + "-state-highlight" ) : ha . addClass ( "fc-not-today" ). removeClass ( "fc-today" ). removeClass ( z + "-state-highlight" ); ha . find ( "div.fc-day-number" ). text ( Q . getDate ()); O ( Q , 1 ); fa && va ( Q )}); if ( Y == 1 ){ Q = x ( u . visStart ); ya . find ( "th" ). each ( function ( ha , da ){ m ( da ). text ( I ( Q , e )); da . className = da . className . replace ( /^fc-\w+(?= )/ , "fc-" + Da [ Q . getDay ()]); O ( Q , 1 ); fa && va ( Q )}); Q = x ( u . visStart ); F . find ( "td" ). each ( function ( ha ,
+ − da ){ da . className = da . className . replace ( /^fc-\w+(?= )/ , "fc-" + Da [ Q . getDay ()]); O ( Q , 1 ); fa && va ( Q )})}} else { var ba = m ( "<table/>" ). appendTo ( a ); d = "<thead><tr>" ; for ( g = 0 ; g < ca ; g ++ ){ d += "<th class='fc-" + Da [ Q . getDay ()] + " " + z + "-state-default" + ( g == p ? " fc-leftmost" : "" ) + "'>" + I ( Q , e ) + "</th>" ; O ( Q , 1 ); fa && va ( Q )} ya = m ( d + "</tr></thead>" ). appendTo ( ba ); d = "<tbody>" ; Q = x ( u . visStart ); for ( g = 0 ; g < Y ; g ++ ){ d += "<tr class='fc-week" + g + "'>" ; for ( R = 0 ; R < ca ; R ++ ){ d += "<td class='fc-" + Da [ Q . getDay ()] + " " + z + "-state-default fc-day" + ( g * ca + R ) + ( R == p ? " fc-leftmost" :
+ − "" ) + ( Y > 1 && Q . getMonth () != q ? " fc-other-month" : "" ) + ( + Q ==+ J ? " fc-today " + z + "-state-highlight" : " fc-not-today" ) + "'>" + ( n ? "<div class='fc-day-number'>" + Q . getDate () + "</div>" : "" ) + "<div class='fc-day-content'><div style='position:relative'> </div></div></td>" ; O ( Q , 1 ); fa && va ( Q )} d += "</tr>" } F = m ( d + "</tbody>" ). appendTo ( ba ); j ( F . find ( "td" )); ka = m ( "<div style='position:absolute;z-index:8;top:0;left:0'/>" ). appendTo ( a )}} function i ( d ){ qa = d ; d = F . find ( "tr td:first-child" ); var g = qa - ya . height (), n ; if ( B ( "weekMode" ) == "variable" ) n =
+ − g = Math . floor ( g / ( Y == 1 ? 2 : 6 )); else { n = Math . floor ( g / Y ); g = g - n * ( Y - 1 )} if ( Za === Z ){ var z = F . find ( "tr:first" ). find ( "td:first" ); z . height ( n ); Za = n != z . height ()} if ( Za ){ d . slice ( 0 , - 1 ). height ( n ); d . slice ( - 1 ). height ( g )} else { Qa ( d . slice ( 0 , - 1 ), n ); Qa ( d . slice ( - 1 ), g )}} function s ( d ){ ta = d ; ua . clear (); pa = Math . floor ( ta / ca ); Ka ( ya . find ( "th" ). slice ( 0 , - 1 ), pa )} function j ( d ){ d . click ( l ). mousedown ( C )} function l ( d ){ if ( ! B ( "selectable" )){ var g = parseInt ( this . className . match ( /fc\-day(\d+)/ )[ 1 ]); g = O ( x ( u . visStart ), Math . floor ( g / ca ) * 7 + g % ca ); G ( "dayClick" ,
+ − this , g , true , d )}} function t ( d , g , n ){ n && ia . build (); n = x ( u . visStart ); for ( var z = O ( x ( n ), ca ), e = 0 ; e < Y ; e ++ ){ var q = new Date ( Math . max ( n , d )), J = new Date ( Math . min ( z , g )); if ( q < J ){ var R ; if ( V ){ R = Ea ( J , n ) * r + p + 1 ; q = Ea ( q , n ) * r + p + 1 } else { R = Ea ( q , n ); q = Ea ( J , n )} j ( w ( e , R , e , q - 1 ))} O ( n , 7 ); O ( z , 7 )}} function w ( d , g , n , z ){ d = ia . rect ( d , g , n , z , a ); return c ( d , a )} function H ( d ){ return x ( d )} function E ( d , g ){ t ( d , O ( x ( g ), 1 ), true )} function K (){ A ()} function y ( d , g ){ ma . start ( function ( n ){ A (); n && w ( n . row , n . col , n . row , n . col )}, g )} function P ( d , g , n ){ var z = ma . stop ();
+ − A (); if ( z ){ z = ga ( z ); G ( "drop" , d , z , true , g , n )}} function ea ( d ){ return x ( d . start )} function S ( d ){ return ua . left ( d )} function M ( d ){ return ua . right ( d )} function X ( d ){ return ( d - Math . max ( $ , fa ) + ca ) % ca } function ga ( d ){ return O ( x ( u . visStart ), d . row * 7 + d . col * r + p )} function N ( d ){ return F . find ( "tr:eq(" + d + ")" )} function U (){ return { left : 0 , right : ta }} var u = this ; u . renderBasic = h ; u . setHeight = i ; u . setWidth = s ; u . renderDayOverlay = t ; u . defaultSelectionEnd = H ; u . renderSelection = E ; u . clearSelection = K ; u . dragStart = y ; u . dragStop = P ; u . defaultEventEnd =
+ − ea ; u . getHoverListener = function (){ return ma }; u . colContentLeft = S ; u . colContentRight = M ; u . dayOfWeekCol = X ; u . cellDate = ga ; u . cellIsAllDay = function (){ return true }; u . allDayTR = N ; u . allDayBounds = U ; u . getRowCnt = function (){ return Y }; u . getColCnt = function (){ return ca }; u . getColWidth = function (){ return pa }; u . getDaySegmentContainer = function (){ return ka }; jb . call ( u , a , b , f ); kb . call ( u ); lb . call ( u ); Ib . call ( u ); var B = u . opt , G = u . trigger , k = u . clearEvents , c = u . renderOverlay , A = u . clearOverlays , C = u . daySelectionMousedown , I = b . formatDate , V ,
+ − r , p , $ , fa , Y , ca , pa , ta , qa , ya , F , ka , ia , ma , ua ; mb ( a . addClass ( "fc-grid" )); ia = new nb ( function ( d , g ){ var n , z , e , q = F . find ( "tr:first td" ); if ( V ) q = m ( q . get (). reverse ()); q . each ( function ( J , R ){ n = m ( R ); z = n . offset (). left ; if ( J ) e [ 1 ] = z ; e = [ z ]; g [ J ] = e }); e [ 1 ] = z + n . outerWidth (); F . find ( "tr" ). each ( function ( J , R ){ n = m ( R ); z = n . offset (). top ; if ( J ) e [ 1 ] = z ; e = [ z ]; d [ J ] = e }); e [ 1 ] = z + n . outerHeight ()}); ma = new ob ( ia ); ua = new pb ( function ( d ){ return F . find ( "td:eq(" + d + ") div div" )})} function Ib (){ function a ( G ){ w ( B = G ); U ( h ( G ))} function b ( G ){ f (); U ( h ( B ), G )}
+ − function f (){ H (); ea (). empty ()} function h ( G ){ var k = ga (), c = N (), A = x ( j . visStart ); c = O ( x ( A ), c ); var C = m . map ( G , Oa ), I , V , r , p , $ , fa , Y = []; for ( I = 0 ; I < k ; I ++ ){ V = $a ( ab ( G , C , A , c )); for ( r = 0 ; r < V . length ; r ++ ){ p = V [ r ]; for ( $ = 0 ; $ < p . length ; $ ++ ){ fa = p [ $ ]; fa . row = I ; fa . level = r ; Y . push ( fa )}} O ( A , 7 ); O ( c , 7 )} return Y } function i ( G , k , c ){ E ( G , k ); if ( G . editable || G . editable === Z && l ( "editable" )){ s ( G , k ); c . isEnd && u ( G , k )}} function s ( G , k ){ if ( ! l ( "disableDragging" ) && k . draggable ){ var c = S (), A ; k . draggable ({ zIndex : 9 , delay : 50 , opacity : l ( "dragOpacity" ), revertDuration : l ( "dragRevertDuration" ),
+ − start : function ( C , I ){ t ( "eventDragStart" , k , G , C , I ); y ( G , k ); c . start ( function ( V , r , p , $ ){ k . draggable ( "option" , "revert" , ! V ||! p &&! $ ); X (); if ( V ){ A = p * 7 + $ * ( l ( "isRTL" ) ?- 1 : 1 ); M ( O ( x ( G . start ), A ), O ( Oa ( G ), A ))} else A = 0 }, C , "drag" )}, stop : function ( C , I ){ c . stop (); X (); t ( "eventDragStop" , k , G , C , I ); if ( A ){ k . find ( "a" ). removeAttr ( "href" ); P ( this , G , A , 0 , G . allDay , C , I )} else { m . browser . msie && k . css ( "filter" , "" ); K ( G , k )}}})}} var j = this ; j . renderEvents = a ; j . rerenderEvents = b ; j . clearEvents = f ; j . bindDaySeg = i ; qb . call ( j ); var l = j . opt , t = j . trigger , w = j . reportEvents ,
+ − H = j . clearEventData , E = j . eventElementHandlers , K = j . showEvents , y = j . hideEvents , P = j . eventDrop , ea = j . getDaySegmentContainer , S = j . getHoverListener , M = j . renderDayOverlay , X = j . clearOverlays , ga = j . getRowCnt , N = j . getColCnt , U = j . renderDaySegs , u = j . resizableDayEvent , B = []} function Jb ( a , b ){ function f ( l , t ){ t && O ( l , t * 7 ); l = O ( x ( l ), - (( l . getDay () - i ( "firstDay" ) + 7 ) % 7 )); t = O ( x ( l ), 7 ); var w = x ( l ), H = x ( t ), E = i ( "weekends" ); if ( ! E ){ va ( w ); va ( H , - 1 , true )} h . title = j ( w , O ( x ( H ), - 1 ), i ( "titleFormat" )); h . start = l ; h . end = t ; h . visStart = w ; h . visEnd = H ; s ( E ? 7 :
+ − 5 )} var h = this ; h . render = f ; rb . call ( h , a , b , "agendaWeek" ); var i = h . opt , s = h . renderAgenda , j = b . formatDates } function Kb ( a , b ){ function f ( l , t ){ if ( t ){ O ( l , t ); i ( "weekends" ) || va ( l , t < 0 ?- 1 : 1 )} t = x ( l , true ); var w = O ( x ( t ), 1 ); h . title = j ( l , i ( "titleFormat" )); h . start = h . visStart = t ; h . end = h . visEnd = w ; s ( 1 )} var h = this ; h . render = f ; rb . call ( h , a , b , "agendaDay" ); var i = h . opt , s = h . renderAgenda , j = b . formatDate } function rb ( a , b , f ){ function h ( o ){ g = o ; ba = p ( "theme" ) ? "ui" : "fc" ; da = p ( "weekends" ) ? 0 : 1 ; ha = p ( "firstDay" ); if ( ra = p ( "isRTL" )){ aa =- 1 ; T = g - 1 } else { aa =
+ − 1 ; T = 0 } na = bb ( p ( "minTime" )); ja = bb ( p ( "maxTime" )); o = ra ? O ( x ( r . visEnd ), - 1 ) : x ( r . visStart ); var v = x ( o ), D = Ia ( new Date ), L = p ( "columnFormat" ); if ( ka ){ fa (); ka . find ( "tr:first th" ). slice ( 1 , - 1 ). each ( function ( La , xa ){ m ( xa ). text ( F ( v , L )); xa . className = xa . className . replace ( /^fc-\w+(?= )/ , "fc-" + Da [ v . getDay ()]); O ( v , aa ); da && va ( v , aa )}); v = x ( o ); d . find ( "td" ). each ( function ( La , xa ){ xa . className = xa . className . replace ( /^fc-\w+(?= )/ , "fc-" + Da [ v . getDay ()]); + v ==+ D ? m ( xa ). removeClass ( "fc-not-today" ). addClass ( "fc-today" ). addClass ( ba + "-state-highlight" ) :
+ − m ( xa ). addClass ( "fc-not-today" ). removeClass ( "fc-today" ). removeClass ( ba + "-state-highlight" ); O ( v , aa ); da && va ( v , aa )})} else { var W , wa , Fa = p ( "slotMinutes" ) % 15 == 0 , oa = "<div class='fc-agenda-head' style='position:relative;z-index:4'><table style='width:100%'><tr class='fc-first" + ( p ( "allDaySlot" ) ? "" : " fc-last" ) + "'><th class='fc-leftmost " + ba + "-state-default'> </th>" ; for ( W = 0 ; W < g ; W ++ ){ oa += "<th class='fc-" + Da [ v . getDay ()] + " " + ba + "-state-default'>" + F ( v , L ) + "</th>" ; O ( v , aa ); da && va ( v , aa )} oa += "<th class='" + ba + "-state-default'> </th></tr>" ;
+ − if ( p ( "allDaySlot" )) oa += "<tr class='fc-all-day'><th class='fc-axis fc-leftmost " + ba + "-state-default'>" + p ( "allDayText" ) + "</th><td colspan='" + g + "' class='" + ba + "-state-default'><div class='fc-day-content'><div style='position:relative'> </div></div></td><th class='" + ba + "-state-default'> </th></tr><tr class='fc-divider fc-last'><th colspan='" + ( g + 2 ) + "' class='" + ba + "-state-default fc-leftmost'><div/></th></tr>" ; oa += "</table></div>" ; ka = m ( oa ). appendTo ( a ); w ( ka . find ( "td" )); sb = m ( "<div style='position:absolute;z-index:8;top:0;left:0'/>" ). appendTo ( ka );
+ − v = tb (); var cb = sa ( x ( v ), ja ); sa ( v , na ); oa = "<table>" ; for ( W = 0 ; v < cb ; W ++ ){ wa = v . getMinutes (); oa += "<tr class='" + ( ! W ? "fc-first" :! wa ? "" : "fc-minor" ) + "'><th class='fc-axis fc-leftmost " + ba + "-state-default'>" + ( ! Fa ||! wa ? F ( v , p ( "axisFormat" )) : " " ) + "</th><td class='fc-slot" + W + " " + ba + "-state-default'><div style='position:relative'> </div></td></tr>" ; sa ( v , p ( "slotMinutes" )); n ++ } oa += "</table>" ; ia = m ( "<div class='fc-agenda-body' style='position:relative;z-index:2;overflow:auto'/>" ). append ( ma = m ( "<div style='position:relative;overflow:hidden'>" ). append ( ua =
+ − m ( oa ))). appendTo ( a ); H ( ia . find ( "td" )); ub = m ( "<div style='position:absolute;z-index:8;top:0;left:0'/>" ). appendTo ( ma ); v = x ( o ); oa = "<div class='fc-agenda-bg' style='position:absolute;z-index:1'><table style='width:100%;height:100%'><tr class='fc-first'>" ; for ( W = 0 ; W < g ; W ++ ){ oa += "<td class='fc-" + Da [ v . getDay ()] + " " + ba + "-state-default " + ( ! W ? "fc-leftmost " : "" ) + ( + v ==+ D ? ba + "-state-highlight fc-today" : "fc-not-today" ) + "'><div class='fc-day-content'><div> </div></div></td>" ; O ( v , aa ); da && va ( v , aa )} oa += "</tr></table></div>" ;
+ − d = m ( oa ). appendTo ( a )}} function i ( o , v ){ if ( o === Z ) o = R ; R = o ; Aa = {}; o = o - ka . height (); o = Math . min ( o , ua . height ()); ia . height ( o ); q = ia . find ( "tr:first div" ). height () + 1 ; v && j ()} function s ( o ){ J = o ; Ba . clear (); ia . width ( o ). css ( "overflow" , "auto" ); ua . width ( "" ); var v = ka . find ( "tr:first th" ), D = ka . find ( "tr.fc-all-day th:last" ), L = d . find ( "td" ), W = ia [ 0 ]. clientWidth ; ua . width ( W ); W = ia [ 0 ]. clientWidth ; ua . width ( W ); z = 0 ; Ka ( ka . find ( "tr:lt(2) th:first" ). add ( ia . find ( "tr:first th" )). width ( 1 ). each ( function (){ z = Math . max ( z , m ( this ). outerWidth ())}),
+ − z ); e = Math . floor (( W - z ) / g ); Ka ( L . slice ( 0 , - 1 ), e ); Ka ( v . slice ( 1 , - 2 ), e ); if ( o != W ){ Ka ( v . slice ( - 2 , - 1 ), W - z - e * ( g - 1 )); v . slice ( - 1 ). show (); D . show ()} else { ia . css ( "overflow" , "hidden" ); v . slice ( - 2 , - 1 ). width ( "" ); v . slice ( - 1 ). hide (); D . hide ()} d . css ({ top : ka . find ( "tr" ). height (), left : z , width : W - z , height : R })} function j (){ var o = tb (), v = x ( o ); v . setHours ( p ( "firstHour" )); var D = X ( o , v ) + 1 ; o = function (){ ia . scrollTop ( D )}; o (); setTimeout ( o , 0 )} function l (){ Q = ia . scrollTop ()} function t (){ ia . scrollTop ( Q )} function w ( o ){ o . click ( E ). mousedown ( qa )}
+ − function H ( o ){ o . click ( E ). mousedown ( C )} function E ( o ){ if ( ! p ( "selectable" )){ var v = Math . min ( g - 1 , Math . floor (( o . pageX - d . offset (). left ) / e )); v = O ( x ( r . visStart ), v * aa + T ); var D = this . className . match ( /fc-slot(\d+)/ ); if ( D ){ D = parseInt ( D [ 1 ]) * p ( "slotMinutes" ); var L = Math . floor ( D / 60 ); v . setHours ( L ); v . setMinutes ( D % 60 + na ); $ ( "dayClick" , this , v , false , o )} else $ ( "dayClick" , this , v , true , o )}} function K ( o , v , D ){ D && la . build (); var L = x ( r . visStart ); if ( ra ){ D = Ea ( v , L ) * aa + T + 1 ; o = Ea ( o , L ) * aa + T + 1 } else { D = Ea ( o , L ); o = Ea ( v , L )} D = Math . max ( 0 , D ); o = Math . min ( g ,
+ − o ); D < o && w ( y ( 0 , D , 0 , o - 1 ))} function y ( o , v , D , L ){ o = la . rect ( o , v , D , L , ka ); return Y ( o , ka )} function P ( o , v ){ for ( var D = x ( r . visStart ), L = O ( x ( D ), 1 ), W = 0 ; W < g ; W ++ ){ var wa = new Date ( Math . max ( D , o )), Fa = new Date ( Math . min ( L , v )); if ( wa < Fa ){ var oa = W * aa + T ; oa = la . rect ( 0 , oa , 0 , oa , ma ); wa = X ( D , wa ); Fa = X ( D , Fa ); oa . top = wa ; oa . height = Fa - wa ; H ( Y ( oa , ma ))} O ( D , 1 ); O ( L , 1 )}} function ea ( o ){ return z + Ba . left ( o )} function S ( o ){ return z + Ba . right ( o )} function M ( o ){ return ( o - Math . max ( ha , da ) + g ) % g * aa + T } function X ( o , v ){ o = x ( o , true ); if ( v < sa ( x ( o ), na )) return 0 ;
+ − if ( v >= sa ( x ( o ), ja )) return ma . height (); o = p ( "slotMinutes" ); v = v . getHours () * 60 + v . getMinutes () - na ; var D = Math . floor ( v / o ), L = Aa [ D ]; if ( L === Z ) L = Aa [ D ] = ia . find ( "tr:eq(" + D + ") td div" )[ 0 ]. offsetTop ; return Math . max ( 0 , Math . round ( L - 1 + q * ( v % o / o )))} function ga ( o ){ var v = O ( x ( r . visStart ), o . col * aa + T ); o = o . row ; p ( "allDaySlot" ) && o -- ; o >= 0 && sa ( v , na + o * p ( "slotMinutes" )); return v } function N ( o ){ return p ( "allDaySlot" ) &&! o . row } function U (){ return { left : z , right : J }} function u (){ return ka . find ( "tr.fc-all-day" )} function B ( o ){ var v = x ( o . start );
+ − if ( o . allDay ) return v ; return sa ( v , p ( "defaultEventMinutes" ))} function G ( o , v ){ if ( v ) return x ( o ); return sa ( x ( o ), p ( "slotMinutes" ))} function k ( o , v , D ){ if ( D ) p ( "allDaySlot" ) && K ( o , O ( x ( v ), 1 ), true ); else c ( o , v )} function c ( o , v ){ var D = p ( "selectHelper" ); la . build (); if ( D ){ var L = Ea ( o , r . visStart ) * aa + T ; if ( L >= 0 && L < g ){ L = la . rect ( 0 , L , 0 , L , ma ); var W = X ( o , o ), wa = X ( o , v ); if ( wa > W ){ L . top = W ; L . height = wa - W ; L . left += 2 ; L . width -= 5 ; if ( m . isFunction ( D )){ if ( o = D ( o , v )){ L . position = "absolute" ; L . zIndex = 8 ; za = m ( o ). css ( L ). appendTo ( ma )}} else { za = m ( ya ({ title : "" ,
+ − start : o , end : v , className : [], editable : false }, L , "fc-event fc-event-vert fc-corner-top fc-corner-bottom " )); m . browser . msie && za . find ( "span.fc-event-bg" ). hide (); za . css ( "opacity" , p ( "dragOpacity" ))} if ( za ){ H ( za ); ma . append ( za ); Ka ( za , L . width , true ); Qa ( za , L . height , true )}}}} else P ( o , v )} function A (){ ca (); if ( za ){ za . remove (); za = null }} function C ( o ){ if ( o . which == 1 && p ( "selectable" )){ ta ( o ); var v = this , D ; Ca . start ( function ( L , W ){ A (); if ( L && L . col == W . col &&! N ( L )){ W = ga ( W ); L = ga ( L ); D = [ W , sa ( x ( W ), p ( "slotMinutes" )), L , sa ( x ( L ), p ( "slotMinutes" ))]. sort ( vb );
+ − c ( D [ 0 ], D [ 3 ])} else D = null }, o ); m ( document ). one ( "mouseup" , function ( L ){ Ca . stop (); if ( D ){ + D [ 0 ] ==+ D [ 1 ] && $ ( "dayClick" , v , D [ 0 ], false , L ); pa ( D [ 0 ], D [ 3 ], false , L )}})}} function I ( o , v ){ Ca . start ( function ( D ){ ca (); if ( D ) if ( N ( D )) y ( D . row , D . col , D . row , D . col ); else { D = ga ( D ); var L = sa ( x ( D ), p ( "defaultEventMinutes" )); P ( D , L )}}, v )} function V ( o , v , D ){ var L = Ca . stop (); ca (); L && $ ( "drop" , o , ga ( L ), N ( L ), v , D )} var r = this ; r . renderAgenda = h ; r . setWidth = s ; r . setHeight = i ; r . beforeHide = l ; r . afterShow = t ; r . defaultEventEnd = B ; r . timePosition = X ; r . dayOfWeekCol =
+ − M ; r . cellDate = ga ; r . cellIsAllDay = N ; r . allDayTR = u ; r . allDayBounds = U ; r . getHoverListener = function (){ return Ca }; r . colContentLeft = ea ; r . colContentRight = S ; r . getDaySegmentContainer = function (){ return sb }; r . getSlotSegmentContainer = function (){ return ub }; r . getMinMinute = function (){ return na }; r . getMaxMinute = function (){ return ja }; r . getBodyContent = function (){ return ma }; r . getRowCnt = function (){ return 1 }; r . getColCnt = function (){ return g }; r . getColWidth = function (){ return e }; r . getSlotHeight = function (){ return q }; r . defaultSelectionEnd =
+ − G ; r . renderDayOverlay = K ; r . renderSelection = k ; r . clearSelection = A ; r . dragStart = I ; r . dragStop = V ; jb . call ( r , a , b , f ); kb . call ( r ); lb . call ( r ); Lb . call ( r ); var p = r . opt , $ = r . trigger , fa = r . clearEvents , Y = r . renderOverlay , ca = r . clearOverlays , pa = r . reportSelection , ta = r . unselect , qa = r . daySelectionMousedown , ya = r . slotSegHtml , F = b . formatDate , ka , ia , ma , ua , d , g , n = 0 , z , e , q , J , R , Q , ba , ha , da , ra , aa , T , na , ja , la , Ca , Ba , Aa = {}, za , sb , ub ; mb ( a . addClass ( "fc-agenda" )); la = new nb ( function ( o , v ){ function D ( xa ){ return Math . max ( oa , Math . min ( cb , xa ))} var L , W ,
+ − wa ; d . find ( "td" ). each ( function ( xa , Mb ){ L = m ( Mb ); W = L . offset (). left ; if ( xa ) wa [ 1 ] = W ; wa = [ W ]; v [ xa ] = wa }); wa [ 1 ] = W + L . outerWidth (); if ( p ( "allDaySlot" )){ L = ka . find ( "td" ); W = L . offset (). top ; o [ 0 ] = [ W , W + L . outerHeight ()]} for ( var Fa = ma . offset (). top , oa = ia . offset (). top , cb = oa + ia . outerHeight (), La = 0 ; La < n ; La ++ ) o . push ([ D ( Fa + q * La ), D ( Fa + q * ( La + 1 ))])}); Ca = new ob ( la ); Ba = new pb ( function ( o ){ return d . find ( "td:eq(" + o + ") div div" )})} function Lb (){ function a ( d , g ){ M ( ua = d ); var n , z = d . length , e = [], q = []; for ( n = 0 ; n < z ; n ++ ) d [ n ]. allDay ? e . push ( d [ n ]) :
+ − q . push ( d [ n ]); if ( P ( "allDaySlot" )){ I ( h ( e ), g ); N ()} j ( i ( q ), g )} function b ( d ){ f (); a ( ua , d )} function f (){ X (); U (). empty (); u (). empty ()} function h ( d ){ d = $a ( ab ( d , m . map ( d , Oa ), y . visStart , y . visEnd )); var g , n = d . length , z , e , q , J = []; for ( g = 0 ; g < n ; g ++ ){ z = d [ g ]; for ( e = 0 ; e < z . length ; e ++ ){ q = z [ e ]; q . row = 0 ; q . level = g ; J . push ( q )}} return J } function i ( d ){ var g = r (), n = k (), z = G (), e = sa ( x ( y . visStart ), n ), q = m . map ( d , s ), J , R , Q , ba , ha , da , ra = []; for ( J = 0 ; J < g ; J ++ ){ R = $a ( ab ( d , q , e , sa ( x ( e ), z - n ))); Nb ( R ); for ( Q = 0 ; Q < R . length ; Q ++ ){ ba = R [ Q ]; for ( ha = 0 ; ha < ba . length ; ha ++ ){ da =
+ − ba [ ha ]; da . col = J ; da . level = Q ; ra . push ( da )}} O ( e , 1 , true )} return ra } function s ( d ){ return d . end ? x ( d . end ) : sa ( x ( d . start ), P ( "defaultEventMinutes" ))} function j ( d , g ){ var n , z = d . length , e , q , J , R , Q , ba , ha , da , ra , aa , T = "" , na , ja , la = {}, Ca = {}, Ba = u (), Aa ; n = r (); if ( na = P ( "isRTL" )){ ja =- 1 ; Aa = n - 1 } else { ja = 1 ; Aa = 0 } for ( n = 0 ; n < z ; n ++ ){ e = d [ n ]; q = e . event ; J = "fc-event fc-event-vert " ; if ( e . isStart ) J += "fc-corner-top " ; if ( e . isEnd ) J += "fc-corner-bottom " ; R = c ( e . start , e . start ); Q = c ( e . start , e . end ); ba = e . col ; ha = e . level ; da = e . forward || 0 ; ra = A ( ba * ja + Aa );
+ − aa = C ( ba * ja + Aa ) - ra ; aa = Math . min ( aa - 6 , aa * 0.95 ); ba = ha ? aa / ( ha + da + 1 ) : da ? ( aa / ( da + 1 ) - 6 ) * 2 : aa ; ha = ra + aa / ( ha + da + 1 ) * ha * ja + ( na ? aa - ba : 0 ); e . top = R ; e . left = ha ; e . outerWidth = ba ; e . outerHeight = Q - R ; T += l ( q , e , J )} Ba [ 0 ]. innerHTML = T ; na = Ba . children (); for ( n = 0 ; n < z ; n ++ ){ e = d [ n ]; q = e . event ; T = m ( na [ n ]); ja = ea ( "eventRender" , q , q , T ); if ( ja === false ) T . remove (); else { if ( ja && ja !== true ){ T . remove (); T = m ( ja ). css ({ position : "absolute" , top : e . top , left : e . left }). appendTo ( Ba )} e . element = T ; if ( q . _id === g ) w ( q , T , e ); else T [ 0 ]. _fci = n ; Y ( q , T )}} wb ( Ba , d , w ); for ( n = 0 ; n <
+ − z ; n ++ ){ e = d [ n ]; if ( T = e . element ){ q = la [ g = e . key = xb ( T [ 0 ])]; e . vsides = q === Z ? ( la [ g ] = Sa ( T [ 0 ], true )) : q ; q = Ca [ g ]; e . hsides = q === Z ? ( Ca [ g ] = db ( T [ 0 ], true )) : q ; g = T . find ( "span.fc-event-title" ); if ( g . length ) e . titleTop = g [ 0 ]. offsetTop }} for ( n = 0 ; n < z ; n ++ ){ e = d [ n ]; if ( T = e . element ){ T [ 0 ]. style . width = Math . max ( 0 , e . outerWidth - e . hsides ) + "px" ; la = Math . max ( 0 , e . outerHeight - e . vsides ); T [ 0 ]. style . height = la + "px" ; q = e . event ; if ( e . titleTop !== Z && la - e . titleTop < 10 ){ T . find ( "span.fc-event-time" ). text ( ia ( q . start , P ( "timeFormat" )) + " - " + q . title ); T . find ( "span.fc-event-title" ). remove ()} ea ( "eventAfterRender" ,
+ − q , q , T )}}} function l ( d , g , n ){ return "<div class='" + n + d . className . join ( " " ) + "' style='position:absolute;z-index:8;top:" + g . top + "px;left:" + g . left + "px'><a" + ( d . url ? " href='" + Ma ( d . url ) + "'" : "" ) + "><span class='fc-event-bg'></span><span class='fc-event-time'>" + Ma ( ma ( d . start , d . end , P ( "timeFormat" ))) + "</span><span class='fc-event-title'>" + Ma ( d . title ) + "</span></a>" + (( d . editable || d . editable === Z && P ( "editable" )) &&! P ( "disableResizing" ) && m . fn . resizable ? "<div class='ui-resizable-handle ui-resizable-s'>=</div>" : "" ) + "</div>" }
+ − function t ( d , g , n ){ ga ( d , g ); if ( d . editable || d . editable === Z && P ( "editable" )){ H ( d , g , n . isStart ); n . isEnd && V ( d , g , p ())}} function w ( d , g , n ){ ga ( d , g ); if ( d . editable || d . editable === Z && P ( "editable" )){ var z = g . find ( "span.fc-event-time" ); E ( d , g , z ); n . isEnd && K ( d , g , z )}} function H ( d , g , n ){ if ( ! P ( "disableDragging" ) && g . draggable ){ var z , e = true , q , J = P ( "isRTL" ) ?- 1 : 1 , R = B (), Q = p (), ba = $ (), ha = k (); g . draggable ({ zIndex : 9 , opacity : P ( "dragOpacity" , "month" ), revertDuration : P ( "dragRevertDuration" ), start : function ( ra , aa ){ ea ( "eventDragStart" , g , d ,
+ − ra , aa ); pa ( d , g ); z = g . width (); R . start ( function ( T , na , ja , la ){ g . draggable ( "option" , "revert" , ! T ||! ja &&! la ); F (); if ( T ){ q = la * J ; if ( T . row ){ if ( n && e ){ Qa ( g . width ( Q - 10 ), ba * Math . round (( d . end ? ( d . end - d . start ) / Ob : P ( "defaultEventMinutes" )) / P ( "slotMinutes" ))); g . draggable ( "option" , "grid" ,[ Q , 1 ]); e = false }} else { ya ( O ( x ( d . start ), q ), O ( Oa ( d ), q )); da ()}}}, ra , "drag" )}, stop : function ( ra , aa ){ var T = R . stop (); F (); ea ( "eventDragStop" , g , d , ra , aa ); if ( T && ( ! e || q )){ g . find ( "a" ). removeAttr ( "href" ); T = 0 ; e || ( T = Math . round (( g . offset (). top - fa (). offset (). top ) /
+ − ba ) * P ( "slotMinutes" ) + ha - ( d . start . getHours () * 60 + d . start . getMinutes ())); ta ( this , d , q , T , e , ra , aa )} else { da (); m . browser . msie && g . css ( "filter" , "" ); ca ( d , g )}}}); function da (){ if ( ! e ){ g . width ( z ). height ( "" ). draggable ( "option" , "grid" , null ); e = true }}}} function E ( d , g , n ){ if ( ! P ( "disableDragging" ) && g . draggable ){ var z , e = false , q , J , R , Q = P ( "isRTL" ) ?- 1 : 1 , ba = B (), ha = r (), da = p (), ra = $ (); g . draggable ({ zIndex : 9 , scroll : false , grid : [ da , ra ], axis : ha == 1 ? "y" : false , opacity : P ( "dragOpacity" ), revertDuration : P ( "dragRevertDuration" ), start : function ( na ,
+ − ja ){ ea ( "eventDragStart" , g , d , na , ja ); pa ( d , g ); m . browser . msie && g . find ( "span.fc-event-bg" ). hide (); z = g . position (); J = R = 0 ; ba . start ( function ( la , Ca , Ba , Aa ){ g . draggable ( "option" , "revert" , ! la ); F (); if ( la ){ q = Aa * Q ; if ( P ( "allDaySlot" ) &&! la . row ){ if ( ! e ){ e = true ; n . hide (); g . draggable ( "option" , "grid" , null )} ya ( O ( x ( d . start ), q ), O ( Oa ( d ), q ))} else T ()}}, na , "drag" )}, drag : function ( na , ja ){ J = Math . round (( ja . position . top - z . top ) / ra ) * P ( "slotMinutes" ); if ( J != R ){ e || aa ( J ); R = J }}, stop : function ( na , ja ){ var la = ba . stop (); F (); ea ( "eventDragStop" ,
+ − g , d , na , ja ); if ( la && ( q || J || e )) ta ( this , d , q , e ? 0 : J , e , na , ja ); else { T (); g . css ( z ); aa ( 0 ); m . browser . msie && g . css ( "filter" , "" ). find ( "span.fc-event-bg" ). css ( "display" , "" ); ca ( d , g )}}}); function aa ( na ){ var ja = sa ( x ( d . start ), na ), la ; if ( d . end ) la = sa ( x ( d . end ), na ); n . text ( ma ( ja , la , P ( "timeFormat" )))} function T (){ if ( e ){ n . css ( "display" , "" ); g . draggable ( "option" , "grid" ,[ da , ra ]); e = false }}}} function K ( d , g , n ){ if ( ! P ( "disableResizing" ) && g . resizable ){ var z , e , q = $ (); g . resizable ({ handles : { s : "div.ui-resizable-s" }, grid : q , start : function ( J ,
+ − R ){ z = e = 0 ; pa ( d , g ); m . browser . msie && m . browser . version == "6.0" && g . css ( "overflow" , "hidden" ); g . css ( "z-index" , 9 ); ea ( "eventResizeStart" , this , d , J , R )}, resize : function ( J , R ){ z = Math . round (( Math . max ( q , g . height ()) - R . originalSize . height ) / q ); if ( z != e ){ n . text ( ma ( d . start , ! z &&! d . end ? null : sa ( S ( d ), P ( "slotMinutes" ) * z ), P ( "timeFormat" ))); e = z }}, stop : function ( J , R ){ ea ( "eventResizeStop" , this , d , J , R ); if ( z ) qa ( this , d , 0 , P ( "slotMinutes" ) * z , J , R ); else { g . css ( "z-index" , 8 ); ca ( d , g )}}})}} var y = this ; y . renderEvents = a ; y . rerenderEvents = b ; y . clearEvents =
+ − f ; y . slotSegHtml = l ; y . bindDaySeg = t ; qb . call ( y ); var P = y . opt , ea = y . trigger , S = y . eventEnd , M = y . reportEvents , X = y . clearEventData , ga = y . eventElementHandlers , N = y . setHeight , U = y . getDaySegmentContainer , u = y . getSlotSegmentContainer , B = y . getHoverListener , G = y . getMaxMinute , k = y . getMinMinute , c = y . timePosition , A = y . colContentLeft , C = y . colContentRight , I = y . renderDaySegs , V = y . resizableDayEvent , r = y . getColCnt , p = y . getColWidth , $ = y . getSlotHeight , fa = y . getBodyContent , Y = y . reportEventElement , ca = y . showEvents , pa = y . hideEvents , ta = y . eventDrop ,
+ − qa = y . eventResize , ya = y . renderDayOverlay , F = y . clearOverlays , ka = y . calendar , ia = ka . formatDate , ma = ka . formatDates , ua = []} function Nb ( a ){ var b , f , h , i , s , j ; for ( b = a . length - 1 ; b > 0 ; b -- ){ i = a [ b ]; for ( f = 0 ; f < i . length ; f ++ ){ s = i [ f ]; for ( h = 0 ; h < a [ b - 1 ]. length ; h ++ ){ j = a [ b - 1 ][ h ]; if ( yb ( s , j )) j . forward = Math . max ( j . forward || 0 ,( s . forward || 0 ) + 1 )}}}} function jb ( a , b , f ){ function h ( k , c ){ k = G [ k ]; if ( typeof k == "object" ) return Wa ( k , c || f ); return k } function i ( k , c ){ return b . trigger . apply ( b ,[ k , c || M ]. concat ( Array . prototype . slice . call ( arguments , 2 ),[ M ]))}
+ − function s ( k ){ U = {}; var c , A = k . length , C ; for ( c = 0 ; c < A ; c ++ ){ C = k [ c ]; if ( U [ C . _id ]) U [ C . _id ]. push ( C ); else U [ C . _id ] = [ C ]}} function j (){ u = []; B = {}} function l ( k ){ return k . end ? x ( k . end ) : X ( k )} function t ( k , c ){ u . push ( c ); if ( B [ k . _id ]) B [ k . _id ]. push ( c ); else B [ k . _id ] = [ c ]} function w ( k , c ){ c . click ( function ( A ){ if ( ! c . hasClass ( "ui-draggable-dragging" ) &&! c . hasClass ( "ui-resizable-resizing" )) return i ( "eventClick" , this , k , A )}). hover ( function ( A ){ i ( "eventMouseover" , this , k , A )}, function ( A ){ i ( "eventMouseout" , this , k , A )})} function H ( k , c ){ K ( k ,
+ − c , "show" )} function E ( k , c ){ K ( k , c , "hide" )} function K ( k , c , A ){ k = B [ k . _id ]; var C , I = k . length ; for ( C = 0 ; C < I ; C ++ ) k [ C ][ 0 ] != c [ 0 ] && k [ C ][ A ]()} function y ( k , c , A , C , I , V , r ){ var p = c . allDay , $ = c . _id ; ea ( U [ $ ], A , C , I ); i ( "eventDrop" , k , c , A , C , I , function (){ ea ( U [ $ ], - A , - C , p ); N ()}, V , r ); M . eventsChanged = true ; N ( $ )} function P ( k , c , A , C , I , V ){ var r = c . _id ; S ( U [ r ], A , C ); i ( "eventResize" , k , c , A , C , function (){ S ( U [ r ], - A , - C ); N ()}, I , V ); M . eventsChanged = true ; N ( r )} function ea ( k , c , A , C ){ A = A || 0 ; for ( var I , V = k . length , r = 0 ; r < V ; r ++ ){ I = k [ r ]; if ( C !== Z ) I . allDay = C ;
+ − sa ( O ( I . start , c , true ), A ); if ( I . end ) I . end = sa ( O ( I . end , c , true ), A ); ga ( I , G )}} function S ( k , c , A ){ A = A || 0 ; for ( var C , I = k . length , V = 0 ; V < I ; V ++ ){ C = k [ V ]; C . end = sa ( O ( l ( C ), c , true ), A ); ga ( C , G )}} var M = this ; M . element = a ; M . calendar = b ; M . name = f ; M . opt = h ; M . trigger = i ; M . reportEvents = s ; M . clearEventData = j ; M . eventEnd = l ; M . reportEventElement = t ; M . eventElementHandlers = w ; M . showEvents = H ; M . hideEvents = E ; M . eventDrop = y ; M . eventResize = P ; var X = M . defaultEventEnd , ga = b . normalizeEvent , N = b . rerenderEvents , U = {}, u = [], B = {}, G = b . options } function qb (){ function a ( N ,
+ − U ){ var u = h ( "isRTL" ), B , G = N . length , k , c , A , C , I , V = "" , r , p = {}, $ = {}, fa = [], Y = []; B = y (); r = B . left ; var ca = B . right , pa = w (); H (); var ta = M (); for ( B = 0 ; B < G ; B ++ ){ k = N [ B ]; c = k . event ; A = "fc-event fc-event-hori " ; if ( u ){ if ( k . isStart ) A += "fc-corner-right " ; if ( k . isEnd ) A += "fc-corner-left " ; C = k . isEnd ? P ( S ( k . end . getDay () - 1 )) : r ; I = k . isStart ? ea ( S ( k . start . getDay ())) : ca } else { if ( k . isStart ) A += "fc-corner-left " ; if ( k . isEnd ) A += "fc-corner-right " ; C = k . isStart ? P ( S ( k . start . getDay ())) : r ; I = k . isEnd ? ea ( S ( k . end . getDay () - 1 )) : ca } V += "<div class='" + A + c . className . join ( " " ) +
+ − "' style='position:absolute;z-index:8;left:" + C + "px'><a" + ( c . url ? " href='" + Ma ( c . url ) + "'" : "" ) + ">" + ( ! c . allDay && k . isStart ? "<span class='fc-event-time'>" + Ma ( ga ( c . start , c . end , h ( "timeFormat" ))) + "</span>" : "" ) + "<span class='fc-event-title'>" + Ma ( c . title ) + "</span></a>" + (( c . editable || c . editable === Z && h ( "editable" )) &&! h ( "disableResizing" ) && m . fn . resizable ? "<div class='ui-resizable-handle ui-resizable-" + ( u ? "w" : "e" ) + "'></div>" : "" ) + "</div>" ; k . left = C ; k . outerWidth = I - C } ta [ 0 ]. innerHTML = V ; V = ta . children (); for ( B = 0 ; B < G ; B ++ ){ k =
+ − N [ B ]; u = m ( V [ B ]); c = k . event ; r = i ( "eventRender" , c , c , u ); if ( r === false ) u . remove (); else { if ( r && r !== true ){ u . remove (); u = m ( r ). css ({ position : "absolute" , left : k . left }). appendTo ( ta )} k . element = u ; if ( c . _id === U ) X ( c , u , k ); else u [ 0 ]. _fci = B ; s ( c , u )}} wb ( ta , N , X ); for ( B = 0 ; B < G ; B ++ ){ k = N [ B ]; if ( u = k . element ){ c = p [ U = k . key = xb ( u [ 0 ])]; k . hsides = c === Z ? ( p [ U ] = db ( u [ 0 ], true )) : c }} for ( B = 0 ; B < G ; B ++ ){ k = N [ B ]; if ( u = k . element ) u [ 0 ]. style . width = Math . max ( 0 , k . outerWidth - k . hsides ) + "px" } for ( B = 0 ; B < G ; B ++ ){ k = N [ B ]; if ( u = k . element ){ c = $ [ U = k . key ]; k . outerHeight = u [ 0 ]. offsetHeight +
+ − ( c === Z ? ( $ [ U ] = zb ( u [ 0 ])) : c )}} for ( p = B = 0 ; p < pa ; p ++ ){ for ( $ = U = c = 0 ; B < G && ( k = N [ B ]). row == p ;){ if ( k . level != U ){ $ += c ; c = 0 ; U ++ } c = Math . max ( c , k . outerHeight || 0 ); k . top = $ ; B ++ } fa [ p ] = K ( p ). find ( "td:first div.fc-day-content > div" ). height ( $ + c )} for ( p = 0 ; p < pa ; p ++ ) Y [ p ] = fa [ p ][ 0 ]. offsetTop ; for ( B = 0 ; B < G ; B ++ ){ k = N [ B ]; if ( u = k . element ){ u [ 0 ]. style . top = Y [ k . row ] + k . top + "px" ; c = k . event ; i ( "eventAfterRender" , c , c , u )}}} function b ( N , U ){ if ( ! h ( "disableResizing" ) && U . resizable ){ var u = E (); U . resizable ({ handles : h ( "isRTL" ) ? { w : "div.ui-resizable-w" } : { e : "div.ui-resizable-e" },
+ − grid : u , minWidth : u / 2 , containment : f . element . parent (). parent (), start : function ( B , G ){ U . css ( "z-index" , 9 ); l ( N , U ); i ( "eventResizeStart" , this , N , B , G )}, stop : function ( B , G ){ i ( "eventResizeStop" , this , N , B , G ); var k = Math . round (( U . width () - G . originalSize . width ) / u ); if ( k ) t ( this , N , k , 0 , B , G ); else { U . css ( "z-index" , 8 ); j ( N , U )}}})}} var f = this ; f . renderDaySegs = a ; f . resizableDayEvent = b ; var h = f . opt , i = f . trigger , s = f . reportEventElement , j = f . showEvents , l = f . hideEvents , t = f . eventResize , w = f . getRowCnt , H = f . getColCnt , E = f . getColWidth , K = f . allDayTR ,
+ − y = f . allDayBounds , P = f . colContentLeft , ea = f . colContentRight , S = f . dayOfWeekCol , M = f . getDaySegmentContainer , X = f . bindDaySeg , ga = f . calendar . formatDates } function lb (){ function a ( E , K , y ){ b (); K || ( K = l ( E , y )); t ( E , K , y ); f ( E , K , y )} function b ( E ){ if ( H ){ H = false ; w (); j ( "unselect" , null , E )}} function f ( E , K , y , P ){ H = true ; j ( "select" , null , E , K , y , P )} function h ( E ){ var K = i . cellDate , y = i . cellIsAllDay , P = i . getHoverListener (); if ( E . which == 1 && s ( "selectable" )){ b ( E ); var ea = this , S ; P . start ( function ( M , X ){ w (); if ( M && y ( M )){ S = [ K ( X ), K ( M )]. sort ( vb ); t ( S [ 0 ],
+ − S [ 1 ], true )} else S = null }, E ); m ( document ). one ( "mouseup" , function ( M ){ P . stop (); if ( S ){ + S [ 0 ] ==+ S [ 1 ] && j ( "dayClick" , ea , S [ 0 ], true , M ); f ( S [ 0 ], S [ 1 ], true , M )}})}} var i = this ; i . select = a ; i . unselect = b ; i . reportSelection = f ; i . daySelectionMousedown = h ; var s = i . opt , j = i . trigger , l = i . defaultSelectionEnd , t = i . renderSelection , w = i . clearSelection , H = false ; s ( "selectable" ) && s ( "unselectAuto" ) && m ( document ). mousedown ( function ( E ){ var K = s ( "unselectCancel" ); if ( K ) if ( m ( E . target ). parents ( K ). length ) return ; b ( E )})} function kb (){ function a ( s , j ){ var l =
+ − i . shift (); l || ( l = m ( "<div class='fc-cell-overlay' style='position:absolute;z-index:3'/>" )); l [ 0 ]. parentNode != j [ 0 ] && l . appendTo ( j ); h . push ( l . css ( s ). show ()); return l } function b (){ for ( var s ; s = h . shift ();) i . push ( s . hide (). unbind ())} var f = this ; f . renderOverlay = a ; f . clearOverlays = b ; var h = [], i = []} function nb ( a ){ var b = this , f , h ; b . build = function (){ f = []; h = []; a ( f , h )}; b . cell = function ( i , s ){ var j = f . length , l = h . length , t , w =- 1 , H =- 1 ; for ( t = 0 ; t < j ; t ++ ) if ( s >= f [ t ][ 0 ] && s < f [ t ][ 1 ]){ w = t ; break } for ( t = 0 ; t < l ; t ++ ) if ( i >= h [ t ][ 0 ] && i < h [ t ][ 1 ]){ H =
+ − t ; break } return w >= 0 && H >= 0 ? { row : w , col : H } : null }; b . rect = function ( i , s , j , l , t ){ t = t . offset (); return { top : f [ i ][ 0 ] - t . top , left : h [ s ][ 0 ] - t . left , width : h [ l ][ 1 ] - h [ s ][ 0 ], height : f [ j ][ 1 ] - f [ i ][ 0 ]}}} function ob ( a ){ function b ( l ){ l = a . cell ( l . pageX , l . pageY ); if ( ! l !=! j || l && ( l . row != j . row || l . col != j . col )){ if ( l ){ s || ( s = l ); i ( l , s , l . row - s . row , l . col - s . col )} else i ( l , s ); j = l }} var f = this , h , i , s , j ; f . start = function ( l , t , w ){ i = l ; s = j = null ; a . build (); b ( t ); h = w || "mousemove" ; m ( document ). bind ( h , b )}; f . stop = function (){ m ( document ). unbind ( h , b ); return j }}
+ − function pb ( a ){ function b ( j ){ return h [ j ] = h [ j ] || a ( j )} var f = this , h = {}, i = {}, s = {}; f . left = function ( j ){ return i [ j ] = i [ j ] === Z ? b ( j ). position (). left : i [ j ]}; f . right = function ( j ){ return s [ j ] = s [ j ] === Z ? f . left ( j ) + b ( j ). width () : s [ j ]}; f . clear = function (){ h = {}; i = {}; s = {}}} function Ta ( a , b , f ){ a . setFullYear ( a . getFullYear () + b ); f || Ia ( a ); return a } function Ua ( a , b , f ){ if ( + a ){ b = a . getMonth () + b ; var h = x ( a ); h . setDate ( 1 ); h . setMonth ( b ); a . setMonth ( b ); for ( f || Ia ( a ); a . getMonth () != h . getMonth ();) a . setDate ( a . getDate () + ( a < h ? 1 :- 1 ))} return a } function O ( a ,
+ − b , f ){ if ( + a ){ b = a . getDate () + b ; var h = x ( a ); h . setHours ( 9 ); h . setDate ( b ); a . setDate ( b ); f || Ia ( a ); eb ( a , h )} return a } function eb ( a , b ){ if ( + a ) for (; a . getDate () != b . getDate ();) a . setTime ( + a + ( a < b ? 1 :- 1 ) * Pb )} function sa ( a , b ){ a . setMinutes ( a . getMinutes () + b ); return a } function Ia ( a ){ a . setHours ( 0 ); a . setMinutes ( 0 ); a . setSeconds ( 0 ); a . setMilliseconds ( 0 ); return a } function x ( a , b ){ if ( b ) return Ia ( new Date ( + a )); return new Date ( + a )} function tb (){ var a = 0 , b ; do b = new Date ( 1970 , a ++ , 1 ); while ( b . getHours ()); return b } function va ( a , b , f ){ for ( b =
+ − b || 1 ; ! a . getDay () || f && a . getDay () == 1 ||! f && a . getDay () == 6 ;) O ( a , b ); return a } function Ea ( a , b ){ return Math . round (( x ( a , true ) - x ( b , true )) / ib )} function hb ( a , b , f , h ){ if ( b !== Z && b != a . getFullYear ()){ a . setDate ( 1 ); a . setMonth ( 0 ); a . setFullYear ( b )} if ( f !== Z && f != a . getMonth ()){ a . setDate ( 1 ); a . setMonth ( f )} h !== Z && a . setDate ( h )} function Xa ( 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+$/ )) return new Date ( parseInt ( a ) * 1E3 ); if ( b === Z ) b = true ; return Ab ( a , b ) ||
+ − ( a ? new Date ( a ) : null )} return null } function Ab ( 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 f = new Date ( a [ 1 ], 0 , 1 ); if ( b ||! a [ 14 ]){ b = new Date ( a [ 1 ], 0 , 1 , 9 , 0 ); if ( a [ 3 ]){ f . setMonth ( a [ 3 ] - 1 ); b . setMonth ( a [ 3 ] - 1 )} if ( a [ 5 ]){ f . setDate ( a [ 5 ]); b . setDate ( a [ 5 ])} eb ( f , b ); a [ 7 ] && f . setHours ( a [ 7 ]); a [ 8 ] && f . setMinutes ( a [ 8 ]); a [ 10 ] && f . setSeconds ( a [ 10 ]); a [ 12 ] && f . setMilliseconds ( Number ( "0." + a [ 12 ]) * 1E3 ); eb ( f , b )} else { f . setUTCFullYear ( a [ 1 ],
+ − a [ 3 ] ? a [ 3 ] - 1 : 0 , a [ 5 ] || 1 ); f . setUTCHours ( a [ 7 ] || 0 , a [ 8 ] || 0 , a [ 10 ] || 0 , a [ 12 ] ? Number ( "0." + a [ 12 ]) * 1E3 : 0 ); b = Number ( a [ 16 ]) * 60 + Number ( a [ 17 ]); b *= a [ 15 ] == "-" ? 1 :- 1 ; f = new Date ( + f + b * 60 * 1E3 )} return f } function bb ( 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 ]); if ( a [ 3 ]){ b %= 12 ; if ( a [ 3 ]. toLowerCase (). charAt ( 0 ) == "p" ) b += 12 } return b * 60 + ( a [ 2 ] ? parseInt ( a [ 2 ]) : 0 )}} function Ja ( a , b , f ){ return Va ( a , null , b , f )} function Va ( a ,
+ − b , f , h ){ h = h || Pa ; var i = a , s = b , j , l = f . length , t , w , H , E = "" ; for ( j = 0 ; j < l ; j ++ ){ t = f . charAt ( j ); if ( t == "'" ) for ( w = j + 1 ; w < l ; w ++ ){ if ( f . charAt ( w ) == "'" ){ if ( i ){ E += w == j + 1 ? "'" : f . substring ( j + 1 , w ); j = w } break }} else if ( t == "(" ) for ( w = j + 1 ; w < l ; w ++ ){ if ( f . charAt ( w ) == ")" ){ j = Ja ( i , f . substring ( j + 1 , w ), h ); if ( parseInt ( j . replace ( /\D/ , "" ))) E += j ; j = w ; break }} else if ( t == "[" ) for ( w = j + 1 ; w < l ; w ++ ){ if ( f . charAt ( w ) == "]" ){ t = f . substring ( j + 1 , w ); j = Ja ( i , t , h ); if ( j != Ja ( s , t , h )) E += j ; j = w ; break }} else if ( t == "{" ){ i = b ; s = a } else if ( t == "}" ){ i = a ; s = b } else { for ( w = l ; w > j ; w -- ) if ( H =
+ − Qb [ f . substring ( j , w )]){ if ( i ) E += H ( i , h ); j = w - 1 ; break } if ( w == j ) if ( i ) E += t }} return E } function Oa ( a ){ return a . end ? Rb ( a . end , a . allDay ) : O ( x ( a . start ), 1 )} function Rb ( a , b ){ a = x ( a ); return b || a . getHours () || a . getMinutes () ? O ( a , 1 ) : Ia ( a )} function Sb ( a , b ){ return ( b . msLength - a . msLength ) * 100 + ( a . event . start - b . event . start )} function yb ( a , b ){ return a . end > b . start && a . start < b . end } function ab ( a , b , f , h ){ var i = [], s , j = a . length , l , t , w , H , E ; for ( s = 0 ; s < j ; s ++ ){ l = a [ s ]; t = l . start ; w = b [ s ]; if ( w > f && t < h ){ if ( t < f ){ t = x ( f ); H = false } else { t = t ; H = true } if ( w >
+ − h ){ w = x ( h ); E = false } else { w = w ; E = true } i . push ({ event : l , start : t , end : w , isStart : H , isEnd : E , msLength : w - t })}} return i . sort ( Sb )} function $a ( a ){ var b = [], f , h = a . length , i , s , j , l ; for ( f = 0 ; f < h ; f ++ ){ i = a [ f ]; for ( s = 0 ;;){ j = false ; if ( b [ s ]) for ( l = 0 ; l < b [ s ]. length ; l ++ ) if ( yb ( b [ s ][ l ], i )){ j = true ; break } if ( j ) s ++ ; else break } if ( b [ s ]) b [ s ]. push ( i ); else b [ s ] = [ i ]} return b } function wb ( a , b , f ){ a . unbind ( "mouseover" ). mouseover ( function ( h ){ for ( var i = h . target , s ; i != this ;){ s = i ; i = i . parentNode } if (( i = s . _fci ) !== Z ){ s . _fci = Z ; s = b [ i ]; f ( s . event , s . element ,
+ − s ); m ( h . target ). trigger ( h )} h . stopPropagation ()})} function Ka ( a , b , f ){ a . each ( function ( h , i ){ i . style . width = Math . max ( 0 , b - db ( i , f )) + "px" })} function Qa ( a , b , f ){ a . each ( function ( h , i ){ i . style . height = Math . max ( 0 , b - Sa ( i , f )) + "px" })} function db ( a , b ){ return ( parseFloat ( m . curCSS ( a , "paddingLeft" , true )) || 0 ) + ( parseFloat ( m . curCSS ( a , "paddingRight" , true )) || 0 ) + ( parseFloat ( m . curCSS ( a , "borderLeftWidth" , true )) || 0 ) + ( parseFloat ( m . curCSS ( a , "borderRightWidth" , true )) || 0 ) + ( b ? Tb ( a ) : 0 )} function Tb ( a ){ return ( parseFloat ( m . curCSS ( a , "marginLeft" ,
+ − true )) || 0 ) + ( parseFloat ( m . curCSS ( a , "marginRight" , true )) || 0 )} function Sa ( a , b ){ return ( parseFloat ( m . curCSS ( a , "paddingTop" , true )) || 0 ) + ( parseFloat ( m . curCSS ( a , "paddingBottom" , true )) || 0 ) + ( parseFloat ( m . curCSS ( a , "borderTopWidth" , true )) || 0 ) + ( parseFloat ( m . curCSS ( a , "borderBottomWidth" , true )) || 0 ) + ( b ? zb ( a ) : 0 )} function zb ( a ){ return ( parseFloat ( m . curCSS ( a , "marginTop" , true )) || 0 ) + ( parseFloat ( m . curCSS ( a , "marginBottom" , true )) || 0 )} function Ra ( a , b ){ b = typeof b == "number" ? b + "px" : b ; a [ 0 ]. style . cssText += ";min-height:" + b + ";_height:" +
+ − b } function gb (){} function vb ( a , b ){ return a - b } function Na ( a ){ return ( a < 10 ? "0" : "" ) + a } function Wa ( a , b ){ if ( a [ b ] !== Z ) return a [ b ]; b = b . split ( /(?=[A-Z])/ ); for ( var f = b . length - 1 , h ; f >= 0 ; f -- ){ h = a [ b [ f ]. toLowerCase ()]; if ( h !== Z ) return h } return a [ "" ]} function Ma ( a ){ return a . replace ( /&/g , "&" ). replace ( /</g , "<" ). replace ( />/g , ">" ). replace ( /'/g , "'" ). replace ( /"/g , """ ). replace ( /\n/g , "<br />" )} function xb ( a ){ return a . id + "/" + a . className + "/" + a . style . cssText . replace ( /(^|;)\s*(top|left|width|height)\s*:[^;]*/ig ,
+ − "" )} function mb ( a ){ a . attr ( "unselectable" , "on" ). css ( "MozUserSelect" , "none" ). bind ( "selectstart.ui" , function (){ return false })} var Pa = { 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 : "*" }, Ub = { header : { left : "next,prev today" , center : "" , right : "title" }, buttonText : { prev : " ► " , next : " ◄ " , prevYear : " >> " , nextYear : " << " }, buttonIcons : { prev : "circle-triangle-e" , next : "circle-triangle-w" }}, Ga = m . fullCalendar = { version : "1.4.8" }, Ha = Ga . views = {}; m . fn . fullCalendar = function ( a ){ if ( typeof a ==
+ − "string" ){ var b = Array . prototype . slice . call ( arguments , 1 ), f ; this . each ( function (){ var i = m . data ( this , "fullCalendar" ); if ( i && m . isFunction ( i [ a ])){ i = i [ a ]. apply ( i , b ); if ( f === Z ) f = i ; a == "destroy" && m . removeData ( this , "fullCalendar" )}}); if ( f !== Z ) return f ; return this } var h = a . eventSources || []; delete a . eventSources ; if ( a . events ){ h . push ( a . events ); delete a . events } a = m . extend ( true ,{}, Pa , a . isRTL || a . isRTL === Z && Pa . isRTL ? Ub : {}, a ); this . each ( function ( i , s ){ i = m ( s ); s = new Bb ( i , a , h ); i . data ( "fullCalendar" , s ); s . render ()}); return this };
+ − var Eb = 1 ; Ha . month = Fb ; Ha . basicWeek = Gb ; Ha . basicDay = Hb ; var Za ; fb ({ weekMode : "fixed" }); Ha . agendaWeek = Jb ; Ha . agendaDay = Kb ; fb ({ 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 }); Ga . addDays = O ; Ga . cloneDate = x ; Ga . parseDate = Xa ; Ga . parseISO8601 = Ab ; Ga . parseTime = bb ; Ga . formatDate = Ja ; Ga . formatDates = Va ; var Da = [ "sun" , "mon" , "tue" , "wed" , "thu" , "fri" , "sat" ], ib = 864E5 , Pb = 36E5 , Ob = 6E4 ,
+ − Qb = { s : function ( a ){ return a . getSeconds ()}, ss : function ( a ){ return Na ( a . getSeconds ())}, m : function ( a ){ return a . getMinutes ()}, mm : function ( a ){ return Na ( a . getMinutes ())}, h : function ( a ){ return a . getHours () % 12 || 12 }, hh : function ( a ){ return Na ( a . getHours () % 12 || 12 )}, H : function ( a ){ return a . getHours ()}, HH : function ( a ){ return Na ( a . getHours ())}, d : function ( a ){ return a . getDate ()}, dd : function ( a ){ return Na ( 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 Na ( 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 Ja ( 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" }}})( jQuery );