{"version":3,"sources":["webpack:///javascripts/user-page-js/default.page.js","webpack:///(webpack)/~/node-libs-browser/~/console-browserify/index.js?0349*************************","webpack:///(webpack)/~/node-libs-browser/~/process/browser.js?6f0e*************************","webpack:///(webpack)/~/node-libs-browser/~/util/util.js?747e*************************","webpack:///(webpack)/~/node-libs-browser/~/assert/assert.js?9465*************************","webpack:///(webpack)/~/node-libs-browser/~/console-browserify/~/date-now/index.js?ed23*************************","webpack:///(webpack)/~/node-libs-browser/~/util/~/inherits/inherits_browser.js?1c3f*************************","webpack:///(webpack)/~/node-libs-browser/~/util/support/isBufferBrowser.js?239d*************************","webpack:///./es6/user-common-js/legacy/utilizationtimeInfo.js","webpack:///./es6/user-page-js/default.page.js","webpack:///./source/javascripts/main.js","webpack:///./source/javascripts/vendor/fullcalendar.js"],"names":["webpackJsonp","0","module","exports","__webpack_require__","8","global","log","info","console","apply","arguments","warn","error","time","label","times","now","timeEnd","Error","duration","trace","err","name","message","util","format","stack","dir","object","inspect","consoleAssert","expression","arr","slice","call","assert","ok","Array","prototype","window","functions","i","length","tuple","f","this","46","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","setTimeout","e","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","timeout","len","run","Item","array","noop","process","nextTick","args","push","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","cwd","chdir","umask","48","obj","opts","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","str","styleType","style","styles","arrayToHash","hash","forEach","val","idx","value","recurseTimes","isFunction","constructor","ret","isString","primitive","formatPrimitive","keys","Object","visibleKeys","getOwnPropertyNames","isError","indexOf","formatError","isRegExp","RegExp","toString","isDate","Date","base","braces","isArray","n","toUTCString","output","formatArray","map","key","formatProperty","pop","reduceToSingleString","simple","JSON","stringify","replace","isNumber","isNull","l","hasOwnProperty","String","match","desc","getOwnPropertyDescriptor","get","set","split","line","join","substr","numLinesEst","reduce","prev","cur","ar","arg","isNullOrUndefined","isSymbol","re","isObject","objectToString","d","isPrimitive","o","pad","timestamp","getHours","getMinutes","getSeconds","getDate","months","getMonth","prop","formatRegExp","objects","x","Number","_","deprecate","fn","msg","deprecated","warned","throwDeprecation","traceDeprecation","noDeprecation","debugEnviron","debugs","debuglog","NODE_DEBUG","toUpperCase","test","pid","bold","italic","underline","inverse","white","grey","black","blue","cyan","green","magenta","red","yellow","special","number","boolean","undefined","null","string","date","regexp","isBuffer","inherits","origin","add","94","compare","a","b","y","Math","min","Buffer","_isBuffer","pToString","isView","arrbuf","ArrayBuffer","DataView","buffer","getName","func","functionsHaveNames","regex","truncate","s","something","rawname","getMessage","self","actual","operator","expected","fail","stackStartFunction","AssertionError","_deepEqual","strict","memos","getTime","source","multiline","lastIndex","ignoreCase","Float32Array","Float64Array","Uint8Array","actualIndex","objEquiv","isArguments","actualVisitedObjects","getPrototypeOf","aIsArgs","bIsArgs","pSlice","ka","objectKeys","kb","sort","notDeepStrictEqual","expectedException","isPrototypeOf","_tryBlock","block","_throws","shouldThrow","TypeError","userProvidedMessage","isUnwantedException","isUnexpectedException","hasOwn","options","generatedMessage","captureStackTrace","out","fn_name","next_line","substring","equal","notEqual","deepEqual","deepStrictEqual","notDeepEqual","strictEqual","notStrictEqual","throws","doesNotThrow","ifError","95","96","create","ctor","superCtor","super_","enumerable","writable","configurable","TempCtor","97","copy","fill","readUInt8","872","$","document","ready","getUtilizationTimeInfo","ajax","url","type","dataType","success","data","result","logout","location","logout_url","alert","877","1127","popover","offset","preventDefault","1129","1133","setDefaults","extend","defaults","Calendar","element","eventSources","render","inc","content","calcSize","markSizesDirty","markEventsDirty","renderView","initialRender","tm","theme","addClass","isRTL","prependTo","header","Header","t","headerElement","prepend","changeView","defaultView","resize","windowResize","bodyVisible","lateRender","currentView","start","destroy","unbind","remove","removeClass","elementVisible","_element","offsetWidth","newViewName","ignoreWindowResize","unselect","newViewElement","oldView","beforeHide","setMinHeight","height","hide","css","viewInstances","show","fcViews","absoluteViewElement","appendTo","deactivateButton","activateButton","afterShow","suggestedViewHeight","forceEventRender","end","setSize","sizeDirty","clearEvents","eventsDirty","updateEvents","elementOuterWidth","outerWidth","updateTitle","today","disableButton","enableButton","trigger","updateSize","renderEvents","events","each","inst","contentHeight","vsides","round","width","max","aspectRatio","dateChanged","setHeight","setWidth","uid","resizeUID","forceRender","lazyFetching","isFetchNeeded","visStart","visEnd","refetchEvents","rerenderEvents","fetchEvents","reportEvents","_events","reportEventChange","eventID","modifiedEventID","select","allDay","next","prevYear","addYears","nextYear","gotoDate","year","month","dateOfMonth","cloneDate","setYMD","incrementDate","years","days","addMonths","addDays","getView","option","thisObj","formatDate","formatDates","date1","date2","EventManager","_dragElement","droppable","bind","ev","ui","_e","target","parents","accept","dropAccept","is","dragStart","dragStop","calendar","sections","append","renderSection","position","buttonStr","prevButton","j","buttonName","buttonClick","button","icon","smartProperty","buttonIcons","text","buttonText","click","hasClass","mousedown","not","mouseup","hover","html","find","_sources","rangeStart","rangeEnd","cache","fetchID","currentFetchID","sources","pendingSourceCnt","fetchEventSource","_fetchEventSource","normalizeEvent","callback","res","fetchers","fc","sourceFetchers","pushLoading","popLoading","complete","startParam","firstDefined","endParam","ajaxDefaults","applyAll","addEventSource","_addEventSource","normalizeSource","removeEventSource","grep","src","isSourcesEqual","updateEvent","event","defaultEventEnd","startDelta","_start","endDelta","_end","_id","className","editable","color","backgroudColor","borderColor","textColor","renderEvent","stick","stickySource","removeEvents","filter","id","clientEvents","loadingLevel","ignoreTimezone","eventGUID","parseDate","allDayDefault","normalizers","sourceNormalizers","source1","source2","getSourcePrimitive","keepTime","setFullYear","getFullYear","clearTime","m","check","setDate","setMonth","dd","setHours","fixDate","setTime","HOUR_MS","addMinutes","setMinutes","setSeconds","setMilliseconds","dontKeepTime","zeroDate","skipWeekend","excl","getDay","dayDiff","d1","d2","DAY_MS","parseFloat","parseISO8601","setUTCFullYear","setUTCHours","parseTime","h","parseInt","toLowerCase","charAt","c","i2","formatter","otherDate","subres","subformat","dateFormatters","exclEndDay","_exclEndDay","segCmp","msLength","segsCollide","seg1","seg2","sliceSegs","visEventEnds","eventStart","eventEnd","segStart","segEnd","isStart","isEnd","segs","stackSegs","seg","collide","k","levels","lazySegBind","container","bindHandlers","mouseover","parent","parentNode","_fci","stopPropagation","setOuterWidth","includeMargins","hsides","setOuterHeight","hpadding","hborders","hmargins","vpadding","vborders","vmargins","cssText","cmp","arrayMax","zeroPad","parts","htmlEscape","cssKey","disableTextSelection","attr","markFirstLast","children","setDayID","cell","_cell","dayIDs","getSkinCss","opt","eventColor","sourceColor","optionColor","backgroundColor","statements","MonthView","delta","firstDay","nwe","rowCnt","renderBasic","BasicView","BasicWeekView","weekends","BasicDayView","viewName","maxr","r","showNumbers","colCnt","updateOptions","firstTime","body","buildSkeleton","updateCells","rtl","dis","dit","colFormat","maxRowCnt","table","headerClass","contentClass","head","headCells","bodyRows","bodyCells","bodyFirstCells","bodyCellTopInners","eq","dayBind","daySegmentContainer","row","dowDirty","indexDate","_row","viewHeight","rowHeight","rowHeightLast","bodyHeight","floor","viewWidth","colContentPositions","clear","colWidth","dayClick","daySelectionMousedown","index","renderDayOverlay","overlayStart","overlayEnd","refreshCoordinateGrid","coordinateGrid","build","rowStart","rowEnd","stretchStart","stretchEnd","colStart","colEnd","renderCellOverlay","row0","col0","row1","col1","rect","renderOverlay","defaultSelectionEnd","startDate","renderSelection","endDate","clearSelection","clearOverlays","reportDayClick","dateCell","col","hoverListener","stop","cellDate","colContentLeft","left","colContentRight","right","dayOfWeekCol","_cellDate","dayOfWeek","allDayRow","allDayBounds","getHoverListener","cellIsAllDay","getRowCnt","getColCnt","getColWidth","getDaySegmentContainer","View","OverlayManager","SelectionManager","BasicEventRenderer","CoordinateGrid","rows","cols","p","top","outerHeight","HoverListener","HorizontalPositionCache","modifiedEventId","renderDaySegs","compileSegs","reportEventClear","empty","level","visEventsEnds","bindDaySeg","eventElement","isEventDraggable","draggableDayEvent","isEventResizable","resizableDayEvent","eventElementHandlers","dayDelta","draggable","zIndex","delay","opacity","revertDuration","hideEvents","origCell","rowDelta","colDelta","eventDrop","showEvents","compileDaySegs","DayEventRenderer","AgendaWeekView","renderAgenda","AgendaView","AgendaDayView","dayTable","minMinute","maxMinute","maxd","minutes","slotNormal","dayHead","dayHeadCells","dayBody","dayBodyCells","dayBodyCellInners","dayBodyFirstCell","dayBodyFirstCellStretcher","axisFirstCells","gutterCells","slotLayer","allDayTable","slotScroller","slotContent","slotSegmentContainer","slotCnt","slotTable","slotTableFirstInner","slotBind","headCell","bodyCell","colDate","slotTopCache","headHeight","allDayHeight","slotHeight","resetScroll","axisWidth","slotTableWidth","clientWidth","gutterWidth","scroll","scrollTop","d0","scrollDate","timePosition","savedScrollTop","cells","slotClick","slotSelectionMousedown","pageX","rowMatch","mins","hours","startCol","endCol","renderSlotOverlay","dayStart","dayEnd","bottom","slotIndex","day","slotMinutes","slotI","slotTop","offsetTop","getAllDayRow","renderSlotSelection","helperOption","helperRes","selectionHelper","slotSegHtml","which","dates","one","reportSelection","getSlotSegmentContainer","getMinMinute","getMaxMinute","getBodyContent","getSlotHeight","AgendaEventRenderer","constrain","slotScrollerTop","slotScrollerBottom","slotTableTop","dayEvents","slotEvents","renderSlotSegs","compileSlotSegs","levelCnt","slotEventEnd","countForwardSegs","colI","levelI","forward","leftmost","availWidth","eventElements","triggerRes","contentElement","segCnt","vsideCache","hsideCache","innerHTML","bindSlotSeg","reportEventElement","contentTop","skinCss","skinCssAttr","classes","timeElement","draggableSlotEvent","resizableSlotEvent","resetElement","origWidth","revert","MINUTE_MS","minuteDelta","updateTimeText","newEnd","newStart","origPosition","prevMinuteDelta","grid","axis","drag","slotDelta","prevSlotDelta","resizable","handles","originalSize","eventResize","segForward","segBack","viewNameOverride","v","isEventEditable","eventsByID","eventElementsByID","exceptElement","eachEventElement","funcName","elements","oldAllDay","eventId","moveEvents","elongateEvents","rowDivs","rowI","colHeights","segmentContainer","daySegHTML","daySegElementResolve","daySegElementReport","daySegHandlers","daySegCalcHSides","daySegSetWidths","daySegCalcHeights","getRowDivs","daySegSetTops","getRowTops","renderTempDaySegs","adjustRow","adjustTop","tempContainer","leftCol","rightCol","bounds","minLeft","maxLeft","replaceWith","vmarginCache","offsetHeight","tops","rowTops","direction","handle","isResizing","stopImmediatePropagation","helpers","elementTop","eventCopy","minCell","oldHelpers","selected","ignore","unusedOverlays","shift","usedOverlays","buildFunc","originElement","mouse","_fixUIEvent","newCell","pageY","firstCell","change","bindType","_change","_bindType","originalEvent","getElement","lefts","rights","center","titleFormat","week","columnFormat","timeFormat","","monthNames","monthNamesShort","dayNames","dayNamesShort","unselectAuto","rtlDefaults","fullCalendar","views","removeData","ss","mm","hh","H","HH","ddd","dddd","M","MM","MMM","MMMM","yy","yyyy","tt","T","TT","u","S","basicWeek","basicDay","weekMode","agendaWeek","agendaDay","allDaySlot","allDayText","firstHour","defaultEventMinutes","axisFormat","agenda","dragOpacity","minTime","maxTime","jQuery"],"mappings":"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","file":"javascripts/user-page-js/default.page.js","sourcesContent":["webpackJsonp([161],{\n\n/***/ 0:\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(877);\n\n\n/***/ },\n\n/***/ 8:\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/*global window, global*/\n\tvar util = __webpack_require__(48)\n\tvar assert = __webpack_require__(94)\n\tvar now = __webpack_require__(95)\n\t\n\tvar slice = Array.prototype.slice\n\tvar console\n\tvar times = {}\n\t\n\tif (typeof global !== \"undefined\" && global.console) {\n\t console = global.console\n\t} else if (typeof window !== \"undefined\" && window.console) {\n\t console = window.console\n\t} else {\n\t console = {}\n\t}\n\t\n\tvar functions = [\n\t [log, \"log\"],\n\t [info, \"info\"],\n\t [warn, \"warn\"],\n\t [error, \"error\"],\n\t [time, \"time\"],\n\t [timeEnd, \"timeEnd\"],\n\t [trace, \"trace\"],\n\t [dir, \"dir\"],\n\t [consoleAssert, \"assert\"]\n\t]\n\t\n\tfor (var i = 0; i < functions.length; i++) {\n\t var tuple = functions[i]\n\t var f = tuple[0]\n\t var name = tuple[1]\n\t\n\t if (!console[name]) {\n\t console[name] = f\n\t }\n\t}\n\t\n\tmodule.exports = console\n\t\n\tfunction log() {}\n\t\n\tfunction info() {\n\t console.log.apply(console, arguments)\n\t}\n\t\n\tfunction warn() {\n\t console.log.apply(console, arguments)\n\t}\n\t\n\tfunction error() {\n\t console.warn.apply(console, arguments)\n\t}\n\t\n\tfunction time(label) {\n\t times[label] = now()\n\t}\n\t\n\tfunction timeEnd(label) {\n\t var time = times[label]\n\t if (!time) {\n\t throw new Error(\"No such label: \" + label)\n\t }\n\t\n\t var duration = now() - time\n\t console.log(label + \": \" + duration + \"ms\")\n\t}\n\t\n\tfunction trace() {\n\t var err = new Error()\n\t err.name = \"Trace\"\n\t err.message = util.format.apply(null, arguments)\n\t console.error(err.stack)\n\t}\n\t\n\tfunction dir(object) {\n\t console.log(util.inspect(object) + \"\\n\")\n\t}\n\t\n\tfunction consoleAssert(expression) {\n\t if (!expression) {\n\t var arr = slice.call(arguments, 1)\n\t assert.ok(false, util.format.apply(null, arr))\n\t }\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n\n/***/ 46:\n/***/ function(module, exports) {\n\n\t// shim for using process in browser\n\tvar process = module.exports = {};\n\t\n\t// cached from whatever global is present so that test runners that stub it\n\t// don't break things. But we need to wrap it in a try catch in case it is\n\t// wrapped in strict mode code which doesn't define any globals. It's inside a\n\t// function because try/catches deoptimize in certain engines.\n\t\n\tvar cachedSetTimeout;\n\tvar cachedClearTimeout;\n\t\n\tfunction defaultSetTimout() {\n\t throw new Error('setTimeout has not been defined');\n\t}\n\tfunction defaultClearTimeout () {\n\t throw new Error('clearTimeout has not been defined');\n\t}\n\t(function () {\n\t try {\n\t if (typeof setTimeout === 'function') {\n\t cachedSetTimeout = setTimeout;\n\t } else {\n\t cachedSetTimeout = defaultSetTimout;\n\t }\n\t } catch (e) {\n\t cachedSetTimeout = defaultSetTimout;\n\t }\n\t try {\n\t if (typeof clearTimeout === 'function') {\n\t cachedClearTimeout = clearTimeout;\n\t } else {\n\t cachedClearTimeout = defaultClearTimeout;\n\t }\n\t } catch (e) {\n\t cachedClearTimeout = defaultClearTimeout;\n\t }\n\t} ())\n\tfunction runTimeout(fun) {\n\t if (cachedSetTimeout === setTimeout) {\n\t //normal enviroments in sane situations\n\t return setTimeout(fun, 0);\n\t }\n\t // if setTimeout wasn't available but was latter defined\n\t if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n\t cachedSetTimeout = setTimeout;\n\t return setTimeout(fun, 0);\n\t }\n\t try {\n\t // when when somebody has screwed with setTimeout but no I.E. maddness\n\t return cachedSetTimeout(fun, 0);\n\t } catch(e){\n\t try {\n\t // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n\t return cachedSetTimeout.call(null, fun, 0);\n\t } catch(e){\n\t // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n\t return cachedSetTimeout.call(this, fun, 0);\n\t }\n\t }\n\t\n\t\n\t}\n\tfunction runClearTimeout(marker) {\n\t if (cachedClearTimeout === clearTimeout) {\n\t //normal enviroments in sane situations\n\t return clearTimeout(marker);\n\t }\n\t // if clearTimeout wasn't available but was latter defined\n\t if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n\t cachedClearTimeout = clearTimeout;\n\t return clearTimeout(marker);\n\t }\n\t try {\n\t // when when somebody has screwed with setTimeout but no I.E. maddness\n\t return cachedClearTimeout(marker);\n\t } catch (e){\n\t try {\n\t // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n\t return cachedClearTimeout.call(null, marker);\n\t } catch (e){\n\t // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n\t // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n\t return cachedClearTimeout.call(this, marker);\n\t }\n\t }\n\t\n\t\n\t\n\t}\n\tvar queue = [];\n\tvar draining = false;\n\tvar currentQueue;\n\tvar queueIndex = -1;\n\t\n\tfunction cleanUpNextTick() {\n\t if (!draining || !currentQueue) {\n\t return;\n\t }\n\t draining = false;\n\t if (currentQueue.length) {\n\t queue = currentQueue.concat(queue);\n\t } else {\n\t queueIndex = -1;\n\t }\n\t if (queue.length) {\n\t drainQueue();\n\t }\n\t}\n\t\n\tfunction drainQueue() {\n\t if (draining) {\n\t return;\n\t }\n\t var timeout = runTimeout(cleanUpNextTick);\n\t draining = true;\n\t\n\t var len = queue.length;\n\t while(len) {\n\t currentQueue = queue;\n\t queue = [];\n\t while (++queueIndex < len) {\n\t if (currentQueue) {\n\t currentQueue[queueIndex].run();\n\t }\n\t }\n\t queueIndex = -1;\n\t len = queue.length;\n\t }\n\t currentQueue = null;\n\t draining = false;\n\t runClearTimeout(timeout);\n\t}\n\t\n\tprocess.nextTick = function (fun) {\n\t var args = new Array(arguments.length - 1);\n\t if (arguments.length > 1) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t args[i - 1] = arguments[i];\n\t }\n\t }\n\t queue.push(new Item(fun, args));\n\t if (queue.length === 1 && !draining) {\n\t runTimeout(drainQueue);\n\t }\n\t};\n\t\n\t// v8 likes predictible objects\n\tfunction Item(fun, array) {\n\t this.fun = fun;\n\t this.array = array;\n\t}\n\tItem.prototype.run = function () {\n\t this.fun.apply(null, this.array);\n\t};\n\tprocess.title = 'browser';\n\tprocess.browser = true;\n\tprocess.env = {};\n\tprocess.argv = [];\n\tprocess.version = ''; // empty string to avoid regexp issues\n\tprocess.versions = {};\n\t\n\tfunction noop() {}\n\t\n\tprocess.on = noop;\n\tprocess.addListener = noop;\n\tprocess.once = noop;\n\tprocess.off = noop;\n\tprocess.removeListener = noop;\n\tprocess.removeAllListeners = noop;\n\tprocess.emit = noop;\n\t\n\tprocess.binding = function (name) {\n\t throw new Error('process.binding is not supported');\n\t};\n\t\n\tprocess.cwd = function () { return '/' };\n\tprocess.chdir = function (dir) {\n\t throw new Error('process.chdir is not supported');\n\t};\n\tprocess.umask = function() { return 0; };\n\n\n/***/ },\n\n/***/ 48:\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global, process, console) {// Copyright Joyent, Inc. and other Node contributors.\n\t//\n\t// Permission is hereby granted, free of charge, to any person obtaining a\n\t// copy of this software and associated documentation files (the\n\t// \"Software\"), to deal in the Software without restriction, including\n\t// without limitation the rights to use, copy, modify, merge, publish,\n\t// distribute, sublicense, and/or sell copies of the Software, and to permit\n\t// persons to whom the Software is furnished to do so, subject to the\n\t// following conditions:\n\t//\n\t// The above copyright notice and this permission notice shall be included\n\t// in all copies or substantial portions of the Software.\n\t//\n\t// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n\t// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n\t// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n\t// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n\t// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n\t// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n\t// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\t\n\tvar formatRegExp = /%[sdj%]/g;\n\texports.format = function(f) {\n\t if (!isString(f)) {\n\t var objects = [];\n\t for (var i = 0; i < arguments.length; i++) {\n\t objects.push(inspect(arguments[i]));\n\t }\n\t return objects.join(' ');\n\t }\n\t\n\t var i = 1;\n\t var args = arguments;\n\t var len = args.length;\n\t var str = String(f).replace(formatRegExp, function(x) {\n\t if (x === '%%') return '%';\n\t if (i >= len) return x;\n\t switch (x) {\n\t case '%s': return String(args[i++]);\n\t case '%d': return Number(args[i++]);\n\t case '%j':\n\t try {\n\t return JSON.stringify(args[i++]);\n\t } catch (_) {\n\t return '[Circular]';\n\t }\n\t default:\n\t return x;\n\t }\n\t });\n\t for (var x = args[i]; i < len; x = args[++i]) {\n\t if (isNull(x) || !isObject(x)) {\n\t str += ' ' + x;\n\t } else {\n\t str += ' ' + inspect(x);\n\t }\n\t }\n\t return str;\n\t};\n\t\n\t\n\t// Mark that a method should not be used.\n\t// Returns a modified function which warns once by default.\n\t// If --no-deprecation is set, then it is a no-op.\n\texports.deprecate = function(fn, msg) {\n\t // Allow for deprecating things in the process of starting up.\n\t if (isUndefined(global.process)) {\n\t return function() {\n\t return exports.deprecate(fn, msg).apply(this, arguments);\n\t };\n\t }\n\t\n\t if (process.noDeprecation === true) {\n\t return fn;\n\t }\n\t\n\t var warned = false;\n\t function deprecated() {\n\t if (!warned) {\n\t if (process.throwDeprecation) {\n\t throw new Error(msg);\n\t } else if (process.traceDeprecation) {\n\t console.trace(msg);\n\t } else {\n\t console.error(msg);\n\t }\n\t warned = true;\n\t }\n\t return fn.apply(this, arguments);\n\t }\n\t\n\t return deprecated;\n\t};\n\t\n\t\n\tvar debugs = {};\n\tvar debugEnviron;\n\texports.debuglog = function(set) {\n\t if (isUndefined(debugEnviron))\n\t debugEnviron = process.env.NODE_DEBUG || '';\n\t set = set.toUpperCase();\n\t if (!debugs[set]) {\n\t if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n\t var pid = process.pid;\n\t debugs[set] = function() {\n\t var msg = exports.format.apply(exports, arguments);\n\t console.error('%s %d: %s', set, pid, msg);\n\t };\n\t } else {\n\t debugs[set] = function() {};\n\t }\n\t }\n\t return debugs[set];\n\t};\n\t\n\t\n\t/**\n\t * Echos the value of a value. Trys to print the value out\n\t * in the best way possible given the different types.\n\t *\n\t * @param {Object} obj The object to print out.\n\t * @param {Object} opts Optional options object that alters the output.\n\t */\n\t/* legacy: obj, showHidden, depth, colors*/\n\tfunction inspect(obj, opts) {\n\t // default options\n\t var ctx = {\n\t seen: [],\n\t stylize: stylizeNoColor\n\t };\n\t // legacy...\n\t if (arguments.length >= 3) ctx.depth = arguments[2];\n\t if (arguments.length >= 4) ctx.colors = arguments[3];\n\t if (isBoolean(opts)) {\n\t // legacy...\n\t ctx.showHidden = opts;\n\t } else if (opts) {\n\t // got an \"options\" object\n\t exports._extend(ctx, opts);\n\t }\n\t // set default options\n\t if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n\t if (isUndefined(ctx.depth)) ctx.depth = 2;\n\t if (isUndefined(ctx.colors)) ctx.colors = false;\n\t if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n\t if (ctx.colors) ctx.stylize = stylizeWithColor;\n\t return formatValue(ctx, obj, ctx.depth);\n\t}\n\texports.inspect = inspect;\n\t\n\t\n\t// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\n\tinspect.colors = {\n\t 'bold' : [1, 22],\n\t 'italic' : [3, 23],\n\t 'underline' : [4, 24],\n\t 'inverse' : [7, 27],\n\t 'white' : [37, 39],\n\t 'grey' : [90, 39],\n\t 'black' : [30, 39],\n\t 'blue' : [34, 39],\n\t 'cyan' : [36, 39],\n\t 'green' : [32, 39],\n\t 'magenta' : [35, 39],\n\t 'red' : [31, 39],\n\t 'yellow' : [33, 39]\n\t};\n\t\n\t// Don't use 'blue' not visible on cmd.exe\n\tinspect.styles = {\n\t 'special': 'cyan',\n\t 'number': 'yellow',\n\t 'boolean': 'yellow',\n\t 'undefined': 'grey',\n\t 'null': 'bold',\n\t 'string': 'green',\n\t 'date': 'magenta',\n\t // \"name\": intentionally not styling\n\t 'regexp': 'red'\n\t};\n\t\n\t\n\tfunction stylizeWithColor(str, styleType) {\n\t var style = inspect.styles[styleType];\n\t\n\t if (style) {\n\t return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n\t '\\u001b[' + inspect.colors[style][1] + 'm';\n\t } else {\n\t return str;\n\t }\n\t}\n\t\n\t\n\tfunction stylizeNoColor(str, styleType) {\n\t return str;\n\t}\n\t\n\t\n\tfunction arrayToHash(array) {\n\t var hash = {};\n\t\n\t array.forEach(function(val, idx) {\n\t hash[val] = true;\n\t });\n\t\n\t return hash;\n\t}\n\t\n\t\n\tfunction formatValue(ctx, value, recurseTimes) {\n\t // Provide a hook for user-specified inspect functions.\n\t // Check that value is an object with an inspect function on it\n\t if (ctx.customInspect &&\n\t value &&\n\t isFunction(value.inspect) &&\n\t // Filter out the util module, it's inspect function is special\n\t value.inspect !== exports.inspect &&\n\t // Also filter out any prototype objects using the circular check.\n\t !(value.constructor && value.constructor.prototype === value)) {\n\t var ret = value.inspect(recurseTimes, ctx);\n\t if (!isString(ret)) {\n\t ret = formatValue(ctx, ret, recurseTimes);\n\t }\n\t return ret;\n\t }\n\t\n\t // Primitive types cannot have properties\n\t var primitive = formatPrimitive(ctx, value);\n\t if (primitive) {\n\t return primitive;\n\t }\n\t\n\t // Look up the keys of the object.\n\t var keys = Object.keys(value);\n\t var visibleKeys = arrayToHash(keys);\n\t\n\t if (ctx.showHidden) {\n\t keys = Object.getOwnPropertyNames(value);\n\t }\n\t\n\t // IE doesn't make error fields non-enumerable\n\t // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n\t if (isError(value)\n\t && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n\t return formatError(value);\n\t }\n\t\n\t // Some type of object without properties can be shortcutted.\n\t if (keys.length === 0) {\n\t if (isFunction(value)) {\n\t var name = value.name ? ': ' + value.name : '';\n\t return ctx.stylize('[Function' + name + ']', 'special');\n\t }\n\t if (isRegExp(value)) {\n\t return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n\t }\n\t if (isDate(value)) {\n\t return ctx.stylize(Date.prototype.toString.call(value), 'date');\n\t }\n\t if (isError(value)) {\n\t return formatError(value);\n\t }\n\t }\n\t\n\t var base = '', array = false, braces = ['{', '}'];\n\t\n\t // Make Array say that they are Array\n\t if (isArray(value)) {\n\t array = true;\n\t braces = ['[', ']'];\n\t }\n\t\n\t // Make functions say that they are functions\n\t if (isFunction(value)) {\n\t var n = value.name ? ': ' + value.name : '';\n\t base = ' [Function' + n + ']';\n\t }\n\t\n\t // Make RegExps say that they are RegExps\n\t if (isRegExp(value)) {\n\t base = ' ' + RegExp.prototype.toString.call(value);\n\t }\n\t\n\t // Make dates with properties first say the date\n\t if (isDate(value)) {\n\t base = ' ' + Date.prototype.toUTCString.call(value);\n\t }\n\t\n\t // Make error with message first say the error\n\t if (isError(value)) {\n\t base = ' ' + formatError(value);\n\t }\n\t\n\t if (keys.length === 0 && (!array || value.length == 0)) {\n\t return braces[0] + base + braces[1];\n\t }\n\t\n\t if (recurseTimes < 0) {\n\t if (isRegExp(value)) {\n\t return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n\t } else {\n\t return ctx.stylize('[Object]', 'special');\n\t }\n\t }\n\t\n\t ctx.seen.push(value);\n\t\n\t var output;\n\t if (array) {\n\t output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n\t } else {\n\t output = keys.map(function(key) {\n\t return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n\t });\n\t }\n\t\n\t ctx.seen.pop();\n\t\n\t return reduceToSingleString(output, base, braces);\n\t}\n\t\n\t\n\tfunction formatPrimitive(ctx, value) {\n\t if (isUndefined(value))\n\t return ctx.stylize('undefined', 'undefined');\n\t if (isString(value)) {\n\t var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n\t .replace(/'/g, \"\\\\'\")\n\t .replace(/\\\\\"/g, '\"') + '\\'';\n\t return ctx.stylize(simple, 'string');\n\t }\n\t if (isNumber(value))\n\t return ctx.stylize('' + value, 'number');\n\t if (isBoolean(value))\n\t return ctx.stylize('' + value, 'boolean');\n\t // For some reason typeof null is \"object\", so special case here.\n\t if (isNull(value))\n\t return ctx.stylize('null', 'null');\n\t}\n\t\n\t\n\tfunction formatError(value) {\n\t return '[' + Error.prototype.toString.call(value) + ']';\n\t}\n\t\n\t\n\tfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n\t var output = [];\n\t for (var i = 0, l = value.length; i < l; ++i) {\n\t if (hasOwnProperty(value, String(i))) {\n\t output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n\t String(i), true));\n\t } else {\n\t output.push('');\n\t }\n\t }\n\t keys.forEach(function(key) {\n\t if (!key.match(/^\\d+$/)) {\n\t output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n\t key, true));\n\t }\n\t });\n\t return output;\n\t}\n\t\n\t\n\tfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n\t var name, str, desc;\n\t desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n\t if (desc.get) {\n\t if (desc.set) {\n\t str = ctx.stylize('[Getter/Setter]', 'special');\n\t } else {\n\t str = ctx.stylize('[Getter]', 'special');\n\t }\n\t } else {\n\t if (desc.set) {\n\t str = ctx.stylize('[Setter]', 'special');\n\t }\n\t }\n\t if (!hasOwnProperty(visibleKeys, key)) {\n\t name = '[' + key + ']';\n\t }\n\t if (!str) {\n\t if (ctx.seen.indexOf(desc.value) < 0) {\n\t if (isNull(recurseTimes)) {\n\t str = formatValue(ctx, desc.value, null);\n\t } else {\n\t str = formatValue(ctx, desc.value, recurseTimes - 1);\n\t }\n\t if (str.indexOf('\\n') > -1) {\n\t if (array) {\n\t str = str.split('\\n').map(function(line) {\n\t return ' ' + line;\n\t }).join('\\n').substr(2);\n\t } else {\n\t str = '\\n' + str.split('\\n').map(function(line) {\n\t return ' ' + line;\n\t }).join('\\n');\n\t }\n\t }\n\t } else {\n\t str = ctx.stylize('[Circular]', 'special');\n\t }\n\t }\n\t if (isUndefined(name)) {\n\t if (array && key.match(/^\\d+$/)) {\n\t return str;\n\t }\n\t name = JSON.stringify('' + key);\n\t if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n\t name = name.substr(1, name.length - 2);\n\t name = ctx.stylize(name, 'name');\n\t } else {\n\t name = name.replace(/'/g, \"\\\\'\")\n\t .replace(/\\\\\"/g, '\"')\n\t .replace(/(^\"|\"$)/g, \"'\");\n\t name = ctx.stylize(name, 'string');\n\t }\n\t }\n\t\n\t return name + ': ' + str;\n\t}\n\t\n\t\n\tfunction reduceToSingleString(output, base, braces) {\n\t var numLinesEst = 0;\n\t var length = output.reduce(function(prev, cur) {\n\t numLinesEst++;\n\t if (cur.indexOf('\\n') >= 0) numLinesEst++;\n\t return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n\t }, 0);\n\t\n\t if (length > 60) {\n\t return braces[0] +\n\t (base === '' ? '' : base + '\\n ') +\n\t ' ' +\n\t output.join(',\\n ') +\n\t ' ' +\n\t braces[1];\n\t }\n\t\n\t return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n\t}\n\t\n\t\n\t// NOTE: These type checking functions intentionally don't use `instanceof`\n\t// because it is fragile and can be easily faked with `Object.create()`.\n\tfunction isArray(ar) {\n\t return Array.isArray(ar);\n\t}\n\texports.isArray = isArray;\n\t\n\tfunction isBoolean(arg) {\n\t return typeof arg === 'boolean';\n\t}\n\texports.isBoolean = isBoolean;\n\t\n\tfunction isNull(arg) {\n\t return arg === null;\n\t}\n\texports.isNull = isNull;\n\t\n\tfunction isNullOrUndefined(arg) {\n\t return arg == null;\n\t}\n\texports.isNullOrUndefined = isNullOrUndefined;\n\t\n\tfunction isNumber(arg) {\n\t return typeof arg === 'number';\n\t}\n\texports.isNumber = isNumber;\n\t\n\tfunction isString(arg) {\n\t return typeof arg === 'string';\n\t}\n\texports.isString = isString;\n\t\n\tfunction isSymbol(arg) {\n\t return typeof arg === 'symbol';\n\t}\n\texports.isSymbol = isSymbol;\n\t\n\tfunction isUndefined(arg) {\n\t return arg === void 0;\n\t}\n\texports.isUndefined = isUndefined;\n\t\n\tfunction isRegExp(re) {\n\t return isObject(re) && objectToString(re) === '[object RegExp]';\n\t}\n\texports.isRegExp = isRegExp;\n\t\n\tfunction isObject(arg) {\n\t return typeof arg === 'object' && arg !== null;\n\t}\n\texports.isObject = isObject;\n\t\n\tfunction isDate(d) {\n\t return isObject(d) && objectToString(d) === '[object Date]';\n\t}\n\texports.isDate = isDate;\n\t\n\tfunction isError(e) {\n\t return isObject(e) &&\n\t (objectToString(e) === '[object Error]' || e instanceof Error);\n\t}\n\texports.isError = isError;\n\t\n\tfunction isFunction(arg) {\n\t return typeof arg === 'function';\n\t}\n\texports.isFunction = isFunction;\n\t\n\tfunction isPrimitive(arg) {\n\t return arg === null ||\n\t typeof arg === 'boolean' ||\n\t typeof arg === 'number' ||\n\t typeof arg === 'string' ||\n\t typeof arg === 'symbol' || // ES6 symbol\n\t typeof arg === 'undefined';\n\t}\n\texports.isPrimitive = isPrimitive;\n\t\n\texports.isBuffer = __webpack_require__(97);\n\t\n\tfunction objectToString(o) {\n\t return Object.prototype.toString.call(o);\n\t}\n\t\n\t\n\tfunction pad(n) {\n\t return n < 10 ? '0' + n.toString(10) : n.toString(10);\n\t}\n\t\n\t\n\tvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n\t 'Oct', 'Nov', 'Dec'];\n\t\n\t// 26 Feb 16:19:34\n\tfunction timestamp() {\n\t var d = new Date();\n\t var time = [pad(d.getHours()),\n\t pad(d.getMinutes()),\n\t pad(d.getSeconds())].join(':');\n\t return [d.getDate(), months[d.getMonth()], time].join(' ');\n\t}\n\t\n\t\n\t// log is just a thin wrapper to console.log that prepends a timestamp\n\texports.log = function() {\n\t console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n\t};\n\t\n\t\n\t/**\n\t * Inherit the prototype methods from one constructor into another.\n\t *\n\t * The Function.prototype.inherits from lang.js rewritten as a standalone\n\t * function (not on Function.prototype). NOTE: If this file is to be loaded\n\t * during bootstrapping this function needs to be rewritten using some native\n\t * functions as prototype setup using normal JavaScript does not work as\n\t * expected during bootstrapping (see mirror.js in r114903).\n\t *\n\t * @param {function} ctor Constructor function which needs to inherit the\n\t * prototype.\n\t * @param {function} superCtor Constructor function to inherit prototype from.\n\t */\n\texports.inherits = __webpack_require__(96);\n\t\n\texports._extend = function(origin, add) {\n\t // Don't do anything if add isn't an object\n\t if (!add || !isObject(add)) return origin;\n\t\n\t var keys = Object.keys(add);\n\t var i = keys.length;\n\t while (i--) {\n\t origin[keys[i]] = add[keys[i]];\n\t }\n\t return origin;\n\t};\n\t\n\tfunction hasOwnProperty(obj, prop) {\n\t return Object.prototype.hasOwnProperty.call(obj, prop);\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(46), __webpack_require__(8)))\n\n/***/ },\n\n/***/ 94:\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\n\t\n\t// compare and isBuffer taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n\t// original notice:\n\t\n\t/*!\n\t * The buffer module from node.js, for the browser.\n\t *\n\t * @author Feross Aboukhadijeh \n\t * @license MIT\n\t */\n\tfunction compare(a, b) {\n\t if (a === b) {\n\t return 0;\n\t }\n\t\n\t var x = a.length;\n\t var y = b.length;\n\t\n\t for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break;\n\t }\n\t }\n\t\n\t if (x < y) {\n\t return -1;\n\t }\n\t if (y < x) {\n\t return 1;\n\t }\n\t return 0;\n\t}\n\tfunction isBuffer(b) {\n\t if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {\n\t return global.Buffer.isBuffer(b);\n\t }\n\t return !!(b != null && b._isBuffer);\n\t}\n\t\n\t// based on node assert, original notice:\n\t\n\t// http://wiki.commonjs.org/wiki/Unit_Testing/1.0\n\t//\n\t// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!\n\t//\n\t// Originally from narwhal.js (http://narwhaljs.org)\n\t// Copyright (c) 2009 Thomas Robinson <280north.com>\n\t//\n\t// Permission is hereby granted, free of charge, to any person obtaining a copy\n\t// of this software and associated documentation files (the 'Software'), to\n\t// deal in the Software without restriction, including without limitation the\n\t// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n\t// sell copies of the Software, and to permit persons to whom the Software is\n\t// furnished to do so, subject to the following conditions:\n\t//\n\t// The above copyright notice and this permission notice shall be included in\n\t// all copies or substantial portions of the Software.\n\t//\n\t// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\t// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\t// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\t// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n\t// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n\t// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\t\n\tvar util = __webpack_require__(48);\n\tvar hasOwn = Object.prototype.hasOwnProperty;\n\tvar pSlice = Array.prototype.slice;\n\tvar functionsHaveNames = (function () {\n\t return function foo() {}.name === 'foo';\n\t}());\n\tfunction pToString (obj) {\n\t return Object.prototype.toString.call(obj);\n\t}\n\tfunction isView(arrbuf) {\n\t if (isBuffer(arrbuf)) {\n\t return false;\n\t }\n\t if (typeof global.ArrayBuffer !== 'function') {\n\t return false;\n\t }\n\t if (typeof ArrayBuffer.isView === 'function') {\n\t return ArrayBuffer.isView(arrbuf);\n\t }\n\t if (!arrbuf) {\n\t return false;\n\t }\n\t if (arrbuf instanceof DataView) {\n\t return true;\n\t }\n\t if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {\n\t return true;\n\t }\n\t return false;\n\t}\n\t// 1. The assert module provides functions that throw\n\t// AssertionError's when particular conditions are not met. The\n\t// assert module must conform to the following interface.\n\t\n\tvar assert = module.exports = ok;\n\t\n\t// 2. The AssertionError is defined in assert.\n\t// new assert.AssertionError({ message: message,\n\t// actual: actual,\n\t// expected: expected })\n\t\n\tvar regex = /\\s*function\\s+([^\\(\\s]*)\\s*/;\n\t// based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js\n\tfunction getName(func) {\n\t if (!util.isFunction(func)) {\n\t return;\n\t }\n\t if (functionsHaveNames) {\n\t return func.name;\n\t }\n\t var str = func.toString();\n\t var match = str.match(regex);\n\t return match && match[1];\n\t}\n\tassert.AssertionError = function AssertionError(options) {\n\t this.name = 'AssertionError';\n\t this.actual = options.actual;\n\t this.expected = options.expected;\n\t this.operator = options.operator;\n\t if (options.message) {\n\t this.message = options.message;\n\t this.generatedMessage = false;\n\t } else {\n\t this.message = getMessage(this);\n\t this.generatedMessage = true;\n\t }\n\t var stackStartFunction = options.stackStartFunction || fail;\n\t if (Error.captureStackTrace) {\n\t Error.captureStackTrace(this, stackStartFunction);\n\t } else {\n\t // non v8 browsers so we can have a stacktrace\n\t var err = new Error();\n\t if (err.stack) {\n\t var out = err.stack;\n\t\n\t // try to strip useless frames\n\t var fn_name = getName(stackStartFunction);\n\t var idx = out.indexOf('\\n' + fn_name);\n\t if (idx >= 0) {\n\t // once we have located the function frame\n\t // we need to strip out everything before it (and its line)\n\t var next_line = out.indexOf('\\n', idx + 1);\n\t out = out.substring(next_line + 1);\n\t }\n\t\n\t this.stack = out;\n\t }\n\t }\n\t};\n\t\n\t// assert.AssertionError instanceof Error\n\tutil.inherits(assert.AssertionError, Error);\n\t\n\tfunction truncate(s, n) {\n\t if (typeof s === 'string') {\n\t return s.length < n ? s : s.slice(0, n);\n\t } else {\n\t return s;\n\t }\n\t}\n\tfunction inspect(something) {\n\t if (functionsHaveNames || !util.isFunction(something)) {\n\t return util.inspect(something);\n\t }\n\t var rawname = getName(something);\n\t var name = rawname ? ': ' + rawname : '';\n\t return '[Function' + name + ']';\n\t}\n\tfunction getMessage(self) {\n\t return truncate(inspect(self.actual), 128) + ' ' +\n\t self.operator + ' ' +\n\t truncate(inspect(self.expected), 128);\n\t}\n\t\n\t// At present only the three keys mentioned above are used and\n\t// understood by the spec. Implementations or sub modules can pass\n\t// other keys to the AssertionError's constructor - they will be\n\t// ignored.\n\t\n\t// 3. All of the following functions must throw an AssertionError\n\t// when a corresponding condition is not met, with a message that\n\t// may be undefined if not provided. All assertion methods provide\n\t// both the actual and expected values to the assertion error for\n\t// display purposes.\n\t\n\tfunction fail(actual, expected, message, operator, stackStartFunction) {\n\t throw new assert.AssertionError({\n\t message: message,\n\t actual: actual,\n\t expected: expected,\n\t operator: operator,\n\t stackStartFunction: stackStartFunction\n\t });\n\t}\n\t\n\t// EXTENSION! allows for well behaved errors defined elsewhere.\n\tassert.fail = fail;\n\t\n\t// 4. Pure assertion tests whether a value is truthy, as determined\n\t// by !!guard.\n\t// assert.ok(guard, message_opt);\n\t// This statement is equivalent to assert.equal(true, !!guard,\n\t// message_opt);. To test strictly for the value true, use\n\t// assert.strictEqual(true, guard, message_opt);.\n\t\n\tfunction ok(value, message) {\n\t if (!value) fail(value, true, message, '==', assert.ok);\n\t}\n\tassert.ok = ok;\n\t\n\t// 5. The equality assertion tests shallow, coercive equality with\n\t// ==.\n\t// assert.equal(actual, expected, message_opt);\n\t\n\tassert.equal = function equal(actual, expected, message) {\n\t if (actual != expected) fail(actual, expected, message, '==', assert.equal);\n\t};\n\t\n\t// 6. The non-equality assertion tests for whether two objects are not equal\n\t// with != assert.notEqual(actual, expected, message_opt);\n\t\n\tassert.notEqual = function notEqual(actual, expected, message) {\n\t if (actual == expected) {\n\t fail(actual, expected, message, '!=', assert.notEqual);\n\t }\n\t};\n\t\n\t// 7. The equivalence assertion tests a deep equality relation.\n\t// assert.deepEqual(actual, expected, message_opt);\n\t\n\tassert.deepEqual = function deepEqual(actual, expected, message) {\n\t if (!_deepEqual(actual, expected, false)) {\n\t fail(actual, expected, message, 'deepEqual', assert.deepEqual);\n\t }\n\t};\n\t\n\tassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n\t if (!_deepEqual(actual, expected, true)) {\n\t fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);\n\t }\n\t};\n\t\n\tfunction _deepEqual(actual, expected, strict, memos) {\n\t // 7.1. All identical values are equivalent, as determined by ===.\n\t if (actual === expected) {\n\t return true;\n\t } else if (isBuffer(actual) && isBuffer(expected)) {\n\t return compare(actual, expected) === 0;\n\t\n\t // 7.2. If the expected value is a Date object, the actual value is\n\t // equivalent if it is also a Date object that refers to the same time.\n\t } else if (util.isDate(actual) && util.isDate(expected)) {\n\t return actual.getTime() === expected.getTime();\n\t\n\t // 7.3 If the expected value is a RegExp object, the actual value is\n\t // equivalent if it is also a RegExp object with the same source and\n\t // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).\n\t } else if (util.isRegExp(actual) && util.isRegExp(expected)) {\n\t return actual.source === expected.source &&\n\t actual.global === expected.global &&\n\t actual.multiline === expected.multiline &&\n\t actual.lastIndex === expected.lastIndex &&\n\t actual.ignoreCase === expected.ignoreCase;\n\t\n\t // 7.4. Other pairs that do not both pass typeof value == 'object',\n\t // equivalence is determined by ==.\n\t } else if ((actual === null || typeof actual !== 'object') &&\n\t (expected === null || typeof expected !== 'object')) {\n\t return strict ? actual === expected : actual == expected;\n\t\n\t // If both values are instances of typed arrays, wrap their underlying\n\t // ArrayBuffers in a Buffer each to increase performance\n\t // This optimization requires the arrays to have the same type as checked by\n\t // Object.prototype.toString (aka pToString). Never perform binary\n\t // comparisons for Float*Arrays, though, since e.g. +0 === -0 but their\n\t // bit patterns are not identical.\n\t } else if (isView(actual) && isView(expected) &&\n\t pToString(actual) === pToString(expected) &&\n\t !(actual instanceof Float32Array ||\n\t actual instanceof Float64Array)) {\n\t return compare(new Uint8Array(actual.buffer),\n\t new Uint8Array(expected.buffer)) === 0;\n\t\n\t // 7.5 For all other Object pairs, including Array objects, equivalence is\n\t // determined by having the same number of owned properties (as verified\n\t // with Object.prototype.hasOwnProperty.call), the same set of keys\n\t // (although not necessarily the same order), equivalent values for every\n\t // corresponding key, and an identical 'prototype' property. Note: this\n\t // accounts for both named and indexed properties on Arrays.\n\t } else if (isBuffer(actual) !== isBuffer(expected)) {\n\t return false;\n\t } else {\n\t memos = memos || {actual: [], expected: []};\n\t\n\t var actualIndex = memos.actual.indexOf(actual);\n\t if (actualIndex !== -1) {\n\t if (actualIndex === memos.expected.indexOf(expected)) {\n\t return true;\n\t }\n\t }\n\t\n\t memos.actual.push(actual);\n\t memos.expected.push(expected);\n\t\n\t return objEquiv(actual, expected, strict, memos);\n\t }\n\t}\n\t\n\tfunction isArguments(object) {\n\t return Object.prototype.toString.call(object) == '[object Arguments]';\n\t}\n\t\n\tfunction objEquiv(a, b, strict, actualVisitedObjects) {\n\t if (a === null || a === undefined || b === null || b === undefined)\n\t return false;\n\t // if one is a primitive, the other must be same\n\t if (util.isPrimitive(a) || util.isPrimitive(b))\n\t return a === b;\n\t if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))\n\t return false;\n\t var aIsArgs = isArguments(a);\n\t var bIsArgs = isArguments(b);\n\t if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))\n\t return false;\n\t if (aIsArgs) {\n\t a = pSlice.call(a);\n\t b = pSlice.call(b);\n\t return _deepEqual(a, b, strict);\n\t }\n\t var ka = objectKeys(a);\n\t var kb = objectKeys(b);\n\t var key, i;\n\t // having the same number of owned properties (keys incorporates\n\t // hasOwnProperty)\n\t if (ka.length !== kb.length)\n\t return false;\n\t //the same set of keys (although not necessarily the same order),\n\t ka.sort();\n\t kb.sort();\n\t //~~~cheap key test\n\t for (i = ka.length - 1; i >= 0; i--) {\n\t if (ka[i] !== kb[i])\n\t return false;\n\t }\n\t //equivalent values for every corresponding key, and\n\t //~~~possibly expensive deep test\n\t for (i = ka.length - 1; i >= 0; i--) {\n\t key = ka[i];\n\t if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))\n\t return false;\n\t }\n\t return true;\n\t}\n\t\n\t// 8. The non-equivalence assertion tests for any deep inequality.\n\t// assert.notDeepEqual(actual, expected, message_opt);\n\t\n\tassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n\t if (_deepEqual(actual, expected, false)) {\n\t fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);\n\t }\n\t};\n\t\n\tassert.notDeepStrictEqual = notDeepStrictEqual;\n\tfunction notDeepStrictEqual(actual, expected, message) {\n\t if (_deepEqual(actual, expected, true)) {\n\t fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);\n\t }\n\t}\n\t\n\t\n\t// 9. The strict equality assertion tests strict equality, as determined by ===.\n\t// assert.strictEqual(actual, expected, message_opt);\n\t\n\tassert.strictEqual = function strictEqual(actual, expected, message) {\n\t if (actual !== expected) {\n\t fail(actual, expected, message, '===', assert.strictEqual);\n\t }\n\t};\n\t\n\t// 10. The strict non-equality assertion tests for strict inequality, as\n\t// determined by !==. assert.notStrictEqual(actual, expected, message_opt);\n\t\n\tassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n\t if (actual === expected) {\n\t fail(actual, expected, message, '!==', assert.notStrictEqual);\n\t }\n\t};\n\t\n\tfunction expectedException(actual, expected) {\n\t if (!actual || !expected) {\n\t return false;\n\t }\n\t\n\t if (Object.prototype.toString.call(expected) == '[object RegExp]') {\n\t return expected.test(actual);\n\t }\n\t\n\t try {\n\t if (actual instanceof expected) {\n\t return true;\n\t }\n\t } catch (e) {\n\t // Ignore. The instanceof check doesn't work for arrow functions.\n\t }\n\t\n\t if (Error.isPrototypeOf(expected)) {\n\t return false;\n\t }\n\t\n\t return expected.call({}, actual) === true;\n\t}\n\t\n\tfunction _tryBlock(block) {\n\t var error;\n\t try {\n\t block();\n\t } catch (e) {\n\t error = e;\n\t }\n\t return error;\n\t}\n\t\n\tfunction _throws(shouldThrow, block, expected, message) {\n\t var actual;\n\t\n\t if (typeof block !== 'function') {\n\t throw new TypeError('\"block\" argument must be a function');\n\t }\n\t\n\t if (typeof expected === 'string') {\n\t message = expected;\n\t expected = null;\n\t }\n\t\n\t actual = _tryBlock(block);\n\t\n\t message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +\n\t (message ? ' ' + message : '.');\n\t\n\t if (shouldThrow && !actual) {\n\t fail(actual, expected, 'Missing expected exception' + message);\n\t }\n\t\n\t var userProvidedMessage = typeof message === 'string';\n\t var isUnwantedException = !shouldThrow && util.isError(actual);\n\t var isUnexpectedException = !shouldThrow && actual && !expected;\n\t\n\t if ((isUnwantedException &&\n\t userProvidedMessage &&\n\t expectedException(actual, expected)) ||\n\t isUnexpectedException) {\n\t fail(actual, expected, 'Got unwanted exception' + message);\n\t }\n\t\n\t if ((shouldThrow && actual && expected &&\n\t !expectedException(actual, expected)) || (!shouldThrow && actual)) {\n\t throw actual;\n\t }\n\t}\n\t\n\t// 11. Expected to throw an error:\n\t// assert.throws(block, Error_opt, message_opt);\n\t\n\tassert.throws = function(block, /*optional*/error, /*optional*/message) {\n\t _throws(true, block, error, message);\n\t};\n\t\n\t// EXTENSION! This is annoying to write outside this module.\n\tassert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {\n\t _throws(false, block, error, message);\n\t};\n\t\n\tassert.ifError = function(err) { if (err) throw err; };\n\t\n\tvar objectKeys = Object.keys || function (obj) {\n\t var keys = [];\n\t for (var key in obj) {\n\t if (hasOwn.call(obj, key)) keys.push(key);\n\t }\n\t return keys;\n\t};\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n\n/***/ 95:\n/***/ function(module, exports) {\n\n\tmodule.exports = now\n\t\n\tfunction now() {\n\t return new Date().getTime()\n\t}\n\n\n/***/ },\n\n/***/ 96:\n/***/ function(module, exports) {\n\n\tif (typeof Object.create === 'function') {\n\t // implementation from standard node.js 'util' module\n\t module.exports = function inherits(ctor, superCtor) {\n\t ctor.super_ = superCtor\n\t ctor.prototype = Object.create(superCtor.prototype, {\n\t constructor: {\n\t value: ctor,\n\t enumerable: false,\n\t writable: true,\n\t configurable: true\n\t }\n\t });\n\t };\n\t} else {\n\t // old school shim for old browsers\n\t module.exports = function inherits(ctor, superCtor) {\n\t ctor.super_ = superCtor\n\t var TempCtor = function () {}\n\t TempCtor.prototype = superCtor.prototype\n\t ctor.prototype = new TempCtor()\n\t ctor.prototype.constructor = ctor\n\t }\n\t}\n\n\n/***/ },\n\n/***/ 97:\n/***/ function(module, exports) {\n\n\tmodule.exports = function isBuffer(arg) {\n\t return arg && typeof arg === 'object'\n\t && typeof arg.copy === 'function'\n\t && typeof arg.fill === 'function'\n\t && typeof arg.readUInt8 === 'function';\n\t}\n\n/***/ },\n\n/***/ 872:\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(console) {'use strict';\n\t\n\t/* eslint-disable */\n\t/* スマホ・タブレット利用制限処理 */\n\t$(document).ready(function () {\n\t\t// ページ読み込み時に実行したい処理\n\t\t// Ajax通信を開始\n\t\tif (window.getUtilizationTimeInfo === undefined) {\n\t\t\treturn;\n\t\t}\n\t\t$.ajax({\n\t\t\turl: window.getUtilizationTimeInfo,\n\t\t\ttype: 'GET',\n\t\t\tdataType: 'json',\n\t\t\t// フォーム要素の内容をハッシュ形式に変換\n\t\t\t//data: $('form').serializeArray(),\n\t\t\t//timeout: 5000,\n\t\t\tsuccess: function success(data) {\n\t\t\t\t// 通信成功時の処理を記述\n\t\t\t\tconsole.log('success');\n\t\t\t\tif (data.result) {\n\t\t\t\t\tif (data.logout) {\n\t\t\t\t\t\twindow.location = data.logout_url;\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\talert(\"利用権限情報の取得に失敗しました。\");\n\t\t\t\t};\n\t\t\t},\n\t\t\terror: function error() {\n\t\t\t\t// 通信失敗時の処理を記述\n\t\t\t\talert(\"利用権限情報の取得に失敗しました。\");\n\t\t\t}\n\t\t});\n\t});\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8)))\n\n/***/ },\n\n/***/ 877:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t__webpack_require__(683);\n\t\n\t__webpack_require__(1127);\n\t\n\t__webpack_require__(1129);\n\t\n\t__webpack_require__(1133);\n\t\n\t__webpack_require__(872);\n\n/***/ },\n\n/***/ 1127:\n/***/ function(module, exports) {\n\n\t/**\n\t * Created with IntelliJ IDEA.\n\t * User: takeo\n\t * Date: 2012/12/27\n\t * Time: 18:03\n\t * To change this template use File | Settings | File Templates.\n\t */\n\t\n\t\n\t\n\t$(function () {\n\t $(\"a[rel='popover']\").popover({\n\t offset: 10\n\t });\n\t $(\"a[rel='popover']\").on('click', function(e) {\n\t e.preventDefault();\n\t return true;\n\t });\n\t});\n\t\n\n\n/***/ },\n\n/***/ 1129:\n/***/ function(module, exports) {\n\n\t/**\n\t * 外部ウィンドウを開く\n\t * @param {Object} url\n\t * @param {Object} options\n\t */\n\tfunction openWindow(url, options){\n\t var setting = {\n\t //TODO ウィンドウ名は乱数で払いだすこと。\n\t name: 'newWindow',\n\t width: 800,\n\t height: 600\n\t };\n\t\n\t //オプションをマージする\n\t if (options) {\n\t setting = jQuery.extend(setting, options)\n\t };\n\t\n\t var nWindow = window.open(url, setting.name, 'width=' + setting.width + ', height=' + setting.height + ', menubar=no, toolbar=no, scrollbars=yes, resizable=yes');\n\t nWindow.focus();\n\t\n\t}\n\t\n\t/**\n\t * VCET受験画面を開く\n\t * @param assign_no\n\t * @return\n\t */\n\tfunction openVcetWindow(SUPER_EIGO_CONTEXT_PATH,assign_no,isPreview){\n\t var url = '/'+SUPER_EIGO_CONTEXT_PATH+'/lplayer/index.cfm?visionary=vcet&assign_no='+assign_no + '&previewType=assign_vc&isPreview='+isPreview;\n\t var options = {\n\t name: 'mywindow2',\n\t width: 1024,\n\t height: 700\n\t };\n\t openWindow(url, options);\n\t}\n\n\n/***/ },\n\n/***/ 1133:\n/***/ function(module, exports) {\n\n\t/**\n\t * @preserve\n\t * FullCalendar v1.5.4\n\t * http://arshaw.com/fullcalendar/\n\t *\n\t * Use fullcalendar.css for basic styling.\n\t * For event drag & drop, requires jQuery UI draggable.\n\t * For event resizing, requires jQuery UI resizable.\n\t *\n\t * Copyright (c) 2011 Adam Shaw\n\t * Dual licensed under the MIT and GPL licenses, located in\n\t * MIT-LICENSE.txt and GPL-LICENSE.txt respectively.\n\t *\n\t * Date: Tue Sep 4 23:38:33 2012 -0700\n\t *\n\t */\n\t \n\t(function($, undefined) {\n\t\n\t\n\tvar defaults = {\n\t\n\t\t// display\n\t\tdefaultView: 'month',\n\t\taspectRatio: 1.35,\n\t\theader: {\n\t\t\tleft: 'title',\n\t\t\tcenter: '',\n\t\t\tright: 'today prev,next'\n\t\t},\n\t\tweekends: true,\n\t\t\n\t\t// editing\n\t\t//editable: false,\n\t\t//disableDragging: false,\n\t\t//disableResizing: false,\n\t\t\n\t\tallDayDefault: true,\n\t\tignoreTimezone: true,\n\t\t\n\t\t// event ajax\n\t\tlazyFetching: true,\n\t\tstartParam: 'start',\n\t\tendParam: 'end',\n\t\t\n\t\t// time formats\n\t\ttitleFormat: {\n\t\t\tmonth: 'MMMM yyyy',\n\t\t\tweek: \"MMM d[ yyyy]{ '—'[ MMM] d yyyy}\",\n\t\t\tday: 'dddd, MMM d, yyyy'\n\t\t},\n\t\tcolumnFormat: {\n\t\t\tmonth: 'ddd',\n\t\t\tweek: 'ddd M/d',\n\t\t\tday: 'dddd M/d'\n\t\t},\n\t\ttimeFormat: { // for event elements\n\t\t\t'': 'h(:mm)t' // default\n\t\t},\n\t\t\n\t\t// locale\n\t\tisRTL: false,\n\t\tfirstDay: 0,\n\t\tmonthNames: ['January','February','March','April','May','June','July','August','September','October','November','December'],\n\t\tmonthNamesShort: ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],\n\t\tdayNames: ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],\n\t\tdayNamesShort: ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],\n\t\tbuttonText: {\n\t\t\tprev: ' ◄ ',\n\t\t\tnext: ' ► ',\n\t\t\tprevYear: ' << ',\n\t\t\tnextYear: ' >> ',\n\t\t\ttoday: 'today',\n\t\t\tmonth: 'month',\n\t\t\tweek: 'week',\n\t\t\tday: 'day'\n\t\t},\n\t\t\n\t\t// jquery-ui theming\n\t\ttheme: false,\n\t\tbuttonIcons: {\n\t\t\tprev: 'circle-triangle-w',\n\t\t\tnext: 'circle-triangle-e'\n\t\t},\n\t\t\n\t\t//selectable: false,\n\t\tunselectAuto: true,\n\t\t\n\t\tdropAccept: '*'\n\t\t\n\t};\n\t\n\t// right-to-left defaults\n\tvar rtlDefaults = {\n\t\theader: {\n\t\t\tleft: 'next,prev today',\n\t\t\tcenter: '',\n\t\t\tright: 'title'\n\t\t},\n\t\tbuttonText: {\n\t\t\tprev: ' ► ',\n\t\t\tnext: ' ◄ ',\n\t\t\tprevYear: ' >> ',\n\t\t\tnextYear: ' << '\n\t\t},\n\t\tbuttonIcons: {\n\t\t\tprev: 'circle-triangle-e',\n\t\t\tnext: 'circle-triangle-w'\n\t\t}\n\t};\n\t\n\t\n\t\n\tvar fc = $.fullCalendar = { version: \"1.5.4\" };\n\tvar fcViews = fc.views = {};\n\t\n\t\n\t$.fn.fullCalendar = function(options) {\n\t\n\t\n\t\t// method calling\n\t\tif (typeof options == 'string') {\n\t\t\tvar args = Array.prototype.slice.call(arguments, 1);\n\t\t\tvar res;\n\t\t\tthis.each(function() {\n\t\t\t\tvar calendar = $.data(this, 'fullCalendar');\n\t\t\t\tif (calendar && $.isFunction(calendar[options])) {\n\t\t\t\t\tvar r = calendar[options].apply(calendar, args);\n\t\t\t\t\tif (res === undefined) {\n\t\t\t\t\t\tres = r;\n\t\t\t\t\t}\n\t\t\t\t\tif (options == 'destroy') {\n\t\t\t\t\t\t$.removeData(this, 'fullCalendar');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (res !== undefined) {\n\t\t\t\treturn res;\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\t\n\t\t\n\t\t// would like to have this logic in EventManager, but needs to happen before options are recursively extended\n\t\tvar eventSources = options.eventSources || [];\n\t\tdelete options.eventSources;\n\t\tif (options.events) {\n\t\t\teventSources.push(options.events);\n\t\t\tdelete options.events;\n\t\t}\n\t\t\n\t\n\t\toptions = $.extend(true, {},\n\t\t\tdefaults,\n\t\t\t(options.isRTL || options.isRTL===undefined && defaults.isRTL) ? rtlDefaults : {},\n\t\t\toptions\n\t\t);\n\t\t\n\t\t\n\t\tthis.each(function(i, _element) {\n\t\t\tvar element = $(_element);\n\t\t\tvar calendar = new Calendar(element, options, eventSources);\n\t\t\telement.data('fullCalendar', calendar); // TODO: look into memory leak implications\n\t\t\tcalendar.render();\n\t\t});\n\t\t\n\t\t\n\t\treturn this;\n\t\t\n\t};\n\t\n\t\n\t// function for adding/overriding defaults\n\tfunction setDefaults(d) {\n\t\t$.extend(true, defaults, d);\n\t}\n\t\n\t\n\t\n\t \n\tfunction Calendar(element, options, eventSources) {\n\t\tvar t = this;\n\t\t\n\t\t\n\t\t// exports\n\t\tt.options = options;\n\t\tt.render = render;\n\t\tt.destroy = destroy;\n\t\tt.refetchEvents = refetchEvents;\n\t\tt.reportEvents = reportEvents;\n\t\tt.reportEventChange = reportEventChange;\n\t\tt.rerenderEvents = rerenderEvents;\n\t\tt.changeView = changeView;\n\t\tt.select = select;\n\t\tt.unselect = unselect;\n\t\tt.prev = prev;\n\t\tt.next = next;\n\t\tt.prevYear = prevYear;\n\t\tt.nextYear = nextYear;\n\t\tt.today = today;\n\t\tt.gotoDate = gotoDate;\n\t\tt.incrementDate = incrementDate;\n\t\tt.formatDate = function(format, date) { return formatDate(format, date, options) };\n\t\tt.formatDates = function(format, date1, date2) { return formatDates(format, date1, date2, options) };\n\t\tt.getDate = getDate;\n\t\tt.getView = getView;\n\t\tt.option = option;\n\t\tt.trigger = trigger;\n\t\t\n\t\t\n\t\t// imports\n\t\tEventManager.call(t, options, eventSources);\n\t\tvar isFetchNeeded = t.isFetchNeeded;\n\t\tvar fetchEvents = t.fetchEvents;\n\t\t\n\t\t\n\t\t// locals\n\t\tvar _element = element[0];\n\t\tvar header;\n\t\tvar headerElement;\n\t\tvar content;\n\t\tvar tm; // for making theme classes\n\t\tvar currentView;\n\t\tvar viewInstances = {};\n\t\tvar elementOuterWidth;\n\t\tvar suggestedViewHeight;\n\t\tvar absoluteViewElement;\n\t\tvar resizeUID = 0;\n\t\tvar ignoreWindowResize = 0;\n\t\tvar date = new Date();\n\t\tvar events = [];\n\t\tvar _dragElement;\n\t\t\n\t\t\n\t\t\n\t\t/* Main Rendering\n\t\t-----------------------------------------------------------------------------*/\n\t\t\n\t\t\n\t\tsetYMD(date, options.year, options.month, options.date);\n\t\t\n\t\t\n\t\tfunction render(inc) {\n\t\t\tif (!content) {\n\t\t\t\tinitialRender();\n\t\t\t}else{\n\t\t\t\tcalcSize();\n\t\t\t\tmarkSizesDirty();\n\t\t\t\tmarkEventsDirty();\n\t\t\t\trenderView(inc);\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\tfunction initialRender() {\n\t\t\ttm = options.theme ? 'ui' : 'fc';\n\t\t\telement.addClass('fc');\n\t\t\tif (options.isRTL) {\n\t\t\t\telement.addClass('fc-rtl');\n\t\t\t}\n\t\t\tif (options.theme) {\n\t\t\t\telement.addClass('ui-widget');\n\t\t\t}\n\t\t\tcontent = $(\"
\")\n\t\t\t\t.prependTo(element);\n\t\t\theader = new Header(t, options);\n\t\t\theaderElement = header.render();\n\t\t\tif (headerElement) {\n\t\t\t\telement.prepend(headerElement);\n\t\t\t}\n\t\t\tchangeView(options.defaultView);\n\t\t\t$(window).resize(windowResize);\n\t\t\t// needed for IE in a 0x0 iframe, b/c when it is resized, never triggers a windowResize\n\t\t\tif (!bodyVisible()) {\n\t\t\t\tlateRender();\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\t// called when we know the calendar couldn't be rendered when it was initialized,\n\t\t// but we think it's ready now\n\t\tfunction lateRender() {\n\t\t\tsetTimeout(function() { // IE7 needs this so dimensions are calculated correctly\n\t\t\t\tif (!currentView.start && bodyVisible()) { // !currentView.start makes sure this never happens more than once\n\t\t\t\t\trenderView();\n\t\t\t\t}\n\t\t\t},0);\n\t\t}\n\t\t\n\t\t\n\t\tfunction destroy() {\n\t\t\t$(window).unbind('resize', windowResize);\n\t\t\theader.destroy();\n\t\t\tcontent.remove();\n\t\t\telement.removeClass('fc fc-rtl ui-widget');\n\t\t}\n\t\t\n\t\t\n\t\t\n\t\tfunction elementVisible() {\n\t\t\treturn _element.offsetWidth !== 0;\n\t\t}\n\t\t\n\t\t\n\t\tfunction bodyVisible() {\n\t\t\treturn $('body')[0].offsetWidth !== 0;\n\t\t}\n\t\t\n\t\t\n\t\t\n\t\t/* View Rendering\n\t\t-----------------------------------------------------------------------------*/\n\t\t\n\t\t// TODO: improve view switching (still weird transition in IE, and FF has whiteout problem)\n\t\t\n\t\tfunction changeView(newViewName) {\n\t\t\tif (!currentView || newViewName != currentView.name) {\n\t\t\t\tignoreWindowResize++; // because setMinHeight might change the height before render (and subsequently setSize) is reached\n\t\n\t\t\t\tunselect();\n\t\t\t\t\n\t\t\t\tvar oldView = currentView;\n\t\t\t\tvar newViewElement;\n\t\t\t\t\t\n\t\t\t\tif (oldView) {\n\t\t\t\t\t(oldView.beforeHide || noop)(); // called before changing min-height. if called after, scroll state is reset (in Opera)\n\t\t\t\t\tsetMinHeight(content, content.height());\n\t\t\t\t\toldView.element.hide();\n\t\t\t\t}else{\n\t\t\t\t\tsetMinHeight(content, 1); // needs to be 1 (not 0) for IE7, or else view dimensions miscalculated\n\t\t\t\t}\n\t\t\t\tcontent.css('overflow', 'hidden');\n\t\t\t\t\n\t\t\t\tcurrentView = viewInstances[newViewName];\n\t\t\t\tif (currentView) {\n\t\t\t\t\tcurrentView.element.show();\n\t\t\t\t}else{\n\t\t\t\t\tcurrentView = viewInstances[newViewName] = new fcViews[newViewName](\n\t\t\t\t\t\tnewViewElement = absoluteViewElement =\n\t\t\t\t\t\t\t$(\"
\")\n\t\t\t\t\t\t\t\t.appendTo(content),\n\t\t\t\t\t\tt // the calendar object\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif (oldView) {\n\t\t\t\t\theader.deactivateButton(oldView.name);\n\t\t\t\t}\n\t\t\t\theader.activateButton(newViewName);\n\t\t\t\t\n\t\t\t\trenderView(); // after height has been set, will make absoluteViewElement's position=relative, then set to null\n\t\t\t\t\n\t\t\t\tcontent.css('overflow', '');\n\t\t\t\tif (oldView) {\n\t\t\t\t\tsetMinHeight(content, 1);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif (!newViewElement) {\n\t\t\t\t\t(currentView.afterShow || noop)(); // called after setting min-height/overflow, so in final scroll state (for Opera)\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tignoreWindowResize--;\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\t\n\t\tfunction renderView(inc) {\n\t\t\tif (elementVisible()) {\n\t\t\t\tignoreWindowResize++; // because renderEvents might temporarily change the height before setSize is reached\n\t\n\t\t\t\tunselect();\n\t\t\t\t\n\t\t\t\tif (suggestedViewHeight === undefined) {\n\t\t\t\t\tcalcSize();\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tvar forceEventRender = false;\n\t\t\t\tif (!currentView.start || inc || date < currentView.start || date >= currentView.end) {\n\t\t\t\t\t// view must render an entire new date range (and refetch/render events)\n\t\t\t\t\tcurrentView.render(date, inc || 0); // responsible for clearing events\n\t\t\t\t\tsetSize(true);\n\t\t\t\t\tforceEventRender = true;\n\t\t\t\t}\n\t\t\t\telse if (currentView.sizeDirty) {\n\t\t\t\t\t// view must resize (and rerender events)\n\t\t\t\t\tcurrentView.clearEvents();\n\t\t\t\t\tsetSize();\n\t\t\t\t\tforceEventRender = true;\n\t\t\t\t}\n\t\t\t\telse if (currentView.eventsDirty) {\n\t\t\t\t\tcurrentView.clearEvents();\n\t\t\t\t\tforceEventRender = true;\n\t\t\t\t}\n\t\t\t\tcurrentView.sizeDirty = false;\n\t\t\t\tcurrentView.eventsDirty = false;\n\t\t\t\tupdateEvents(forceEventRender);\n\t\t\t\t\n\t\t\t\telementOuterWidth = element.outerWidth();\n\t\t\t\t\n\t\t\t\theader.updateTitle(currentView.title);\n\t\t\t\tvar today = new Date();\n\t\t\t\tif (today >= currentView.start && today < currentView.end) {\n\t\t\t\t\theader.disableButton('today');\n\t\t\t\t}else{\n\t\t\t\t\theader.enableButton('today');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tignoreWindowResize--;\n\t\t\t\tcurrentView.trigger('viewDisplay', _element);\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\t\n\t\t/* Resizing\n\t\t-----------------------------------------------------------------------------*/\n\t\t\n\t\t\n\t\tfunction updateSize() {\n\t\t\tmarkSizesDirty();\n\t\t\tif (elementVisible()) {\n\t\t\t\tcalcSize();\n\t\t\t\tsetSize();\n\t\t\t\tunselect();\n\t\t\t\tcurrentView.clearEvents();\n\t\t\t\tcurrentView.renderEvents(events);\n\t\t\t\tcurrentView.sizeDirty = false;\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\tfunction markSizesDirty() {\n\t\t\t$.each(viewInstances, function(i, inst) {\n\t\t\t\tinst.sizeDirty = true;\n\t\t\t});\n\t\t}\n\t\t\n\t\t\n\t\tfunction calcSize() {\n\t\t\tif (options.contentHeight) {\n\t\t\t\tsuggestedViewHeight = options.contentHeight;\n\t\t\t}\n\t\t\telse if (options.height) {\n\t\t\t\tsuggestedViewHeight = options.height - (headerElement ? headerElement.height() : 0) - vsides(content);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tsuggestedViewHeight = Math.round(content.width() / Math.max(options.aspectRatio, .5));\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\tfunction setSize(dateChanged) { // todo: dateChanged?\n\t\t\tignoreWindowResize++;\n\t\t\tcurrentView.setHeight(suggestedViewHeight, dateChanged);\n\t\t\tif (absoluteViewElement) {\n\t\t\t\tabsoluteViewElement.css('position', 'relative');\n\t\t\t\tabsoluteViewElement = null;\n\t\t\t}\n\t\t\tcurrentView.setWidth(content.width(), dateChanged);\n\t\t\tignoreWindowResize--;\n\t\t}\n\t\t\n\t\t\n\t\tfunction windowResize() {\n\t\t\tif (!ignoreWindowResize) {\n\t\t\t\tif (currentView.start) { // view has already been rendered\n\t\t\t\t\tvar uid = ++resizeUID;\n\t\t\t\t\tsetTimeout(function() { // add a delay\n\t\t\t\t\t\tif (uid == resizeUID && !ignoreWindowResize && elementVisible()) {\n\t\t\t\t\t\t\tif (elementOuterWidth != (elementOuterWidth = element.outerWidth())) {\n\t\t\t\t\t\t\t\tignoreWindowResize++; // in case the windowResize callback changes the height\n\t\t\t\t\t\t\t\tupdateSize();\n\t\t\t\t\t\t\t\tcurrentView.trigger('windowResize', _element);\n\t\t\t\t\t\t\t\tignoreWindowResize--;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 200);\n\t\t\t\t}else{\n\t\t\t\t\t// calendar must have been initialized in a 0x0 iframe that has just been resized\n\t\t\t\t\tlateRender();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\t\n\t\t/* Event Fetching/Rendering\n\t\t-----------------------------------------------------------------------------*/\n\t\t\n\t\t\n\t\t// fetches events if necessary, rerenders events if necessary (or if forced)\n\t\tfunction updateEvents(forceRender) {\n\t\t\tif (!options.lazyFetching || isFetchNeeded(currentView.visStart, currentView.visEnd)) {\n\t\t\t\trefetchEvents();\n\t\t\t}\n\t\t\telse if (forceRender) {\n\t\t\t\trerenderEvents();\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\tfunction refetchEvents() {\n\t\t\tfetchEvents(currentView.visStart, currentView.visEnd); // will call reportEvents\n\t\t}\n\t\t\n\t\t\n\t\t// called when event data arrives\n\t\tfunction reportEvents(_events) {\n\t\t\tevents = _events;\n\t\t\trerenderEvents();\n\t\t}\n\t\t\n\t\t\n\t\t// called when a single event's data has been changed\n\t\tfunction reportEventChange(eventID) {\n\t\t\trerenderEvents(eventID);\n\t\t}\n\t\t\n\t\t\n\t\t// attempts to rerenderEvents\n\t\tfunction rerenderEvents(modifiedEventID) {\n\t\t\tmarkEventsDirty();\n\t\t\tif (elementVisible()) {\n\t\t\t\tcurrentView.clearEvents();\n\t\t\t\tcurrentView.renderEvents(events, modifiedEventID);\n\t\t\t\tcurrentView.eventsDirty = false;\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\tfunction markEventsDirty() {\n\t\t\t$.each(viewInstances, function(i, inst) {\n\t\t\t\tinst.eventsDirty = true;\n\t\t\t});\n\t\t}\n\t\t\n\t\n\t\n\t\t/* Selection\n\t\t-----------------------------------------------------------------------------*/\n\t\t\n\t\n\t\tfunction select(start, end, allDay) {\n\t\t\tcurrentView.select(start, end, allDay===undefined ? true : allDay);\n\t\t}\n\t\t\n\t\n\t\tfunction unselect() { // safe to be called before renderView\n\t\t\tif (currentView) {\n\t\t\t\tcurrentView.unselect();\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\t\n\t\t/* Date\n\t\t-----------------------------------------------------------------------------*/\n\t\t\n\t\t\n\t\tfunction prev() {\n\t\t\trenderView(-1);\n\t\t}\n\t\t\n\t\t\n\t\tfunction next() {\n\t\t\trenderView(1);\n\t\t}\n\t\t\n\t\t\n\t\tfunction prevYear() {\n\t\t\taddYears(date, -1);\n\t\t\trenderView();\n\t\t}\n\t\t\n\t\t\n\t\tfunction nextYear() {\n\t\t\taddYears(date, 1);\n\t\t\trenderView();\n\t\t}\n\t\t\n\t\t\n\t\tfunction today() {\n\t\t\tdate = new Date();\n\t\t\trenderView();\n\t\t}\n\t\t\n\t\t\n\t\tfunction gotoDate(year, month, dateOfMonth) {\n\t\t\tif (year instanceof Date) {\n\t\t\t\tdate = cloneDate(year); // provided 1 argument, a Date\n\t\t\t}else{\n\t\t\t\tsetYMD(date, year, month, dateOfMonth);\n\t\t\t}\n\t\t\trenderView();\n\t\t}\n\t\t\n\t\t\n\t\tfunction incrementDate(years, months, days) {\n\t\t\tif (years !== undefined) {\n\t\t\t\taddYears(date, years);\n\t\t\t}\n\t\t\tif (months !== undefined) {\n\t\t\t\taddMonths(date, months);\n\t\t\t}\n\t\t\tif (days !== undefined) {\n\t\t\t\taddDays(date, days);\n\t\t\t}\n\t\t\trenderView();\n\t\t}\n\t\t\n\t\t\n\t\tfunction getDate() {\n\t\t\treturn cloneDate(date);\n\t\t}\n\t\t\n\t\t\n\t\t\n\t\t/* Misc\n\t\t-----------------------------------------------------------------------------*/\n\t\t\n\t\t\n\t\tfunction getView() {\n\t\t\treturn currentView;\n\t\t}\n\t\t\n\t\t\n\t\tfunction option(name, value) {\n\t\t\tif (value === undefined) {\n\t\t\t\treturn options[name];\n\t\t\t}\n\t\t\tif (name == 'height' || name == 'contentHeight' || name == 'aspectRatio') {\n\t\t\t\toptions[name] = value;\n\t\t\t\tupdateSize();\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\tfunction trigger(name, thisObj) {\n\t\t\tif (options[name]) {\n\t\t\t\treturn options[name].apply(\n\t\t\t\t\tthisObj || _element,\n\t\t\t\t\tArray.prototype.slice.call(arguments, 2)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\t\n\t\t/* External Dragging\n\t\t------------------------------------------------------------------------*/\n\t\t\n\t\tif (options.droppable) {\n\t\t\t$(document)\n\t\t\t\t.bind('dragstart', function(ev, ui) {\n\t\t\t\t\tvar _e = ev.target;\n\t\t\t\t\tvar e = $(_e);\n\t\t\t\t\tif (!e.parents('.fc').length) { // not already inside a calendar\n\t\t\t\t\t\tvar accept = options.dropAccept;\n\t\t\t\t\t\tif ($.isFunction(accept) ? accept.call(_e, e) : e.is(accept)) {\n\t\t\t\t\t\t\t_dragElement = _e;\n\t\t\t\t\t\t\tcurrentView.dragStart(_dragElement, ev, ui);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.bind('dragstop', function(ev, ui) {\n\t\t\t\t\tif (_dragElement) {\n\t\t\t\t\t\tcurrentView.dragStop(_dragElement, ev, ui);\n\t\t\t\t\t\t_dragElement = null;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\t\t\n\t\n\t}\n\t\n\tfunction Header(calendar, options) {\n\t\tvar t = this;\n\t\t\n\t\t\n\t\t// exports\n\t\tt.render = render;\n\t\tt.destroy = destroy;\n\t\tt.updateTitle = updateTitle;\n\t\tt.activateButton = activateButton;\n\t\tt.deactivateButton = deactivateButton;\n\t\tt.disableButton = disableButton;\n\t\tt.enableButton = enableButton;\n\t\t\n\t\t\n\t\t// locals\n\t\tvar element = $([]);\n\t\tvar tm;\n\t\t\n\t\n\t\n\t\tfunction render() {\n\t\t\ttm = options.theme ? 'ui' : 'fc';\n\t\t\tvar sections = options.header;\n\t\t\tif (sections) {\n\t\t\t\telement = $(\"\")\n\t\t\t\t\t.append(\n\t\t\t\t\t\t$(\"\")\n\t\t\t\t\t\t\t.append(renderSection('left'))\n\t\t\t\t\t\t\t.append(renderSection('center'))\n\t\t\t\t\t\t\t.append(renderSection('right'))\n\t\t\t\t\t);\n\t\t\t\treturn element;\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\tfunction destroy() {\n\t\t\telement.remove();\n\t\t}\n\t\t\n\t\t\n\t\tfunction renderSection(position) {\n\t\t\tvar e = $(\"\" +\n\t\t\t\t\"\";\n\t\t\tfor (i=0; i\"; // need fc- for setDayID\n\t\t\t}\n\t\t\ts +=\n\t\t\t\t\"\" +\n\t\t\t\t\"\" +\n\t\t\t\t\"\";\n\t\t\tfor (i=0; i\";\n\t\t\t\tfor (j=0; j\" + // need fc- for setDayID\n\t\t\t\t\t\t\"
\" +\n\t\t\t\t\t\t(showNumbers ?\n\t\t\t\t\t\t\t\"
\" :\n\t\t\t\t\t\t\t''\n\t\t\t\t\t\t\t) +\n\t\t\t\t\t\t\"
\" +\n\t\t\t\t\t\t\"
 
\" +\n\t\t\t\t\t\t\"
\" +\n\t\t\t\t\t\t\"
\" +\n\t\t\t\t\t\t\"\";\n\t\t\t\t}\n\t\t\t\ts +=\n\t\t\t\t\t\"\";\n\t\t\t}\n\t\t\ts +=\n\t\t\t\t\"
\" +\n\t\t\t\t\"
\");\n\t\t\tvar buttonStr = options.header[position];\n\t\t\tif (buttonStr) {\n\t\t\t\t$.each(buttonStr.split(' '), function(i) {\n\t\t\t\t\tif (i > 0) {\n\t\t\t\t\t\te.append(\"\");\n\t\t\t\t\t}\n\t\t\t\t\tvar prevButton;\n\t\t\t\t\t$.each(this.split(','), function(j, buttonName) {\n\t\t\t\t\t\tif (buttonName == 'title') {\n\t\t\t\t\t\t\te.append(\"

 

\");\n\t\t\t\t\t\t\tif (prevButton) {\n\t\t\t\t\t\t\t\tprevButton.addClass(tm + '-corner-right');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tprevButton = null;\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tvar buttonClick;\n\t\t\t\t\t\t\tif (calendar[buttonName]) {\n\t\t\t\t\t\t\t\tbuttonClick = calendar[buttonName]; // calendar method\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if (fcViews[buttonName]) {\n\t\t\t\t\t\t\t\tbuttonClick = function() {\n\t\t\t\t\t\t\t\t\tbutton.removeClass(tm + '-state-hover'); // forget why\n\t\t\t\t\t\t\t\t\tcalendar.changeView(buttonName);\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (buttonClick) {\n\t\t\t\t\t\t\t\tvar icon = options.theme ? smartProperty(options.buttonIcons, buttonName) : null; // why are we using smartProperty here?\n\t\t\t\t\t\t\t\tvar text = smartProperty(options.buttonText, buttonName); // why are we using smartProperty here?\n\t\t\t\t\t\t\t\tvar button = $(\n\t\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\t\t\t\t(icon ?\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\t\t\t\t\t\t\ttext\n\t\t\t\t\t\t\t\t\t\t\t\t\t) +\n\t\t\t\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif (button) {\n\t\t\t\t\t\t\t\t\tbutton\n\t\t\t\t\t\t\t\t\t\t.click(function() {\n\t\t\t\t\t\t\t\t\t\t\tif (!button.hasClass(tm + '-state-disabled')) {\n\t\t\t\t\t\t\t\t\t\t\t\tbuttonClick();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t.mousedown(function() {\n\t\t\t\t\t\t\t\t\t\t\tbutton\n\t\t\t\t\t\t\t\t\t\t\t\t.not('.' + tm + '-state-active')\n\t\t\t\t\t\t\t\t\t\t\t\t.not('.' + tm + '-state-disabled')\n\t\t\t\t\t\t\t\t\t\t\t\t.addClass(tm + '-state-down');\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t.mouseup(function() {\n\t\t\t\t\t\t\t\t\t\t\tbutton.removeClass(tm + '-state-down');\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t.hover(\n\t\t\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\t\t\tbutton\n\t\t\t\t\t\t\t\t\t\t\t\t\t.not('.' + tm + '-state-active')\n\t\t\t\t\t\t\t\t\t\t\t\t\t.not('.' + tm + '-state-disabled')\n\t\t\t\t\t\t\t\t\t\t\t\t\t.addClass(tm + '-state-hover');\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\t\t\tbutton\n\t\t\t\t\t\t\t\t\t\t\t\t\t.removeClass(tm + '-state-hover')\n\t\t\t\t\t\t\t\t\t\t\t\t\t.removeClass(tm + '-state-down');\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t.appendTo(e);\n\t\t\t\t\t\t\t\t\tif (!prevButton) {\n\t\t\t\t\t\t\t\t\t\tbutton.addClass(tm + '-corner-left');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tprevButton = button;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif (prevButton) {\n\t\t\t\t\t\tprevButton.addClass(tm + '-corner-right');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn e;\n\t\t}\n\t\t\n\t\t\n\t\tfunction updateTitle(html) {\n\t\t\telement.find('h2')\n\t\t\t\t.html(html);\n\t\t}\n\t\t\n\t\t\n\t\tfunction activateButton(buttonName) {\n\t\t\telement.find('span.fc-button-' + buttonName)\n\t\t\t\t.addClass(tm + '-state-active');\n\t\t}\n\t\t\n\t\t\n\t\tfunction deactivateButton(buttonName) {\n\t\t\telement.find('span.fc-button-' + buttonName)\n\t\t\t\t.removeClass(tm + '-state-active');\n\t\t}\n\t\t\n\t\t\n\t\tfunction disableButton(buttonName) {\n\t\t\telement.find('span.fc-button-' + buttonName)\n\t\t\t\t.addClass(tm + '-state-disabled');\n\t\t}\n\t\t\n\t\t\n\t\tfunction enableButton(buttonName) {\n\t\t\telement.find('span.fc-button-' + buttonName)\n\t\t\t\t.removeClass(tm + '-state-disabled');\n\t\t}\n\t\n\t\n\t}\n\t\n\tfc.sourceNormalizers = [];\n\tfc.sourceFetchers = [];\n\t\n\tvar ajaxDefaults = {\n\t\tdataType: 'json',\n\t\tcache: false\n\t};\n\t\n\tvar eventGUID = 1;\n\t\n\t\n\tfunction EventManager(options, _sources) {\n\t\tvar t = this;\n\t\t\n\t\t\n\t\t// exports\n\t\tt.isFetchNeeded = isFetchNeeded;\n\t\tt.fetchEvents = fetchEvents;\n\t\tt.addEventSource = addEventSource;\n\t\tt.removeEventSource = removeEventSource;\n\t\tt.updateEvent = updateEvent;\n\t\tt.renderEvent = renderEvent;\n\t\tt.removeEvents = removeEvents;\n\t\tt.clientEvents = clientEvents;\n\t\tt.normalizeEvent = normalizeEvent;\n\t\t\n\t\t\n\t\t// imports\n\t\tvar trigger = t.trigger;\n\t\tvar getView = t.getView;\n\t\tvar reportEvents = t.reportEvents;\n\t\t\n\t\t\n\t\t// locals\n\t\tvar stickySource = { events: [] };\n\t\tvar sources = [ stickySource ];\n\t\tvar rangeStart, rangeEnd;\n\t\tvar currentFetchID = 0;\n\t\tvar pendingSourceCnt = 0;\n\t\tvar loadingLevel = 0;\n\t\tvar cache = [];\n\t\t\n\t\t\n\t\tfor (var i=0; i<_sources.length; i++) {\n\t\t\t_addEventSource(_sources[i]);\n\t\t}\n\t\t\n\t\t\n\t\t\n\t\t/* Fetching\n\t\t-----------------------------------------------------------------------------*/\n\t\t\n\t\t\n\t\tfunction isFetchNeeded(start, end) {\n\t\t\treturn !rangeStart || start < rangeStart || end > rangeEnd;\n\t\t}\n\t\t\n\t\t\n\t\tfunction fetchEvents(start, end) {\n\t\t\trangeStart = start;\n\t\t\trangeEnd = end;\n\t\t\tcache = [];\n\t\t\tvar fetchID = ++currentFetchID;\n\t\t\tvar len = sources.length;\n\t\t\tpendingSourceCnt = len;\n\t\t\tfor (var i=0; i)), return null instead\n\t\treturn null;\n\t}\n\t\n\t\n\tfunction parseISO8601(s, ignoreTimezone) { // ignoreTimezone defaults to false\n\t\t// derived from http://delete.me.uk/2005/03/iso8601.html\n\t\t// TODO: for a know glitch/feature, read tests/issue_206_parseDate_dst.html\n\t\tvar m = s.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}))?))?)?)?)?$/);\n\t\tif (!m) {\n\t\t\treturn null;\n\t\t}\n\t\tvar date = new Date(m[1], 0, 1);\n\t\tif (ignoreTimezone || !m[13]) {\n\t\t\tvar check = new Date(m[1], 0, 1, 9, 0);\n\t\t\tif (m[3]) {\n\t\t\t\tdate.setMonth(m[3] - 1);\n\t\t\t\tcheck.setMonth(m[3] - 1);\n\t\t\t}\n\t\t\tif (m[5]) {\n\t\t\t\tdate.setDate(m[5]);\n\t\t\t\tcheck.setDate(m[5]);\n\t\t\t}\n\t\t\tfixDate(date, check);\n\t\t\tif (m[7]) {\n\t\t\t\tdate.setHours(m[7]);\n\t\t\t}\n\t\t\tif (m[8]) {\n\t\t\t\tdate.setMinutes(m[8]);\n\t\t\t}\n\t\t\tif (m[10]) {\n\t\t\t\tdate.setSeconds(m[10]);\n\t\t\t}\n\t\t\tif (m[12]) {\n\t\t\t\tdate.setMilliseconds(Number(\"0.\" + m[12]) * 1000);\n\t\t\t}\n\t\t\tfixDate(date, check);\n\t\t}else{\n\t\t\tdate.setUTCFullYear(\n\t\t\t\tm[1],\n\t\t\t\tm[3] ? m[3] - 1 : 0,\n\t\t\t\tm[5] || 1\n\t\t\t);\n\t\t\tdate.setUTCHours(\n\t\t\t\tm[7] || 0,\n\t\t\t\tm[8] || 0,\n\t\t\t\tm[10] || 0,\n\t\t\t\tm[12] ? Number(\"0.\" + m[12]) * 1000 : 0\n\t\t\t);\n\t\t\tif (m[14]) {\n\t\t\t\tvar offset = Number(m[16]) * 60 + (m[18] ? Number(m[18]) : 0);\n\t\t\t\toffset *= m[15] == '-' ? 1 : -1;\n\t\t\t\tdate = new Date(+date + (offset * 60 * 1000));\n\t\t\t}\n\t\t}\n\t\treturn date;\n\t}\n\t\n\t\n\tfunction parseTime(s) { // returns minutes since start of day\n\t\tif (typeof s == 'number') { // an hour\n\t\t\treturn s * 60;\n\t\t}\n\t\tif (typeof s == 'object') { // a Date object\n\t\t\treturn s.getHours() * 60 + s.getMinutes();\n\t\t}\n\t\tvar m = s.match(/(\\d+)(?::(\\d+))?\\s*(\\w+)?/);\n\t\tif (m) {\n\t\t\tvar h = parseInt(m[1], 10);\n\t\t\tif (m[3]) {\n\t\t\t\th %= 12;\n\t\t\t\tif (m[3].toLowerCase().charAt(0) == 'p') {\n\t\t\t\t\th += 12;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn h * 60 + (m[2] ? parseInt(m[2], 10) : 0);\n\t\t}\n\t}\n\t\n\t\n\t\n\t/* Date Formatting\n\t-----------------------------------------------------------------------------*/\n\t// TODO: use same function formatDate(date, [date2], format, [options])\n\t\n\t\n\tfunction formatDate(date, format, options) {\n\t\treturn formatDates(date, null, format, options);\n\t}\n\t\n\t\n\tfunction formatDates(date1, date2, format, options) {\n\t\toptions = options || defaults;\n\t\tvar date = date1,\n\t\t\totherDate = date2,\n\t\t\ti, len = format.length, c,\n\t\t\ti2, formatter,\n\t\t\tres = '';\n\t\tfor (i=0; ii; i2--) {\n\t\t\t\t\tif (formatter = dateFormatters[format.substring(i, i2)]) {\n\t\t\t\t\t\tif (date) {\n\t\t\t\t\t\t\tres += formatter(date, options);\n\t\t\t\t\t\t}\n\t\t\t\t\t\ti = i2 - 1;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (i2 == i) {\n\t\t\t\t\tif (date) {\n\t\t\t\t\t\tres += c;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn res;\n\t};\n\t\n\t\n\tvar dateFormatters = {\n\t\ts\t: function(d)\t{ return d.getSeconds() },\n\t\tss\t: function(d)\t{ return zeroPad(d.getSeconds()) },\n\t\tm\t: function(d)\t{ return d.getMinutes() },\n\t\tmm\t: function(d)\t{ return zeroPad(d.getMinutes()) },\n\t\th\t: function(d)\t{ return d.getHours() % 12 || 12 },\n\t\thh\t: function(d)\t{ return zeroPad(d.getHours() % 12 || 12) },\n\t\tH\t: function(d)\t{ return d.getHours() },\n\t\tHH\t: function(d)\t{ return zeroPad(d.getHours()) },\n\t\td\t: function(d)\t{ return d.getDate() },\n\t\tdd\t: function(d)\t{ return zeroPad(d.getDate()) },\n\t\tddd\t: function(d,o)\t{ return o.dayNamesShort[d.getDay()] },\n\t\tdddd: function(d,o)\t{ return o.dayNames[d.getDay()] },\n\t\tM\t: function(d)\t{ return d.getMonth() + 1 },\n\t\tMM\t: function(d)\t{ return zeroPad(d.getMonth() + 1) },\n\t\tMMM\t: function(d,o)\t{ return o.monthNamesShort[d.getMonth()] },\n\t\tMMMM: function(d,o)\t{ return o.monthNames[d.getMonth()] },\n\t\tyy\t: function(d)\t{ return (d.getFullYear()+'').substring(2) },\n\t\tyyyy: function(d)\t{ return d.getFullYear() },\n\t\tt\t: function(d)\t{ return d.getHours() < 12 ? 'a' : 'p' },\n\t\ttt\t: function(d)\t{ return d.getHours() < 12 ? 'am' : 'pm' },\n\t\tT\t: function(d)\t{ return d.getHours() < 12 ? 'A' : 'P' },\n\t\tTT\t: function(d)\t{ return d.getHours() < 12 ? 'AM' : 'PM' },\n\t\tu\t: function(d)\t{ return formatDate(d, \"yyyy-MM-dd'T'HH:mm:ss'Z'\") },\n\t\tS\t: function(d)\t{\n\t\t\tvar date = d.getDate();\n\t\t\tif (date > 10 && date < 20) {\n\t\t\t\treturn 'th';\n\t\t\t}\n\t\t\treturn ['st', 'nd', 'rd'][date%10-1] || 'th';\n\t\t}\n\t};\n\t\n\t\n\t\n\tfc.applyAll = applyAll;\n\t\n\t\n\t/* Event Date Math\n\t-----------------------------------------------------------------------------*/\n\t\n\t\n\tfunction exclEndDay(event) {\n\t\tif (event.end) {\n\t\t\treturn _exclEndDay(event.end, event.allDay);\n\t\t}else{\n\t\t\treturn addDays(cloneDate(event.start), 1);\n\t\t}\n\t}\n\t\n\t\n\tfunction _exclEndDay(end, allDay) {\n\t\tend = cloneDate(end);\n\t\treturn allDay || end.getHours() || end.getMinutes() ? addDays(end, 1) : clearTime(end);\n\t}\n\t\n\t\n\tfunction segCmp(a, b) {\n\t\treturn (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start);\n\t}\n\t\n\t\n\tfunction segsCollide(seg1, seg2) {\n\t\treturn seg1.end > seg2.start && seg1.start < seg2.end;\n\t}\n\t\n\t\n\t\n\t/* Event Sorting\n\t-----------------------------------------------------------------------------*/\n\t\n\t\n\t// event rendering utilities\n\tfunction sliceSegs(events, visEventEnds, start, end) {\n\t\tvar segs = [],\n\t\t\ti, len=events.length, event,\n\t\t\teventStart, eventEnd,\n\t\t\tsegStart, segEnd,\n\t\t\tisStart, isEnd;\n\t\tfor (i=0; i start && eventStart < end) {\n\t\t\t\tif (eventStart < start) {\n\t\t\t\t\tsegStart = cloneDate(start);\n\t\t\t\t\tisStart = false;\n\t\t\t\t}else{\n\t\t\t\t\tsegStart = eventStart;\n\t\t\t\t\tisStart = true;\n\t\t\t\t}\n\t\t\t\tif (eventEnd > end) {\n\t\t\t\t\tsegEnd = cloneDate(end);\n\t\t\t\t\tisEnd = false;\n\t\t\t\t}else{\n\t\t\t\t\tsegEnd = eventEnd;\n\t\t\t\t\tisEnd = true;\n\t\t\t\t}\n\t\t\t\tsegs.push({\n\t\t\t\t\tevent: event,\n\t\t\t\t\tstart: segStart,\n\t\t\t\t\tend: segEnd,\n\t\t\t\t\tisStart: isStart,\n\t\t\t\t\tisEnd: isEnd,\n\t\t\t\t\tmsLength: segEnd - segStart\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn segs.sort(segCmp);\n\t}\n\t\n\t\n\t// event rendering calculation utilities\n\tfunction stackSegs(segs) {\n\t\tvar levels = [],\n\t\t\ti, len = segs.length, seg,\n\t\t\tj, collide, k;\n\t\tfor (i=0; i=0; i--) {\n\t\t\tres = obj[parts[i].toLowerCase()];\n\t\t\tif (res !== undefined) {\n\t\t\t\treturn res;\n\t\t\t}\n\t\t}\n\t\treturn obj[''];\n\t}\n\t\n\t\n\tfunction htmlEscape(s) {\n\t\treturn s.replace(/&/g, '&')\n\t\t\t.replace(//g, '>')\n\t\t\t.replace(/'/g, ''')\n\t\t\t.replace(/\"/g, '"')\n\t\t\t.replace(/\\n/g, '
');\n\t}\n\t\n\t\n\tfunction cssKey(_element) {\n\t\treturn _element.id + '/' + _element.className + '/' + _element.style.cssText.replace(/(^|;)\\s*(top|left|width|height)\\s*:[^;]*/ig, '');\n\t}\n\t\n\t\n\tfunction disableTextSelection(element) {\n\t\telement\n\t\t\t.attr('unselectable', 'on')\n\t\t\t.css('MozUserSelect', 'none')\n\t\t\t.bind('selectstart.ui', function() { return false; });\n\t}\n\t\n\t\n\t/*\n\tfunction enableTextSelection(element) {\n\t\telement\n\t\t\t.attr('unselectable', 'off')\n\t\t\t.css('MozUserSelect', '')\n\t\t\t.unbind('selectstart.ui');\n\t}\n\t*/\n\t\n\t\n\tfunction markFirstLast(e) {\n\t\te.children()\n\t\t\t.removeClass('fc-first fc-last')\n\t\t\t.filter(':first-child')\n\t\t\t\t.addClass('fc-first')\n\t\t\t.end()\n\t\t\t.filter(':last-child')\n\t\t\t\t.addClass('fc-last');\n\t}\n\t\n\t\n\tfunction setDayID(cell, date) {\n\t\tcell.each(function(i, _cell) {\n\t\t\t_cell.className = _cell.className.replace(/^fc-\\w*/, 'fc-' + dayIDs[date.getDay()]);\n\t\t\t// TODO: make a way that doesn't rely on order of classes\n\t\t});\n\t}\n\t\n\t\n\tfunction getSkinCss(event, opt) {\n\t\tvar source = event.source || {};\n\t\tvar eventColor = event.color;\n\t\tvar sourceColor = source.color;\n\t\tvar optionColor = opt('eventColor');\n\t\tvar backgroundColor =\n\t\t\tevent.backgroundColor ||\n\t\t\teventColor ||\n\t\t\tsource.backgroundColor ||\n\t\t\tsourceColor ||\n\t\t\topt('eventBackgroundColor') ||\n\t\t\toptionColor;\n\t\tvar borderColor =\n\t\t\tevent.borderColor ||\n\t\t\teventColor ||\n\t\t\tsource.borderColor ||\n\t\t\tsourceColor ||\n\t\t\topt('eventBorderColor') ||\n\t\t\toptionColor;\n\t\tvar textColor =\n\t\t\tevent.textColor ||\n\t\t\tsource.textColor ||\n\t\t\topt('eventTextColor');\n\t\tvar statements = [];\n\t\tif (backgroundColor) {\n\t\t\tstatements.push('background-color:' + backgroundColor);\n\t\t}\n\t\tif (borderColor) {\n\t\t\tstatements.push('border-color:' + borderColor);\n\t\t}\n\t\tif (textColor) {\n\t\t\tstatements.push('color:' + textColor);\n\t\t}\n\t\treturn statements.join(';');\n\t}\n\t\n\t\n\tfunction applyAll(functions, thisObj, args) {\n\t\tif ($.isFunction(functions)) {\n\t\t\tfunctions = [ functions ];\n\t\t}\n\t\tif (functions) {\n\t\t\tvar i;\n\t\t\tvar ret;\n\t\t\tfor (i=0; i\" +\n\t\t\t\t\"
\";\n\t\t\ttable = $(s).appendTo(element);\n\t\t\t\n\t\t\thead = table.find('thead');\n\t\t\theadCells = head.find('th');\n\t\t\tbody = table.find('tbody');\n\t\t\tbodyRows = body.find('tr');\n\t\t\tbodyCells = body.find('td');\n\t\t\tbodyFirstCells = bodyCells.filter(':first-child');\n\t\t\tbodyCellTopInners = bodyRows.eq(0).find('div.fc-day-content div');\n\t\t\t\n\t\t\tmarkFirstLast(head.add(head.find('tr'))); // marks first+last tr/th's\n\t\t\tmarkFirstLast(bodyRows); // marks first+last td's\n\t\t\tbodyRows.eq(0).addClass('fc-first'); // fc-last is done in updateCells\n\t\t\t\n\t\t\tdayBind(bodyCells);\n\t\t\t\n\t\t\tdaySegmentContainer =\n\t\t\t\t$(\"
\")\n\t\t\t\t\t.appendTo(element);\n\t\t}\n\t\t\n\t\t\n\t\t\n\t\tfunction updateCells(firstTime) {\n\t\t\tvar dowDirty = firstTime || rowCnt == 1; // could the cells' day-of-weeks need updating?\n\t\t\tvar month = t.start.getMonth();\n\t\t\tvar today = clearTime(new Date());\n\t\t\tvar cell;\n\t\t\tvar date;\n\t\t\tvar row;\n\t\t\n\t\t\tif (dowDirty) {\n\t\t\t\theadCells.each(function(i, _cell) {\n\t\t\t\t\tcell = $(_cell);\n\t\t\t\t\tdate = indexDate(i);\n\t\t\t\t\tcell.html(formatDate(date, colFormat));\n\t\t\t\t\tsetDayID(cell, date);\n\t\t\t\t});\n\t\t\t}\n\t\t\t\n\t\t\tbodyCells.each(function(i, _cell) {\n\t\t\t\tcell = $(_cell);\n\t\t\t\tdate = indexDate(i);\n\t\t\t\tif (date.getMonth() == month) {\n\t\t\t\t\tcell.removeClass('fc-other-month');\n\t\t\t\t}else{\n\t\t\t\t\tcell.addClass('fc-other-month');\n\t\t\t\t}\n\t\t\t\tif (+date == +today) {\n\t\t\t\t\tcell.addClass(tm + '-state-highlight fc-today');\n\t\t\t\t}else{\n\t\t\t\t\tcell.removeClass(tm + '-state-highlight fc-today');\n\t\t\t\t}\n\t\t\t\tcell.find('div.fc-day-number').text(date.getDate());\n\t\t\t\tif (dowDirty) {\n\t\t\t\t\tsetDayID(cell, date);\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\tbodyRows.each(function(i, _row) {\n\t\t\t\trow = $(_row);\n\t\t\t\tif (i < rowCnt) {\n\t\t\t\t\trow.show();\n\t\t\t\t\tif (i == rowCnt-1) {\n\t\t\t\t\t\trow.addClass('fc-last');\n\t\t\t\t\t}else{\n\t\t\t\t\t\trow.removeClass('fc-last');\n\t\t\t\t\t}\n\t\t\t\t}else{\n\t\t\t\t\trow.hide();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t\t\n\t\t\n\t\tfunction setHeight(height) {\n\t\t\tviewHeight = height;\n\t\t\t\n\t\t\tvar bodyHeight = viewHeight - head.height();\n\t\t\tvar rowHeight;\n\t\t\tvar rowHeightLast;\n\t\t\tvar cell;\n\t\t\t\t\n\t\t\tif (opt('weekMode') == 'variable') {\n\t\t\t\trowHeight = rowHeightLast = Math.floor(bodyHeight / (rowCnt==1 ? 2 : 6));\n\t\t\t}else{\n\t\t\t\trowHeight = Math.floor(bodyHeight / rowCnt);\n\t\t\t\trowHeightLast = bodyHeight - rowHeight * (rowCnt-1);\n\t\t\t}\n\t\t\t\n\t\t\tbodyFirstCells.each(function(i, _cell) {\n\t\t\t\tif (i < rowCnt) {\n\t\t\t\t\tcell = $(_cell);\n\t\t\t\t\tsetMinHeight(\n\t\t\t\t\t\tcell.find('> div'),\n\t\t\t\t\t\t(i==rowCnt-1 ? rowHeightLast : rowHeight) - vsides(cell)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\tfunction setWidth(width) {\n\t\t\tviewWidth = width;\n\t\t\tcolContentPositions.clear();\n\t\t\tcolWidth = Math.floor(viewWidth / colCnt);\n\t\t\tsetOuterWidth(headCells.slice(0, -1), colWidth);\n\t\t}\n\t\t\n\t\t\n\t\t\n\t\t/* Day clicking and binding\n\t\t-----------------------------------------------------------*/\n\t\t\n\t\t\n\t\tfunction dayBind(days) {\n\t\t\tdays.click(dayClick)\n\t\t\t\t.mousedown(daySelectionMousedown);\n\t\t}\n\t\t\n\t\t\n\t\tfunction dayClick(ev) {\n\t\t\tif (!opt('selectable')) { // if selectable, SelectionManager will worry about dayClick\n\t\t\t\tvar index = parseInt(this.className.match(/fc\\-day(\\d+)/)[1]); // TODO: maybe use .data\n\t\t\t\tvar date = indexDate(index);\n\t\t\t\ttrigger('dayClick', this, date, true, ev);\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\t\n\t\t/* Semi-transparent Overlay Helpers\n\t\t------------------------------------------------------*/\n\t\t\n\t\t\n\t\tfunction renderDayOverlay(overlayStart, overlayEnd, refreshCoordinateGrid) { // overlayEnd is exclusive\n\t\t\tif (refreshCoordinateGrid) {\n\t\t\t\tcoordinateGrid.build();\n\t\t\t}\n\t\t\tvar rowStart = cloneDate(t.visStart);\n\t\t\tvar rowEnd = addDays(cloneDate(rowStart), colCnt);\n\t\t\tfor (var i=0; i\" +\n\t\t\t\t\"\" +\n\t\t\t\t\"\" +\n\t\t\t\t\" \";\n\t\t\tfor (i=0; i\"; // fc- needed for setDayID\n\t\t\t}\n\t\t\ts +=\n\t\t\t\t\" \" +\n\t\t\t\t\"\" +\n\t\t\t\t\"\" +\n\t\t\t\t\"\" +\n\t\t\t\t\"\" +\n\t\t\t\t\" \";\n\t\t\tfor (i=0; i\" + // fc- needed for setDayID\n\t\t\t\t\t\"
\" +\n\t\t\t\t\t\"
\" +\n\t\t\t\t\t\"
 
\" +\n\t\t\t\t\t\"
\" +\n\t\t\t\t\t\"
\" +\n\t\t\t\t\t\"\";\n\t\t\t}\n\t\t\ts +=\n\t\t\t\t\" \" +\n\t\t\t\t\"\" +\n\t\t\t\t\"\" +\n\t\t\t\t\"\";\n\t\t\tdayTable = $(s).appendTo(element);\n\t\t\tdayHead = dayTable.find('thead');\n\t\t\tdayHeadCells = dayHead.find('th').slice(1, -1);\n\t\t\tdayBody = dayTable.find('tbody');\n\t\t\tdayBodyCells = dayBody.find('td').slice(0, -1);\n\t\t\tdayBodyCellInners = dayBodyCells.find('div.fc-day-content div');\n\t\t\tdayBodyFirstCell = dayBodyCells.eq(0);\n\t\t\tdayBodyFirstCellStretcher = dayBodyFirstCell.find('> div');\n\t\t\t\n\t\t\tmarkFirstLast(dayHead.add(dayHead.find('tr')));\n\t\t\tmarkFirstLast(dayBody.add(dayBody.find('tr')));\n\t\t\t\n\t\t\taxisFirstCells = dayHead.find('th:first');\n\t\t\tgutterCells = dayTable.find('.fc-agenda-gutter');\n\t\t\t\n\t\t\tslotLayer =\n\t\t\t\t$(\"
\")\n\t\t\t\t\t.appendTo(element);\n\t\t\t\t\t\n\t\t\tif (opt('allDaySlot')) {\n\t\t\t\n\t\t\t\tdaySegmentContainer =\n\t\t\t\t\t$(\"
\")\n\t\t\t\t\t\t.appendTo(slotLayer);\n\t\t\t\n\t\t\t\ts =\n\t\t\t\t\t\"\" +\n\t\t\t\t\t\"\" +\n\t\t\t\t\t\"\" +\n\t\t\t\t\t\"\" +\n\t\t\t\t\t\"\" +\n\t\t\t\t\t\"\" +\n\t\t\t\t\t\"
\" + opt('allDayText') + \"\" +\n\t\t\t\t\t\"
\" +\n\t\t\t\t\t\"
 
\";\n\t\t\t\tallDayTable = $(s).appendTo(slotLayer);\n\t\t\t\tallDayRow = allDayTable.find('tr');\n\t\t\t\t\n\t\t\t\tdayBind(allDayRow.find('td'));\n\t\t\t\t\n\t\t\t\taxisFirstCells = axisFirstCells.add(allDayTable.find('th:first'));\n\t\t\t\tgutterCells = gutterCells.add(allDayTable.find('th.fc-agenda-gutter'));\n\t\t\t\t\n\t\t\t\tslotLayer.append(\n\t\t\t\t\t\"
\" +\n\t\t\t\t\t\"
\" +\n\t\t\t\t\t\"
\"\n\t\t\t\t);\n\t\t\t\t\n\t\t\t}else{\n\t\t\t\n\t\t\t\tdaySegmentContainer = $([]); // in jQuery 1.4, we can just do $()\n\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tslotScroller =\n\t\t\t\t$(\"
\")\n\t\t\t\t\t.appendTo(slotLayer);\n\t\t\t\t\t\n\t\t\tslotContent =\n\t\t\t\t$(\"
\")\n\t\t\t\t\t.appendTo(slotScroller);\n\t\t\t\t\t\n\t\t\tslotSegmentContainer =\n\t\t\t\t$(\"
\")\n\t\t\t\t\t.appendTo(slotContent);\n\t\t\t\n\t\t\ts =\n\t\t\t\t\"\" +\n\t\t\t\t\"\";\n\t\t\td = zeroDate();\n\t\t\tmaxd = addMinutes(cloneDate(d), maxMinute);\n\t\t\taddMinutes(d, minMinute);\n\t\t\tslotCnt = 0;\n\t\t\tfor (i=0; d < maxd; i++) {\n\t\t\t\tminutes = d.getMinutes();\n\t\t\t\ts +=\n\t\t\t\t\t\"\" +\n\t\t\t\t\t\"\" +\n\t\t\t\t\t\"\" +\n\t\t\t\t\t\"\";\n\t\t\t\taddMinutes(d, opt('slotMinutes'));\n\t\t\t\tslotCnt++;\n\t\t\t}\n\t\t\ts +=\n\t\t\t\t\"\" +\n\t\t\t\t\"
\" +\n\t\t\t\t\t((!slotNormal || !minutes) ? formatDate(d, opt('axisFormat')) : ' ') +\n\t\t\t\t\t\"\" +\n\t\t\t\t\t\"
 
\" +\n\t\t\t\t\t\"
\";\n\t\t\tslotTable = $(s).appendTo(slotContent);\n\t\t\tslotTableFirstInner = slotTable.find('div:first');\n\t\t\t\n\t\t\tslotBind(slotTable.find('td'));\n\t\t\t\n\t\t\taxisFirstCells = axisFirstCells.add(slotTable.find('th:first'));\n\t\t}\n\t\t\n\t\t\n\t\t\n\t\tfunction updateCells() {\n\t\t\tvar i;\n\t\t\tvar headCell;\n\t\t\tvar bodyCell;\n\t\t\tvar date;\n\t\t\tvar today = clearTime(new Date());\n\t\t\tfor (i=0; i= 0) {\n\t\t\t\taddMinutes(d, minMinute + slotIndex * opt('slotMinutes'));\n\t\t\t}\n\t\t\treturn d;\n\t\t}\n\t\t\n\t\t\n\t\tfunction colDate(col) { // returns dates with 00:00:00\n\t\t\treturn addDays(cloneDate(t.visStart), col*dis+dit);\n\t\t}\n\t\t\n\t\t\n\t\tfunction cellIsAllDay(cell) {\n\t\t\treturn opt('allDaySlot') && !cell.row;\n\t\t}\n\t\t\n\t\t\n\t\tfunction dayOfWeekCol(dayOfWeek) {\n\t\t\treturn ((dayOfWeek - Math.max(firstDay, nwe) + colCnt) % colCnt)*dis+dit;\n\t\t}\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t// get the Y coordinate of the given time on the given day (both Date objects)\n\t\tfunction timePosition(day, time) { // both date objects. day holds 00:00 of current day\n\t\t\tday = cloneDate(day, true);\n\t\t\tif (time < addMinutes(cloneDate(day), minMinute)) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tif (time >= addMinutes(cloneDate(day), maxMinute)) {\n\t\t\t\treturn slotTable.height();\n\t\t\t}\n\t\t\tvar slotMinutes = opt('slotMinutes'),\n\t\t\t\tminutes = time.getHours()*60 + time.getMinutes() - minMinute,\n\t\t\t\tslotI = Math.floor(minutes / slotMinutes),\n\t\t\t\tslotTop = slotTopCache[slotI];\n\t\t\tif (slotTop === undefined) {\n\t\t\t\tslotTop = slotTopCache[slotI] = slotTable.find('tr:eq(' + slotI + ') td div')[0].offsetTop; //.position().top; // need this optimization???\n\t\t\t}\n\t\t\treturn Math.max(0, Math.round(\n\t\t\t\tslotTop - 1 + slotHeight * ((minutes % slotMinutes) / slotMinutes)\n\t\t\t));\n\t\t}\n\t\t\n\t\t\n\t\tfunction allDayBounds() {\n\t\t\treturn {\n\t\t\t\tleft: axisWidth,\n\t\t\t\tright: viewWidth - gutterWidth\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\tfunction getAllDayRow(index) {\n\t\t\treturn allDayRow;\n\t\t}\n\t\t\n\t\t\n\t\tfunction defaultEventEnd(event) {\n\t\t\tvar start = cloneDate(event.start);\n\t\t\tif (event.allDay) {\n\t\t\t\treturn start;\n\t\t\t}\n\t\t\treturn addMinutes(start, opt('defaultEventMinutes'));\n\t\t}\n\t\t\n\t\t\n\t\t\n\t\t/* Selection\n\t\t---------------------------------------------------------------------------------*/\n\t\t\n\t\t\n\t\tfunction defaultSelectionEnd(startDate, allDay) {\n\t\t\tif (allDay) {\n\t\t\t\treturn cloneDate(startDate);\n\t\t\t}\n\t\t\treturn addMinutes(cloneDate(startDate), opt('slotMinutes'));\n\t\t}\n\t\t\n\t\t\n\t\tfunction renderSelection(startDate, endDate, allDay) { // only for all-day\n\t\t\tif (allDay) {\n\t\t\t\tif (opt('allDaySlot')) {\n\t\t\t\t\trenderDayOverlay(startDate, addDays(cloneDate(endDate), 1), true);\n\t\t\t\t}\n\t\t\t}else{\n\t\t\t\trenderSlotSelection(startDate, endDate);\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\tfunction renderSlotSelection(startDate, endDate) {\n\t\t\tvar helperOption = opt('selectHelper');\n\t\t\tcoordinateGrid.build();\n\t\t\tif (helperOption) {\n\t\t\t\tvar col = dayDiff(startDate, t.visStart) * dis + dit;\n\t\t\t\tif (col >= 0 && col < colCnt) { // only works when times are on same day\n\t\t\t\t\tvar rect = coordinateGrid.rect(0, col, 0, col, slotContent); // only for horizontal coords\n\t\t\t\t\tvar top = timePosition(startDate, startDate);\n\t\t\t\t\tvar bottom = timePosition(startDate, endDate);\n\t\t\t\t\tif (bottom > top) { // protect against selections that are entirely before or after visible range\n\t\t\t\t\t\trect.top = top;\n\t\t\t\t\t\trect.height = bottom - top;\n\t\t\t\t\t\trect.left += 2;\n\t\t\t\t\t\trect.width -= 5;\n\t\t\t\t\t\tif ($.isFunction(helperOption)) {\n\t\t\t\t\t\t\tvar helperRes = helperOption(startDate, endDate);\n\t\t\t\t\t\t\tif (helperRes) {\n\t\t\t\t\t\t\t\trect.position = 'absolute';\n\t\t\t\t\t\t\t\trect.zIndex = 8;\n\t\t\t\t\t\t\t\tselectionHelper = $(helperRes)\n\t\t\t\t\t\t\t\t\t.css(rect)\n\t\t\t\t\t\t\t\t\t.appendTo(slotContent);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\trect.isStart = true; // conside rect a \"seg\" now\n\t\t\t\t\t\t\trect.isEnd = true; //\n\t\t\t\t\t\t\tselectionHelper = $(slotSegHtml(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttitle: '',\n\t\t\t\t\t\t\t\t\tstart: startDate,\n\t\t\t\t\t\t\t\t\tend: endDate,\n\t\t\t\t\t\t\t\t\tclassName: ['fc-select-helper'],\n\t\t\t\t\t\t\t\t\teditable: false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\trect\n\t\t\t\t\t\t\t));\n\t\t\t\t\t\t\tselectionHelper.css('opacity', opt('dragOpacity'));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (selectionHelper) {\n\t\t\t\t\t\t\tslotBind(selectionHelper);\n\t\t\t\t\t\t\tslotContent.append(selectionHelper);\n\t\t\t\t\t\t\tsetOuterWidth(selectionHelper, rect.width, true); // needs to be after appended\n\t\t\t\t\t\t\tsetOuterHeight(selectionHelper, rect.height, true);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}else{\n\t\t\t\trenderSlotOverlay(startDate, endDate);\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\tfunction clearSelection() {\n\t\t\tclearOverlays();\n\t\t\tif (selectionHelper) {\n\t\t\t\tselectionHelper.remove();\n\t\t\t\tselectionHelper = null;\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\tfunction slotSelectionMousedown(ev) {\n\t\t\tif (ev.which == 1 && opt('selectable')) { // ev.which==1 means left mouse button\n\t\t\t\tunselect(ev);\n\t\t\t\tvar dates;\n\t\t\t\thoverListener.start(function(cell, origCell) {\n\t\t\t\t\tclearSelection();\n\t\t\t\t\tif (cell && cell.col == origCell.col && !cellIsAllDay(cell)) {\n\t\t\t\t\t\tvar d1 = cellDate(origCell);\n\t\t\t\t\t\tvar d2 = cellDate(cell);\n\t\t\t\t\t\tdates = [\n\t\t\t\t\t\t\td1,\n\t\t\t\t\t\t\taddMinutes(cloneDate(d1), opt('slotMinutes')),\n\t\t\t\t\t\t\td2,\n\t\t\t\t\t\t\taddMinutes(cloneDate(d2), opt('slotMinutes'))\n\t\t\t\t\t\t].sort(cmp);\n\t\t\t\t\t\trenderSlotSelection(dates[0], dates[3]);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tdates = null;\n\t\t\t\t\t}\n\t\t\t\t}, ev);\n\t\t\t\t$(document).one('mouseup', function(ev) {\n\t\t\t\t\thoverListener.stop();\n\t\t\t\t\tif (dates) {\n\t\t\t\t\t\tif (+dates[0] == +dates[1]) {\n\t\t\t\t\t\t\treportDayClick(dates[0], false, ev);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treportSelection(dates[0], dates[3], false, ev);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\tfunction reportDayClick(date, allDay, ev) {\n\t\t\ttrigger('dayClick', dayBodyCells[dayOfWeekCol(date.getDay())], date, allDay, ev);\n\t\t}\n\t\t\n\t\t\n\t\t\n\t\t/* External Dragging\n\t\t--------------------------------------------------------------------------------*/\n\t\t\n\t\t\n\t\tfunction dragStart(_dragElement, ev, ui) {\n\t\t\thoverListener.start(function(cell) {\n\t\t\t\tclearOverlays();\n\t\t\t\tif (cell) {\n\t\t\t\t\tif (cellIsAllDay(cell)) {\n\t\t\t\t\t\trenderCellOverlay(cell.row, cell.col, cell.row, cell.col);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tvar d1 = cellDate(cell);\n\t\t\t\t\t\tvar d2 = addMinutes(cloneDate(d1), opt('defaultEventMinutes'));\n\t\t\t\t\t\trenderSlotOverlay(d1, d2);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, ev);\n\t\t}\n\t\t\n\t\t\n\t\tfunction dragStop(_dragElement, ev, ui) {\n\t\t\tvar cell = hoverListener.stop();\n\t\t\tclearOverlays();\n\t\t\tif (cell) {\n\t\t\t\ttrigger('drop', _dragElement, cellDate(cell), cellIsAllDay(cell), ev, ui);\n\t\t\t}\n\t\t}\n\t\n\t\n\t}\n\t\n\tfunction AgendaEventRenderer() {\n\t\tvar t = this;\n\t\t\n\t\t\n\t\t// exports\n\t\tt.renderEvents = renderEvents;\n\t\tt.compileDaySegs = compileDaySegs; // for DayEventRenderer\n\t\tt.clearEvents = clearEvents;\n\t\tt.slotSegHtml = slotSegHtml;\n\t\tt.bindDaySeg = bindDaySeg;\n\t\t\n\t\t\n\t\t// imports\n\t\tDayEventRenderer.call(t);\n\t\tvar opt = t.opt;\n\t\tvar trigger = t.trigger;\n\t\t//var setOverflowHidden = t.setOverflowHidden;\n\t\tvar isEventDraggable = t.isEventDraggable;\n\t\tvar isEventResizable = t.isEventResizable;\n\t\tvar eventEnd = t.eventEnd;\n\t\tvar reportEvents = t.reportEvents;\n\t\tvar reportEventClear = t.reportEventClear;\n\t\tvar eventElementHandlers = t.eventElementHandlers;\n\t\tvar setHeight = t.setHeight;\n\t\tvar getDaySegmentContainer = t.getDaySegmentContainer;\n\t\tvar getSlotSegmentContainer = t.getSlotSegmentContainer;\n\t\tvar getHoverListener = t.getHoverListener;\n\t\tvar getMaxMinute = t.getMaxMinute;\n\t\tvar getMinMinute = t.getMinMinute;\n\t\tvar timePosition = t.timePosition;\n\t\tvar colContentLeft = t.colContentLeft;\n\t\tvar colContentRight = t.colContentRight;\n\t\tvar renderDaySegs = t.renderDaySegs;\n\t\tvar resizableDayEvent = t.resizableDayEvent; // TODO: streamline binding architecture\n\t\tvar getColCnt = t.getColCnt;\n\t\tvar getColWidth = t.getColWidth;\n\t\tvar getSlotHeight = t.getSlotHeight;\n\t\tvar getBodyContent = t.getBodyContent;\n\t\tvar reportEventElement = t.reportEventElement;\n\t\tvar showEvents = t.showEvents;\n\t\tvar hideEvents = t.hideEvents;\n\t\tvar eventDrop = t.eventDrop;\n\t\tvar eventResize = t.eventResize;\n\t\tvar renderDayOverlay = t.renderDayOverlay;\n\t\tvar clearOverlays = t.clearOverlays;\n\t\tvar calendar = t.calendar;\n\t\tvar formatDate = calendar.formatDate;\n\t\tvar formatDates = calendar.formatDates;\n\t\t\n\t\t\n\t\t\n\t\t/* Rendering\n\t\t----------------------------------------------------------------------------*/\n\t\t\n\t\n\t\tfunction renderEvents(events, modifiedEventId) {\n\t\t\treportEvents(events);\n\t\t\tvar i, len=events.length,\n\t\t\t\tdayEvents=[],\n\t\t\t\tslotEvents=[];\n\t\t\tfor (i=0; i\" +\n\t\t\t\t\"
\" +\n\t\t\t\t\"
\" +\n\t\t\t\t\"
\" +\n\t\t\t\thtmlEscape(formatDates(event.start, event.end, opt('timeFormat'))) +\n\t\t\t\t\"
\" +\n\t\t\t\t\"
\" +\n\t\t\t\t\"
\" +\n\t\t\t\t\"
\" +\n\t\t\t\thtmlEscape(event.title) +\n\t\t\t\t\"
\" +\n\t\t\t\t\"
\" +\n\t\t\t\t\"
\" +\n\t\t\t\t\"
\"; // close inner\n\t\t\tif (seg.isEnd && isEventResizable(event)) {\n\t\t\t\thtml +=\n\t\t\t\t\t\"
=
\";\n\t\t\t}\n\t\t\thtml +=\n\t\t\t\t\"\";\n\t\t\treturn html;\n\t\t}\n\t\t\n\t\t\n\t\tfunction bindDaySeg(event, eventElement, seg) {\n\t\t\tif (isEventDraggable(event)) {\n\t\t\t\tdraggableDayEvent(event, eventElement, seg.isStart);\n\t\t\t}\n\t\t\tif (seg.isEnd && isEventResizable(event)) {\n\t\t\t\tresizableDayEvent(event, eventElement, seg);\n\t\t\t}\n\t\t\teventElementHandlers(event, eventElement);\n\t\t\t\t// needs to be after, because resizableDayEvent might stopImmediatePropagation on click\n\t\t}\n\t\t\n\t\t\n\t\tfunction bindSlotSeg(event, eventElement, seg) {\n\t\t\tvar timeElement = eventElement.find('div.fc-event-time');\n\t\t\tif (isEventDraggable(event)) {\n\t\t\t\tdraggableSlotEvent(event, eventElement, timeElement);\n\t\t\t}\n\t\t\tif (seg.isEnd && isEventResizable(event)) {\n\t\t\t\tresizableSlotEvent(event, eventElement, timeElement);\n\t\t\t}\n\t\t\teventElementHandlers(event, eventElement);\n\t\t}\n\t\t\n\t\t\n\t\t\n\t\t/* Dragging\n\t\t-----------------------------------------------------------------------------------*/\n\t\t\n\t\t\n\t\t// when event starts out FULL-DAY\n\t\t\n\t\tfunction draggableDayEvent(event, eventElement, isStart) {\n\t\t\tvar origWidth;\n\t\t\tvar revert;\n\t\t\tvar allDay=true;\n\t\t\tvar dayDelta;\n\t\t\tvar dis = opt('isRTL') ? -1 : 1;\n\t\t\tvar hoverListener = getHoverListener();\n\t\t\tvar colWidth = getColWidth();\n\t\t\tvar slotHeight = getSlotHeight();\n\t\t\tvar minMinute = getMinMinute();\n\t\t\teventElement.draggable({\n\t\t\t\tzIndex: 9,\n\t\t\t\topacity: opt('dragOpacity', 'month'), // use whatever the month view was using\n\t\t\t\trevertDuration: opt('dragRevertDuration'),\n\t\t\t\tstart: function(ev, ui) {\n\t\t\t\t\ttrigger('eventDragStart', eventElement, event, ev, ui);\n\t\t\t\t\thideEvents(event, eventElement);\n\t\t\t\t\torigWidth = eventElement.width();\n\t\t\t\t\thoverListener.start(function(cell, origCell, rowDelta, colDelta) {\n\t\t\t\t\t\tclearOverlays();\n\t\t\t\t\t\tif (cell) {\n\t\t\t\t\t\t\t//setOverflowHidden(true);\n\t\t\t\t\t\t\trevert = false;\n\t\t\t\t\t\t\tdayDelta = colDelta * dis;\n\t\t\t\t\t\t\tif (!cell.row) {\n\t\t\t\t\t\t\t\t// on full-days\n\t\t\t\t\t\t\t\trenderDayOverlay(\n\t\t\t\t\t\t\t\t\taddDays(cloneDate(event.start), dayDelta),\n\t\t\t\t\t\t\t\t\taddDays(exclEndDay(event), dayDelta)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tresetElement();\n\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t// mouse is over bottom slots\n\t\t\t\t\t\t\t\tif (isStart) {\n\t\t\t\t\t\t\t\t\tif (allDay) {\n\t\t\t\t\t\t\t\t\t\t// convert event to temporary slot-event\n\t\t\t\t\t\t\t\t\t\teventElement.width(colWidth - 10); // don't use entire width\n\t\t\t\t\t\t\t\t\t\tsetOuterHeight(\n\t\t\t\t\t\t\t\t\t\t\teventElement,\n\t\t\t\t\t\t\t\t\t\t\tslotHeight * Math.round(\n\t\t\t\t\t\t\t\t\t\t\t\t(event.end ? ((event.end - event.start) / MINUTE_MS) : opt('defaultEventMinutes'))\n\t\t\t\t\t\t\t\t\t\t\t\t/ opt('slotMinutes')\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\teventElement.draggable('option', 'grid', [colWidth, 1]);\n\t\t\t\t\t\t\t\t\t\tallDay = false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t\trevert = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trevert = revert || (allDay && !dayDelta);\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tresetElement();\n\t\t\t\t\t\t\t//setOverflowHidden(false);\n\t\t\t\t\t\t\trevert = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\teventElement.draggable('option', 'revert', revert);\n\t\t\t\t\t}, ev, 'drag');\n\t\t\t\t},\n\t\t\t\tstop: function(ev, ui) {\n\t\t\t\t\thoverListener.stop();\n\t\t\t\t\tclearOverlays();\n\t\t\t\t\ttrigger('eventDragStop', eventElement, event, ev, ui);\n\t\t\t\t\tif (revert) {\n\t\t\t\t\t\t// hasn't moved or is out of bounds (draggable has already reverted)\n\t\t\t\t\t\tresetElement();\n\t\t\t\t\t\teventElement.css('filter', ''); // clear IE opacity side-effects\n\t\t\t\t\t\tshowEvents(event, eventElement);\n\t\t\t\t\t}else{\n\t\t\t\t\t\t// changed!\n\t\t\t\t\t\tvar minuteDelta = 0;\n\t\t\t\t\t\tif (!allDay) {\n\t\t\t\t\t\t\tminuteDelta = Math.round((eventElement.offset().top - getBodyContent().offset().top) / slotHeight)\n\t\t\t\t\t\t\t\t* opt('slotMinutes')\n\t\t\t\t\t\t\t\t+ minMinute\n\t\t\t\t\t\t\t\t- (event.start.getHours() * 60 + event.start.getMinutes());\n\t\t\t\t\t\t}\n\t\t\t\t\t\teventDrop(this, event, dayDelta, minuteDelta, allDay, ev, ui);\n\t\t\t\t\t}\n\t\t\t\t\t//setOverflowHidden(false);\n\t\t\t\t}\n\t\t\t});\n\t\t\tfunction resetElement() {\n\t\t\t\tif (!allDay) {\n\t\t\t\t\teventElement\n\t\t\t\t\t\t.width(origWidth)\n\t\t\t\t\t\t.height('')\n\t\t\t\t\t\t.draggable('option', 'grid', null);\n\t\t\t\t\tallDay = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\t// when event starts out IN TIMESLOTS\n\t\t\n\t\tfunction draggableSlotEvent(event, eventElement, timeElement) {\n\t\t\tvar origPosition;\n\t\t\tvar allDay=false;\n\t\t\tvar dayDelta;\n\t\t\tvar minuteDelta;\n\t\t\tvar prevMinuteDelta;\n\t\t\tvar dis = opt('isRTL') ? -1 : 1;\n\t\t\tvar hoverListener = getHoverListener();\n\t\t\tvar colCnt = getColCnt();\n\t\t\tvar colWidth = getColWidth();\n\t\t\tvar slotHeight = getSlotHeight();\n\t\t\teventElement.draggable({\n\t\t\t\tzIndex: 9,\n\t\t\t\tscroll: false,\n\t\t\t\tgrid: [colWidth, slotHeight],\n\t\t\t\taxis: colCnt==1 ? 'y' : false,\n\t\t\t\topacity: opt('dragOpacity'),\n\t\t\t\trevertDuration: opt('dragRevertDuration'),\n\t\t\t\tstart: function(ev, ui) {\n\t\t\t\t\ttrigger('eventDragStart', eventElement, event, ev, ui);\n\t\t\t\t\thideEvents(event, eventElement);\n\t\t\t\t\torigPosition = eventElement.position();\n\t\t\t\t\tminuteDelta = prevMinuteDelta = 0;\n\t\t\t\t\thoverListener.start(function(cell, origCell, rowDelta, colDelta) {\n\t\t\t\t\t\teventElement.draggable('option', 'revert', !cell);\n\t\t\t\t\t\tclearOverlays();\n\t\t\t\t\t\tif (cell) {\n\t\t\t\t\t\t\tdayDelta = colDelta * dis;\n\t\t\t\t\t\t\tif (opt('allDaySlot') && !cell.row) {\n\t\t\t\t\t\t\t\t// over full days\n\t\t\t\t\t\t\t\tif (!allDay) {\n\t\t\t\t\t\t\t\t\t// convert to temporary all-day event\n\t\t\t\t\t\t\t\t\tallDay = true;\n\t\t\t\t\t\t\t\t\ttimeElement.hide();\n\t\t\t\t\t\t\t\t\teventElement.draggable('option', 'grid', null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\trenderDayOverlay(\n\t\t\t\t\t\t\t\t\taddDays(cloneDate(event.start), dayDelta),\n\t\t\t\t\t\t\t\t\taddDays(exclEndDay(event), dayDelta)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t// on slots\n\t\t\t\t\t\t\t\tresetElement();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, ev, 'drag');\n\t\t\t\t},\n\t\t\t\tdrag: function(ev, ui) {\n\t\t\t\t\tminuteDelta = Math.round((ui.position.top - origPosition.top) / slotHeight) * opt('slotMinutes');\n\t\t\t\t\tif (minuteDelta != prevMinuteDelta) {\n\t\t\t\t\t\tif (!allDay) {\n\t\t\t\t\t\t\tupdateTimeText(minuteDelta);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tprevMinuteDelta = minuteDelta;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tstop: function(ev, ui) {\n\t\t\t\t\tvar cell = hoverListener.stop();\n\t\t\t\t\tclearOverlays();\n\t\t\t\t\ttrigger('eventDragStop', eventElement, event, ev, ui);\n\t\t\t\t\tif (cell && (dayDelta || minuteDelta || allDay)) {\n\t\t\t\t\t\t// changed!\n\t\t\t\t\t\teventDrop(this, event, dayDelta, allDay ? 0 : minuteDelta, allDay, ev, ui);\n\t\t\t\t\t}else{\n\t\t\t\t\t\t// either no change or out-of-bounds (draggable has already reverted)\n\t\t\t\t\t\tresetElement();\n\t\t\t\t\t\teventElement.css('filter', ''); // clear IE opacity side-effects\n\t\t\t\t\t\teventElement.css(origPosition); // sometimes fast drags make event revert to wrong position\n\t\t\t\t\t\tupdateTimeText(0);\n\t\t\t\t\t\tshowEvents(event, eventElement);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tfunction updateTimeText(minuteDelta) {\n\t\t\t\tvar newStart = addMinutes(cloneDate(event.start), minuteDelta);\n\t\t\t\tvar newEnd;\n\t\t\t\tif (event.end) {\n\t\t\t\t\tnewEnd = addMinutes(cloneDate(event.end), minuteDelta);\n\t\t\t\t}\n\t\t\t\ttimeElement.text(formatDates(newStart, newEnd, opt('timeFormat')));\n\t\t\t}\n\t\t\tfunction resetElement() {\n\t\t\t\t// convert back to original slot-event\n\t\t\t\tif (allDay) {\n\t\t\t\t\ttimeElement.css('display', ''); // show() was causing display=inline\n\t\t\t\t\teventElement.draggable('option', 'grid', [colWidth, slotHeight]);\n\t\t\t\t\tallDay = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\t\n\t\t/* Resizing\n\t\t--------------------------------------------------------------------------------------*/\n\t\t\n\t\t\n\t\tfunction resizableSlotEvent(event, eventElement, timeElement) {\n\t\t\tvar slotDelta, prevSlotDelta;\n\t\t\tvar slotHeight = getSlotHeight();\n\t\t\teventElement.resizable({\n\t\t\t\thandles: {\n\t\t\t\t\ts: 'div.ui-resizable-s'\n\t\t\t\t},\n\t\t\t\tgrid: slotHeight,\n\t\t\t\tstart: function(ev, ui) {\n\t\t\t\t\tslotDelta = prevSlotDelta = 0;\n\t\t\t\t\thideEvents(event, eventElement);\n\t\t\t\t\teventElement.css('z-index', 9);\n\t\t\t\t\ttrigger('eventResizeStart', this, event, ev, ui);\n\t\t\t\t},\n\t\t\t\tresize: function(ev, ui) {\n\t\t\t\t\t// don't rely on ui.size.height, doesn't take grid into account\n\t\t\t\t\tslotDelta = Math.round((Math.max(slotHeight, eventElement.height()) - ui.originalSize.height) / slotHeight);\n\t\t\t\t\tif (slotDelta != prevSlotDelta) {\n\t\t\t\t\t\ttimeElement.text(\n\t\t\t\t\t\t\tformatDates(\n\t\t\t\t\t\t\t\tevent.start,\n\t\t\t\t\t\t\t\t(!slotDelta && !event.end) ? null : // no change, so don't display time range\n\t\t\t\t\t\t\t\t\taddMinutes(eventEnd(event), opt('slotMinutes')*slotDelta),\n\t\t\t\t\t\t\t\topt('timeFormat')\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tprevSlotDelta = slotDelta;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tstop: function(ev, ui) {\n\t\t\t\t\ttrigger('eventResizeStop', this, event, ev, ui);\n\t\t\t\t\tif (slotDelta) {\n\t\t\t\t\t\teventResize(this, event, 0, opt('slotMinutes')*slotDelta, ev, ui);\n\t\t\t\t\t}else{\n\t\t\t\t\t\teventElement.css('z-index', 8);\n\t\t\t\t\t\tshowEvents(event, eventElement);\n\t\t\t\t\t\t// BUG: if event was really short, need to put title back in span\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t\n\t}\n\t\n\t\n\tfunction countForwardSegs(levels) {\n\t\tvar i, j, k, level, segForward, segBack;\n\t\tfor (i=levels.length-1; i>0; i--) {\n\t\t\tlevel = levels[i];\n\t\t\tfor (j=0; j\");\n\t\t\tvar elements;\n\t\t\tvar segmentContainer = getDaySegmentContainer();\n\t\t\tvar i;\n\t\t\tvar segCnt = segs.length;\n\t\t\tvar element;\n\t\t\ttempContainer[0].innerHTML = daySegHTML(segs); // faster than .html()\n\t\t\telements = tempContainer.children();\n\t\t\tsegmentContainer.append(elements);\n\t\t\tdaySegElementResolve(segs, elements);\n\t\t\tdaySegCalcHSides(segs);\n\t\t\tdaySegSetWidths(segs);\n\t\t\tdaySegCalcHeights(segs);\n\t\t\tdaySegSetTops(segs, getRowTops(getRowDivs()));\n\t\t\telements = [];\n\t\t\tfor (i=0; i\" +\n\t\t\t\t\t\"\";\n\t\t\t\tif (!event.allDay && seg.isStart) {\n\t\t\t\t\thtml +=\n\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\thtmlEscape(formatDates(event.start, event.end, opt('timeFormat'))) +\n\t\t\t\t\t\t\"\";\n\t\t\t\t}\n\t\t\t\thtml +=\n\t\t\t\t\t\"\" + htmlEscape(event.title) + \"\" +\n\t\t\t\t\t\"
\";\n\t\t\t\tif (seg.isEnd && isEventResizable(event)) {\n\t\t\t\t\thtml +=\n\t\t\t\t\t\t\"
\" +\n\t\t\t\t\t\t\"   \" + // makes hit area a lot better for IE6/7\n\t\t\t\t\t\t\"
\";\n\t\t\t\t}\n\t\t\t\thtml +=\n\t\t\t\t\t\"\";\n\t\t\t\tseg.left = left;\n\t\t\t\tseg.outerWidth = right - left;\n\t\t\t\tseg.startCol = leftCol;\n\t\t\t\tseg.endCol = rightCol + 1; // needs to be exclusive\n\t\t\t}\n\t\t\treturn html;\n\t\t}\n\t\t\n\t\t\n\t\tfunction daySegElementResolve(segs, elements) { // sets seg.element\n\t\t\tvar i;\n\t\t\tvar segCnt = segs.length;\n\t\t\tvar seg;\n\t\t\tvar event;\n\t\t\tvar element;\n\t\t\tvar triggerRes;\n\t\t\tfor (i=0; i div'); // optimal selector?\n\t\t\t}\n\t\t\treturn rowDivs;\n\t\t}\n\t\t\n\t\t\n\t\tfunction getRowTops(rowDivs) {\n\t\t\tvar i;\n\t\t\tvar rowCnt = rowDivs.length;\n\t\t\tvar tops = [];\n\t\t\tfor (i=0; i selection for IE\n\t\t\telement\n\t\t\t\t.mousedown(function(ev) { // prevent native selection for others\n\t\t\t\t\tev.preventDefault();\n\t\t\t\t})\n\t\t\t\t.click(function(ev) {\n\t\t\t\t\tif (isResizing) {\n\t\t\t\t\t\tev.preventDefault(); // prevent link from being visited (only method that worked in IE6)\n\t\t\t\t\t\tev.stopImmediatePropagation(); // prevent fullcalendar eventClick handler from being called\n\t\t\t\t\t\t // (eventElementHandlers needs to be bound after resizableDayEvent)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\n\t\t\thandle.mousedown(function(ev) {\n\t\t\t\tif (ev.which != 1) {\n\t\t\t\t\treturn; // needs to be left mouse button\n\t\t\t\t}\n\t\t\t\tisResizing = true;\n\t\t\t\tvar hoverListener = t.getHoverListener();\n\t\t\t\tvar rowCnt = getRowCnt();\n\t\t\t\tvar colCnt = getColCnt();\n\t\t\t\tvar dis = rtl ? -1 : 1;\n\t\t\t\tvar dit = rtl ? colCnt-1 : 0;\n\t\t\t\tvar elementTop = element.css('top');\n\t\t\t\tvar dayDelta;\n\t\t\t\tvar helpers;\n\t\t\t\tvar eventCopy = $.extend({}, event);\n\t\t\t\tvar minCell = dateCell(event.start);\n\t\t\t\tclearSelection();\n\t\t\t\t$('body')\n\t\t\t\t\t.css('cursor', direction + '-resize')\n\t\t\t\t\t.one('mouseup', mouseup);\n\t\t\t\ttrigger('eventResizeStart', this, event, ev);\n\t\t\t\thoverListener.start(function(cell, origCell) {\n\t\t\t\t\tif (cell) {\n\t\t\t\t\t\tvar r = Math.max(minCell.row, cell.row);\n\t\t\t\t\t\tvar c = cell.col;\n\t\t\t\t\t\tif (rowCnt == 1) {\n\t\t\t\t\t\t\tr = 0; // hack for all-day area in agenda views\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (r == minCell.row) {\n\t\t\t\t\t\t\tif (rtl) {\n\t\t\t\t\t\t\t\tc = Math.min(minCell.col, c);\n\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\tc = Math.max(minCell.col, c);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdayDelta = (r*7 + c*dis+dit) - (origCell.row*7 + origCell.col*dis+dit);\n\t\t\t\t\t\tvar newEnd = addDays(eventEnd(event), dayDelta, true);\n\t\t\t\t\t\tif (dayDelta) {\n\t\t\t\t\t\t\teventCopy.end = newEnd;\n\t\t\t\t\t\t\tvar oldHelpers = helpers;\n\t\t\t\t\t\t\thelpers = renderTempDaySegs(compileDaySegs([eventCopy]), seg.row, elementTop);\n\t\t\t\t\t\t\thelpers.find('*').css('cursor', direction + '-resize');\n\t\t\t\t\t\t\tif (oldHelpers) {\n\t\t\t\t\t\t\t\toldHelpers.remove();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thideEvents(event);\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tif (helpers) {\n\t\t\t\t\t\t\t\tshowEvents(event);\n\t\t\t\t\t\t\t\thelpers.remove();\n\t\t\t\t\t\t\t\thelpers = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclearOverlays();\n\t\t\t\t\t\trenderDayOverlay(event.start, addDays(cloneDate(newEnd), 1)); // coordinate grid already rebuild at hoverListener.start\n\t\t\t\t\t}\n\t\t\t\t}, ev);\n\t\t\t\t\n\t\t\t\tfunction mouseup(ev) {\n\t\t\t\t\ttrigger('eventResizeStop', this, event, ev);\n\t\t\t\t\t$('body').css('cursor', '');\n\t\t\t\t\thoverListener.stop();\n\t\t\t\t\tclearOverlays();\n\t\t\t\t\tif (dayDelta) {\n\t\t\t\t\t\teventResize(this, event, dayDelta, 0, ev);\n\t\t\t\t\t\t// event redraw will clear helpers\n\t\t\t\t\t}\n\t\t\t\t\t// otherwise, the drag handler already restored the old events\n\t\t\t\t\t\n\t\t\t\t\tsetTimeout(function() { // make this happen after the element's click event\n\t\t\t\t\t\tisResizing = false;\n\t\t\t\t\t},0);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t});\n\t\t}\n\t\t\n\t\n\t}\n\t\n\t//BUG: unselect needs to be triggered when events are dragged+dropped\n\t\n\tfunction SelectionManager() {\n\t\tvar t = this;\n\t\t\n\t\t\n\t\t// exports\n\t\tt.select = select;\n\t\tt.unselect = unselect;\n\t\tt.reportSelection = reportSelection;\n\t\tt.daySelectionMousedown = daySelectionMousedown;\n\t\t\n\t\t\n\t\t// imports\n\t\tvar opt = t.opt;\n\t\tvar trigger = t.trigger;\n\t\tvar defaultSelectionEnd = t.defaultSelectionEnd;\n\t\tvar renderSelection = t.renderSelection;\n\t\tvar clearSelection = t.clearSelection;\n\t\t\n\t\t\n\t\t// locals\n\t\tvar selected = false;\n\t\n\t\n\t\n\t\t// unselectAuto\n\t\tif (opt('selectable') && opt('unselectAuto')) {\n\t\t\t$(document).mousedown(function(ev) {\n\t\t\t\tvar ignore = opt('unselectCancel');\n\t\t\t\tif (ignore) {\n\t\t\t\t\tif ($(ev.target).parents(ignore).length) { // could be optimized to stop after first match\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tunselect(ev);\n\t\t\t});\n\t\t}\n\t\t\n\t\n\t\tfunction select(startDate, endDate, allDay) {\n\t\t\tunselect();\n\t\t\tif (!endDate) {\n\t\t\t\tendDate = defaultSelectionEnd(startDate, allDay);\n\t\t\t}\n\t\t\trenderSelection(startDate, endDate, allDay);\n\t\t\treportSelection(startDate, endDate, allDay);\n\t\t}\n\t\t\n\t\t\n\t\tfunction unselect(ev) {\n\t\t\tif (selected) {\n\t\t\t\tselected = false;\n\t\t\t\tclearSelection();\n\t\t\t\ttrigger('unselect', null, ev);\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\tfunction reportSelection(startDate, endDate, allDay, ev) {\n\t\t\tselected = true;\n\t\t\ttrigger('select', null, startDate, endDate, allDay, ev);\n\t\t}\n\t\t\n\t\t\n\t\tfunction daySelectionMousedown(ev) { // not really a generic manager method, oh well\n\t\t\tvar cellDate = t.cellDate;\n\t\t\tvar cellIsAllDay = t.cellIsAllDay;\n\t\t\tvar hoverListener = t.getHoverListener();\n\t\t\tvar reportDayClick = t.reportDayClick; // this is hacky and sort of weird\n\t\t\tif (ev.which == 1 && opt('selectable')) { // which==1 means left mouse button\n\t\t\t\tunselect(ev);\n\t\t\t\tvar _mousedownElement = this;\n\t\t\t\tvar dates;\n\t\t\t\thoverListener.start(function(cell, origCell) { // TODO: maybe put cellDate/cellIsAllDay info in cell\n\t\t\t\t\tclearSelection();\n\t\t\t\t\tif (cell && cellIsAllDay(cell)) {\n\t\t\t\t\t\tdates = [ cellDate(origCell), cellDate(cell) ].sort(cmp);\n\t\t\t\t\t\trenderSelection(dates[0], dates[1], true);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tdates = null;\n\t\t\t\t\t}\n\t\t\t\t}, ev);\n\t\t\t\t$(document).one('mouseup', function(ev) {\n\t\t\t\t\thoverListener.stop();\n\t\t\t\t\tif (dates) {\n\t\t\t\t\t\tif (+dates[0] == +dates[1]) {\n\t\t\t\t\t\t\treportDayClick(dates[0], true, ev);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treportSelection(dates[0], dates[1], true, ev);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\n\t\n\t}\n\t \n\tfunction OverlayManager() {\n\t\tvar t = this;\n\t\t\n\t\t\n\t\t// exports\n\t\tt.renderOverlay = renderOverlay;\n\t\tt.clearOverlays = clearOverlays;\n\t\t\n\t\t\n\t\t// locals\n\t\tvar usedOverlays = [];\n\t\tvar unusedOverlays = [];\n\t\t\n\t\t\n\t\tfunction renderOverlay(rect, parent) {\n\t\t\tvar e = unusedOverlays.shift();\n\t\t\tif (!e) {\n\t\t\t\te = $(\"
\");\n\t\t\t}\n\t\t\tif (e[0].parentNode != parent[0]) {\n\t\t\t\te.appendTo(parent);\n\t\t\t}\n\t\t\tusedOverlays.push(e.css(rect).show());\n\t\t\treturn e;\n\t\t}\n\t\t\n\t\n\t\tfunction clearOverlays() {\n\t\t\tvar e;\n\t\t\twhile (e = usedOverlays.shift()) {\n\t\t\t\tunusedOverlays.push(e.hide().unbind());\n\t\t\t}\n\t\t}\n\t\n\t\n\t}\n\t\n\tfunction CoordinateGrid(buildFunc) {\n\t\n\t\tvar t = this;\n\t\tvar rows;\n\t\tvar cols;\n\t\t\n\t\t\n\t\tt.build = function() {\n\t\t\trows = [];\n\t\t\tcols = [];\n\t\t\tbuildFunc(rows, cols);\n\t\t};\n\t\t\n\t\t\n\t\tt.cell = function(x, y) {\n\t\t\tvar rowCnt = rows.length;\n\t\t\tvar colCnt = cols.length;\n\t\t\tvar i, r=-1, c=-1;\n\t\t\tfor (i=0; i= rows[i][0] && y < rows[i][1]) {\n\t\t\t\t\tr = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (i=0; i= cols[i][0] && x < cols[i][1]) {\n\t\t\t\t\tc = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn (r>=0 && c>=0) ? { row:r, col:c } : null;\n\t\t};\n\t\t\n\t\t\n\t\tt.rect = function(row0, col0, row1, col1, originElement) { // row1,col1 is inclusive\n\t\t\tvar origin = originElement.offset();\n\t\t\treturn {\n\t\t\t\ttop: rows[row0][0] - origin.top,\n\t\t\t\tleft: cols[col0][0] - origin.left,\n\t\t\t\twidth: cols[col1][1] - cols[col0][0],\n\t\t\t\theight: rows[row1][1] - rows[row0][0]\n\t\t\t};\n\t\t};\n\t\n\t}\n\t\n\tfunction HoverListener(coordinateGrid) {\n\t\n\t\n\t\tvar t = this;\n\t\tvar bindType;\n\t\tvar change;\n\t\tvar firstCell;\n\t\tvar cell;\n\t\t\n\t\t\n\t\tt.start = function(_change, ev, _bindType) {\n\t\t\tchange = _change;\n\t\t\tfirstCell = cell = null;\n\t\t\tcoordinateGrid.build();\n\t\t\tmouse(ev);\n\t\t\tbindType = _bindType || 'mousemove';\n\t\t\t$(document).bind(bindType, mouse);\n\t\t};\n\t\t\n\t\t\n\t\tfunction mouse(ev) {\n\t\t\t_fixUIEvent(ev); // see below\n\t\t\tvar newCell = coordinateGrid.cell(ev.pageX, ev.pageY);\n\t\t\tif (!newCell != !cell || newCell && (newCell.row != cell.row || newCell.col != cell.col)) {\n\t\t\t\tif (newCell) {\n\t\t\t\t\tif (!firstCell) {\n\t\t\t\t\t\tfirstCell = newCell;\n\t\t\t\t\t}\n\t\t\t\t\tchange(newCell, firstCell, newCell.row-firstCell.row, newCell.col-firstCell.col);\n\t\t\t\t}else{\n\t\t\t\t\tchange(newCell, firstCell);\n\t\t\t\t}\n\t\t\t\tcell = newCell;\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\tt.stop = function() {\n\t\t\t$(document).unbind(bindType, mouse);\n\t\t\treturn cell;\n\t\t};\n\t\t\n\t\t\n\t}\n\t\n\t\n\t\n\t// this fix was only necessary for jQuery UI 1.8.16 (and jQuery 1.7 or 1.7.1)\n\t// upgrading to jQuery UI 1.8.17 (and using either jQuery 1.7 or 1.7.1) fixed the problem\n\t// but keep this in here for 1.8.16 users\n\t// and maybe remove it down the line\n\t\n\tfunction _fixUIEvent(event) { // for issue 1168\n\t\tif (event.pageX === undefined) {\n\t\t\tevent.pageX = event.originalEvent.pageX;\n\t\t\tevent.pageY = event.originalEvent.pageY;\n\t\t}\n\t}\n\tfunction HorizontalPositionCache(getElement) {\n\t\n\t\tvar t = this,\n\t\t\telements = {},\n\t\t\tlefts = {},\n\t\t\trights = {};\n\t\t\t\n\t\tfunction e(i) {\n\t\t\treturn elements[i] = elements[i] || getElement(i);\n\t\t}\n\t\t\n\t\tt.left = function(i) {\n\t\t\treturn lefts[i] = lefts[i] === undefined ? e(i).position().left : lefts[i];\n\t\t};\n\t\t\n\t\tt.right = function(i) {\n\t\t\treturn rights[i] = rights[i] === undefined ? t.left(i) + e(i).width() : rights[i];\n\t\t};\n\t\t\n\t\tt.clear = function() {\n\t\t\telements = {};\n\t\t\tlefts = {};\n\t\t\trights = {};\n\t\t};\n\t\t\n\t}\n\t\n\t})(jQuery);\n\n\n/***/ }\n\n});\n\n\n// WEBPACK FOOTER //\n// javascripts/user-page-js/default.page.js","/*global window, global*/\nvar util = require(\"util\")\nvar assert = require(\"assert\")\nvar now = require(\"date-now\")\n\nvar slice = Array.prototype.slice\nvar console\nvar times = {}\n\nif (typeof global !== \"undefined\" && global.console) {\n console = global.console\n} else if (typeof window !== \"undefined\" && window.console) {\n console = window.console\n} else {\n console = {}\n}\n\nvar functions = [\n [log, \"log\"],\n [info, \"info\"],\n [warn, \"warn\"],\n [error, \"error\"],\n [time, \"time\"],\n [timeEnd, \"timeEnd\"],\n [trace, \"trace\"],\n [dir, \"dir\"],\n [consoleAssert, \"assert\"]\n]\n\nfor (var i = 0; i < functions.length; i++) {\n var tuple = functions[i]\n var f = tuple[0]\n var name = tuple[1]\n\n if (!console[name]) {\n console[name] = f\n }\n}\n\nmodule.exports = console\n\nfunction log() {}\n\nfunction info() {\n console.log.apply(console, arguments)\n}\n\nfunction warn() {\n console.log.apply(console, arguments)\n}\n\nfunction error() {\n console.warn.apply(console, arguments)\n}\n\nfunction time(label) {\n times[label] = now()\n}\n\nfunction timeEnd(label) {\n var time = times[label]\n if (!time) {\n throw new Error(\"No such label: \" + label)\n }\n\n var duration = now() - time\n console.log(label + \": \" + duration + \"ms\")\n}\n\nfunction trace() {\n var err = new Error()\n err.name = \"Trace\"\n err.message = util.format.apply(null, arguments)\n console.error(err.stack)\n}\n\nfunction dir(object) {\n console.log(util.inspect(object) + \"\\n\")\n}\n\nfunction consoleAssert(expression) {\n if (!expression) {\n var arr = slice.call(arguments, 1)\n assert.ok(false, util.format.apply(null, arr))\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/~/node-libs-browser/~/console-browserify/index.js\n// module id = 8\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 17 18 20 21 23 24 25 26 27 28 29 161","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/~/node-libs-browser/~/process/browser.js\n// module id = 46\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 17 18 20 21 23 24 25 26 27 28 29 161","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/~/node-libs-browser/~/util/util.js\n// module id = 48\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 17 18 20 21 23 24 25 26 27 28 29 161","'use strict';\n\n// compare and isBuffer taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) {\n return -1;\n }\n if (y < x) {\n return 1;\n }\n return 0;\n}\nfunction isBuffer(b) {\n if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {\n return global.Buffer.isBuffer(b);\n }\n return !!(b != null && b._isBuffer);\n}\n\n// based on node assert, original notice:\n\n// http://wiki.commonjs.org/wiki/Unit_Testing/1.0\n//\n// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!\n//\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar util = require('util/');\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar pSlice = Array.prototype.slice;\nvar functionsHaveNames = (function () {\n return function foo() {}.name === 'foo';\n}());\nfunction pToString (obj) {\n return Object.prototype.toString.call(obj);\n}\nfunction isView(arrbuf) {\n if (isBuffer(arrbuf)) {\n return false;\n }\n if (typeof global.ArrayBuffer !== 'function') {\n return false;\n }\n if (typeof ArrayBuffer.isView === 'function') {\n return ArrayBuffer.isView(arrbuf);\n }\n if (!arrbuf) {\n return false;\n }\n if (arrbuf instanceof DataView) {\n return true;\n }\n if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {\n return true;\n }\n return false;\n}\n// 1. The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\n\n// 2. The AssertionError is defined in assert.\n// new assert.AssertionError({ message: message,\n// actual: actual,\n// expected: expected })\n\nvar regex = /\\s*function\\s+([^\\(\\s]*)\\s*/;\n// based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js\nfunction getName(func) {\n if (!util.isFunction(func)) {\n return;\n }\n if (functionsHaveNames) {\n return func.name;\n }\n var str = func.toString();\n var match = str.match(regex);\n return match && match[1];\n}\nassert.AssertionError = function AssertionError(options) {\n this.name = 'AssertionError';\n this.actual = options.actual;\n this.expected = options.expected;\n this.operator = options.operator;\n if (options.message) {\n this.message = options.message;\n this.generatedMessage = false;\n } else {\n this.message = getMessage(this);\n this.generatedMessage = true;\n }\n var stackStartFunction = options.stackStartFunction || fail;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, stackStartFunction);\n } else {\n // non v8 browsers so we can have a stacktrace\n var err = new Error();\n if (err.stack) {\n var out = err.stack;\n\n // try to strip useless frames\n var fn_name = getName(stackStartFunction);\n var idx = out.indexOf('\\n' + fn_name);\n if (idx >= 0) {\n // once we have located the function frame\n // we need to strip out everything before it (and its line)\n var next_line = out.indexOf('\\n', idx + 1);\n out = out.substring(next_line + 1);\n }\n\n this.stack = out;\n }\n }\n};\n\n// assert.AssertionError instanceof Error\nutil.inherits(assert.AssertionError, Error);\n\nfunction truncate(s, n) {\n if (typeof s === 'string') {\n return s.length < n ? s : s.slice(0, n);\n } else {\n return s;\n }\n}\nfunction inspect(something) {\n if (functionsHaveNames || !util.isFunction(something)) {\n return util.inspect(something);\n }\n var rawname = getName(something);\n var name = rawname ? ': ' + rawname : '';\n return '[Function' + name + ']';\n}\nfunction getMessage(self) {\n return truncate(inspect(self.actual), 128) + ' ' +\n self.operator + ' ' +\n truncate(inspect(self.expected), 128);\n}\n\n// At present only the three keys mentioned above are used and\n// understood by the spec. Implementations or sub modules can pass\n// other keys to the AssertionError's constructor - they will be\n// ignored.\n\n// 3. All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction fail(actual, expected, message, operator, stackStartFunction) {\n throw new assert.AssertionError({\n message: message,\n actual: actual,\n expected: expected,\n operator: operator,\n stackStartFunction: stackStartFunction\n });\n}\n\n// EXTENSION! allows for well behaved errors defined elsewhere.\nassert.fail = fail;\n\n// 4. Pure assertion tests whether a value is truthy, as determined\n// by !!guard.\n// assert.ok(guard, message_opt);\n// This statement is equivalent to assert.equal(true, !!guard,\n// message_opt);. To test strictly for the value true, use\n// assert.strictEqual(true, guard, message_opt);.\n\nfunction ok(value, message) {\n if (!value) fail(value, true, message, '==', assert.ok);\n}\nassert.ok = ok;\n\n// 5. The equality assertion tests shallow, coercive equality with\n// ==.\n// assert.equal(actual, expected, message_opt);\n\nassert.equal = function equal(actual, expected, message) {\n if (actual != expected) fail(actual, expected, message, '==', assert.equal);\n};\n\n// 6. The non-equality assertion tests for whether two objects are not equal\n// with != assert.notEqual(actual, expected, message_opt);\n\nassert.notEqual = function notEqual(actual, expected, message) {\n if (actual == expected) {\n fail(actual, expected, message, '!=', assert.notEqual);\n }\n};\n\n// 7. The equivalence assertion tests a deep equality relation.\n// assert.deepEqual(actual, expected, message_opt);\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'deepEqual', assert.deepEqual);\n }\n};\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);\n }\n};\n\nfunction _deepEqual(actual, expected, strict, memos) {\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n } else if (isBuffer(actual) && isBuffer(expected)) {\n return compare(actual, expected) === 0;\n\n // 7.2. If the expected value is a Date object, the actual value is\n // equivalent if it is also a Date object that refers to the same time.\n } else if (util.isDate(actual) && util.isDate(expected)) {\n return actual.getTime() === expected.getTime();\n\n // 7.3 If the expected value is a RegExp object, the actual value is\n // equivalent if it is also a RegExp object with the same source and\n // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).\n } else if (util.isRegExp(actual) && util.isRegExp(expected)) {\n return actual.source === expected.source &&\n actual.global === expected.global &&\n actual.multiline === expected.multiline &&\n actual.lastIndex === expected.lastIndex &&\n actual.ignoreCase === expected.ignoreCase;\n\n // 7.4. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if ((actual === null || typeof actual !== 'object') &&\n (expected === null || typeof expected !== 'object')) {\n return strict ? actual === expected : actual == expected;\n\n // If both values are instances of typed arrays, wrap their underlying\n // ArrayBuffers in a Buffer each to increase performance\n // This optimization requires the arrays to have the same type as checked by\n // Object.prototype.toString (aka pToString). Never perform binary\n // comparisons for Float*Arrays, though, since e.g. +0 === -0 but their\n // bit patterns are not identical.\n } else if (isView(actual) && isView(expected) &&\n pToString(actual) === pToString(expected) &&\n !(actual instanceof Float32Array ||\n actual instanceof Float64Array)) {\n return compare(new Uint8Array(actual.buffer),\n new Uint8Array(expected.buffer)) === 0;\n\n // 7.5 For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else if (isBuffer(actual) !== isBuffer(expected)) {\n return false;\n } else {\n memos = memos || {actual: [], expected: []};\n\n var actualIndex = memos.actual.indexOf(actual);\n if (actualIndex !== -1) {\n if (actualIndex === memos.expected.indexOf(expected)) {\n return true;\n }\n }\n\n memos.actual.push(actual);\n memos.expected.push(expected);\n\n return objEquiv(actual, expected, strict, memos);\n }\n}\n\nfunction isArguments(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n}\n\nfunction objEquiv(a, b, strict, actualVisitedObjects) {\n if (a === null || a === undefined || b === null || b === undefined)\n return false;\n // if one is a primitive, the other must be same\n if (util.isPrimitive(a) || util.isPrimitive(b))\n return a === b;\n if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))\n return false;\n var aIsArgs = isArguments(a);\n var bIsArgs = isArguments(b);\n if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))\n return false;\n if (aIsArgs) {\n a = pSlice.call(a);\n b = pSlice.call(b);\n return _deepEqual(a, b, strict);\n }\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n var key, i;\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length !== kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] !== kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))\n return false;\n }\n return true;\n}\n\n// 8. The non-equivalence assertion tests for any deep inequality.\n// assert.notDeepEqual(actual, expected, message_opt);\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);\n }\n};\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\nfunction notDeepStrictEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);\n }\n}\n\n\n// 9. The strict equality assertion tests strict equality, as determined by ===.\n// assert.strictEqual(actual, expected, message_opt);\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (actual !== expected) {\n fail(actual, expected, message, '===', assert.strictEqual);\n }\n};\n\n// 10. The strict non-equality assertion tests for strict inequality, as\n// determined by !==. assert.notStrictEqual(actual, expected, message_opt);\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (actual === expected) {\n fail(actual, expected, message, '!==', assert.notStrictEqual);\n }\n};\n\nfunction expectedException(actual, expected) {\n if (!actual || !expected) {\n return false;\n }\n\n if (Object.prototype.toString.call(expected) == '[object RegExp]') {\n return expected.test(actual);\n }\n\n try {\n if (actual instanceof expected) {\n return true;\n }\n } catch (e) {\n // Ignore. The instanceof check doesn't work for arrow functions.\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction _tryBlock(block) {\n var error;\n try {\n block();\n } catch (e) {\n error = e;\n }\n return error;\n}\n\nfunction _throws(shouldThrow, block, expected, message) {\n var actual;\n\n if (typeof block !== 'function') {\n throw new TypeError('\"block\" argument must be a function');\n }\n\n if (typeof expected === 'string') {\n message = expected;\n expected = null;\n }\n\n actual = _tryBlock(block);\n\n message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +\n (message ? ' ' + message : '.');\n\n if (shouldThrow && !actual) {\n fail(actual, expected, 'Missing expected exception' + message);\n }\n\n var userProvidedMessage = typeof message === 'string';\n var isUnwantedException = !shouldThrow && util.isError(actual);\n var isUnexpectedException = !shouldThrow && actual && !expected;\n\n if ((isUnwantedException &&\n userProvidedMessage &&\n expectedException(actual, expected)) ||\n isUnexpectedException) {\n fail(actual, expected, 'Got unwanted exception' + message);\n }\n\n if ((shouldThrow && actual && expected &&\n !expectedException(actual, expected)) || (!shouldThrow && actual)) {\n throw actual;\n }\n}\n\n// 11. Expected to throw an error:\n// assert.throws(block, Error_opt, message_opt);\n\nassert.throws = function(block, /*optional*/error, /*optional*/message) {\n _throws(true, block, error, message);\n};\n\n// EXTENSION! This is annoying to write outside this module.\nassert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {\n _throws(false, block, error, message);\n};\n\nassert.ifError = function(err) { if (err) throw err; };\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n if (hasOwn.call(obj, key)) keys.push(key);\n }\n return keys;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/~/node-libs-browser/~/assert/assert.js\n// module id = 94\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 17 18 20 21 23 24 25 26 27 28 29 161","module.exports = now\n\nfunction now() {\n return new Date().getTime()\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/~/node-libs-browser/~/console-browserify/~/date-now/index.js\n// module id = 95\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 17 18 20 21 23 24 25 26 27 28 29 161","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/~/node-libs-browser/~/util/~/inherits/inherits_browser.js\n// module id = 96\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 17 18 20 21 23 24 25 26 27 28 29 161","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/~/node-libs-browser/~/util/support/isBufferBrowser.js\n// module id = 97\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 17 18 20 21 23 24 25 26 27 28 29 161","/* eslint-disable */\n/* スマホ・タブレット利用制限処理 */\n$(document).ready( function(){\n\t// ページ読み込み時に実行したい処理\n // Ajax通信を開始\n if(window.getUtilizationTimeInfo === undefined) {\n return;\n }\n $.ajax({\n\t\turl: window.getUtilizationTimeInfo,\n\t\ttype: 'GET',\n\t\tdataType: 'json',\n\t\t// フォーム要素の内容をハッシュ形式に変換\n\t\t//data: $('form').serializeArray(),\n\t\t//timeout: 5000,\n\t\tsuccess: function(data){\n\t\t // 通信成功時の処理を記述\n\t\t console.log('success');\n\t\t if (data.result) {\n\t\t\t if(data.logout){\n\t\t\t\twindow.location = data.logout_url; \n\t\t\t };\n\t\t }else{\n\t\t\talert(\"利用権限情報の取得に失敗しました。\");\n\t\t };\n\t\t \n\t\t},\n\t\terror: function(){\n\t\t // 通信失敗時の処理を記述\n\t\t alert(\"利用権限情報の取得に失敗しました。\");\n\t\t}\n })\n\n});\n\n\n\n// WEBPACK FOOTER //\n// ./es6/user-common-js/legacy/utilizationtimeInfo.js","import '../user-common-js';\n\nimport '../../source/javascripts/main';\nimport '../../source/javascripts/vcet';\nimport '../../source/javascripts/vendor/fullcalendar';\n\nimport '../user-common-js/legacy/utilizationtimeInfo';\n\n\n\n// WEBPACK FOOTER //\n// ./es6/user-page-js/default.page.js","/**\n * Created with IntelliJ IDEA.\n * User: takeo\n * Date: 2012/12/27\n * Time: 18:03\n * To change this template use File | Settings | File Templates.\n */\n\n\n\n$(function () {\n $(\"a[rel='popover']\").popover({\n offset: 10\n });\n $(\"a[rel='popover']\").on('click', function(e) {\n e.preventDefault();\n return true;\n });\n});\n\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./source/javascripts/main.js\n// module id = 1127\n// module chunks = 161","/**\n * @preserve\n * FullCalendar v1.5.4\n * http://arshaw.com/fullcalendar/\n *\n * Use fullcalendar.css for basic styling.\n * For event drag & drop, requires jQuery UI draggable.\n * For event resizing, requires jQuery UI resizable.\n *\n * Copyright (c) 2011 Adam Shaw\n * Dual licensed under the MIT and GPL licenses, located in\n * MIT-LICENSE.txt and GPL-LICENSE.txt respectively.\n *\n * Date: Tue Sep 4 23:38:33 2012 -0700\n *\n */\n \n(function($, undefined) {\n\n\nvar defaults = {\n\n\t// display\n\tdefaultView: 'month',\n\taspectRatio: 1.35,\n\theader: {\n\t\tleft: 'title',\n\t\tcenter: '',\n\t\tright: 'today prev,next'\n\t},\n\tweekends: true,\n\t\n\t// editing\n\t//editable: false,\n\t//disableDragging: false,\n\t//disableResizing: false,\n\t\n\tallDayDefault: true,\n\tignoreTimezone: true,\n\t\n\t// event ajax\n\tlazyFetching: true,\n\tstartParam: 'start',\n\tendParam: 'end',\n\t\n\t// time formats\n\ttitleFormat: {\n\t\tmonth: 'MMMM yyyy',\n\t\tweek: \"MMM d[ yyyy]{ '—'[ MMM] d yyyy}\",\n\t\tday: 'dddd, MMM d, yyyy'\n\t},\n\tcolumnFormat: {\n\t\tmonth: 'ddd',\n\t\tweek: 'ddd M/d',\n\t\tday: 'dddd M/d'\n\t},\n\ttimeFormat: { // for event elements\n\t\t'': 'h(:mm)t' // default\n\t},\n\t\n\t// locale\n\tisRTL: false,\n\tfirstDay: 0,\n\tmonthNames: ['January','February','March','April','May','June','July','August','September','October','November','December'],\n\tmonthNamesShort: ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],\n\tdayNames: ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],\n\tdayNamesShort: ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],\n\tbuttonText: {\n\t\tprev: ' ◄ ',\n\t\tnext: ' ► ',\n\t\tprevYear: ' << ',\n\t\tnextYear: ' >> ',\n\t\ttoday: 'today',\n\t\tmonth: 'month',\n\t\tweek: 'week',\n\t\tday: 'day'\n\t},\n\t\n\t// jquery-ui theming\n\ttheme: false,\n\tbuttonIcons: {\n\t\tprev: 'circle-triangle-w',\n\t\tnext: 'circle-triangle-e'\n\t},\n\t\n\t//selectable: false,\n\tunselectAuto: true,\n\t\n\tdropAccept: '*'\n\t\n};\n\n// right-to-left defaults\nvar rtlDefaults = {\n\theader: {\n\t\tleft: 'next,prev today',\n\t\tcenter: '',\n\t\tright: 'title'\n\t},\n\tbuttonText: {\n\t\tprev: ' ► ',\n\t\tnext: ' ◄ ',\n\t\tprevYear: ' >> ',\n\t\tnextYear: ' << '\n\t},\n\tbuttonIcons: {\n\t\tprev: 'circle-triangle-e',\n\t\tnext: 'circle-triangle-w'\n\t}\n};\n\n\n\nvar fc = $.fullCalendar = { version: \"1.5.4\" };\nvar fcViews = fc.views = {};\n\n\n$.fn.fullCalendar = function(options) {\n\n\n\t// method calling\n\tif (typeof options == 'string') {\n\t\tvar args = Array.prototype.slice.call(arguments, 1);\n\t\tvar res;\n\t\tthis.each(function() {\n\t\t\tvar calendar = $.data(this, 'fullCalendar');\n\t\t\tif (calendar && $.isFunction(calendar[options])) {\n\t\t\t\tvar r = calendar[options].apply(calendar, args);\n\t\t\t\tif (res === undefined) {\n\t\t\t\t\tres = r;\n\t\t\t\t}\n\t\t\t\tif (options == 'destroy') {\n\t\t\t\t\t$.removeData(this, 'fullCalendar');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tif (res !== undefined) {\n\t\t\treturn res;\n\t\t}\n\t\treturn this;\n\t}\n\t\n\t\n\t// would like to have this logic in EventManager, but needs to happen before options are recursively extended\n\tvar eventSources = options.eventSources || [];\n\tdelete options.eventSources;\n\tif (options.events) {\n\t\teventSources.push(options.events);\n\t\tdelete options.events;\n\t}\n\t\n\n\toptions = $.extend(true, {},\n\t\tdefaults,\n\t\t(options.isRTL || options.isRTL===undefined && defaults.isRTL) ? rtlDefaults : {},\n\t\toptions\n\t);\n\t\n\t\n\tthis.each(function(i, _element) {\n\t\tvar element = $(_element);\n\t\tvar calendar = new Calendar(element, options, eventSources);\n\t\telement.data('fullCalendar', calendar); // TODO: look into memory leak implications\n\t\tcalendar.render();\n\t});\n\t\n\t\n\treturn this;\n\t\n};\n\n\n// function for adding/overriding defaults\nfunction setDefaults(d) {\n\t$.extend(true, defaults, d);\n}\n\n\n\n \nfunction Calendar(element, options, eventSources) {\n\tvar t = this;\n\t\n\t\n\t// exports\n\tt.options = options;\n\tt.render = render;\n\tt.destroy = destroy;\n\tt.refetchEvents = refetchEvents;\n\tt.reportEvents = reportEvents;\n\tt.reportEventChange = reportEventChange;\n\tt.rerenderEvents = rerenderEvents;\n\tt.changeView = changeView;\n\tt.select = select;\n\tt.unselect = unselect;\n\tt.prev = prev;\n\tt.next = next;\n\tt.prevYear = prevYear;\n\tt.nextYear = nextYear;\n\tt.today = today;\n\tt.gotoDate = gotoDate;\n\tt.incrementDate = incrementDate;\n\tt.formatDate = function(format, date) { return formatDate(format, date, options) };\n\tt.formatDates = function(format, date1, date2) { return formatDates(format, date1, date2, options) };\n\tt.getDate = getDate;\n\tt.getView = getView;\n\tt.option = option;\n\tt.trigger = trigger;\n\t\n\t\n\t// imports\n\tEventManager.call(t, options, eventSources);\n\tvar isFetchNeeded = t.isFetchNeeded;\n\tvar fetchEvents = t.fetchEvents;\n\t\n\t\n\t// locals\n\tvar _element = element[0];\n\tvar header;\n\tvar headerElement;\n\tvar content;\n\tvar tm; // for making theme classes\n\tvar currentView;\n\tvar viewInstances = {};\n\tvar elementOuterWidth;\n\tvar suggestedViewHeight;\n\tvar absoluteViewElement;\n\tvar resizeUID = 0;\n\tvar ignoreWindowResize = 0;\n\tvar date = new Date();\n\tvar events = [];\n\tvar _dragElement;\n\t\n\t\n\t\n\t/* Main Rendering\n\t-----------------------------------------------------------------------------*/\n\t\n\t\n\tsetYMD(date, options.year, options.month, options.date);\n\t\n\t\n\tfunction render(inc) {\n\t\tif (!content) {\n\t\t\tinitialRender();\n\t\t}else{\n\t\t\tcalcSize();\n\t\t\tmarkSizesDirty();\n\t\t\tmarkEventsDirty();\n\t\t\trenderView(inc);\n\t\t}\n\t}\n\t\n\t\n\tfunction initialRender() {\n\t\ttm = options.theme ? 'ui' : 'fc';\n\t\telement.addClass('fc');\n\t\tif (options.isRTL) {\n\t\t\telement.addClass('fc-rtl');\n\t\t}\n\t\tif (options.theme) {\n\t\t\telement.addClass('ui-widget');\n\t\t}\n\t\tcontent = $(\"
\")\n\t\t\t.prependTo(element);\n\t\theader = new Header(t, options);\n\t\theaderElement = header.render();\n\t\tif (headerElement) {\n\t\t\telement.prepend(headerElement);\n\t\t}\n\t\tchangeView(options.defaultView);\n\t\t$(window).resize(windowResize);\n\t\t// needed for IE in a 0x0 iframe, b/c when it is resized, never triggers a windowResize\n\t\tif (!bodyVisible()) {\n\t\t\tlateRender();\n\t\t}\n\t}\n\t\n\t\n\t// called when we know the calendar couldn't be rendered when it was initialized,\n\t// but we think it's ready now\n\tfunction lateRender() {\n\t\tsetTimeout(function() { // IE7 needs this so dimensions are calculated correctly\n\t\t\tif (!currentView.start && bodyVisible()) { // !currentView.start makes sure this never happens more than once\n\t\t\t\trenderView();\n\t\t\t}\n\t\t},0);\n\t}\n\t\n\t\n\tfunction destroy() {\n\t\t$(window).unbind('resize', windowResize);\n\t\theader.destroy();\n\t\tcontent.remove();\n\t\telement.removeClass('fc fc-rtl ui-widget');\n\t}\n\t\n\t\n\t\n\tfunction elementVisible() {\n\t\treturn _element.offsetWidth !== 0;\n\t}\n\t\n\t\n\tfunction bodyVisible() {\n\t\treturn $('body')[0].offsetWidth !== 0;\n\t}\n\t\n\t\n\t\n\t/* View Rendering\n\t-----------------------------------------------------------------------------*/\n\t\n\t// TODO: improve view switching (still weird transition in IE, and FF has whiteout problem)\n\t\n\tfunction changeView(newViewName) {\n\t\tif (!currentView || newViewName != currentView.name) {\n\t\t\tignoreWindowResize++; // because setMinHeight might change the height before render (and subsequently setSize) is reached\n\n\t\t\tunselect();\n\t\t\t\n\t\t\tvar oldView = currentView;\n\t\t\tvar newViewElement;\n\t\t\t\t\n\t\t\tif (oldView) {\n\t\t\t\t(oldView.beforeHide || noop)(); // called before changing min-height. if called after, scroll state is reset (in Opera)\n\t\t\t\tsetMinHeight(content, content.height());\n\t\t\t\toldView.element.hide();\n\t\t\t}else{\n\t\t\t\tsetMinHeight(content, 1); // needs to be 1 (not 0) for IE7, or else view dimensions miscalculated\n\t\t\t}\n\t\t\tcontent.css('overflow', 'hidden');\n\t\t\t\n\t\t\tcurrentView = viewInstances[newViewName];\n\t\t\tif (currentView) {\n\t\t\t\tcurrentView.element.show();\n\t\t\t}else{\n\t\t\t\tcurrentView = viewInstances[newViewName] = new fcViews[newViewName](\n\t\t\t\t\tnewViewElement = absoluteViewElement =\n\t\t\t\t\t\t$(\"
\")\n\t\t\t\t\t\t\t.appendTo(content),\n\t\t\t\t\tt // the calendar object\n\t\t\t\t);\n\t\t\t}\n\t\t\t\n\t\t\tif (oldView) {\n\t\t\t\theader.deactivateButton(oldView.name);\n\t\t\t}\n\t\t\theader.activateButton(newViewName);\n\t\t\t\n\t\t\trenderView(); // after height has been set, will make absoluteViewElement's position=relative, then set to null\n\t\t\t\n\t\t\tcontent.css('overflow', '');\n\t\t\tif (oldView) {\n\t\t\t\tsetMinHeight(content, 1);\n\t\t\t}\n\t\t\t\n\t\t\tif (!newViewElement) {\n\t\t\t\t(currentView.afterShow || noop)(); // called after setting min-height/overflow, so in final scroll state (for Opera)\n\t\t\t}\n\t\t\t\n\t\t\tignoreWindowResize--;\n\t\t}\n\t}\n\t\n\t\n\t\n\tfunction renderView(inc) {\n\t\tif (elementVisible()) {\n\t\t\tignoreWindowResize++; // because renderEvents might temporarily change the height before setSize is reached\n\n\t\t\tunselect();\n\t\t\t\n\t\t\tif (suggestedViewHeight === undefined) {\n\t\t\t\tcalcSize();\n\t\t\t}\n\t\t\t\n\t\t\tvar forceEventRender = false;\n\t\t\tif (!currentView.start || inc || date < currentView.start || date >= currentView.end) {\n\t\t\t\t// view must render an entire new date range (and refetch/render events)\n\t\t\t\tcurrentView.render(date, inc || 0); // responsible for clearing events\n\t\t\t\tsetSize(true);\n\t\t\t\tforceEventRender = true;\n\t\t\t}\n\t\t\telse if (currentView.sizeDirty) {\n\t\t\t\t// view must resize (and rerender events)\n\t\t\t\tcurrentView.clearEvents();\n\t\t\t\tsetSize();\n\t\t\t\tforceEventRender = true;\n\t\t\t}\n\t\t\telse if (currentView.eventsDirty) {\n\t\t\t\tcurrentView.clearEvents();\n\t\t\t\tforceEventRender = true;\n\t\t\t}\n\t\t\tcurrentView.sizeDirty = false;\n\t\t\tcurrentView.eventsDirty = false;\n\t\t\tupdateEvents(forceEventRender);\n\t\t\t\n\t\t\telementOuterWidth = element.outerWidth();\n\t\t\t\n\t\t\theader.updateTitle(currentView.title);\n\t\t\tvar today = new Date();\n\t\t\tif (today >= currentView.start && today < currentView.end) {\n\t\t\t\theader.disableButton('today');\n\t\t\t}else{\n\t\t\t\theader.enableButton('today');\n\t\t\t}\n\t\t\t\n\t\t\tignoreWindowResize--;\n\t\t\tcurrentView.trigger('viewDisplay', _element);\n\t\t}\n\t}\n\t\n\t\n\t\n\t/* Resizing\n\t-----------------------------------------------------------------------------*/\n\t\n\t\n\tfunction updateSize() {\n\t\tmarkSizesDirty();\n\t\tif (elementVisible()) {\n\t\t\tcalcSize();\n\t\t\tsetSize();\n\t\t\tunselect();\n\t\t\tcurrentView.clearEvents();\n\t\t\tcurrentView.renderEvents(events);\n\t\t\tcurrentView.sizeDirty = false;\n\t\t}\n\t}\n\t\n\t\n\tfunction markSizesDirty() {\n\t\t$.each(viewInstances, function(i, inst) {\n\t\t\tinst.sizeDirty = true;\n\t\t});\n\t}\n\t\n\t\n\tfunction calcSize() {\n\t\tif (options.contentHeight) {\n\t\t\tsuggestedViewHeight = options.contentHeight;\n\t\t}\n\t\telse if (options.height) {\n\t\t\tsuggestedViewHeight = options.height - (headerElement ? headerElement.height() : 0) - vsides(content);\n\t\t}\n\t\telse {\n\t\t\tsuggestedViewHeight = Math.round(content.width() / Math.max(options.aspectRatio, .5));\n\t\t}\n\t}\n\t\n\t\n\tfunction setSize(dateChanged) { // todo: dateChanged?\n\t\tignoreWindowResize++;\n\t\tcurrentView.setHeight(suggestedViewHeight, dateChanged);\n\t\tif (absoluteViewElement) {\n\t\t\tabsoluteViewElement.css('position', 'relative');\n\t\t\tabsoluteViewElement = null;\n\t\t}\n\t\tcurrentView.setWidth(content.width(), dateChanged);\n\t\tignoreWindowResize--;\n\t}\n\t\n\t\n\tfunction windowResize() {\n\t\tif (!ignoreWindowResize) {\n\t\t\tif (currentView.start) { // view has already been rendered\n\t\t\t\tvar uid = ++resizeUID;\n\t\t\t\tsetTimeout(function() { // add a delay\n\t\t\t\t\tif (uid == resizeUID && !ignoreWindowResize && elementVisible()) {\n\t\t\t\t\t\tif (elementOuterWidth != (elementOuterWidth = element.outerWidth())) {\n\t\t\t\t\t\t\tignoreWindowResize++; // in case the windowResize callback changes the height\n\t\t\t\t\t\t\tupdateSize();\n\t\t\t\t\t\t\tcurrentView.trigger('windowResize', _element);\n\t\t\t\t\t\t\tignoreWindowResize--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, 200);\n\t\t\t}else{\n\t\t\t\t// calendar must have been initialized in a 0x0 iframe that has just been resized\n\t\t\t\tlateRender();\n\t\t\t}\n\t\t}\n\t}\n\t\n\t\n\t\n\t/* Event Fetching/Rendering\n\t-----------------------------------------------------------------------------*/\n\t\n\t\n\t// fetches events if necessary, rerenders events if necessary (or if forced)\n\tfunction updateEvents(forceRender) {\n\t\tif (!options.lazyFetching || isFetchNeeded(currentView.visStart, currentView.visEnd)) {\n\t\t\trefetchEvents();\n\t\t}\n\t\telse if (forceRender) {\n\t\t\trerenderEvents();\n\t\t}\n\t}\n\t\n\t\n\tfunction refetchEvents() {\n\t\tfetchEvents(currentView.visStart, currentView.visEnd); // will call reportEvents\n\t}\n\t\n\t\n\t// called when event data arrives\n\tfunction reportEvents(_events) {\n\t\tevents = _events;\n\t\trerenderEvents();\n\t}\n\t\n\t\n\t// called when a single event's data has been changed\n\tfunction reportEventChange(eventID) {\n\t\trerenderEvents(eventID);\n\t}\n\t\n\t\n\t// attempts to rerenderEvents\n\tfunction rerenderEvents(modifiedEventID) {\n\t\tmarkEventsDirty();\n\t\tif (elementVisible()) {\n\t\t\tcurrentView.clearEvents();\n\t\t\tcurrentView.renderEvents(events, modifiedEventID);\n\t\t\tcurrentView.eventsDirty = false;\n\t\t}\n\t}\n\t\n\t\n\tfunction markEventsDirty() {\n\t\t$.each(viewInstances, function(i, inst) {\n\t\t\tinst.eventsDirty = true;\n\t\t});\n\t}\n\t\n\n\n\t/* Selection\n\t-----------------------------------------------------------------------------*/\n\t\n\n\tfunction select(start, end, allDay) {\n\t\tcurrentView.select(start, end, allDay===undefined ? true : allDay);\n\t}\n\t\n\n\tfunction unselect() { // safe to be called before renderView\n\t\tif (currentView) {\n\t\t\tcurrentView.unselect();\n\t\t}\n\t}\n\t\n\t\n\t\n\t/* Date\n\t-----------------------------------------------------------------------------*/\n\t\n\t\n\tfunction prev() {\n\t\trenderView(-1);\n\t}\n\t\n\t\n\tfunction next() {\n\t\trenderView(1);\n\t}\n\t\n\t\n\tfunction prevYear() {\n\t\taddYears(date, -1);\n\t\trenderView();\n\t}\n\t\n\t\n\tfunction nextYear() {\n\t\taddYears(date, 1);\n\t\trenderView();\n\t}\n\t\n\t\n\tfunction today() {\n\t\tdate = new Date();\n\t\trenderView();\n\t}\n\t\n\t\n\tfunction gotoDate(year, month, dateOfMonth) {\n\t\tif (year instanceof Date) {\n\t\t\tdate = cloneDate(year); // provided 1 argument, a Date\n\t\t}else{\n\t\t\tsetYMD(date, year, month, dateOfMonth);\n\t\t}\n\t\trenderView();\n\t}\n\t\n\t\n\tfunction incrementDate(years, months, days) {\n\t\tif (years !== undefined) {\n\t\t\taddYears(date, years);\n\t\t}\n\t\tif (months !== undefined) {\n\t\t\taddMonths(date, months);\n\t\t}\n\t\tif (days !== undefined) {\n\t\t\taddDays(date, days);\n\t\t}\n\t\trenderView();\n\t}\n\t\n\t\n\tfunction getDate() {\n\t\treturn cloneDate(date);\n\t}\n\t\n\t\n\t\n\t/* Misc\n\t-----------------------------------------------------------------------------*/\n\t\n\t\n\tfunction getView() {\n\t\treturn currentView;\n\t}\n\t\n\t\n\tfunction option(name, value) {\n\t\tif (value === undefined) {\n\t\t\treturn options[name];\n\t\t}\n\t\tif (name == 'height' || name == 'contentHeight' || name == 'aspectRatio') {\n\t\t\toptions[name] = value;\n\t\t\tupdateSize();\n\t\t}\n\t}\n\t\n\t\n\tfunction trigger(name, thisObj) {\n\t\tif (options[name]) {\n\t\t\treturn options[name].apply(\n\t\t\t\tthisObj || _element,\n\t\t\t\tArray.prototype.slice.call(arguments, 2)\n\t\t\t);\n\t\t}\n\t}\n\t\n\t\n\t\n\t/* External Dragging\n\t------------------------------------------------------------------------*/\n\t\n\tif (options.droppable) {\n\t\t$(document)\n\t\t\t.bind('dragstart', function(ev, ui) {\n\t\t\t\tvar _e = ev.target;\n\t\t\t\tvar e = $(_e);\n\t\t\t\tif (!e.parents('.fc').length) { // not already inside a calendar\n\t\t\t\t\tvar accept = options.dropAccept;\n\t\t\t\t\tif ($.isFunction(accept) ? accept.call(_e, e) : e.is(accept)) {\n\t\t\t\t\t\t_dragElement = _e;\n\t\t\t\t\t\tcurrentView.dragStart(_dragElement, ev, ui);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\t.bind('dragstop', function(ev, ui) {\n\t\t\t\tif (_dragElement) {\n\t\t\t\t\tcurrentView.dragStop(_dragElement, ev, ui);\n\t\t\t\t\t_dragElement = null;\n\t\t\t\t}\n\t\t\t});\n\t}\n\t\n\n}\n\nfunction Header(calendar, options) {\n\tvar t = this;\n\t\n\t\n\t// exports\n\tt.render = render;\n\tt.destroy = destroy;\n\tt.updateTitle = updateTitle;\n\tt.activateButton = activateButton;\n\tt.deactivateButton = deactivateButton;\n\tt.disableButton = disableButton;\n\tt.enableButton = enableButton;\n\t\n\t\n\t// locals\n\tvar element = $([]);\n\tvar tm;\n\t\n\n\n\tfunction render() {\n\t\ttm = options.theme ? 'ui' : 'fc';\n\t\tvar sections = options.header;\n\t\tif (sections) {\n\t\t\telement = $(\"\")\n\t\t\t\t.append(\n\t\t\t\t\t$(\"\")\n\t\t\t\t\t\t.append(renderSection('left'))\n\t\t\t\t\t\t.append(renderSection('center'))\n\t\t\t\t\t\t.append(renderSection('right'))\n\t\t\t\t);\n\t\t\treturn element;\n\t\t}\n\t}\n\t\n\t\n\tfunction destroy() {\n\t\telement.remove();\n\t}\n\t\n\t\n\tfunction renderSection(position) {\n\t\tvar e = $(\"\" +\n\t\t\t\"\";\n\t\tfor (i=0; i\"; // need fc- for setDayID\n\t\t}\n\t\ts +=\n\t\t\t\"\" +\n\t\t\t\"\" +\n\t\t\t\"\";\n\t\tfor (i=0; i\";\n\t\t\tfor (j=0; j\" + // need fc- for setDayID\n\t\t\t\t\t\"
\" +\n\t\t\t\t\t(showNumbers ?\n\t\t\t\t\t\t\"
\" :\n\t\t\t\t\t\t''\n\t\t\t\t\t\t) +\n\t\t\t\t\t\"
\" +\n\t\t\t\t\t\"
 
\" +\n\t\t\t\t\t\"
\" +\n\t\t\t\t\t\"
\" +\n\t\t\t\t\t\"\";\n\t\t\t}\n\t\t\ts +=\n\t\t\t\t\"\";\n\t\t}\n\t\ts +=\n\t\t\t\"
\" +\n\t\t\t\"
\");\n\t\tvar buttonStr = options.header[position];\n\t\tif (buttonStr) {\n\t\t\t$.each(buttonStr.split(' '), function(i) {\n\t\t\t\tif (i > 0) {\n\t\t\t\t\te.append(\"\");\n\t\t\t\t}\n\t\t\t\tvar prevButton;\n\t\t\t\t$.each(this.split(','), function(j, buttonName) {\n\t\t\t\t\tif (buttonName == 'title') {\n\t\t\t\t\t\te.append(\"

 

\");\n\t\t\t\t\t\tif (prevButton) {\n\t\t\t\t\t\t\tprevButton.addClass(tm + '-corner-right');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tprevButton = null;\n\t\t\t\t\t}else{\n\t\t\t\t\t\tvar buttonClick;\n\t\t\t\t\t\tif (calendar[buttonName]) {\n\t\t\t\t\t\t\tbuttonClick = calendar[buttonName]; // calendar method\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (fcViews[buttonName]) {\n\t\t\t\t\t\t\tbuttonClick = function() {\n\t\t\t\t\t\t\t\tbutton.removeClass(tm + '-state-hover'); // forget why\n\t\t\t\t\t\t\t\tcalendar.changeView(buttonName);\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (buttonClick) {\n\t\t\t\t\t\t\tvar icon = options.theme ? smartProperty(options.buttonIcons, buttonName) : null; // why are we using smartProperty here?\n\t\t\t\t\t\t\tvar text = smartProperty(options.buttonText, buttonName); // why are we using smartProperty here?\n\t\t\t\t\t\t\tvar button = $(\n\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\t\t\t(icon ?\n\t\t\t\t\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\t\t\t\t\t\ttext\n\t\t\t\t\t\t\t\t\t\t\t\t) +\n\t\t\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (button) {\n\t\t\t\t\t\t\t\tbutton\n\t\t\t\t\t\t\t\t\t.click(function() {\n\t\t\t\t\t\t\t\t\t\tif (!button.hasClass(tm + '-state-disabled')) {\n\t\t\t\t\t\t\t\t\t\t\tbuttonClick();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t.mousedown(function() {\n\t\t\t\t\t\t\t\t\t\tbutton\n\t\t\t\t\t\t\t\t\t\t\t.not('.' + tm + '-state-active')\n\t\t\t\t\t\t\t\t\t\t\t.not('.' + tm + '-state-disabled')\n\t\t\t\t\t\t\t\t\t\t\t.addClass(tm + '-state-down');\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t.mouseup(function() {\n\t\t\t\t\t\t\t\t\t\tbutton.removeClass(tm + '-state-down');\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t.hover(\n\t\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\t\tbutton\n\t\t\t\t\t\t\t\t\t\t\t\t.not('.' + tm + '-state-active')\n\t\t\t\t\t\t\t\t\t\t\t\t.not('.' + tm + '-state-disabled')\n\t\t\t\t\t\t\t\t\t\t\t\t.addClass(tm + '-state-hover');\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\t\tbutton\n\t\t\t\t\t\t\t\t\t\t\t\t.removeClass(tm + '-state-hover')\n\t\t\t\t\t\t\t\t\t\t\t\t.removeClass(tm + '-state-down');\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.appendTo(e);\n\t\t\t\t\t\t\t\tif (!prevButton) {\n\t\t\t\t\t\t\t\t\tbutton.addClass(tm + '-corner-left');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tprevButton = button;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif (prevButton) {\n\t\t\t\t\tprevButton.addClass(tm + '-corner-right');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn e;\n\t}\n\t\n\t\n\tfunction updateTitle(html) {\n\t\telement.find('h2')\n\t\t\t.html(html);\n\t}\n\t\n\t\n\tfunction activateButton(buttonName) {\n\t\telement.find('span.fc-button-' + buttonName)\n\t\t\t.addClass(tm + '-state-active');\n\t}\n\t\n\t\n\tfunction deactivateButton(buttonName) {\n\t\telement.find('span.fc-button-' + buttonName)\n\t\t\t.removeClass(tm + '-state-active');\n\t}\n\t\n\t\n\tfunction disableButton(buttonName) {\n\t\telement.find('span.fc-button-' + buttonName)\n\t\t\t.addClass(tm + '-state-disabled');\n\t}\n\t\n\t\n\tfunction enableButton(buttonName) {\n\t\telement.find('span.fc-button-' + buttonName)\n\t\t\t.removeClass(tm + '-state-disabled');\n\t}\n\n\n}\n\nfc.sourceNormalizers = [];\nfc.sourceFetchers = [];\n\nvar ajaxDefaults = {\n\tdataType: 'json',\n\tcache: false\n};\n\nvar eventGUID = 1;\n\n\nfunction EventManager(options, _sources) {\n\tvar t = this;\n\t\n\t\n\t// exports\n\tt.isFetchNeeded = isFetchNeeded;\n\tt.fetchEvents = fetchEvents;\n\tt.addEventSource = addEventSource;\n\tt.removeEventSource = removeEventSource;\n\tt.updateEvent = updateEvent;\n\tt.renderEvent = renderEvent;\n\tt.removeEvents = removeEvents;\n\tt.clientEvents = clientEvents;\n\tt.normalizeEvent = normalizeEvent;\n\t\n\t\n\t// imports\n\tvar trigger = t.trigger;\n\tvar getView = t.getView;\n\tvar reportEvents = t.reportEvents;\n\t\n\t\n\t// locals\n\tvar stickySource = { events: [] };\n\tvar sources = [ stickySource ];\n\tvar rangeStart, rangeEnd;\n\tvar currentFetchID = 0;\n\tvar pendingSourceCnt = 0;\n\tvar loadingLevel = 0;\n\tvar cache = [];\n\t\n\t\n\tfor (var i=0; i<_sources.length; i++) {\n\t\t_addEventSource(_sources[i]);\n\t}\n\t\n\t\n\t\n\t/* Fetching\n\t-----------------------------------------------------------------------------*/\n\t\n\t\n\tfunction isFetchNeeded(start, end) {\n\t\treturn !rangeStart || start < rangeStart || end > rangeEnd;\n\t}\n\t\n\t\n\tfunction fetchEvents(start, end) {\n\t\trangeStart = start;\n\t\trangeEnd = end;\n\t\tcache = [];\n\t\tvar fetchID = ++currentFetchID;\n\t\tvar len = sources.length;\n\t\tpendingSourceCnt = len;\n\t\tfor (var i=0; i)), return null instead\n\treturn null;\n}\n\n\nfunction parseISO8601(s, ignoreTimezone) { // ignoreTimezone defaults to false\n\t// derived from http://delete.me.uk/2005/03/iso8601.html\n\t// TODO: for a know glitch/feature, read tests/issue_206_parseDate_dst.html\n\tvar m = s.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}))?))?)?)?)?$/);\n\tif (!m) {\n\t\treturn null;\n\t}\n\tvar date = new Date(m[1], 0, 1);\n\tif (ignoreTimezone || !m[13]) {\n\t\tvar check = new Date(m[1], 0, 1, 9, 0);\n\t\tif (m[3]) {\n\t\t\tdate.setMonth(m[3] - 1);\n\t\t\tcheck.setMonth(m[3] - 1);\n\t\t}\n\t\tif (m[5]) {\n\t\t\tdate.setDate(m[5]);\n\t\t\tcheck.setDate(m[5]);\n\t\t}\n\t\tfixDate(date, check);\n\t\tif (m[7]) {\n\t\t\tdate.setHours(m[7]);\n\t\t}\n\t\tif (m[8]) {\n\t\t\tdate.setMinutes(m[8]);\n\t\t}\n\t\tif (m[10]) {\n\t\t\tdate.setSeconds(m[10]);\n\t\t}\n\t\tif (m[12]) {\n\t\t\tdate.setMilliseconds(Number(\"0.\" + m[12]) * 1000);\n\t\t}\n\t\tfixDate(date, check);\n\t}else{\n\t\tdate.setUTCFullYear(\n\t\t\tm[1],\n\t\t\tm[3] ? m[3] - 1 : 0,\n\t\t\tm[5] || 1\n\t\t);\n\t\tdate.setUTCHours(\n\t\t\tm[7] || 0,\n\t\t\tm[8] || 0,\n\t\t\tm[10] || 0,\n\t\t\tm[12] ? Number(\"0.\" + m[12]) * 1000 : 0\n\t\t);\n\t\tif (m[14]) {\n\t\t\tvar offset = Number(m[16]) * 60 + (m[18] ? Number(m[18]) : 0);\n\t\t\toffset *= m[15] == '-' ? 1 : -1;\n\t\t\tdate = new Date(+date + (offset * 60 * 1000));\n\t\t}\n\t}\n\treturn date;\n}\n\n\nfunction parseTime(s) { // returns minutes since start of day\n\tif (typeof s == 'number') { // an hour\n\t\treturn s * 60;\n\t}\n\tif (typeof s == 'object') { // a Date object\n\t\treturn s.getHours() * 60 + s.getMinutes();\n\t}\n\tvar m = s.match(/(\\d+)(?::(\\d+))?\\s*(\\w+)?/);\n\tif (m) {\n\t\tvar h = parseInt(m[1], 10);\n\t\tif (m[3]) {\n\t\t\th %= 12;\n\t\t\tif (m[3].toLowerCase().charAt(0) == 'p') {\n\t\t\t\th += 12;\n\t\t\t}\n\t\t}\n\t\treturn h * 60 + (m[2] ? parseInt(m[2], 10) : 0);\n\t}\n}\n\n\n\n/* Date Formatting\n-----------------------------------------------------------------------------*/\n// TODO: use same function formatDate(date, [date2], format, [options])\n\n\nfunction formatDate(date, format, options) {\n\treturn formatDates(date, null, format, options);\n}\n\n\nfunction formatDates(date1, date2, format, options) {\n\toptions = options || defaults;\n\tvar date = date1,\n\t\totherDate = date2,\n\t\ti, len = format.length, c,\n\t\ti2, formatter,\n\t\tres = '';\n\tfor (i=0; ii; i2--) {\n\t\t\t\tif (formatter = dateFormatters[format.substring(i, i2)]) {\n\t\t\t\t\tif (date) {\n\t\t\t\t\t\tres += formatter(date, options);\n\t\t\t\t\t}\n\t\t\t\t\ti = i2 - 1;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (i2 == i) {\n\t\t\t\tif (date) {\n\t\t\t\t\tres += c;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn res;\n};\n\n\nvar dateFormatters = {\n\ts\t: function(d)\t{ return d.getSeconds() },\n\tss\t: function(d)\t{ return zeroPad(d.getSeconds()) },\n\tm\t: function(d)\t{ return d.getMinutes() },\n\tmm\t: function(d)\t{ return zeroPad(d.getMinutes()) },\n\th\t: function(d)\t{ return d.getHours() % 12 || 12 },\n\thh\t: function(d)\t{ return zeroPad(d.getHours() % 12 || 12) },\n\tH\t: function(d)\t{ return d.getHours() },\n\tHH\t: function(d)\t{ return zeroPad(d.getHours()) },\n\td\t: function(d)\t{ return d.getDate() },\n\tdd\t: function(d)\t{ return zeroPad(d.getDate()) },\n\tddd\t: function(d,o)\t{ return o.dayNamesShort[d.getDay()] },\n\tdddd: function(d,o)\t{ return o.dayNames[d.getDay()] },\n\tM\t: function(d)\t{ return d.getMonth() + 1 },\n\tMM\t: function(d)\t{ return zeroPad(d.getMonth() + 1) },\n\tMMM\t: function(d,o)\t{ return o.monthNamesShort[d.getMonth()] },\n\tMMMM: function(d,o)\t{ return o.monthNames[d.getMonth()] },\n\tyy\t: function(d)\t{ return (d.getFullYear()+'').substring(2) },\n\tyyyy: function(d)\t{ return d.getFullYear() },\n\tt\t: function(d)\t{ return d.getHours() < 12 ? 'a' : 'p' },\n\ttt\t: function(d)\t{ return d.getHours() < 12 ? 'am' : 'pm' },\n\tT\t: function(d)\t{ return d.getHours() < 12 ? 'A' : 'P' },\n\tTT\t: function(d)\t{ return d.getHours() < 12 ? 'AM' : 'PM' },\n\tu\t: function(d)\t{ return formatDate(d, \"yyyy-MM-dd'T'HH:mm:ss'Z'\") },\n\tS\t: function(d)\t{\n\t\tvar date = d.getDate();\n\t\tif (date > 10 && date < 20) {\n\t\t\treturn 'th';\n\t\t}\n\t\treturn ['st', 'nd', 'rd'][date%10-1] || 'th';\n\t}\n};\n\n\n\nfc.applyAll = applyAll;\n\n\n/* Event Date Math\n-----------------------------------------------------------------------------*/\n\n\nfunction exclEndDay(event) {\n\tif (event.end) {\n\t\treturn _exclEndDay(event.end, event.allDay);\n\t}else{\n\t\treturn addDays(cloneDate(event.start), 1);\n\t}\n}\n\n\nfunction _exclEndDay(end, allDay) {\n\tend = cloneDate(end);\n\treturn allDay || end.getHours() || end.getMinutes() ? addDays(end, 1) : clearTime(end);\n}\n\n\nfunction segCmp(a, b) {\n\treturn (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start);\n}\n\n\nfunction segsCollide(seg1, seg2) {\n\treturn seg1.end > seg2.start && seg1.start < seg2.end;\n}\n\n\n\n/* Event Sorting\n-----------------------------------------------------------------------------*/\n\n\n// event rendering utilities\nfunction sliceSegs(events, visEventEnds, start, end) {\n\tvar segs = [],\n\t\ti, len=events.length, event,\n\t\teventStart, eventEnd,\n\t\tsegStart, segEnd,\n\t\tisStart, isEnd;\n\tfor (i=0; i start && eventStart < end) {\n\t\t\tif (eventStart < start) {\n\t\t\t\tsegStart = cloneDate(start);\n\t\t\t\tisStart = false;\n\t\t\t}else{\n\t\t\t\tsegStart = eventStart;\n\t\t\t\tisStart = true;\n\t\t\t}\n\t\t\tif (eventEnd > end) {\n\t\t\t\tsegEnd = cloneDate(end);\n\t\t\t\tisEnd = false;\n\t\t\t}else{\n\t\t\t\tsegEnd = eventEnd;\n\t\t\t\tisEnd = true;\n\t\t\t}\n\t\t\tsegs.push({\n\t\t\t\tevent: event,\n\t\t\t\tstart: segStart,\n\t\t\t\tend: segEnd,\n\t\t\t\tisStart: isStart,\n\t\t\t\tisEnd: isEnd,\n\t\t\t\tmsLength: segEnd - segStart\n\t\t\t});\n\t\t}\n\t}\n\treturn segs.sort(segCmp);\n}\n\n\n// event rendering calculation utilities\nfunction stackSegs(segs) {\n\tvar levels = [],\n\t\ti, len = segs.length, seg,\n\t\tj, collide, k;\n\tfor (i=0; i=0; i--) {\n\t\tres = obj[parts[i].toLowerCase()];\n\t\tif (res !== undefined) {\n\t\t\treturn res;\n\t\t}\n\t}\n\treturn obj[''];\n}\n\n\nfunction htmlEscape(s) {\n\treturn s.replace(/&/g, '&')\n\t\t.replace(//g, '>')\n\t\t.replace(/'/g, ''')\n\t\t.replace(/\"/g, '"')\n\t\t.replace(/\\n/g, '
');\n}\n\n\nfunction cssKey(_element) {\n\treturn _element.id + '/' + _element.className + '/' + _element.style.cssText.replace(/(^|;)\\s*(top|left|width|height)\\s*:[^;]*/ig, '');\n}\n\n\nfunction disableTextSelection(element) {\n\telement\n\t\t.attr('unselectable', 'on')\n\t\t.css('MozUserSelect', 'none')\n\t\t.bind('selectstart.ui', function() { return false; });\n}\n\n\n/*\nfunction enableTextSelection(element) {\n\telement\n\t\t.attr('unselectable', 'off')\n\t\t.css('MozUserSelect', '')\n\t\t.unbind('selectstart.ui');\n}\n*/\n\n\nfunction markFirstLast(e) {\n\te.children()\n\t\t.removeClass('fc-first fc-last')\n\t\t.filter(':first-child')\n\t\t\t.addClass('fc-first')\n\t\t.end()\n\t\t.filter(':last-child')\n\t\t\t.addClass('fc-last');\n}\n\n\nfunction setDayID(cell, date) {\n\tcell.each(function(i, _cell) {\n\t\t_cell.className = _cell.className.replace(/^fc-\\w*/, 'fc-' + dayIDs[date.getDay()]);\n\t\t// TODO: make a way that doesn't rely on order of classes\n\t});\n}\n\n\nfunction getSkinCss(event, opt) {\n\tvar source = event.source || {};\n\tvar eventColor = event.color;\n\tvar sourceColor = source.color;\n\tvar optionColor = opt('eventColor');\n\tvar backgroundColor =\n\t\tevent.backgroundColor ||\n\t\teventColor ||\n\t\tsource.backgroundColor ||\n\t\tsourceColor ||\n\t\topt('eventBackgroundColor') ||\n\t\toptionColor;\n\tvar borderColor =\n\t\tevent.borderColor ||\n\t\teventColor ||\n\t\tsource.borderColor ||\n\t\tsourceColor ||\n\t\topt('eventBorderColor') ||\n\t\toptionColor;\n\tvar textColor =\n\t\tevent.textColor ||\n\t\tsource.textColor ||\n\t\topt('eventTextColor');\n\tvar statements = [];\n\tif (backgroundColor) {\n\t\tstatements.push('background-color:' + backgroundColor);\n\t}\n\tif (borderColor) {\n\t\tstatements.push('border-color:' + borderColor);\n\t}\n\tif (textColor) {\n\t\tstatements.push('color:' + textColor);\n\t}\n\treturn statements.join(';');\n}\n\n\nfunction applyAll(functions, thisObj, args) {\n\tif ($.isFunction(functions)) {\n\t\tfunctions = [ functions ];\n\t}\n\tif (functions) {\n\t\tvar i;\n\t\tvar ret;\n\t\tfor (i=0; i\" +\n\t\t\t\"
\";\n\t\ttable = $(s).appendTo(element);\n\t\t\n\t\thead = table.find('thead');\n\t\theadCells = head.find('th');\n\t\tbody = table.find('tbody');\n\t\tbodyRows = body.find('tr');\n\t\tbodyCells = body.find('td');\n\t\tbodyFirstCells = bodyCells.filter(':first-child');\n\t\tbodyCellTopInners = bodyRows.eq(0).find('div.fc-day-content div');\n\t\t\n\t\tmarkFirstLast(head.add(head.find('tr'))); // marks first+last tr/th's\n\t\tmarkFirstLast(bodyRows); // marks first+last td's\n\t\tbodyRows.eq(0).addClass('fc-first'); // fc-last is done in updateCells\n\t\t\n\t\tdayBind(bodyCells);\n\t\t\n\t\tdaySegmentContainer =\n\t\t\t$(\"
\")\n\t\t\t\t.appendTo(element);\n\t}\n\t\n\t\n\t\n\tfunction updateCells(firstTime) {\n\t\tvar dowDirty = firstTime || rowCnt == 1; // could the cells' day-of-weeks need updating?\n\t\tvar month = t.start.getMonth();\n\t\tvar today = clearTime(new Date());\n\t\tvar cell;\n\t\tvar date;\n\t\tvar row;\n\t\n\t\tif (dowDirty) {\n\t\t\theadCells.each(function(i, _cell) {\n\t\t\t\tcell = $(_cell);\n\t\t\t\tdate = indexDate(i);\n\t\t\t\tcell.html(formatDate(date, colFormat));\n\t\t\t\tsetDayID(cell, date);\n\t\t\t});\n\t\t}\n\t\t\n\t\tbodyCells.each(function(i, _cell) {\n\t\t\tcell = $(_cell);\n\t\t\tdate = indexDate(i);\n\t\t\tif (date.getMonth() == month) {\n\t\t\t\tcell.removeClass('fc-other-month');\n\t\t\t}else{\n\t\t\t\tcell.addClass('fc-other-month');\n\t\t\t}\n\t\t\tif (+date == +today) {\n\t\t\t\tcell.addClass(tm + '-state-highlight fc-today');\n\t\t\t}else{\n\t\t\t\tcell.removeClass(tm + '-state-highlight fc-today');\n\t\t\t}\n\t\t\tcell.find('div.fc-day-number').text(date.getDate());\n\t\t\tif (dowDirty) {\n\t\t\t\tsetDayID(cell, date);\n\t\t\t}\n\t\t});\n\t\t\n\t\tbodyRows.each(function(i, _row) {\n\t\t\trow = $(_row);\n\t\t\tif (i < rowCnt) {\n\t\t\t\trow.show();\n\t\t\t\tif (i == rowCnt-1) {\n\t\t\t\t\trow.addClass('fc-last');\n\t\t\t\t}else{\n\t\t\t\t\trow.removeClass('fc-last');\n\t\t\t\t}\n\t\t\t}else{\n\t\t\t\trow.hide();\n\t\t\t}\n\t\t});\n\t}\n\t\n\t\n\t\n\tfunction setHeight(height) {\n\t\tviewHeight = height;\n\t\t\n\t\tvar bodyHeight = viewHeight - head.height();\n\t\tvar rowHeight;\n\t\tvar rowHeightLast;\n\t\tvar cell;\n\t\t\t\n\t\tif (opt('weekMode') == 'variable') {\n\t\t\trowHeight = rowHeightLast = Math.floor(bodyHeight / (rowCnt==1 ? 2 : 6));\n\t\t}else{\n\t\t\trowHeight = Math.floor(bodyHeight / rowCnt);\n\t\t\trowHeightLast = bodyHeight - rowHeight * (rowCnt-1);\n\t\t}\n\t\t\n\t\tbodyFirstCells.each(function(i, _cell) {\n\t\t\tif (i < rowCnt) {\n\t\t\t\tcell = $(_cell);\n\t\t\t\tsetMinHeight(\n\t\t\t\t\tcell.find('> div'),\n\t\t\t\t\t(i==rowCnt-1 ? rowHeightLast : rowHeight) - vsides(cell)\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t\t\n\t}\n\t\n\t\n\tfunction setWidth(width) {\n\t\tviewWidth = width;\n\t\tcolContentPositions.clear();\n\t\tcolWidth = Math.floor(viewWidth / colCnt);\n\t\tsetOuterWidth(headCells.slice(0, -1), colWidth);\n\t}\n\t\n\t\n\t\n\t/* Day clicking and binding\n\t-----------------------------------------------------------*/\n\t\n\t\n\tfunction dayBind(days) {\n\t\tdays.click(dayClick)\n\t\t\t.mousedown(daySelectionMousedown);\n\t}\n\t\n\t\n\tfunction dayClick(ev) {\n\t\tif (!opt('selectable')) { // if selectable, SelectionManager will worry about dayClick\n\t\t\tvar index = parseInt(this.className.match(/fc\\-day(\\d+)/)[1]); // TODO: maybe use .data\n\t\t\tvar date = indexDate(index);\n\t\t\ttrigger('dayClick', this, date, true, ev);\n\t\t}\n\t}\n\t\n\t\n\t\n\t/* Semi-transparent Overlay Helpers\n\t------------------------------------------------------*/\n\t\n\t\n\tfunction renderDayOverlay(overlayStart, overlayEnd, refreshCoordinateGrid) { // overlayEnd is exclusive\n\t\tif (refreshCoordinateGrid) {\n\t\t\tcoordinateGrid.build();\n\t\t}\n\t\tvar rowStart = cloneDate(t.visStart);\n\t\tvar rowEnd = addDays(cloneDate(rowStart), colCnt);\n\t\tfor (var i=0; i\" +\n\t\t\t\"\" +\n\t\t\t\"\" +\n\t\t\t\" \";\n\t\tfor (i=0; i\"; // fc- needed for setDayID\n\t\t}\n\t\ts +=\n\t\t\t\" \" +\n\t\t\t\"\" +\n\t\t\t\"\" +\n\t\t\t\"\" +\n\t\t\t\"\" +\n\t\t\t\" \";\n\t\tfor (i=0; i\" + // fc- needed for setDayID\n\t\t\t\t\"
\" +\n\t\t\t\t\"
\" +\n\t\t\t\t\"
 
\" +\n\t\t\t\t\"
\" +\n\t\t\t\t\"
\" +\n\t\t\t\t\"\";\n\t\t}\n\t\ts +=\n\t\t\t\" \" +\n\t\t\t\"\" +\n\t\t\t\"\" +\n\t\t\t\"\";\n\t\tdayTable = $(s).appendTo(element);\n\t\tdayHead = dayTable.find('thead');\n\t\tdayHeadCells = dayHead.find('th').slice(1, -1);\n\t\tdayBody = dayTable.find('tbody');\n\t\tdayBodyCells = dayBody.find('td').slice(0, -1);\n\t\tdayBodyCellInners = dayBodyCells.find('div.fc-day-content div');\n\t\tdayBodyFirstCell = dayBodyCells.eq(0);\n\t\tdayBodyFirstCellStretcher = dayBodyFirstCell.find('> div');\n\t\t\n\t\tmarkFirstLast(dayHead.add(dayHead.find('tr')));\n\t\tmarkFirstLast(dayBody.add(dayBody.find('tr')));\n\t\t\n\t\taxisFirstCells = dayHead.find('th:first');\n\t\tgutterCells = dayTable.find('.fc-agenda-gutter');\n\t\t\n\t\tslotLayer =\n\t\t\t$(\"
\")\n\t\t\t\t.appendTo(element);\n\t\t\t\t\n\t\tif (opt('allDaySlot')) {\n\t\t\n\t\t\tdaySegmentContainer =\n\t\t\t\t$(\"
\")\n\t\t\t\t\t.appendTo(slotLayer);\n\t\t\n\t\t\ts =\n\t\t\t\t\"\" +\n\t\t\t\t\"\" +\n\t\t\t\t\"\" +\n\t\t\t\t\"\" +\n\t\t\t\t\"\" +\n\t\t\t\t\"\" +\n\t\t\t\t\"
\" + opt('allDayText') + \"\" +\n\t\t\t\t\"
\" +\n\t\t\t\t\"
 
\";\n\t\t\tallDayTable = $(s).appendTo(slotLayer);\n\t\t\tallDayRow = allDayTable.find('tr');\n\t\t\t\n\t\t\tdayBind(allDayRow.find('td'));\n\t\t\t\n\t\t\taxisFirstCells = axisFirstCells.add(allDayTable.find('th:first'));\n\t\t\tgutterCells = gutterCells.add(allDayTable.find('th.fc-agenda-gutter'));\n\t\t\t\n\t\t\tslotLayer.append(\n\t\t\t\t\"
\" +\n\t\t\t\t\"
\" +\n\t\t\t\t\"
\"\n\t\t\t);\n\t\t\t\n\t\t}else{\n\t\t\n\t\t\tdaySegmentContainer = $([]); // in jQuery 1.4, we can just do $()\n\t\t\n\t\t}\n\t\t\n\t\tslotScroller =\n\t\t\t$(\"
\")\n\t\t\t\t.appendTo(slotLayer);\n\t\t\t\t\n\t\tslotContent =\n\t\t\t$(\"
\")\n\t\t\t\t.appendTo(slotScroller);\n\t\t\t\t\n\t\tslotSegmentContainer =\n\t\t\t$(\"
\")\n\t\t\t\t.appendTo(slotContent);\n\t\t\n\t\ts =\n\t\t\t\"\" +\n\t\t\t\"\";\n\t\td = zeroDate();\n\t\tmaxd = addMinutes(cloneDate(d), maxMinute);\n\t\taddMinutes(d, minMinute);\n\t\tslotCnt = 0;\n\t\tfor (i=0; d < maxd; i++) {\n\t\t\tminutes = d.getMinutes();\n\t\t\ts +=\n\t\t\t\t\"\" +\n\t\t\t\t\"\" +\n\t\t\t\t\"\" +\n\t\t\t\t\"\";\n\t\t\taddMinutes(d, opt('slotMinutes'));\n\t\t\tslotCnt++;\n\t\t}\n\t\ts +=\n\t\t\t\"\" +\n\t\t\t\"
\" +\n\t\t\t\t((!slotNormal || !minutes) ? formatDate(d, opt('axisFormat')) : ' ') +\n\t\t\t\t\"\" +\n\t\t\t\t\"
 
\" +\n\t\t\t\t\"
\";\n\t\tslotTable = $(s).appendTo(slotContent);\n\t\tslotTableFirstInner = slotTable.find('div:first');\n\t\t\n\t\tslotBind(slotTable.find('td'));\n\t\t\n\t\taxisFirstCells = axisFirstCells.add(slotTable.find('th:first'));\n\t}\n\t\n\t\n\t\n\tfunction updateCells() {\n\t\tvar i;\n\t\tvar headCell;\n\t\tvar bodyCell;\n\t\tvar date;\n\t\tvar today = clearTime(new Date());\n\t\tfor (i=0; i= 0) {\n\t\t\taddMinutes(d, minMinute + slotIndex * opt('slotMinutes'));\n\t\t}\n\t\treturn d;\n\t}\n\t\n\t\n\tfunction colDate(col) { // returns dates with 00:00:00\n\t\treturn addDays(cloneDate(t.visStart), col*dis+dit);\n\t}\n\t\n\t\n\tfunction cellIsAllDay(cell) {\n\t\treturn opt('allDaySlot') && !cell.row;\n\t}\n\t\n\t\n\tfunction dayOfWeekCol(dayOfWeek) {\n\t\treturn ((dayOfWeek - Math.max(firstDay, nwe) + colCnt) % colCnt)*dis+dit;\n\t}\n\t\n\t\n\t\n\t\n\t// get the Y coordinate of the given time on the given day (both Date objects)\n\tfunction timePosition(day, time) { // both date objects. day holds 00:00 of current day\n\t\tday = cloneDate(day, true);\n\t\tif (time < addMinutes(cloneDate(day), minMinute)) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (time >= addMinutes(cloneDate(day), maxMinute)) {\n\t\t\treturn slotTable.height();\n\t\t}\n\t\tvar slotMinutes = opt('slotMinutes'),\n\t\t\tminutes = time.getHours()*60 + time.getMinutes() - minMinute,\n\t\t\tslotI = Math.floor(minutes / slotMinutes),\n\t\t\tslotTop = slotTopCache[slotI];\n\t\tif (slotTop === undefined) {\n\t\t\tslotTop = slotTopCache[slotI] = slotTable.find('tr:eq(' + slotI + ') td div')[0].offsetTop; //.position().top; // need this optimization???\n\t\t}\n\t\treturn Math.max(0, Math.round(\n\t\t\tslotTop - 1 + slotHeight * ((minutes % slotMinutes) / slotMinutes)\n\t\t));\n\t}\n\t\n\t\n\tfunction allDayBounds() {\n\t\treturn {\n\t\t\tleft: axisWidth,\n\t\t\tright: viewWidth - gutterWidth\n\t\t}\n\t}\n\t\n\t\n\tfunction getAllDayRow(index) {\n\t\treturn allDayRow;\n\t}\n\t\n\t\n\tfunction defaultEventEnd(event) {\n\t\tvar start = cloneDate(event.start);\n\t\tif (event.allDay) {\n\t\t\treturn start;\n\t\t}\n\t\treturn addMinutes(start, opt('defaultEventMinutes'));\n\t}\n\t\n\t\n\t\n\t/* Selection\n\t---------------------------------------------------------------------------------*/\n\t\n\t\n\tfunction defaultSelectionEnd(startDate, allDay) {\n\t\tif (allDay) {\n\t\t\treturn cloneDate(startDate);\n\t\t}\n\t\treturn addMinutes(cloneDate(startDate), opt('slotMinutes'));\n\t}\n\t\n\t\n\tfunction renderSelection(startDate, endDate, allDay) { // only for all-day\n\t\tif (allDay) {\n\t\t\tif (opt('allDaySlot')) {\n\t\t\t\trenderDayOverlay(startDate, addDays(cloneDate(endDate), 1), true);\n\t\t\t}\n\t\t}else{\n\t\t\trenderSlotSelection(startDate, endDate);\n\t\t}\n\t}\n\t\n\t\n\tfunction renderSlotSelection(startDate, endDate) {\n\t\tvar helperOption = opt('selectHelper');\n\t\tcoordinateGrid.build();\n\t\tif (helperOption) {\n\t\t\tvar col = dayDiff(startDate, t.visStart) * dis + dit;\n\t\t\tif (col >= 0 && col < colCnt) { // only works when times are on same day\n\t\t\t\tvar rect = coordinateGrid.rect(0, col, 0, col, slotContent); // only for horizontal coords\n\t\t\t\tvar top = timePosition(startDate, startDate);\n\t\t\t\tvar bottom = timePosition(startDate, endDate);\n\t\t\t\tif (bottom > top) { // protect against selections that are entirely before or after visible range\n\t\t\t\t\trect.top = top;\n\t\t\t\t\trect.height = bottom - top;\n\t\t\t\t\trect.left += 2;\n\t\t\t\t\trect.width -= 5;\n\t\t\t\t\tif ($.isFunction(helperOption)) {\n\t\t\t\t\t\tvar helperRes = helperOption(startDate, endDate);\n\t\t\t\t\t\tif (helperRes) {\n\t\t\t\t\t\t\trect.position = 'absolute';\n\t\t\t\t\t\t\trect.zIndex = 8;\n\t\t\t\t\t\t\tselectionHelper = $(helperRes)\n\t\t\t\t\t\t\t\t.css(rect)\n\t\t\t\t\t\t\t\t.appendTo(slotContent);\n\t\t\t\t\t\t}\n\t\t\t\t\t}else{\n\t\t\t\t\t\trect.isStart = true; // conside rect a \"seg\" now\n\t\t\t\t\t\trect.isEnd = true; //\n\t\t\t\t\t\tselectionHelper = $(slotSegHtml(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: '',\n\t\t\t\t\t\t\t\tstart: startDate,\n\t\t\t\t\t\t\t\tend: endDate,\n\t\t\t\t\t\t\t\tclassName: ['fc-select-helper'],\n\t\t\t\t\t\t\t\teditable: false\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\trect\n\t\t\t\t\t\t));\n\t\t\t\t\t\tselectionHelper.css('opacity', opt('dragOpacity'));\n\t\t\t\t\t}\n\t\t\t\t\tif (selectionHelper) {\n\t\t\t\t\t\tslotBind(selectionHelper);\n\t\t\t\t\t\tslotContent.append(selectionHelper);\n\t\t\t\t\t\tsetOuterWidth(selectionHelper, rect.width, true); // needs to be after appended\n\t\t\t\t\t\tsetOuterHeight(selectionHelper, rect.height, true);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}else{\n\t\t\trenderSlotOverlay(startDate, endDate);\n\t\t}\n\t}\n\t\n\t\n\tfunction clearSelection() {\n\t\tclearOverlays();\n\t\tif (selectionHelper) {\n\t\t\tselectionHelper.remove();\n\t\t\tselectionHelper = null;\n\t\t}\n\t}\n\t\n\t\n\tfunction slotSelectionMousedown(ev) {\n\t\tif (ev.which == 1 && opt('selectable')) { // ev.which==1 means left mouse button\n\t\t\tunselect(ev);\n\t\t\tvar dates;\n\t\t\thoverListener.start(function(cell, origCell) {\n\t\t\t\tclearSelection();\n\t\t\t\tif (cell && cell.col == origCell.col && !cellIsAllDay(cell)) {\n\t\t\t\t\tvar d1 = cellDate(origCell);\n\t\t\t\t\tvar d2 = cellDate(cell);\n\t\t\t\t\tdates = [\n\t\t\t\t\t\td1,\n\t\t\t\t\t\taddMinutes(cloneDate(d1), opt('slotMinutes')),\n\t\t\t\t\t\td2,\n\t\t\t\t\t\taddMinutes(cloneDate(d2), opt('slotMinutes'))\n\t\t\t\t\t].sort(cmp);\n\t\t\t\t\trenderSlotSelection(dates[0], dates[3]);\n\t\t\t\t}else{\n\t\t\t\t\tdates = null;\n\t\t\t\t}\n\t\t\t}, ev);\n\t\t\t$(document).one('mouseup', function(ev) {\n\t\t\t\thoverListener.stop();\n\t\t\t\tif (dates) {\n\t\t\t\t\tif (+dates[0] == +dates[1]) {\n\t\t\t\t\t\treportDayClick(dates[0], false, ev);\n\t\t\t\t\t}\n\t\t\t\t\treportSelection(dates[0], dates[3], false, ev);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\t\n\t\n\tfunction reportDayClick(date, allDay, ev) {\n\t\ttrigger('dayClick', dayBodyCells[dayOfWeekCol(date.getDay())], date, allDay, ev);\n\t}\n\t\n\t\n\t\n\t/* External Dragging\n\t--------------------------------------------------------------------------------*/\n\t\n\t\n\tfunction dragStart(_dragElement, ev, ui) {\n\t\thoverListener.start(function(cell) {\n\t\t\tclearOverlays();\n\t\t\tif (cell) {\n\t\t\t\tif (cellIsAllDay(cell)) {\n\t\t\t\t\trenderCellOverlay(cell.row, cell.col, cell.row, cell.col);\n\t\t\t\t}else{\n\t\t\t\t\tvar d1 = cellDate(cell);\n\t\t\t\t\tvar d2 = addMinutes(cloneDate(d1), opt('defaultEventMinutes'));\n\t\t\t\t\trenderSlotOverlay(d1, d2);\n\t\t\t\t}\n\t\t\t}\n\t\t}, ev);\n\t}\n\t\n\t\n\tfunction dragStop(_dragElement, ev, ui) {\n\t\tvar cell = hoverListener.stop();\n\t\tclearOverlays();\n\t\tif (cell) {\n\t\t\ttrigger('drop', _dragElement, cellDate(cell), cellIsAllDay(cell), ev, ui);\n\t\t}\n\t}\n\n\n}\n\nfunction AgendaEventRenderer() {\n\tvar t = this;\n\t\n\t\n\t// exports\n\tt.renderEvents = renderEvents;\n\tt.compileDaySegs = compileDaySegs; // for DayEventRenderer\n\tt.clearEvents = clearEvents;\n\tt.slotSegHtml = slotSegHtml;\n\tt.bindDaySeg = bindDaySeg;\n\t\n\t\n\t// imports\n\tDayEventRenderer.call(t);\n\tvar opt = t.opt;\n\tvar trigger = t.trigger;\n\t//var setOverflowHidden = t.setOverflowHidden;\n\tvar isEventDraggable = t.isEventDraggable;\n\tvar isEventResizable = t.isEventResizable;\n\tvar eventEnd = t.eventEnd;\n\tvar reportEvents = t.reportEvents;\n\tvar reportEventClear = t.reportEventClear;\n\tvar eventElementHandlers = t.eventElementHandlers;\n\tvar setHeight = t.setHeight;\n\tvar getDaySegmentContainer = t.getDaySegmentContainer;\n\tvar getSlotSegmentContainer = t.getSlotSegmentContainer;\n\tvar getHoverListener = t.getHoverListener;\n\tvar getMaxMinute = t.getMaxMinute;\n\tvar getMinMinute = t.getMinMinute;\n\tvar timePosition = t.timePosition;\n\tvar colContentLeft = t.colContentLeft;\n\tvar colContentRight = t.colContentRight;\n\tvar renderDaySegs = t.renderDaySegs;\n\tvar resizableDayEvent = t.resizableDayEvent; // TODO: streamline binding architecture\n\tvar getColCnt = t.getColCnt;\n\tvar getColWidth = t.getColWidth;\n\tvar getSlotHeight = t.getSlotHeight;\n\tvar getBodyContent = t.getBodyContent;\n\tvar reportEventElement = t.reportEventElement;\n\tvar showEvents = t.showEvents;\n\tvar hideEvents = t.hideEvents;\n\tvar eventDrop = t.eventDrop;\n\tvar eventResize = t.eventResize;\n\tvar renderDayOverlay = t.renderDayOverlay;\n\tvar clearOverlays = t.clearOverlays;\n\tvar calendar = t.calendar;\n\tvar formatDate = calendar.formatDate;\n\tvar formatDates = calendar.formatDates;\n\t\n\t\n\t\n\t/* Rendering\n\t----------------------------------------------------------------------------*/\n\t\n\n\tfunction renderEvents(events, modifiedEventId) {\n\t\treportEvents(events);\n\t\tvar i, len=events.length,\n\t\t\tdayEvents=[],\n\t\t\tslotEvents=[];\n\t\tfor (i=0; i\" +\n\t\t\t\"
\" +\n\t\t\t\"
\" +\n\t\t\t\"
\" +\n\t\t\thtmlEscape(formatDates(event.start, event.end, opt('timeFormat'))) +\n\t\t\t\"
\" +\n\t\t\t\"
\" +\n\t\t\t\"
\" +\n\t\t\t\"
\" +\n\t\t\thtmlEscape(event.title) +\n\t\t\t\"
\" +\n\t\t\t\"
\" +\n\t\t\t\"
\" +\n\t\t\t\"
\"; // close inner\n\t\tif (seg.isEnd && isEventResizable(event)) {\n\t\t\thtml +=\n\t\t\t\t\"
=
\";\n\t\t}\n\t\thtml +=\n\t\t\t\"\";\n\t\treturn html;\n\t}\n\t\n\t\n\tfunction bindDaySeg(event, eventElement, seg) {\n\t\tif (isEventDraggable(event)) {\n\t\t\tdraggableDayEvent(event, eventElement, seg.isStart);\n\t\t}\n\t\tif (seg.isEnd && isEventResizable(event)) {\n\t\t\tresizableDayEvent(event, eventElement, seg);\n\t\t}\n\t\teventElementHandlers(event, eventElement);\n\t\t\t// needs to be after, because resizableDayEvent might stopImmediatePropagation on click\n\t}\n\t\n\t\n\tfunction bindSlotSeg(event, eventElement, seg) {\n\t\tvar timeElement = eventElement.find('div.fc-event-time');\n\t\tif (isEventDraggable(event)) {\n\t\t\tdraggableSlotEvent(event, eventElement, timeElement);\n\t\t}\n\t\tif (seg.isEnd && isEventResizable(event)) {\n\t\t\tresizableSlotEvent(event, eventElement, timeElement);\n\t\t}\n\t\teventElementHandlers(event, eventElement);\n\t}\n\t\n\t\n\t\n\t/* Dragging\n\t-----------------------------------------------------------------------------------*/\n\t\n\t\n\t// when event starts out FULL-DAY\n\t\n\tfunction draggableDayEvent(event, eventElement, isStart) {\n\t\tvar origWidth;\n\t\tvar revert;\n\t\tvar allDay=true;\n\t\tvar dayDelta;\n\t\tvar dis = opt('isRTL') ? -1 : 1;\n\t\tvar hoverListener = getHoverListener();\n\t\tvar colWidth = getColWidth();\n\t\tvar slotHeight = getSlotHeight();\n\t\tvar minMinute = getMinMinute();\n\t\teventElement.draggable({\n\t\t\tzIndex: 9,\n\t\t\topacity: opt('dragOpacity', 'month'), // use whatever the month view was using\n\t\t\trevertDuration: opt('dragRevertDuration'),\n\t\t\tstart: function(ev, ui) {\n\t\t\t\ttrigger('eventDragStart', eventElement, event, ev, ui);\n\t\t\t\thideEvents(event, eventElement);\n\t\t\t\torigWidth = eventElement.width();\n\t\t\t\thoverListener.start(function(cell, origCell, rowDelta, colDelta) {\n\t\t\t\t\tclearOverlays();\n\t\t\t\t\tif (cell) {\n\t\t\t\t\t\t//setOverflowHidden(true);\n\t\t\t\t\t\trevert = false;\n\t\t\t\t\t\tdayDelta = colDelta * dis;\n\t\t\t\t\t\tif (!cell.row) {\n\t\t\t\t\t\t\t// on full-days\n\t\t\t\t\t\t\trenderDayOverlay(\n\t\t\t\t\t\t\t\taddDays(cloneDate(event.start), dayDelta),\n\t\t\t\t\t\t\t\taddDays(exclEndDay(event), dayDelta)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tresetElement();\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t// mouse is over bottom slots\n\t\t\t\t\t\t\tif (isStart) {\n\t\t\t\t\t\t\t\tif (allDay) {\n\t\t\t\t\t\t\t\t\t// convert event to temporary slot-event\n\t\t\t\t\t\t\t\t\teventElement.width(colWidth - 10); // don't use entire width\n\t\t\t\t\t\t\t\t\tsetOuterHeight(\n\t\t\t\t\t\t\t\t\t\teventElement,\n\t\t\t\t\t\t\t\t\t\tslotHeight * Math.round(\n\t\t\t\t\t\t\t\t\t\t\t(event.end ? ((event.end - event.start) / MINUTE_MS) : opt('defaultEventMinutes'))\n\t\t\t\t\t\t\t\t\t\t\t/ opt('slotMinutes')\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\teventElement.draggable('option', 'grid', [colWidth, 1]);\n\t\t\t\t\t\t\t\t\tallDay = false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\trevert = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\trevert = revert || (allDay && !dayDelta);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tresetElement();\n\t\t\t\t\t\t//setOverflowHidden(false);\n\t\t\t\t\t\trevert = true;\n\t\t\t\t\t}\n\t\t\t\t\teventElement.draggable('option', 'revert', revert);\n\t\t\t\t}, ev, 'drag');\n\t\t\t},\n\t\t\tstop: function(ev, ui) {\n\t\t\t\thoverListener.stop();\n\t\t\t\tclearOverlays();\n\t\t\t\ttrigger('eventDragStop', eventElement, event, ev, ui);\n\t\t\t\tif (revert) {\n\t\t\t\t\t// hasn't moved or is out of bounds (draggable has already reverted)\n\t\t\t\t\tresetElement();\n\t\t\t\t\teventElement.css('filter', ''); // clear IE opacity side-effects\n\t\t\t\t\tshowEvents(event, eventElement);\n\t\t\t\t}else{\n\t\t\t\t\t// changed!\n\t\t\t\t\tvar minuteDelta = 0;\n\t\t\t\t\tif (!allDay) {\n\t\t\t\t\t\tminuteDelta = Math.round((eventElement.offset().top - getBodyContent().offset().top) / slotHeight)\n\t\t\t\t\t\t\t* opt('slotMinutes')\n\t\t\t\t\t\t\t+ minMinute\n\t\t\t\t\t\t\t- (event.start.getHours() * 60 + event.start.getMinutes());\n\t\t\t\t\t}\n\t\t\t\t\teventDrop(this, event, dayDelta, minuteDelta, allDay, ev, ui);\n\t\t\t\t}\n\t\t\t\t//setOverflowHidden(false);\n\t\t\t}\n\t\t});\n\t\tfunction resetElement() {\n\t\t\tif (!allDay) {\n\t\t\t\teventElement\n\t\t\t\t\t.width(origWidth)\n\t\t\t\t\t.height('')\n\t\t\t\t\t.draggable('option', 'grid', null);\n\t\t\t\tallDay = true;\n\t\t\t}\n\t\t}\n\t}\n\t\n\t\n\t// when event starts out IN TIMESLOTS\n\t\n\tfunction draggableSlotEvent(event, eventElement, timeElement) {\n\t\tvar origPosition;\n\t\tvar allDay=false;\n\t\tvar dayDelta;\n\t\tvar minuteDelta;\n\t\tvar prevMinuteDelta;\n\t\tvar dis = opt('isRTL') ? -1 : 1;\n\t\tvar hoverListener = getHoverListener();\n\t\tvar colCnt = getColCnt();\n\t\tvar colWidth = getColWidth();\n\t\tvar slotHeight = getSlotHeight();\n\t\teventElement.draggable({\n\t\t\tzIndex: 9,\n\t\t\tscroll: false,\n\t\t\tgrid: [colWidth, slotHeight],\n\t\t\taxis: colCnt==1 ? 'y' : false,\n\t\t\topacity: opt('dragOpacity'),\n\t\t\trevertDuration: opt('dragRevertDuration'),\n\t\t\tstart: function(ev, ui) {\n\t\t\t\ttrigger('eventDragStart', eventElement, event, ev, ui);\n\t\t\t\thideEvents(event, eventElement);\n\t\t\t\torigPosition = eventElement.position();\n\t\t\t\tminuteDelta = prevMinuteDelta = 0;\n\t\t\t\thoverListener.start(function(cell, origCell, rowDelta, colDelta) {\n\t\t\t\t\teventElement.draggable('option', 'revert', !cell);\n\t\t\t\t\tclearOverlays();\n\t\t\t\t\tif (cell) {\n\t\t\t\t\t\tdayDelta = colDelta * dis;\n\t\t\t\t\t\tif (opt('allDaySlot') && !cell.row) {\n\t\t\t\t\t\t\t// over full days\n\t\t\t\t\t\t\tif (!allDay) {\n\t\t\t\t\t\t\t\t// convert to temporary all-day event\n\t\t\t\t\t\t\t\tallDay = true;\n\t\t\t\t\t\t\t\ttimeElement.hide();\n\t\t\t\t\t\t\t\teventElement.draggable('option', 'grid', null);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trenderDayOverlay(\n\t\t\t\t\t\t\t\taddDays(cloneDate(event.start), dayDelta),\n\t\t\t\t\t\t\t\taddDays(exclEndDay(event), dayDelta)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t// on slots\n\t\t\t\t\t\t\tresetElement();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, ev, 'drag');\n\t\t\t},\n\t\t\tdrag: function(ev, ui) {\n\t\t\t\tminuteDelta = Math.round((ui.position.top - origPosition.top) / slotHeight) * opt('slotMinutes');\n\t\t\t\tif (minuteDelta != prevMinuteDelta) {\n\t\t\t\t\tif (!allDay) {\n\t\t\t\t\t\tupdateTimeText(minuteDelta);\n\t\t\t\t\t}\n\t\t\t\t\tprevMinuteDelta = minuteDelta;\n\t\t\t\t}\n\t\t\t},\n\t\t\tstop: function(ev, ui) {\n\t\t\t\tvar cell = hoverListener.stop();\n\t\t\t\tclearOverlays();\n\t\t\t\ttrigger('eventDragStop', eventElement, event, ev, ui);\n\t\t\t\tif (cell && (dayDelta || minuteDelta || allDay)) {\n\t\t\t\t\t// changed!\n\t\t\t\t\teventDrop(this, event, dayDelta, allDay ? 0 : minuteDelta, allDay, ev, ui);\n\t\t\t\t}else{\n\t\t\t\t\t// either no change or out-of-bounds (draggable has already reverted)\n\t\t\t\t\tresetElement();\n\t\t\t\t\teventElement.css('filter', ''); // clear IE opacity side-effects\n\t\t\t\t\teventElement.css(origPosition); // sometimes fast drags make event revert to wrong position\n\t\t\t\t\tupdateTimeText(0);\n\t\t\t\t\tshowEvents(event, eventElement);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tfunction updateTimeText(minuteDelta) {\n\t\t\tvar newStart = addMinutes(cloneDate(event.start), minuteDelta);\n\t\t\tvar newEnd;\n\t\t\tif (event.end) {\n\t\t\t\tnewEnd = addMinutes(cloneDate(event.end), minuteDelta);\n\t\t\t}\n\t\t\ttimeElement.text(formatDates(newStart, newEnd, opt('timeFormat')));\n\t\t}\n\t\tfunction resetElement() {\n\t\t\t// convert back to original slot-event\n\t\t\tif (allDay) {\n\t\t\t\ttimeElement.css('display', ''); // show() was causing display=inline\n\t\t\t\teventElement.draggable('option', 'grid', [colWidth, slotHeight]);\n\t\t\t\tallDay = false;\n\t\t\t}\n\t\t}\n\t}\n\t\n\t\n\t\n\t/* Resizing\n\t--------------------------------------------------------------------------------------*/\n\t\n\t\n\tfunction resizableSlotEvent(event, eventElement, timeElement) {\n\t\tvar slotDelta, prevSlotDelta;\n\t\tvar slotHeight = getSlotHeight();\n\t\teventElement.resizable({\n\t\t\thandles: {\n\t\t\t\ts: 'div.ui-resizable-s'\n\t\t\t},\n\t\t\tgrid: slotHeight,\n\t\t\tstart: function(ev, ui) {\n\t\t\t\tslotDelta = prevSlotDelta = 0;\n\t\t\t\thideEvents(event, eventElement);\n\t\t\t\teventElement.css('z-index', 9);\n\t\t\t\ttrigger('eventResizeStart', this, event, ev, ui);\n\t\t\t},\n\t\t\tresize: function(ev, ui) {\n\t\t\t\t// don't rely on ui.size.height, doesn't take grid into account\n\t\t\t\tslotDelta = Math.round((Math.max(slotHeight, eventElement.height()) - ui.originalSize.height) / slotHeight);\n\t\t\t\tif (slotDelta != prevSlotDelta) {\n\t\t\t\t\ttimeElement.text(\n\t\t\t\t\t\tformatDates(\n\t\t\t\t\t\t\tevent.start,\n\t\t\t\t\t\t\t(!slotDelta && !event.end) ? null : // no change, so don't display time range\n\t\t\t\t\t\t\t\taddMinutes(eventEnd(event), opt('slotMinutes')*slotDelta),\n\t\t\t\t\t\t\topt('timeFormat')\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t\tprevSlotDelta = slotDelta;\n\t\t\t\t}\n\t\t\t},\n\t\t\tstop: function(ev, ui) {\n\t\t\t\ttrigger('eventResizeStop', this, event, ev, ui);\n\t\t\t\tif (slotDelta) {\n\t\t\t\t\teventResize(this, event, 0, opt('slotMinutes')*slotDelta, ev, ui);\n\t\t\t\t}else{\n\t\t\t\t\teventElement.css('z-index', 8);\n\t\t\t\t\tshowEvents(event, eventElement);\n\t\t\t\t\t// BUG: if event was really short, need to put title back in span\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t\n\n}\n\n\nfunction countForwardSegs(levels) {\n\tvar i, j, k, level, segForward, segBack;\n\tfor (i=levels.length-1; i>0; i--) {\n\t\tlevel = levels[i];\n\t\tfor (j=0; j\");\n\t\tvar elements;\n\t\tvar segmentContainer = getDaySegmentContainer();\n\t\tvar i;\n\t\tvar segCnt = segs.length;\n\t\tvar element;\n\t\ttempContainer[0].innerHTML = daySegHTML(segs); // faster than .html()\n\t\telements = tempContainer.children();\n\t\tsegmentContainer.append(elements);\n\t\tdaySegElementResolve(segs, elements);\n\t\tdaySegCalcHSides(segs);\n\t\tdaySegSetWidths(segs);\n\t\tdaySegCalcHeights(segs);\n\t\tdaySegSetTops(segs, getRowTops(getRowDivs()));\n\t\telements = [];\n\t\tfor (i=0; i\" +\n\t\t\t\t\"\";\n\t\t\tif (!event.allDay && seg.isStart) {\n\t\t\t\thtml +=\n\t\t\t\t\t\"\" +\n\t\t\t\t\thtmlEscape(formatDates(event.start, event.end, opt('timeFormat'))) +\n\t\t\t\t\t\"\";\n\t\t\t}\n\t\t\thtml +=\n\t\t\t\t\"\" + htmlEscape(event.title) + \"\" +\n\t\t\t\t\"
\";\n\t\t\tif (seg.isEnd && isEventResizable(event)) {\n\t\t\t\thtml +=\n\t\t\t\t\t\"
\" +\n\t\t\t\t\t\"   \" + // makes hit area a lot better for IE6/7\n\t\t\t\t\t\"
\";\n\t\t\t}\n\t\t\thtml +=\n\t\t\t\t\"\";\n\t\t\tseg.left = left;\n\t\t\tseg.outerWidth = right - left;\n\t\t\tseg.startCol = leftCol;\n\t\t\tseg.endCol = rightCol + 1; // needs to be exclusive\n\t\t}\n\t\treturn html;\n\t}\n\t\n\t\n\tfunction daySegElementResolve(segs, elements) { // sets seg.element\n\t\tvar i;\n\t\tvar segCnt = segs.length;\n\t\tvar seg;\n\t\tvar event;\n\t\tvar element;\n\t\tvar triggerRes;\n\t\tfor (i=0; i div'); // optimal selector?\n\t\t}\n\t\treturn rowDivs;\n\t}\n\t\n\t\n\tfunction getRowTops(rowDivs) {\n\t\tvar i;\n\t\tvar rowCnt = rowDivs.length;\n\t\tvar tops = [];\n\t\tfor (i=0; i selection for IE\n\t\telement\n\t\t\t.mousedown(function(ev) { // prevent native selection for others\n\t\t\t\tev.preventDefault();\n\t\t\t})\n\t\t\t.click(function(ev) {\n\t\t\t\tif (isResizing) {\n\t\t\t\t\tev.preventDefault(); // prevent link from being visited (only method that worked in IE6)\n\t\t\t\t\tev.stopImmediatePropagation(); // prevent fullcalendar eventClick handler from being called\n\t\t\t\t\t // (eventElementHandlers needs to be bound after resizableDayEvent)\n\t\t\t\t}\n\t\t\t});\n\t\t\n\t\thandle.mousedown(function(ev) {\n\t\t\tif (ev.which != 1) {\n\t\t\t\treturn; // needs to be left mouse button\n\t\t\t}\n\t\t\tisResizing = true;\n\t\t\tvar hoverListener = t.getHoverListener();\n\t\t\tvar rowCnt = getRowCnt();\n\t\t\tvar colCnt = getColCnt();\n\t\t\tvar dis = rtl ? -1 : 1;\n\t\t\tvar dit = rtl ? colCnt-1 : 0;\n\t\t\tvar elementTop = element.css('top');\n\t\t\tvar dayDelta;\n\t\t\tvar helpers;\n\t\t\tvar eventCopy = $.extend({}, event);\n\t\t\tvar minCell = dateCell(event.start);\n\t\t\tclearSelection();\n\t\t\t$('body')\n\t\t\t\t.css('cursor', direction + '-resize')\n\t\t\t\t.one('mouseup', mouseup);\n\t\t\ttrigger('eventResizeStart', this, event, ev);\n\t\t\thoverListener.start(function(cell, origCell) {\n\t\t\t\tif (cell) {\n\t\t\t\t\tvar r = Math.max(minCell.row, cell.row);\n\t\t\t\t\tvar c = cell.col;\n\t\t\t\t\tif (rowCnt == 1) {\n\t\t\t\t\t\tr = 0; // hack for all-day area in agenda views\n\t\t\t\t\t}\n\t\t\t\t\tif (r == minCell.row) {\n\t\t\t\t\t\tif (rtl) {\n\t\t\t\t\t\t\tc = Math.min(minCell.col, c);\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tc = Math.max(minCell.col, c);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdayDelta = (r*7 + c*dis+dit) - (origCell.row*7 + origCell.col*dis+dit);\n\t\t\t\t\tvar newEnd = addDays(eventEnd(event), dayDelta, true);\n\t\t\t\t\tif (dayDelta) {\n\t\t\t\t\t\teventCopy.end = newEnd;\n\t\t\t\t\t\tvar oldHelpers = helpers;\n\t\t\t\t\t\thelpers = renderTempDaySegs(compileDaySegs([eventCopy]), seg.row, elementTop);\n\t\t\t\t\t\thelpers.find('*').css('cursor', direction + '-resize');\n\t\t\t\t\t\tif (oldHelpers) {\n\t\t\t\t\t\t\toldHelpers.remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t\thideEvents(event);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tif (helpers) {\n\t\t\t\t\t\t\tshowEvents(event);\n\t\t\t\t\t\t\thelpers.remove();\n\t\t\t\t\t\t\thelpers = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tclearOverlays();\n\t\t\t\t\trenderDayOverlay(event.start, addDays(cloneDate(newEnd), 1)); // coordinate grid already rebuild at hoverListener.start\n\t\t\t\t}\n\t\t\t}, ev);\n\t\t\t\n\t\t\tfunction mouseup(ev) {\n\t\t\t\ttrigger('eventResizeStop', this, event, ev);\n\t\t\t\t$('body').css('cursor', '');\n\t\t\t\thoverListener.stop();\n\t\t\t\tclearOverlays();\n\t\t\t\tif (dayDelta) {\n\t\t\t\t\teventResize(this, event, dayDelta, 0, ev);\n\t\t\t\t\t// event redraw will clear helpers\n\t\t\t\t}\n\t\t\t\t// otherwise, the drag handler already restored the old events\n\t\t\t\t\n\t\t\t\tsetTimeout(function() { // make this happen after the element's click event\n\t\t\t\t\tisResizing = false;\n\t\t\t\t},0);\n\t\t\t}\n\t\t\t\n\t\t});\n\t}\n\t\n\n}\n\n//BUG: unselect needs to be triggered when events are dragged+dropped\n\nfunction SelectionManager() {\n\tvar t = this;\n\t\n\t\n\t// exports\n\tt.select = select;\n\tt.unselect = unselect;\n\tt.reportSelection = reportSelection;\n\tt.daySelectionMousedown = daySelectionMousedown;\n\t\n\t\n\t// imports\n\tvar opt = t.opt;\n\tvar trigger = t.trigger;\n\tvar defaultSelectionEnd = t.defaultSelectionEnd;\n\tvar renderSelection = t.renderSelection;\n\tvar clearSelection = t.clearSelection;\n\t\n\t\n\t// locals\n\tvar selected = false;\n\n\n\n\t// unselectAuto\n\tif (opt('selectable') && opt('unselectAuto')) {\n\t\t$(document).mousedown(function(ev) {\n\t\t\tvar ignore = opt('unselectCancel');\n\t\t\tif (ignore) {\n\t\t\t\tif ($(ev.target).parents(ignore).length) { // could be optimized to stop after first match\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tunselect(ev);\n\t\t});\n\t}\n\t\n\n\tfunction select(startDate, endDate, allDay) {\n\t\tunselect();\n\t\tif (!endDate) {\n\t\t\tendDate = defaultSelectionEnd(startDate, allDay);\n\t\t}\n\t\trenderSelection(startDate, endDate, allDay);\n\t\treportSelection(startDate, endDate, allDay);\n\t}\n\t\n\t\n\tfunction unselect(ev) {\n\t\tif (selected) {\n\t\t\tselected = false;\n\t\t\tclearSelection();\n\t\t\ttrigger('unselect', null, ev);\n\t\t}\n\t}\n\t\n\t\n\tfunction reportSelection(startDate, endDate, allDay, ev) {\n\t\tselected = true;\n\t\ttrigger('select', null, startDate, endDate, allDay, ev);\n\t}\n\t\n\t\n\tfunction daySelectionMousedown(ev) { // not really a generic manager method, oh well\n\t\tvar cellDate = t.cellDate;\n\t\tvar cellIsAllDay = t.cellIsAllDay;\n\t\tvar hoverListener = t.getHoverListener();\n\t\tvar reportDayClick = t.reportDayClick; // this is hacky and sort of weird\n\t\tif (ev.which == 1 && opt('selectable')) { // which==1 means left mouse button\n\t\t\tunselect(ev);\n\t\t\tvar _mousedownElement = this;\n\t\t\tvar dates;\n\t\t\thoverListener.start(function(cell, origCell) { // TODO: maybe put cellDate/cellIsAllDay info in cell\n\t\t\t\tclearSelection();\n\t\t\t\tif (cell && cellIsAllDay(cell)) {\n\t\t\t\t\tdates = [ cellDate(origCell), cellDate(cell) ].sort(cmp);\n\t\t\t\t\trenderSelection(dates[0], dates[1], true);\n\t\t\t\t}else{\n\t\t\t\t\tdates = null;\n\t\t\t\t}\n\t\t\t}, ev);\n\t\t\t$(document).one('mouseup', function(ev) {\n\t\t\t\thoverListener.stop();\n\t\t\t\tif (dates) {\n\t\t\t\t\tif (+dates[0] == +dates[1]) {\n\t\t\t\t\t\treportDayClick(dates[0], true, ev);\n\t\t\t\t\t}\n\t\t\t\t\treportSelection(dates[0], dates[1], true, ev);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\n}\n \nfunction OverlayManager() {\n\tvar t = this;\n\t\n\t\n\t// exports\n\tt.renderOverlay = renderOverlay;\n\tt.clearOverlays = clearOverlays;\n\t\n\t\n\t// locals\n\tvar usedOverlays = [];\n\tvar unusedOverlays = [];\n\t\n\t\n\tfunction renderOverlay(rect, parent) {\n\t\tvar e = unusedOverlays.shift();\n\t\tif (!e) {\n\t\t\te = $(\"
\");\n\t\t}\n\t\tif (e[0].parentNode != parent[0]) {\n\t\t\te.appendTo(parent);\n\t\t}\n\t\tusedOverlays.push(e.css(rect).show());\n\t\treturn e;\n\t}\n\t\n\n\tfunction clearOverlays() {\n\t\tvar e;\n\t\twhile (e = usedOverlays.shift()) {\n\t\t\tunusedOverlays.push(e.hide().unbind());\n\t\t}\n\t}\n\n\n}\n\nfunction CoordinateGrid(buildFunc) {\n\n\tvar t = this;\n\tvar rows;\n\tvar cols;\n\t\n\t\n\tt.build = function() {\n\t\trows = [];\n\t\tcols = [];\n\t\tbuildFunc(rows, cols);\n\t};\n\t\n\t\n\tt.cell = function(x, y) {\n\t\tvar rowCnt = rows.length;\n\t\tvar colCnt = cols.length;\n\t\tvar i, r=-1, c=-1;\n\t\tfor (i=0; i= rows[i][0] && y < rows[i][1]) {\n\t\t\t\tr = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tfor (i=0; i= cols[i][0] && x < cols[i][1]) {\n\t\t\t\tc = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn (r>=0 && c>=0) ? { row:r, col:c } : null;\n\t};\n\t\n\t\n\tt.rect = function(row0, col0, row1, col1, originElement) { // row1,col1 is inclusive\n\t\tvar origin = originElement.offset();\n\t\treturn {\n\t\t\ttop: rows[row0][0] - origin.top,\n\t\t\tleft: cols[col0][0] - origin.left,\n\t\t\twidth: cols[col1][1] - cols[col0][0],\n\t\t\theight: rows[row1][1] - rows[row0][0]\n\t\t};\n\t};\n\n}\n\nfunction HoverListener(coordinateGrid) {\n\n\n\tvar t = this;\n\tvar bindType;\n\tvar change;\n\tvar firstCell;\n\tvar cell;\n\t\n\t\n\tt.start = function(_change, ev, _bindType) {\n\t\tchange = _change;\n\t\tfirstCell = cell = null;\n\t\tcoordinateGrid.build();\n\t\tmouse(ev);\n\t\tbindType = _bindType || 'mousemove';\n\t\t$(document).bind(bindType, mouse);\n\t};\n\t\n\t\n\tfunction mouse(ev) {\n\t\t_fixUIEvent(ev); // see below\n\t\tvar newCell = coordinateGrid.cell(ev.pageX, ev.pageY);\n\t\tif (!newCell != !cell || newCell && (newCell.row != cell.row || newCell.col != cell.col)) {\n\t\t\tif (newCell) {\n\t\t\t\tif (!firstCell) {\n\t\t\t\t\tfirstCell = newCell;\n\t\t\t\t}\n\t\t\t\tchange(newCell, firstCell, newCell.row-firstCell.row, newCell.col-firstCell.col);\n\t\t\t}else{\n\t\t\t\tchange(newCell, firstCell);\n\t\t\t}\n\t\t\tcell = newCell;\n\t\t}\n\t}\n\t\n\t\n\tt.stop = function() {\n\t\t$(document).unbind(bindType, mouse);\n\t\treturn cell;\n\t};\n\t\n\t\n}\n\n\n\n// this fix was only necessary for jQuery UI 1.8.16 (and jQuery 1.7 or 1.7.1)\n// upgrading to jQuery UI 1.8.17 (and using either jQuery 1.7 or 1.7.1) fixed the problem\n// but keep this in here for 1.8.16 users\n// and maybe remove it down the line\n\nfunction _fixUIEvent(event) { // for issue 1168\n\tif (event.pageX === undefined) {\n\t\tevent.pageX = event.originalEvent.pageX;\n\t\tevent.pageY = event.originalEvent.pageY;\n\t}\n}\nfunction HorizontalPositionCache(getElement) {\n\n\tvar t = this,\n\t\telements = {},\n\t\tlefts = {},\n\t\trights = {};\n\t\t\n\tfunction e(i) {\n\t\treturn elements[i] = elements[i] || getElement(i);\n\t}\n\t\n\tt.left = function(i) {\n\t\treturn lefts[i] = lefts[i] === undefined ? e(i).position().left : lefts[i];\n\t};\n\t\n\tt.right = function(i) {\n\t\treturn rights[i] = rights[i] === undefined ? t.left(i) + e(i).width() : rights[i];\n\t};\n\t\n\tt.clear = function() {\n\t\telements = {};\n\t\tlefts = {};\n\t\trights = {};\n\t};\n\t\n}\n\n})(jQuery);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./source/javascripts/vendor/fullcalendar.js\n// module id = 1133\n// module chunks = 161"],"sourceRoot":""}