{"version":3,"sources":["webpack:///js/vendor.5d4ca248191de360a266.js","webpack:////~/lodash/isObject.js","webpack:////~/lodash/_root.js","webpack:////~/lodash/isObjectLike.js","webpack:////~/lodash/_baseGetTag.js","webpack:////~/lodash/isArray.js","webpack:////~/t3js/dist/t3-native.js","webpack:////~/lodash/_ListCache.js","webpack:////~/lodash/_assocIndexOf.js","webpack:////~/lodash/_getMapData.js","webpack:////~/lodash/_nativeCreate.js","webpack:////~/lodash/eq.js","webpack:////~/lodash/isFunction.js","webpack:///(webpack)/buildin/global.js","webpack:////~/lodash/_Symbol.js","webpack:////~/lodash/_baseAssignValue.js","webpack:////~/lodash/_getNative.js","webpack:////~/lodash/isArrayLike.js","webpack:////~/lodash/isSymbol.js","webpack:///(webpack)/buildin/module.js","webpack:////~/lodash/_Map.js","webpack:////~/lodash/_MapCache.js","webpack:////~/lodash/_assignMergeValue.js","webpack:////~/lodash/_defineProperty.js","webpack:////~/lodash/_freeGlobal.js","webpack:////~/lodash/_getPrototype.js","webpack:////~/lodash/_isIndex.js","webpack:////~/lodash/_isPrototype.js","webpack:////~/lodash/get.js","webpack:////~/lodash/identity.js","webpack:////~/lodash/isArguments.js","webpack:////~/lodash/isBuffer.js","webpack:////~/lodash/isLength.js","webpack:////~/lodash/isTypedArray.js","webpack:////~/lodash/keysIn.js","webpack:////~/raven-js/src/utils.js","webpack:////~/debug/src/browser.js","webpack:////~/debug/src/debug.js","webpack:////~/jsonp/index.js","webpack:////~/lodash/_Hash.js","webpack:////~/lodash/_Stack.js","webpack:////~/lodash/_Uint8Array.js","webpack:////~/lodash/_apply.js","webpack:////~/lodash/_arrayLikeKeys.js","webpack:////~/lodash/_arrayMap.js","webpack:////~/lodash/_assignValue.js","webpack:////~/lodash/_baseCreate.js","webpack:////~/lodash/_baseFor.js","webpack:////~/lodash/_baseGet.js","webpack:////~/lodash/_baseIsArguments.js","webpack:////~/lodash/_baseIsNative.js","webpack:////~/lodash/_baseIsTypedArray.js","webpack:////~/lodash/_baseKeysIn.js","webpack:////~/lodash/_baseMerge.js","webpack:////~/lodash/_baseMergeDeep.js","webpack:////~/lodash/_baseRest.js","webpack:////~/lodash/_baseSetToString.js","webpack:////~/lodash/_baseTimes.js","webpack:////~/lodash/_baseToString.js","webpack:////~/lodash/_baseUnary.js","webpack:////~/lodash/_castPath.js","webpack:////~/lodash/_cloneArrayBuffer.js","webpack:////~/lodash/_cloneBuffer.js","webpack:////~/lodash/_cloneTypedArray.js","webpack:////~/lodash/_copyArray.js","webpack:////~/lodash/_copyObject.js","webpack:////~/lodash/_coreJsData.js","webpack:////~/lodash/_createAssigner.js","webpack:////~/lodash/_createBaseFor.js","webpack:////~/lodash/_getRawTag.js","webpack:////~/lodash/_getValue.js","webpack:////~/lodash/_hashClear.js","webpack:////~/lodash/_hashDelete.js","webpack:////~/lodash/_hashGet.js","webpack:////~/lodash/_hashHas.js","webpack:////~/lodash/_hashSet.js","webpack:////~/lodash/_initCloneObject.js","webpack:////~/lodash/_isIterateeCall.js","webpack:////~/lodash/_isKey.js","webpack:////~/lodash/_isKeyable.js","webpack:////~/lodash/_isMasked.js","webpack:////~/lodash/_listCacheClear.js","webpack:////~/lodash/_listCacheDelete.js","webpack:////~/lodash/_listCacheGet.js","webpack:////~/lodash/_listCacheHas.js","webpack:////~/lodash/_listCacheSet.js","webpack:////~/lodash/_mapCacheClear.js","webpack:////~/lodash/_mapCacheDelete.js","webpack:////~/lodash/_mapCacheGet.js","webpack:////~/lodash/_mapCacheHas.js","webpack:////~/lodash/_mapCacheSet.js","webpack:////~/lodash/_memoizeCapped.js","webpack:////~/lodash/_nativeKeysIn.js","webpack:////~/lodash/_nodeUtil.js","webpack:////~/lodash/_objectToString.js","webpack:////~/lodash/_overArg.js","webpack:////~/lodash/_overRest.js","webpack:////~/lodash/_setToString.js","webpack:////~/lodash/_shortOut.js","webpack:////~/lodash/_stackClear.js","webpack:////~/lodash/_stackDelete.js","webpack:////~/lodash/_stackGet.js","webpack:////~/lodash/_stackHas.js","webpack:////~/lodash/_stackSet.js","webpack:////~/lodash/_stringToPath.js","webpack:////~/lodash/_toKey.js","webpack:////~/lodash/_toSource.js","webpack:////~/lodash/constant.js","webpack:////~/lodash/isArrayLikeObject.js","webpack:////~/lodash/isPlainObject.js","webpack:////~/lodash/memoize.js","webpack:////~/lodash/merge.js","webpack:////~/lodash/stubFalse.js","webpack:////~/lodash/toPlainObject.js","webpack:////~/lodash/toString.js","webpack:////~/ms/index.js","webpack:////~/process/browser.js","webpack:////~/raven-js/src/configError.js","webpack:////~/raven-js/src/console.js","webpack:////~/raven-js/src/raven.js","webpack:////~/raven-js/src/singleton.js","webpack:////~/raven-js/vendor/TraceKit/tracekit.js","webpack:////~/raven-js/vendor/json-stringify-safe/stringify.js","webpack:////~/unfetch/dist/unfetch.es.js","webpack:////~/css-loader/lib/css-base.js"],"names":["webpackJsonp","module","exports","isObject","value","type","__webpack_require__","freeGlobal","freeSelf","self","Object","root","Function","isObjectLike","baseGetTag","undefined","undefinedTag","nullTag","symToStringTag","getRawTag","objectToString","Symbol","toStringTag","isArray","Array","window","Box","EventTarget","this","_handlers","prototype","constructor","on","handler","i","len","handlers","length","push","fire","data","event","concat","call","off","splice","NativeDOM","query","selector","querySelector","queryAll","querySelectorAll","element","listener","addEventListener","removeEventListener","DOM","DOMEventDelegate","isModuleElement","hasAttribute","isTypeElement","getNearestTypeElement","found","moduleBoundaryReached","parentNode","forEachEventType","eventTypes","callback","thisValue","_handler","_eventTypes","DEFAULT_EVENT_TYPES","_boundHandler","_attached","_handleEvent","targetElement","target","elementType","getAttribute","attachEvents","eventType","handleEvent","that","apply","arguments","detachEvents","Context","application","broadcast","name","getService","serviceName","hasService","getConfig","getModuleConfig","getGlobal","getGlobalConfig","reportError","exception","getElement","Application","assign","receiver","supplier","prop","hasOwnProperty","indexOf","items","item","reset","globalConfig","modules","services","serviceStack","behaviors","instances","initialized","isServiceBeingInstantiated","error","customErrorHandler","debug","captureObjectErrors","object","objectName","propertyName","propertyValue","methodName","method","errorPrefix","ex","message","getModuleName","moduleAttribute","split","callModuleMethod","instance","slice","serviceData","ReferenceError","join","creator","pop","Error","getBehaviors","instanceData","behaviorNames","behaviorData","moduleBehaviorInstances","behaviorName","behaviorInstances","includedBehaviors","context","createAndBindEventDelegate","eventDelegates","delegate","bindEventListeners","moduleBehaviors","unbindEventListeners","getInstanceDataByElement","id","callMessageHandler","onmessage","messages","init","params","startAll","document","documentElement","destroy","stopAll","isStarted","start","moduleName","moduleData","counter","behaviorInstance","stop","moduleElements","addModule","moduleConfig","config","configElement","JSON","parse","text","addService","addBehavior","messageData","setGlobalConfig","setErrorHandler","exceptionHandler","reportWarning","globalConsole","warn","reportInfo","info","ListCache","entries","index","clear","entry","set","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","get","has","assocIndexOf","array","key","eq","getMapData","map","__data__","isKeyable","getNative","nativeCreate","other","isFunction","tag","funcTag","genTag","asyncTag","proxyTag","g","eval","e","baseAssignValue","defineProperty","getValue","baseIsNative","isArrayLike","isLength","isSymbol","symbolTag","webpackPolyfill","deprecate","paths","children","enumerable","l","Map","MapCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","assignMergeValue","func","global","overArg","getPrototype","getPrototypeOf","isIndex","MAX_SAFE_INTEGER","reIsUint","test","isPrototype","Ctor","objectProto","path","defaultValue","result","baseGet","identity","baseIsArguments","propertyIsEnumerable","isArguments","stubFalse","freeExports","nodeType","freeModule","moduleExports","Buffer","nativeIsBuffer","isBuffer","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","isTypedArray","keysIn","arrayLikeKeys","baseKeysIn","what","isError","toString","wrappedCallback","dataCallback","original","normalizedData","useColors","process","style","WebkitAppearance","console","firebug","table","navigator","userAgent","toLowerCase","match","parseInt","RegExp","$1","formatArgs","args","namespace","humanize","diff","c","color","lastC","replace","log","save","namespaces","storage","removeItem","load","r","env","DEBUG","chrome","local","localStorage","colors","formatters","j","v","stringify","err","enable","selectColor","hash","charCodeAt","Math","abs","createDebug","enabled","curr","Date","ms","prevTime","prev","coerce","unshift","format","formatter","val","bind","names","skips","substr","disable","stack","noop","jsonp","url","opts","fn","cleanup","script","removeChild","timer","clearTimeout","cancel","prefix","count","param","timeout","enc","encodeURIComponent","getElementsByTagName","head","setTimeout","createElement","src","insertBefore","Hash","hashClear","hashDelete","hashGet","hashHas","hashSet","Stack","size","stackClear","stackDelete","stackGet","stackHas","stackSet","Uint8Array","thisArg","inherited","isArr","isArg","isBuff","isType","skipIndexes","baseTimes","String","arrayMap","iteratee","assignValue","objValue","objectCreate","create","baseCreate","proto","createBaseFor","baseFor","castPath","toKey","argsTag","isMasked","reIsNative","reIsHostCtor","toSource","reRegExpChar","funcProto","funcToString","typedArrayTags","nativeKeysIn","isProto","baseMerge","source","srcIndex","customizer","srcValue","baseMergeDeep","newValue","mergeFunc","stacked","isCommon","isTyped","isArrayLikeObject","copyArray","cloneBuffer","cloneTypedArray","isPlainObject","toPlainObject","initCloneObject","baseRest","setToString","overRest","constant","baseSetToString","string","n","baseToString","symbolToString","INFINITY","symbolProto","isKey","stringToPath","cloneArrayBuffer","arrayBuffer","byteLength","buffer","isDeep","allocUnsafe","copy","typedArray","byteOffset","copyObject","props","isNew","coreJsData","createAssigner","assigner","sources","guard","isIterateeCall","fromRight","keysFunc","iterable","isOwn","unmasked","nativeObjectToString","HASH_UNDEFINED","reIsPlainProp","reIsDeepProp","maskSrcKey","uid","exec","keys","IE_PROTO","arrayProto","memoizeCapped","memoize","cache","MAX_MEMOIZE_SIZE","freeProcess","binding","transform","arg","nativeMax","otherArgs","max","shortOut","lastCalled","stamp","nativeNow","remaining","HOT_SPAN","HOT_COUNT","now","pairs","LARGE_ARRAY_SIZE","reLeadingDot","rePropName","reEscapeChar","number","quote","objectTag","objectCtorString","resolver","TypeError","FUNC_ERROR_TEXT","memoized","Cache","merge","str","parseFloat","y","d","h","m","s","fmtShort","round","fmtLong","plural","floor","ceil","options","isNaN","long","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","runClearTimeout","marker","cachedClearTimeout","cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","run","Item","nextTick","title","browser","argv","version","versions","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","cwd","chdir","dir","umask","RavenConfigError","wrapMethod","level","originalConsoleLevel","originalConsole","sentryLevel","msg","logger","extra","keepOriginalCallback","Raven","_hasJSON","_hasDocument","isUndefined","_document","_hasNavigator","_navigator","_lastCapturedException","_lastData","_lastEventId","_globalServer","_globalKey","_globalProject","_globalContext","_globalOptions","ignoreErrors","ignoreUrls","whitelistUrls","includePaths","crossOrigin","collectWindowErrors","maxMessageLength","maxUrlLength","stackTraceLimit","autoBreadcrumbs","instrument","sampleRate","_ignoreOnError","_isRavenInstalled","_originalErrorStackTraceLimit","_originalConsole","_window","_originalConsoleMethods","_plugins","_startTime","_wrappedBuiltIns","_breadcrumbs","_lastCapturedEvent","_keypressTimeout","_location","location","_lastHref","href","_resetBackoff","isString","objectPrototype","isEmptyObject","_","each","obj","hasKey","objectMerge","obj1","obj2","objectFrozen","isFrozen","truncate","joinRegExp","patterns","pattern","urlencode","o","parseUrl","fragment","protocol","host","relative","uuid4","crypto","msCrypto","getRandomValues","arr","Uint16Array","pad","num","random","htmlTreeAsString","elem","nextStr","out","height","sepLength","htmlElementAsString","reverse","className","classes","attr","tagName","attrWhitelist","isOnlyOneTruthy","a","b","isSameException","ex1","ex2","values","isSameStacktrace","stacktrace","stack1","stack2","frames1","frames","frames2","filename","lineno","colno","fill","replacement","track","orig","TraceKit","utils","wrapConsoleMethod","dsnKeys","dsnPattern","VERSION","dsn","_logDebug","globalOptions","setDSN","maxBreadcrumbs","min","autoBreadcrumbDefaults","xhr","dom","instrumentDefaults","tryCatch","install","isSetup","report","subscribe","_handleOnErrorStackInfo","_instrumentTryCatch","_instrumentBreadcrumbs","_drainPlugins","uri","_parseDSN","lastSlash","lastIndexOf","_dsn","user","_globalSecret","pass","_getGlobalServer","_globalEndpoint","wrap","_before","wrapped","deep","_ignoreNextOnError","captureException","__raven__","__raven_wrapper__","property","__inner__","uninstall","_restoreBuiltIns","captureMessage","trimHeadFrames","computeStackTrace","_handleStackInfo","fingerprint","_prepareFrames","_send","captureBreadcrumb","crumb","timestamp","breadcrumbCallback","shift","addPlugin","plugin","pluginArgs","setUserContext","setExtraContext","_mergeContext","setTagsContext","tags","clearContext","getContext","setEnvironment","environment","setRelease","release","setDataCallback","setBreadcrumbCallback","setShouldSendCallback","shouldSendCallback","setTransport","transport","lastException","lastEventId","ravenNotConfiguredError","afterLoad","RavenConfig","showReportDialog","eventId","encode","qs","email","globalServer","async","body","appendChild","_triggerEvent","evt","toUpperCase","createEvent","initEvent","createEventObject","dispatchEvent","fireEvent","_breadcrumbEventHandler","evtName","category","_keypressEventHandler","isContentEditable","_captureUrlChange","from","to","parsedLoc","parsedTo","parsedFrom","wrapTimeFn","t","originalCallback","wrappedBuiltIns","requestAnimationFrame","cb","eventTargets","capture","secure","before","clickHandler","keypressHandler","wrapProp","xhrproto","XMLHttpRequest","origOpen","__raven_xhr","status_code","origSend","onreadystatechangeHandler","readyState","status","onreadystatechange","origFetch","fetchInput","fetchData","then","response","attachEvent","isChromePackagedApp","app","runtime","hasPushState","history","pushState","oldOnPopState","onpopstate","currentHref","origPushState","consoleMethodCallback","builtin","installer","allowSecretKey","port","stackInfo","_processException","frame","_normalizeFrame","in_app","normalized","line","column","fileurl","culprit","_trimPacket","request","Referer","breadcrumbs","_trimBreadcrumbs","urlProp","urlProps","_getHttpData","httpData","headers","referrer","_backoffDuration","_backoffStart","_shouldBackoff","_isRepeatData","current","last","_setBackoffState","retry","getResponseHeader","baseData","project","platform","serverName","server_name","_sendProcessedPayload","_getUuid","event_id","allowDuplicates","auth","sentry_version","sentry_client","sentry_key","sentry_secret","_makeRequest","onSuccess","onError","XDomainRequest","onload","onerror","open","send","__DEV__","setUser","setReleaseContext","RavenConstructor","_Raven","noConflict","getLocationHref","_slice","UNKNOWN_FUNCTION","ERROR_TYPES_RE","installGlobalHandler","unsubscribe","unsubscribeAll","uninstallGlobalHandler","notifyHandlers","isWindowError","inner","traceKitWindowOnError","lineNo","colNo","lastExceptionStack","augmentStackTraceWithInitialElement","processLastException","groups","_oldOnerrorHandler","_onErrorHandlerInstalled","_lastExceptionStack","_lastArgs","lastArgs","rethrow","incomplete","computeStackTraceFromStackProp","submatch","parts","gecko","winjs","geckoEval","chromeEval","lines","isNative","isEval","columnNumber","initial","partial","computeStackTraceByWalkingCallerChain","depth","functionName","funcs","recursion","caller","input","substring","sourceURL","fileName","lineNumber","description","haystack","needle","replacer","spaces","cycleReplacer","serializer","thisPos","Infinity","getSerialize","__webpack_exports__","fetch","Promise","resolve","reject","header","all","getAllResponseHeaders","ok","statusText","responseURL","clone","responseText","json","xml","responseXML","blob","Blob","setRequestHeader","withCredentials","credentials","list","mediaQuery","alreadyImportedModules"],"mappings":"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","file":"js/vendor.5d4ca248191de360a266.js","sourcesContent":["webpackJsonp([0],[\n/* 0 */\n/* no static exports found */\n/* all exports used */\n/*!*****************************!*\\\n !*** /~/lodash/isObject.js ***!\n \\*****************************/\n/***/ (function(module, exports) {\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n\n\n/***/ }),\n/* 1 */\n/* no static exports found */\n/* all exports used */\n/*!**************************!*\\\n !*** /~/lodash/_root.js ***!\n \\**************************/\n/***/ (function(module, exports, __webpack_require__) {\n\nvar freeGlobal = __webpack_require__(/*! ../_freeGlobal */ 24);\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n\n\n/***/ }),\n/* 2 */\n/* no static exports found */\n/* all exports used */\n/*!*********************************!*\\\n !*** /~/lodash/isObjectLike.js ***!\n \\*********************************/\n/***/ (function(module, exports) {\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n\n/***/ }),\n/* 3 */\n/* no static exports found */\n/* all exports used */\n/*!********************************!*\\\n !*** /~/lodash/_baseGetTag.js ***!\n \\********************************/\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Symbol = __webpack_require__(/*! ../_Symbol */ 13),\n getRawTag = __webpack_require__(/*! ../_getRawTag */ 82),\n objectToString = __webpack_require__(/*! ../_objectToString */ 107);\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n\n/***/ }),\n/* 4 */\n/* no static exports found */\n/* all exports used */\n/*!****************************!*\\\n !*** /~/lodash/isArray.js ***!\n \\****************************/\n/***/ (function(module, exports) {\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n\n\n/***/ }),\n/* 5 */\n/* no static exports found */\n/* all exports used */\n/*!*********************************!*\\\n !*** /~/t3js/dist/t3-native.js ***!\n \\*********************************/\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! t3-native v2.7.0 */\n/*!\nCopyright 2016 Box, Inc. All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n// Start wrapper\n// We use this to make sure we don't assign globals unless we actually want to\n(function(window) {\n\n/**\n * @fileoverview Base namespaces for Box JavaScript.\n * @author Box\n */\n\n/* eslint-disable no-unused-vars */\n\n/**\n * The one global object for Box JavaScript.\n * @namespace\n */\nvar Box = {};\n/* eslint-enable no-unused-vars */\n\n/**\n * @fileoverview Definition of a custom event type. This is used as a utility\n * throughout the framework whenever custom events are used. It is intended to\n * be inherited from, either through the prototype or via mixin.\n * @author Box\n */\n\nBox.EventTarget = (function() {\n\n\t'use strict';\n\n\t/**\n\t * An object that is capable of generating custom events and also\n\t * executing handlers for events when they occur.\n\t * @constructor\n\t */\n\tfunction EventTarget() {\n\n\t\t/**\n\t\t * Map of events to handlers. The keys in the object are the event names.\n\t\t * The values in the object are arrays of event handler functions.\n\t\t * @type {Object}\n\t\t * @private\n\t\t */\n\t\tthis._handlers = {};\n\t}\n\n\tEventTarget.prototype = {\n\n\t\t// restore constructor\n\t\tconstructor: EventTarget,\n\n\t\t/**\n\t\t * Adds a new event handler for a particular type of event.\n\t\t * @param {string} type The name of the event to listen for.\n\t\t * @param {Function} handler The function to call when the event occurs.\n\t\t * @returns {void}\n\t\t */\n\t\ton: function(type, handler) {\n\n\t\t\tvar handlers = this._handlers[type],\n\t\t\t\ti,\n\t\t\t\tlen;\n\n\t\t\tif (typeof handlers === 'undefined') {\n\t\t\t\thandlers = this._handlers[type] = [];\n\t\t\t}\n\n\t\t\tfor (i = 0, len = handlers.length; i < len; i++) {\n\t\t\t\tif (handlers[i] === handler) {\n\t\t\t\t\t// prevent duplicate handlers\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\thandlers.push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Fires an event with the given name and data.\n\t\t * @param {string} type The type of event to fire.\n\t\t * @param {Object} [data] An object with properties that should end up on\n\t\t * the event object for the given event.\n\t\t * @returns {void}\n\t\t */\n\t\tfire: function(type, data) {\n\n\t\t\tvar handlers,\n\t\t\t\ti,\n\t\t\t\tlen,\n\t\t\t\tevent = {\n\t\t\t\t\ttype: type,\n\t\t\t\t\tdata: data\n\t\t\t\t};\n\n\t\t\t// if there are handlers for the event, call them in order\n\t\t\thandlers = this._handlers[event.type];\n\t\t\tif (handlers instanceof Array) {\n\t\t\t\t// @NOTE: do a concat() here to create a copy of the handlers array,\n\t\t\t\t// so that if another handler is removed of the same type, it doesn't\n\t\t\t\t// interfere with the handlers array during this loop\n\t\t\t\thandlers = handlers.concat();\n\t\t\t\tfor (i = 0, len = handlers.length; i < len; i++) {\n\t\t\t\t\thandlers[i].call(this, event);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Removes an event handler from a given event.\n\t\t * @param {string} type The name of the event to remove from.\n\t\t * @param {Function} handler The function to remove as a handler.\n\t\t * @returns {void}\n\t\t */\n\t\toff: function(type, handler) {\n\n\t\t\tvar handlers = this._handlers[type],\n\t\t\t\ti,\n\t\t\t\tlen;\n\n\t\t\tif (handlers instanceof Array) {\n\t\t\t\tfor (i = 0, len = handlers.length; i < len; i++) {\n\t\t\t\t\tif (handlers[i] === handler) {\n\t\t\t\t\t\thandlers.splice(i, 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\treturn EventTarget;\n\n}());\n\n/**\n * @fileoverview DOM abstraction to use native browser functionality to add and remove event listeners\n * in T3\n * @author jdivock\n */\n\n\nBox.NativeDOM = (function(){\n\t'use strict';\n\n\treturn {\n\n\t\ttype: 'native',\n\n\t\t/**\n\t\t * Returns the first element that is a descendant of the element\n\t\t * on which it is invoked that matches the specified group of selectors.\n\t\t * @param {HTMLElement} root parent element to query off of\n\t\t * @param {string} selector query string to match on\n\t\t *\n\t\t * @returns {HTMLElement} first element found matching query\n\t\t */\n\t\tquery: function(root, selector){\n\t\t\treturn root.querySelector(selector);\n\t\t},\n\n\t\t/**\n\t\t * Returns a non-live NodeList of all elements descended from the\n\t\t * element on which it is invoked that match the specified group of CSS selectors.\n\t\t * @param {HTMLElement} root parent element to query off of\n\t\t * @param {string} selector query string to match on\n\t\t *\n\t\t * @returns {Array} elements found matching query\n\t\t */\n\t\tqueryAll: function(root, selector){\n\t\t\treturn root.querySelectorAll(selector);\n\t\t},\n\n\t\t/**\n\t\t * Adds event listener to element using native event listener\n\t\t * @param {HTMLElement} element Target to attach listener to\n\t\t * @param {string} type Name of the action to listen for\n\t\t * @param {function} listener Function to be executed on action\n\t\t *\n\t\t * @returns {void}\n\t\t */\n\t\ton: function(element, type, listener) {\n\t\t\telement.addEventListener(type, listener, false);\n\t\t},\n\n\t\t/**\n\t\t * Removes event listener to element using native event listener functions\n\t\t * @param {HTMLElement} element Target to remove listener from\n\t\t * @param {string} type Name of the action remove listener from\n\t\t * @param {function} listener Function to be removed from action\n\t\t *\n\t\t * @returns {void}\n\t\t */\n\t\toff: function(element, type, listener) {\n\t\t\telement.removeEventListener(type, listener, false);\n\t\t}\n\t};\n}());\n\nBox.DOM = Box.NativeDOM;\n\n/**\n * @fileoverview An object that encapsulates event delegation wireup for a\n * DOM element.\n * @author Box\n */\n\nBox.DOMEventDelegate = (function() {\n\n\t'use strict';\n\n\t// Supported events for modules. Only events that bubble properly can be used in T3.\n\tvar DEFAULT_EVENT_TYPES = ['click', 'mouseover', 'mouseout', 'mousedown', 'mouseup',\n\t\t\t'mouseenter', 'mouseleave', 'mousemove', 'keydown', 'keyup', 'submit', 'change',\n\t\t\t'contextmenu', 'dblclick', 'input', 'focusin', 'focusout'];\n\n\n\t/**\n\t * Determines if a given element represents a module.\n\t * @param {HTMLElement} element The element to check.\n\t * @returns {boolean} True if the element represents a module, false if not.\n\t * @private\n\t */\n\tfunction isModuleElement(element) {\n\t\treturn element && element.hasAttribute('data-module');\n\t}\n\n\t/**\n\t * Determines if a given element represents a T3 type.\n\t * @param {HTMLElement} element The element to check.\n\t * @returns {boolean} True if the element represents a T3 type, false if not.\n\t * @private\n\t */\n\tfunction isTypeElement(element) {\n\t\treturn element && element.hasAttribute('data-type');\n\t}\n\n\t/**\n\t * Finds the closest ancestor that of an element that has a data-type\n\t * attribute.\n\t * @param {HTMLElement} element The element to start searching from.\n\t * @returns {HTMLElement} The matching element or null if not found.\n\t */\n\tfunction getNearestTypeElement(element) {\n\t\tvar found = false;\n\t\tvar moduleBoundaryReached = false;\n\n\t\t// We need to check for the existence of 'element' since occasionally we call this on a detached element node.\n\t\t// For example:\n\t\t// 1. event handlers like mouseout may sometimes detach nodes from the DOM\n\t\t// 2. event handlers like mouseleave will still fire on the detached node\n\t\t// Checking existence of element.parentNode ensures the element is a valid HTML Element\n\t\twhile (!found && element && element.parentNode && !moduleBoundaryReached) {\n\t\t\tfound = isTypeElement(element);\n\t\t\tmoduleBoundaryReached = isModuleElement(element);\n\n\t\t\tif (!found) {\n\t\t\t\telement = element.parentNode;\n\t\t\t}\n\n\t\t}\n\n\t\treturn found ? element : null;\n\t}\n\n\t/**\n\t * Iterates over each supported event type that is also in the handler, applying\n\t * a callback function. This is used to more easily attach/detach all events.\n\t * @param {string[]} eventTypes A list of event types to iterate over\n\t * @param {Object} handler An object with onclick, onmouseover, etc. methods.\n\t * @param {Function} callback The function to call on each event type.\n\t * @param {Object} [thisValue] The value of \"this\" inside the callback.\n\t * @returns {void}\n\t * @private\n\t */\n\tfunction forEachEventType(eventTypes, handler, callback, thisValue) {\n\n\t\tvar i,\n\t\t\ttype;\n\n\t\tfor (i = 0; i < eventTypes.length; i++) {\n\t\t\ttype = eventTypes[i];\n\n\t\t\t// only call the callback if the event is on the handler\n\t\t\tif (handler['on' + type]) {\n\t\t\t\tcallback.call(thisValue, type);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * An object that manages events within a single DOM element.\n\t * @param {HTMLElement} element The DOM element to handle events for.\n\t * @param {Object} handler An object containing event handlers such as \"onclick\".\n\t * @param {string[]} [eventTypes] A list of event types to handle (events must bubble). Defaults to a common set of events.\n\t * @constructor\n\t */\n\tfunction DOMEventDelegate(element, handler, eventTypes) {\n\n\t\t/**\n\t\t * The DOM element that this object is handling events for.\n\t\t * @type {HTMLElement}\n\t\t */\n\t\tthis.element = element;\n\n\t\t/**\n\t\t * Object on which event handlers are available.\n\t\t * @type {Object}\n\t\t * @private\n\t\t */\n\t\tthis._handler = handler;\n\n\t\t/**\n\t\t * List of event types to handle (make sure these events bubble!)\n\t\t * @type {string[]}\n\t\t * @private\n\t\t */\n\t\tthis._eventTypes = eventTypes || DEFAULT_EVENT_TYPES;\n\n\t\t/**\n\t\t * Tracks event handlers whose this-value is bound to the correct\n\t\t * object.\n\t\t * @type {Object}\n\t\t * @private\n\t\t */\n\t\tthis._boundHandler = {};\n\n\t\t/**\n\t\t * Indicates if events have been attached.\n\t\t * @type {boolean}\n\t\t * @private\n\t\t */\n\t\tthis._attached = false;\n\t}\n\n\n\tDOMEventDelegate.prototype = {\n\n\t\t// restore constructor\n\t\tconstructor: DOMEventDelegate,\n\n\t\t_handleEvent: function(event) {\n\t\t\tvar targetElement = getNearestTypeElement(event.target),\n\t\t\t\telementType = targetElement ? targetElement.getAttribute('data-type') : '';\n\n\t\t\tthis._handler['on' + event.type](event, targetElement, elementType);\n\t\t},\n\n\t\t/**\n\t\t * Attaches all event handlers for the DOM element.\n\t\t * @returns {void}\n\t\t */\n\t\tattachEvents: function() {\n\t\t\tif (!this._attached) {\n\n\t\t\t\tforEachEventType(this._eventTypes, this._handler, function(eventType) {\n\t\t\t\t\tvar that = this;\n\n\t\t\t\t\tfunction handleEvent() {\n\t\t\t\t\t\tthat._handleEvent.apply(that, arguments);\n\t\t\t\t\t}\n\n\t\t\t\t\tBox.DOM.on(this.element, eventType, handleEvent);\n\n\t\t\t\t\tthis._boundHandler[eventType] = handleEvent;\n\t\t\t\t}, this);\n\n\t\t\t\tthis._attached = true;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Detaches all event handlers for the DOM element.\n\t\t * @returns {void}\n\t\t */\n\t\tdetachEvents: function() {\n\t\t\tforEachEventType(this._eventTypes, this._handler, function(eventType) {\n\t\t\t\tBox.DOM.off(this.element, eventType, this._boundHandler[eventType]);\n\t\t\t}, this);\n\t\t}\n\t};\n\n\treturn DOMEventDelegate;\n}());\n\n\n/**\n * @fileoverview Contains the Context type which is used by modules to interact\n * with the environment.\n * @author Box\n */\n\nBox.Context = (function() {\n\n\t'use strict';\n\n\t/**\n\t * The object type that modules use to interact with the environment. Used\n\t * exclusively within Box.Application, but exposed publicly for easy testing.\n\t * @param {Box.Application} application The application object to wrap.\n\t * @param {HTMLElement} element Module's DOM element\n\t * @constructor\n\t */\n\tfunction Context(application, element) {\n\t\tthis.application = application;\n\t\tthis.element = element;\n\t}\n\n\t//-------------------------------------------------------------------------\n\t// Passthrough Methods\n\t//-------------------------------------------------------------------------\n\n\tContext.prototype = {\n\t\tconstructor: Context,\n\n\t\t/**\n\t\t * Passthrough method to application that broadcasts messages.\n\t\t * @param {string} name Name of the message event\n\t\t * @param {*} [data] Custom parameters for the message\n\t\t * @returns {void}\n\t\t */\n\t\tbroadcast: function(name, data) {\n\t\t\tthis.application.broadcast(name, data);\n\t\t},\n\n\t\t/**\n\t\t * Passthrough method to application that retrieves services.\n\t\t * @param {string} serviceName The name of the service to retrieve.\n\t\t * @returns {Object|null} An object if the service is found or null if not.\n\t\t */\n\t\tgetService: function(serviceName) {\n\t\t\treturn this.application.getService(serviceName);\n\t\t},\n\n\t\t/**\n\t\t * Checks if a service exists\n\t\t * @param {string} serviceName The name of the service to check.\n\t\t * @returns {boolean} True, if service exist. False, otherwise.\n\t\t */\n\t\thasService: function(serviceName) {\n\t\t\treturn this.application.hasService(serviceName);\n\t\t},\n\n\t\t/**\n\t\t * Returns any configuration information that was output into the page\n\t\t * for this instance of the module.\n\t\t * @param {string} [name] Specific config parameter\n\t\t * @returns {*} config value or the entire configuration JSON object\n\t\t * if no name is specified (null if either not found)\n\t\t */\n\t\tgetConfig: function(name) {\n\t\t\treturn this.application.getModuleConfig(this.element, name);\n\t\t},\n\n\t\t/**\n\t\t * Returns a global variable\n\t\t * @param {string} name Specific global var name\n\t\t * @returns {*} returns the window-scope variable matching the name, null otherwise\n\t\t */\n\t\tgetGlobal: function(name) {\n\t\t\treturn this.application.getGlobal(name);\n\t\t},\n\n\t\t/**\n\t\t * Returns global configuration data\n\t\t * @param {string} [name] Specific config parameter\n\t\t * @returns {*} config value or the entire configuration JSON object\n\t\t * if no name is specified (null if either not found)\n\t\t */\n\t\tgetGlobalConfig: function(name) {\n\t\t\treturn this.application.getGlobalConfig(name);\n\t\t},\n\n\t\t/**\n\t\t * Passthrough method that signals that an error has occurred. If in development mode, an error\n\t\t * is thrown. If in production mode, an event is fired.\n\t\t * @param {Error} [exception] The exception object to use.\n\t\t * @returns {void}\n\t\t */\n\t\treportError: function(exception) {\n\t\t\tthis.application.reportError(exception);\n\t\t},\n\n\t\t//-------------------------------------------------------------------------\n\t\t// Service Shortcuts\n\t\t//-------------------------------------------------------------------------\n\n\t\t/**\n\t\t * Returns the element that represents the module.\n\t\t * @returns {HTMLElement} The element representing the module.\n\t\t */\n\t\tgetElement: function() {\n\t\t\treturn this.element;\n\t\t}\n\n\t};\n\n\treturn Context;\n\n}());\n\n/**\n * @fileoverview Contains the main application object that is the heart of the\n * JavaScript architecture.\n * @author Box\n */\n\n/**\n * The core application object where components are registered and managed\n * @mixes Box.EventTarget\n * @namespace\n */\nBox.Application = (function() {\n\n\t'use strict';\n\n\t//--------------------------------------------------------------------------\n\t// Virtual Types\n\t//--------------------------------------------------------------------------\n\n\t/**\n\t * An object representing information about a module.\n\t * @typedef {Object} Box.Application~ModuleData\n\t * @property {Function} creator The function that creates an instance of this module.\n\t * @property {int} counter The number of module instances.\n\t */\n\n\t/**\n\t * An object representing information about a module instance.\n\t * @typedef {Object} Box.Application~ModuleInstanceData\n\t * @property {string} moduleName The name of the module.\n\t * @property {Box.Application~ModuleInstance} instance The module instance.\n\t * @property {Box.Context} context The context object for the module.\n\t * @property {HTMLElement} element The DOM element associated with the module.\n\t * @property {Object} eventHandlers Handler callback functions by event type.\n\t */\n\n\t/**\n\t * A module object.\n\t * @typedef {Object} Box.Application~Module\n\t */\n\n\t//--------------------------------------------------------------------------\n\t// Private\n\t//--------------------------------------------------------------------------\n\n\tvar MODULE_SELECTOR = '[data-module]';\n\n\tvar globalConfig = {}, // Global configuration\n\t\tmodules = {}, // Information about each registered module by moduleName\n\t\tserviceStack = [], // Track circular dependencies while loading services\n\t\tservices = {}, // Information about each registered service by serviceName\n\t\tbehaviors = {}, // Information about each registered behavior by behaviorName\n\t\tinstances = {}, // Module instances keyed by DOM element id\n\t\tinitialized = false, // Flag whether the application has been initialized\n\t\tcustomErrorHandler = null,\n\n\t\tapplication = new Box.EventTarget();\t// base object for application\n\n\t/**\n\t * Simple implementation of ES6 Object.assign() with just two parameters.\n\t * @param {Object} receiver The object to receive properties\n\t * @param {Object} supplier The object whose properties should be copied.\n\t * @returns {Object} The receiver object.\n\t * @private\n\t */\n\tfunction assign(receiver, supplier) {\n\n\t\tfor (var prop in supplier) {\n\t\t\tif (supplier.hasOwnProperty(prop)) {\n\t\t\t\treceiver[prop] = supplier[prop];\n\t\t\t}\n\t\t}\n\n\t\treturn receiver;\n\t}\n\n\t/**\n\t * Simple implementation of Array.prototype.indexOf().\n\t * @param {*[]} items An array of items to search.\n\t * @param {*} item The item to search for in the array.\n\t * @returns {int} The index of the item in the array if found, -1 if not found.\n\t * @private\n\t */\n\tfunction indexOf(items, item) {\n\t\tfor (var i = 0, len = items.length; i < len; i++) {\n\t\t\tif (items[i] === item) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\n\t\treturn -1;\n\t}\n\n\t/**\n\t * Reset all state to its default values\n\t * @returns {void}\n\t * @private\n\t */\n\tfunction reset() {\n\t\tglobalConfig = {};\n\t\tmodules = {};\n\t\tservices = {};\n\t\tserviceStack = [];\n\t\tbehaviors = {};\n\t\tinstances = {};\n\t\tinitialized = false;\n\t}\n\n\n\t/**\n\t * Indicates if a given service is being instantiated. This is used to check\n\t * for circular dependencies in service instantiation. If two services\n\t * reference each other, it causes a stack overflow and is really hard to\n\t * track down, so we provide an extra check to make finding this issue\n\t * easier.\n\t * @param {string} serviceName The name of the service to check.\n\t * @returns {boolean} True if the service is already being instantiated,\n\t *\t\tfalse if not.\n\t * @private\n\t */\n\tfunction isServiceBeingInstantiated(serviceName) {\n\t\tfor (var i = 0, len = serviceStack.length; i < len; i++) {\n\t\t\tif (serviceStack[i] === serviceName) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Signals that an error has occurred. If in development mode, an error\n\t * is thrown. If in production mode, an event is fired.\n\t * @param {Error} [exception] The exception object to use.\n\t * @returns {void}\n\t * @private\n\t */\n\tfunction error(exception) {\n\t\tif (typeof customErrorHandler === 'function') {\n\t\t\tcustomErrorHandler(exception);\n\t\t\treturn;\n\t\t}\n\t\tif (globalConfig.debug) {\n\t\t\tthrow exception;\n\t\t} else {\n\t\t\tapplication.fire('error', {\n\t\t\t\texception: exception\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Wraps all methods on an object with try-catch so that objects don't need\n\t * to worry about trapping their own errors. When an error occurs, the\n\t * error event is fired with the error information.\n\t * @see http://www.nczonline.net/blog/2009/04/28/javascript-error-handling-anti-pattern/\n\t * @param {Object} object Any object whose public methods should be wrapped.\n\t * @param {string} objectName The name that should be reported for the object\n\t * when an error occurs.\n\t * @returns {void}\n\t * @private\n\t */\n\tfunction captureObjectErrors(object, objectName) {\n\n\t\tvar propertyName,\n\t\t\tpropertyValue;\n\n\t\t/* eslint-disable guard-for-in, no-loop-func */\n\t\tfor (propertyName in object) {\n\t\t\tpropertyValue = object[propertyName];\n\n\t\t\t// only do this for methods, be sure to check before making changes!\n\t\t\tif (typeof propertyValue === 'function') {\n\t\t\t\t/*\n\t\t\t\t * This creates a new function that wraps the original function\n\t\t\t\t * in a try-catch. The outer function executes immediately with\n\t\t\t\t * the name and actual method passed in as values. This allows\n\t\t\t\t * us to create a function with specific information even though\n\t\t\t\t * it's inside of a loop.\n\t\t\t\t */\n\t\t\t\tobject[propertyName] = (function(methodName, method) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tvar errorPrefix = objectName + '.' + methodName + '() - ';\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\treturn method.apply(this, arguments);\n\t\t\t\t\t\t} catch (ex) {\n\t\t\t\t\t\t\tex.methodName = methodName;\n\t\t\t\t\t\t\tex.objectName = objectName;\n\t\t\t\t\t\t\tex.name = errorPrefix + ex.name;\n\t\t\t\t\t\t\tex.message = errorPrefix + ex.message;\n\t\t\t\t\t\t\terror(ex);\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t}(propertyName, propertyValue));\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable guard-for-in, no-loop-func */\n\t}\n\n\t/**\n\t * Returns the name of the module associated with a DOM element\n\t * @param {HTMLElement} element DOM element associated with the module\n\t * @returns {string} Name of the module (empty if not a module)\n\t * @private\n\t */\n\tfunction getModuleName(element) {\n\t\tvar moduleAttribute = element.getAttribute('data-module');\n\n\t\tif (moduleAttribute) {\n\t\t\treturn moduleAttribute.split(' ')[0];\n\t\t}\n\t\treturn '';\n\t}\n\n\t/**\n\t * Calls a method on an object if it exists\n\t * @param {Box.Application~ModuleInstance} instance Module object to call the method on.\n\t * @param {string} method Name of method\n\t * @param {...*} [args] Any additional arguments are passed as function parameters (Optional)\n\t * @returns {void}\n\t * @private\n\t */\n\tfunction callModuleMethod(instance, method) {\n\t\tif (typeof instance[method] === 'function') {\n\t\t\t// Getting the rest of the parameters (the ones other than instance and method)\n\t\t\tinstance[method].apply(instance, Array.prototype.slice.call(arguments, 2));\n\t\t}\n\t}\n\n\t/**\n\t * Returns the requested service\n\t * @param {string} serviceName The name of the service to retrieve.\n\t * @returns {Object} An object if the service\n\t * @throws {Error} If service does not exist or there is a circular dependency\n\t * @private\n\t */\n\tfunction getService(serviceName) {\n\n\t\tvar serviceData = services[serviceName];\n\n\t\tif (serviceData) {\n\n\t\t\tif (!serviceData.instance) {\n\t\t\t\t// check for circular dependencies\n\t\t\t\tif (isServiceBeingInstantiated(serviceName)) {\n\t\t\t\t\terror(new ReferenceError('Circular service dependency: ' + serviceStack.join(' -> ') + ' -> ' + serviceName));\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\t// flag that this service is being initialized just in case there's a circular dependency issue\n\t\t\t\tserviceStack.push(serviceName);\n\n\t\t\t\tserviceData.instance = serviceData.creator(application);\n\n\t\t\t\t// no error was thrown for circular dependencies, so we're done\n\t\t\t\tserviceStack.pop();\n\t\t\t}\n\n\t\t\treturn serviceData.instance;\n\t\t} else {\n\t\t\terror(new Error('Service \"' + serviceName + '\" not found'));\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Gets the behaviors associated with a particular module\n\t * @param {Box.Application~ModuleInstanceData} instanceData Module with behaviors\n\t * @returns {Array} Array of behavior instances\n\t * @throws {Error} If behavior does not exist\n\t * @private\n\t */\n\tfunction getBehaviors(instanceData) {\n\t\tvar i,\n\t\t\tbehaviorNames,\n\t\t\tbehaviorData,\n\t\t\tbehaviorInstances = [],\n\t\t\tincludedBehaviors = {}, // Used to de-dupe behaviors\n\t\t\tmoduleBehaviorInstances,\n\t\t\tbehaviorName;\n\n\t\tbehaviorNames = instanceData.instance.behaviors || [];\n\n\t\tfor (i = 0; i < behaviorNames.length; i++) {\n\t\t\tbehaviorName = behaviorNames[i];\n\n\t\t\tif (!('behaviorInstances' in instanceData)) {\n\t\t\t\tinstanceData.behaviorInstances = {};\n\t\t\t}\n\n\t\t\tmoduleBehaviorInstances = instanceData.behaviorInstances;\n\t\t\tbehaviorData = behaviors[behaviorName];\n\n\t\t\t// First make sure we haven't already included this behavior for this module\n\t\t\tif (behaviorName in includedBehaviors) {\n\t\t\t\terror(new Error('Behavior \"' + behaviorName + '\" cannot be specified twice in a module.'));\n\t\t\t} else if (behaviorData) {\n\n\t\t\t\tif (!moduleBehaviorInstances[behaviorName]) {\n\t\t\t\t\tmoduleBehaviorInstances[behaviorName] = behaviorData.creator(instanceData.context);\n\t\t\t\t}\n\n\t\t\t\tbehaviorInstances.push(moduleBehaviorInstances[behaviorName]);\n\t\t\t} else {\n\t\t\t\terror(new Error('Behavior \"' + behaviorName + '\" not found'));\n\t\t\t}\n\n\t\t\t// Track which behaviors are included so we can catch duplicates\n\t\t\tincludedBehaviors[behaviorName] = true;\n\t\t}\n\n\t\treturn behaviorInstances;\n\t}\n\n\t/**\n\t * Creates a new event delegate and sets up its event handlers.\n\t * @param {Array} eventDelegates The array of event delegates to add to.\n\t * @param {HTMLElement} element The HTML element to bind to.\n\t * @param {Object} handler The handler object for the delegate (either the\n\t *\t\tmodule instance or behavior instance).\n\t * @returns {void}\n\t * @private\n\t */\n\tfunction createAndBindEventDelegate(eventDelegates, element, handler) {\n\t\tvar delegate = new Box.DOMEventDelegate(element, handler, globalConfig.eventTypes);\n\t\teventDelegates.push(delegate);\n\t\tdelegate.attachEvents();\n\t}\n\n\t/**\n\t * Binds the user events listed in the module to its toplevel element\n\t * @param {Box.Application~ModuleInstanceData} instanceData Events will be bound to the module defined in the Instance object\n\t * @returns {void}\n\t * @private\n\t */\n\tfunction bindEventListeners(instanceData) {\n\t\tvar eventDelegates = instanceData.eventDelegates,\n\t\t\tmoduleBehaviors = getBehaviors(instanceData);\n\n\t\t// bind the module events\n\t\tcreateAndBindEventDelegate(eventDelegates, instanceData.element, instanceData.instance);\n\n\t\t// bind the behavior(s) events\n\t\tfor (var i = 0; i < moduleBehaviors.length; i++) {\n\t\t\tcreateAndBindEventDelegate(eventDelegates, instanceData.element, moduleBehaviors[i]);\n\t\t}\n\t}\n\n\t/**\n\t * Unbinds the user events listed in the module\n\t * @param {Box.Application~ModuleInstanceData} instanceData Events will be unbound from the module defined in the Instance object\n\t * @returns {void}\n\t * @private\n\t */\n\tfunction unbindEventListeners(instanceData) {\n\n\t\tvar eventDelegates = instanceData.eventDelegates;\n\n\t\tfor (var i = 0; i < eventDelegates.length; i++) {\n\t\t\teventDelegates[i].detachEvents();\n\t\t}\n\n\t\tinstanceData.eventDelegates = [];\n\t}\n\n\t/**\n\t * Gets the module instance associated with a DOM element\n\t * @param {HTMLElement} element DOM element associated with module\n\t * @returns {Box.Application~ModuleInstance} Instance object of the module (undefined if not found)\n\t * @private\n\t */\n\tfunction getInstanceDataByElement(element) {\n\t\treturn instances[element.id];\n\t}\n\n\t/**\n\t * Gets message handlers from the provided module instance\n\t * @param {Box.Application~ModuleInstance|Box.Application~BehaviorInstance} instance Messages handlers will be retrieved from the Instance object\n\t * @param {String} name The name of the message to be handled\n\t * @param {Any} data A playload to be passed to the message handler\n\t * @returns {void}\n\t * @private\n\t */\n\tfunction callMessageHandler(instance, name, data) {\n\n\t\t// If onmessage is an object call message handler with the matching key (if any)\n\t\tif (instance.onmessage !== null && typeof instance.onmessage === 'object' && instance.onmessage.hasOwnProperty(name)) {\n\t\t\tinstance.onmessage[name].call(instance, data);\n\n\t\t// Otherwise if message name exists in messages call onmessage with name, data\n\t\t} else if (indexOf(instance.messages || [], name) !== -1) {\n\t\t\tinstance.onmessage.call(instance, name, data);\n\t\t}\n\t}\n\n\t//--------------------------------------------------------------------------\n\t// Public\n\t//--------------------------------------------------------------------------\n\n\t/** @lends Box.Application */\n\treturn assign(application, {\n\n\t\t//----------------------------------------------------------------------\n\t\t// Application Lifecycle\n\t\t//----------------------------------------------------------------------\n\n\t\t/**\n\t\t * Initializes the application\n\t\t * @param {Object} [params] Configuration object\n\t\t * @returns {Box.Application} The application object.\n\t\t */\n\t\tinit: function(params) {\n\t\t\tassign(globalConfig, params || {});\n\n\t\t\tthis.startAll(document.documentElement);\n\n\t\t\tthis.fire('init');\n\t\t\tinitialized = true;\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Stops all modules and clears all saved state\n\t\t * @returns {Box.Application} The application object.\n\t\t */\n\t\tdestroy: function() {\n\t\t\tthis.stopAll(document.documentElement);\n\n\t\t\treset();\n\n\t\t\treturn this;\n\t\t},\n\n\t\t//----------------------------------------------------------------------\n\t\t// Module Lifecycle\n\t\t//----------------------------------------------------------------------\n\n\t\t/**\n\t\t * Determines if a module represented by the HTML element is started.\n\t\t * If the element doesn't have a data-module attribute, this method\n\t\t * always returns false.\n\t\t * @param {HTMLElement} element The element that represents a module.\n\t\t * @returns {boolean} True if the module is started, false if not.\n\t\t */\n\t\tisStarted: function(element) {\n\t\t\tvar instanceData = getInstanceDataByElement(element);\n\t\t\treturn typeof instanceData === 'object';\n\t\t},\n\n\t\t/**\n\t\t * Begins the lifecycle of a module (registers and binds listeners)\n\t\t * @param {HTMLElement} element DOM element associated with module to be started\n\t\t * @returns {Box.Application} The application object.\n\t\t * @throws {Error} If a module being started is not defined\n\t\t */\n\t\tstart: function(element) {\n\t\t\tvar moduleName = getModuleName(element),\n\t\t\t\tmoduleData = modules[moduleName],\n\t\t\t\tinstanceData,\n\t\t\t\tcontext,\n\t\t\t\tmodule;\n\n\t\t\tif (!moduleData) {\n\t\t\t\terror(new Error('Module type \"' + moduleName + '\" is not defined.'));\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\tif (!this.isStarted(element)) {\n\t\t\t\t// Auto-assign module id to element\n\t\t\t\tif (!element.id) {\n\t\t\t\t\telement.id = 'mod-' + moduleName + '-' + moduleData.counter;\n\t\t\t\t}\n\n\t\t\t\tmoduleData.counter++;\n\n\t\t\t\tcontext = new Box.Context(this, element);\n\n\t\t\t\tmodule = moduleData.creator(context);\n\n\t\t\t\t// Prevent errors from showing the browser, fire event instead\n\t\t\t\tif (!globalConfig.debug) {\n\t\t\t\t\tcaptureObjectErrors(module, moduleName);\n\t\t\t\t}\n\n\t\t\t\tinstanceData = {\n\t\t\t\t\tmoduleName: moduleName,\n\t\t\t\t\tinstance: module,\n\t\t\t\t\tcontext: context,\n\t\t\t\t\telement: element,\n\t\t\t\t\teventDelegates: []\n\t\t\t\t};\n\n\t\t\t\tinstances[element.id] = instanceData;\n\n\t\t\t\tvar moduleBehaviors = getBehaviors(instanceData),\n\t\t\t\t\tbehaviorInstance;\n\n\t\t\t\tfor (var i = 0, len = moduleBehaviors.length; i < len; i++) {\n\t\t\t\t\tbehaviorInstance = moduleBehaviors[i];\n\t\t\t\t\tcallModuleMethod(behaviorInstance, 'init');\n\t\t\t\t}\n\n\t\t\t\t// Initialize module only after behaviors are initialized\n\t\t\t\tcallModuleMethod(instanceData.instance, 'init');\n\n\t\t\t\t// Bind events after initialization is complete to avoid event timing issues\n\t\t\t\tbindEventListeners(instanceData);\n\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Ends the lifecycle of a module (unregisters and unbinds listeners)\n\t\t * @param {HTMLElement} element DOM element associated with module to be stopped\n\t\t * @returns {Box.Application} The application object.\n\t\t * @throws {Error} If a module being stopped doesn't exist\n\t\t */\n\t\tstop: function(element) {\n\t\t\tvar instanceData = getInstanceDataByElement(element);\n\n\t\t\tif (!instanceData) {\n\n\t\t\t\tif (globalConfig.debug) {\n\t\t\t\t\terror(new Error('Unable to stop module associated with element: ' + element.id));\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tunbindEventListeners(instanceData);\n\n\t\t\t\t// Call these in reverse order\n\t\t\t\tvar moduleBehaviors = getBehaviors(instanceData);\n\t\t\t\tvar behaviorInstance;\n\t\t\t\tfor (var i = moduleBehaviors.length - 1; i >= 0; i--) {\n\t\t\t\t\tbehaviorInstance = moduleBehaviors[i];\n\t\t\t\t\tcallModuleMethod(behaviorInstance, 'destroy');\n\t\t\t\t}\n\n\t\t\t\tcallModuleMethod(instanceData.instance, 'destroy');\n\n\t\t\t\tdelete instances[element.id];\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Starts all modules contained within an element\n\t\t * @param {HTMLElement} root DOM element which contains modules\n\t\t * @returns {Box.Application} The application object.\n\t\t */\n\t\tstartAll: function(root) {\n\t\t\tvar moduleElements = Box.DOM.queryAll(root, MODULE_SELECTOR);\n\n\t\t\tfor (var i = 0, len = moduleElements.length; i < len; i++) {\n\t\t\t\tthis.start(moduleElements[i]);\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Stops all modules contained within an element\n\t\t * @param {HTMLElement} root DOM element which contains modules\n\t\t * @returns {Box.Application} The application object.\n\t\t */\n\t\tstopAll: function(root) {\n\t\t\tvar moduleElements = Box.DOM.queryAll(root, MODULE_SELECTOR);\n\n\t\t\tfor (var i = 0, len = moduleElements.length; i < len; i++) {\n\t\t\t\tthis.stop(moduleElements[i]);\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\t//----------------------------------------------------------------------\n\t\t// Module-Related\n\t\t//----------------------------------------------------------------------\n\n\t\t/**\n\t\t * Registers a new module\n\t\t * @param {string} moduleName Unique module identifier\n\t\t * @param {Function} creator Factory function used to generate the module\n\t\t * @returns {Box.Application} The application object.\n\t\t * @throws {Error} If a module has already been added\n\t\t */\n\t\taddModule: function(moduleName, creator) {\n\t\t\tif (typeof modules[moduleName] !== 'undefined') {\n\t\t\t\terror(new Error('Module ' + moduleName + ' has already been added.'));\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\tmodules[moduleName] = {\n\t\t\t\tcreator: creator,\n\t\t\t\tcounter: 1 // increments for each new instance\n\t\t\t};\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Returns any configuration information that was output into the page\n\t\t * for this instance of the module.\n\t\t * @param {HTMLElement} element The HTML element associated with a module.\n\t\t * @param {string} [name] Specific config parameter\n\t\t * @returns {*} config value or the entire configuration JSON object\n\t\t * if no name is specified (null if either not found)\n\t\t */\n\t\tgetModuleConfig: function(element, name) {\n\n\t\t\tvar instanceData = getInstanceDataByElement(element);\n\t\t\tvar moduleConfig = null;\n\n\t\t\tif (instanceData && instanceData.config) {\n\t\t\t\t// Check if we've already read the configurations before\n\t\t\t\tmoduleConfig = instanceData.config;\n\t\t\t} else {\n\t\t\t\t// Read the special script element that stores module configuration in the markup\n\t\t\t\tvar configElement = Box.DOM.query(element, 'script[type=\"text/x-config\"]');\n\n\t\t\t\t//