{"version":3,"sources":["../controller/home/custom-scrollbar.js","../controller/home/splash.js","../controller/home.js","../controller/help.js","../controller/routes.js","module-create.js"],"names":[],"mappings":"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","sourcesContent":["define('taoCe/controller/home/custom-scrollbar',['jquery'], function(jQuery){\n(function ($) {\n\n $.fn.customScrollbar = function (options, args) {\n\n var defaultOptions = {\n skin: undefined,\n hScroll: true,\n vScroll: true,\n updateOnWindowResize: false,\n animationSpeed: 300,\n onCustomScroll: undefined,\n swipeSpeed: 1,\n wheelSpeed: 40,\n fixedThumbWidth: undefined,\n fixedThumbHeight: undefined,\n preventDefaultScroll: false\n }\n\n var Scrollable = function (element, options) {\n this.$element = $(element);\n this.options = options;\n this.addScrollableClass();\n this.addSkinClass();\n this.addScrollBarComponents();\n if (this.options.vScroll)\n this.vScrollbar = new Scrollbar(this, new VSizing());\n if (this.options.hScroll)\n this.hScrollbar = new Scrollbar(this, new HSizing());\n this.$element.data(\"scrollable\", this);\n this.initKeyboardScrolling();\n this.bindEvents();\n }\n\n Scrollable.prototype = {\n\n addScrollableClass: function () {\n if (!this.$element.hasClass(\"scrollable\")) {\n this.scrollableAdded = true;\n this.$element.addClass(\"scrollable\");\n }\n },\n\n removeScrollableClass: function () {\n if (this.scrollableAdded)\n this.$element.removeClass(\"scrollable\");\n },\n\n addSkinClass: function () {\n if (typeof(this.options.skin) == \"string\" && !this.$element.hasClass(this.options.skin)) {\n this.skinClassAdded = true;\n this.$element.addClass(this.options.skin);\n }\n },\n\n removeSkinClass: function () {\n if (this.skinClassAdded)\n this.$element.removeClass(this.options.skin);\n },\n\n addScrollBarComponents: function () {\n this.assignViewPort();\n if (this.$viewPort.length == 0) {\n this.$element.wrapInner(\"
\");\n this.assignViewPort();\n this.viewPortAdded = true;\n }\n this.assignOverview();\n if (this.$overview.length == 0) {\n this.$viewPort.wrapInner(\"\");\n this.assignOverview();\n this.overviewAdded = true;\n }\n this.addScrollBar(\"vertical\", \"prepend\");\n this.addScrollBar(\"horizontal\", \"append\");\n },\n\n removeScrollbarComponents: function () {\n this.removeScrollbar(\"vertical\");\n this.removeScrollbar(\"horizontal\");\n if (this.overviewAdded)\n this.$element.unwrap();\n if (this.viewPortAdded)\n this.$element.unwrap();\n },\n\n removeScrollbar: function (orientation) {\n if (this[orientation + \"ScrollbarAdded\"])\n this.$element.find(\".scroll-bar.\" + orientation).remove();\n },\n\n assignViewPort: function () {\n this.$viewPort = this.$element.find(\".viewport\");\n },\n\n assignOverview: function () {\n this.$overview = this.$viewPort.find(\".overview\");\n },\n\n addScrollBar: function (orientation, fun) {\n if (this.$element.find(\".scroll-bar.\" + orientation).length == 0) {\n this.$element[fun](\" \")\n this[orientation + \"ScrollbarAdded\"] = true;\n }\n },\n\n resize: function (keepPosition) {\n if (this.vScrollbar)\n this.vScrollbar.resize(keepPosition);\n if (this.hScrollbar)\n this.hScrollbar.resize(keepPosition);\n },\n\n scrollTo: function (element) {\n if (this.vScrollbar)\n this.vScrollbar.scrollToElement(element);\n if (this.hScrollbar)\n this.hScrollbar.scrollToElement(element);\n },\n\n scrollToXY: function (x, y) {\n this.scrollToX(x);\n this.scrollToY(y);\n },\n\n scrollToX: function (x) {\n if (this.hScrollbar)\n this.hScrollbar.scrollOverviewTo(x, true);\n },\n\n scrollToY: function (y) {\n if (this.vScrollbar)\n this.vScrollbar.scrollOverviewTo(y, true);\n },\n\n scrollByX: function (x) {\n if (this.hScrollbar)\n this.scrollToX(this.hScrollbar.overviewPosition() + x);\n },\n\n scrollByY: function (y) {\n if (this.vScrollbar)\n this.scrollToY(this.vScrollbar.overviewPosition() + y);\n },\n\n remove: function () {\n this.removeScrollableClass();\n this.removeSkinClass();\n this.removeScrollbarComponents();\n this.$element.data(\"scrollable\", null);\n this.removeKeyboardScrolling();\n if (this.vScrollbar)\n this.vScrollbar.remove();\n if (this.hScrollbar)\n this.hScrollbar.remove();\n },\n\n setAnimationSpeed: function (speed) {\n this.options.animationSpeed = speed;\n },\n\n isInside: function (element, wrappingElement) {\n var $element = $(element);\n var $wrappingElement = $(wrappingElement);\n var elementOffset = $element.offset();\n var wrappingElementOffset = $wrappingElement.offset();\n return (elementOffset.top >= wrappingElementOffset.top) && (elementOffset.left >= wrappingElementOffset.left) &&\n (elementOffset.top + $element.height() <= wrappingElementOffset.top + $wrappingElement.height()) &&\n (elementOffset.left + $element.width() <= wrappingElementOffset.left + $wrappingElement.width())\n },\n\n initKeyboardScrolling: function () {\n var _this = this;\n\n this.elementKeydown = function (event) {\n if (document.activeElement === _this.$element[0]) {\n if (_this.vScrollbar)\n _this.vScrollbar.keyScroll(event);\n if (_this.hScrollbar)\n _this.hScrollbar.keyScroll(event);\n }\n }\n\n this.$element\n .attr('tabindex', '-1')\n .keydown(this.elementKeydown);\n },\n\n removeKeyboardScrolling: function () {\n this.$element\n .removeAttr('tabindex')\n .unbind(\"keydown\", this.elementKeydown);\n },\n\n bindEvents: function () {\n if (this.options.onCustomScroll)\n this.$element.on(\"customScroll\", this.options.onCustomScroll);\n }\n\n }\n\n var Scrollbar = function (scrollable, sizing) {\n this.scrollable = scrollable;\n this.sizing = sizing\n this.$scrollBar = this.sizing.scrollBar(this.scrollable.$element);\n this.$thumb = this.$scrollBar.find(\".thumb\");\n this.setScrollPosition(0, 0);\n this.resize();\n this.initMouseMoveScrolling();\n this.initMouseWheelScrolling();\n this.initTouchScrolling();\n this.initMouseClickScrolling();\n this.initWindowResize();\n }\n\n Scrollbar.prototype = {\n\n resize: function (keepPosition) {\n this.overviewSize = this.sizing.size(this.scrollable.$overview);\n this.calculateViewPortSize();\n this.sizing.size(this.scrollable.$viewPort, this.viewPortSize);\n this.ratio = this.viewPortSize / this.overviewSize;\n this.sizing.size(this.$scrollBar, this.viewPortSize);\n this.thumbSize = this.calculateThumbSize();\n this.sizing.size(this.$thumb, this.thumbSize);\n this.maxThumbPosition = this.calculateMaxThumbPosition();\n this.maxOverviewPosition = this.calculateMaxOverviewPosition();\n this.enabled = (this.overviewSize > this.viewPortSize);\n if (this.scrollPercent === undefined)\n this.scrollPercent = 0.0;\n if (this.enabled)\n this.rescroll(keepPosition);\n else\n this.setScrollPosition(0, 0);\n this.$scrollBar.toggle(this.enabled);\n },\n\n calculateViewPortSize: function () {\n var elementSize = this.sizing.size(this.scrollable.$element);\n if (elementSize > 0 && !this.maxSizeUsed) {\n this.viewPortSize = elementSize;\n this.maxSizeUsed = false;\n }\n else {\n var maxSize = this.sizing.maxSize(this.scrollable.$element);\n this.viewPortSize = Math.min(maxSize, this.overviewSize);\n this.maxSizeUsed = true;\n }\n },\n\n calculateThumbSize: function () {\n var fixedSize = this.sizing.fixedThumbSize(this.scrollable.options)\n var size;\n if (fixedSize)\n size = fixedSize;\n else\n size = this.ratio * this.viewPortSize\n return Math.max(size, this.sizing.minSize(this.$thumb));\n },\n\n initMouseMoveScrolling: function () {\n var _this = this;\n this.$thumb.mousedown(function (event) {\n if (_this.enabled)\n _this.startMouseMoveScrolling(event);\n });\n this.documentMouseup = function (event) {\n _this.stopMouseMoveScrolling(event);\n };\n $(document).mouseup(this.documentMouseup);\n this.documentMousemove = function (event) {\n _this.mouseMoveScroll(event);\n };\n $(document).mousemove(this.documentMousemove);\n this.$thumb.click(function (event) {\n event.stopPropagation();\n });\n },\n\n removeMouseMoveScrolling: function () {\n this.$thumb.unbind();\n $(document).unbind(\"mouseup\", this.documentMouseup);\n $(document).unbind(\"mousemove\", this.documentMousemove);\n },\n\n initMouseWheelScrolling: function () {\n var _this = this;\n this.scrollable.$element.mousewheel(function (event, delta, deltaX, deltaY) {\n if (_this.enabled) {\n var scrolled = _this.mouseWheelScroll(deltaX, deltaY);\n _this.stopEventConditionally(event, scrolled);\n }\n });\n },\n\n removeMouseWheelScrolling: function () {\n this.scrollable.$element.unbind(\"mousewheel\");\n },\n\n initTouchScrolling: function () {\n if (document.addEventListener) {\n var _this = this;\n this.elementTouchstart = function (event) {\n if (_this.enabled)\n _this.startTouchScrolling(event);\n }\n this.scrollable.$element[0].addEventListener(\"touchstart\", this.elementTouchstart);\n this.documentTouchmove = function (event) {\n _this.touchScroll(event);\n }\n document.addEventListener(\"touchmove\", this.documentTouchmove);\n this.elementTouchend = function (event) {\n _this.stopTouchScrolling(event);\n }\n this.scrollable.$element[0].addEventListener(\"touchend\", this.elementTouchend);\n }\n },\n\n removeTouchScrolling: function () {\n if (document.addEventListener) {\n this.scrollable.$element[0].removeEventListener(\"touchstart\", this.elementTouchstart);\n document.removeEventListener(\"touchmove\", this.documentTouchmove);\n this.scrollable.$element[0].removeEventListener(\"touchend\", this.elementTouchend);\n }\n },\n\n initMouseClickScrolling: function () {\n var _this = this;\n this.scrollBarClick = function (event) {\n _this.mouseClickScroll(event);\n };\n this.$scrollBar.click(this.scrollBarClick);\n },\n\n removeMouseClickScrolling: function () {\n this.$scrollBar.unbind(\"click\", this.scrollBarClick);\n },\n\n initWindowResize: function () {\n if (this.scrollable.options.updateOnWindowResize) {\n var _this = this;\n this.windowResize = function () {\n _this.resize();\n };\n $(window).resize(this.windowResize);\n }\n },\n\n removeWindowResize: function () {\n $(window).unbind(\"resize\", this.windowResize);\n },\n\n isKeyScrolling: function (key) {\n return this.keyScrollDelta(key) != null;\n },\n\n keyScrollDelta: function (key) {\n for (var scrollingKey in this.sizing.scrollingKeys)\n if (scrollingKey == key)\n return this.sizing.scrollingKeys[key](this.viewPortSize);\n return null;\n },\n\n startMouseMoveScrolling: function (event) {\n this.mouseMoveScrolling = true;\n $(\"html\").addClass(\"not-selectable\");\n this.setUnselectable($(\"html\"), \"on\");\n this.setScrollEvent(event);\n },\n\n stopMouseMoveScrolling: function (event) {\n this.mouseMoveScrolling = false;\n $(\"html\").removeClass(\"not-selectable\");\n this.setUnselectable($(\"html\"), null);\n },\n\n setUnselectable: function (element, value) {\n if (element.attr(\"unselectable\") != value) {\n element.attr(\"unselectable\", value);\n element.find(':not(input)').attr('unselectable', value);\n }\n },\n\n mouseMoveScroll: function (event) {\n if (this.mouseMoveScrolling) {\n var delta = this.sizing.mouseDelta(this.scrollEvent, event);\n this.scrollThumbBy(delta);\n this.setScrollEvent(event);\n }\n },\n\n startTouchScrolling: function (event) {\n if (event.touches && event.touches.length == 1) {\n this.setScrollEvent(event.touches[0]);\n this.touchScrolling = true;\n event.stopPropagation();\n }\n },\n\n touchScroll: function (event) {\n if (this.touchScrolling && event.touches && event.touches.length == 1) {\n var delta = -this.sizing.mouseDelta(this.scrollEvent, event.touches[0]) * this.scrollable.options.swipeSpeed;\n var scrolled = this.scrollOverviewBy(delta);\n if (scrolled)\n this.setScrollEvent(event.touches[0]);\n this.stopEventConditionally(event, scrolled);\n }\n },\n\n stopTouchScrolling: function (event) {\n this.touchScrolling = false;\n event.stopPropagation();\n },\n\n mouseWheelScroll: function (deltaX, deltaY) {\n var delta = -this.sizing.wheelDelta(deltaX, deltaY) * this.scrollable.options.wheelSpeed;\n if (delta != 0)\n return this.scrollOverviewBy(delta);\n },\n\n mouseClickScroll: function (event) {\n var delta = this.viewPortSize - 20;\n if (event[\"page\" + this.sizing.scrollAxis()] < this.$thumb.offset()[this.sizing.offsetComponent()])\n // mouse click over thumb\n delta = -delta;\n this.scrollOverviewBy(delta);\n },\n\n keyScroll: function (event) {\n var keyDown = event.which;\n if (this.enabled && this.isKeyScrolling(keyDown)) {\n var scrolled = this.scrollOverviewBy(this.keyScrollDelta(keyDown));\n this.stopEventConditionally(event, scrolled);\n }\n },\n\n scrollThumbBy: function (delta) {\n var thumbPosition = this.thumbPosition();\n thumbPosition += delta;\n thumbPosition = this.positionOrMax(thumbPosition, this.maxThumbPosition);\n var oldScrollPercent = this.scrollPercent;\n this.scrollPercent = thumbPosition / this.maxThumbPosition;\n if (oldScrollPercent != this.scrollPercent) {\n var overviewPosition = (thumbPosition * this.maxOverviewPosition) / this.maxThumbPosition;\n this.setScrollPosition(overviewPosition, thumbPosition);\n this.triggerCustomScroll(oldScrollPercent);\n return true\n }\n else\n return false;\n },\n\n thumbPosition: function () {\n return this.$thumb.position()[this.sizing.offsetComponent()];\n },\n\n scrollOverviewBy: function (delta) {\n var overviewPosition = this.overviewPosition() + delta;\n return this.scrollOverviewTo(overviewPosition, false);\n },\n\n overviewPosition: function () {\n return -this.scrollable.$overview.position()[this.sizing.offsetComponent()];\n },\n\n scrollOverviewTo: function (overviewPosition, animate) {\n overviewPosition = this.positionOrMax(overviewPosition, this.maxOverviewPosition);\n var oldScrollPercent = this.scrollPercent;\n this.scrollPercent = overviewPosition / this.maxOverviewPosition;\n if (oldScrollPercent != this.scrollPercent) {\n var thumbPosition = this.scrollPercent * this.maxThumbPosition;\n if (animate)\n this.setScrollPositionWithAnimation(overviewPosition, thumbPosition);\n else\n this.setScrollPosition(overviewPosition, thumbPosition);\n this.triggerCustomScroll(oldScrollPercent);\n return true;\n }\n else\n return false;\n },\n\n positionOrMax: function (p, max) {\n if (p < 0)\n return 0;\n else if (p > max)\n return max;\n else\n return p;\n },\n\n triggerCustomScroll: function (oldScrollPercent) {\n this.scrollable.$element.trigger(\"customScroll\", {\n scrollAxis: this.sizing.scrollAxis(),\n direction: this.sizing.scrollDirection(oldScrollPercent, this.scrollPercent),\n scrollPercent: this.scrollPercent * 100\n }\n );\n },\n\n rescroll: function (keepPosition) {\n if (keepPosition) {\n var overviewPosition = this.positionOrMax(this.overviewPosition(), this.maxOverviewPosition);\n this.scrollPercent = overviewPosition / this.maxOverviewPosition;\n var thumbPosition = this.scrollPercent * this.maxThumbPosition;\n this.setScrollPosition(overviewPosition, thumbPosition);\n }\n else {\n var thumbPosition = this.scrollPercent * this.maxThumbPosition;\n var overviewPosition = this.scrollPercent * this.maxOverviewPosition;\n this.setScrollPosition(overviewPosition, thumbPosition);\n }\n },\n\n setScrollPosition: function (overviewPosition, thumbPosition) {\n this.$thumb.css(this.sizing.offsetComponent(), thumbPosition + \"px\");\n this.scrollable.$overview.css(this.sizing.offsetComponent(), -overviewPosition + \"px\");\n },\n\n setScrollPositionWithAnimation: function (overviewPosition, thumbPosition) {\n var thumbAnimationOpts = {};\n var overviewAnimationOpts = {};\n thumbAnimationOpts[this.sizing.offsetComponent()] = thumbPosition + \"px\";\n this.$thumb.animate(thumbAnimationOpts, this.scrollable.options.animationSpeed);\n overviewAnimationOpts[this.sizing.offsetComponent()] = -overviewPosition + \"px\";\n this.scrollable.$overview.animate(overviewAnimationOpts, this.scrollable.options.animationSpeed);\n },\n\n calculateMaxThumbPosition: function () {\n return Math.max(0, this.sizing.size(this.$scrollBar) - this.thumbSize);\n },\n\n calculateMaxOverviewPosition: function () {\n return Math.max(0, this.sizing.size(this.scrollable.$overview) - this.sizing.size(this.scrollable.$viewPort));\n },\n\n setScrollEvent: function (event) {\n var attr = \"page\" + this.sizing.scrollAxis();\n if (!this.scrollEvent || this.scrollEvent[attr] != event[attr])\n this.scrollEvent = {pageX: event.pageX, pageY: event.pageY};\n },\n\n scrollToElement: function (element) {\n var $element = $(element);\n if (this.sizing.isInside($element, this.scrollable.$overview) && !this.sizing.isInside($element, this.scrollable.$viewPort)) {\n var elementOffset = $element.offset();\n var overviewOffset = this.scrollable.$overview.offset();\n var viewPortOffset = this.scrollable.$viewPort.offset();\n this.scrollOverviewTo(elementOffset[this.sizing.offsetComponent()] - overviewOffset[this.sizing.offsetComponent()], true);\n }\n },\n\n remove: function () {\n this.removeMouseMoveScrolling();\n this.removeMouseWheelScrolling();\n this.removeTouchScrolling();\n this.removeMouseClickScrolling();\n this.removeWindowResize();\n },\n\n stopEventConditionally: function (event, condition) {\n if (condition || this.scrollable.options.preventDefaultScroll) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n }\n\n var HSizing = function () {\n }\n\n HSizing.prototype = {\n size: function ($el, arg) {\n if (arg)\n return $el.width(arg);\n else\n return $el.width();\n },\n\n minSize: function ($el) {\n return parseInt($el.css(\"min-width\")) || 0;\n },\n\n maxSize: function ($el) {\n return parseInt($el.css(\"max-width\")) || 0;\n },\n\n fixedThumbSize: function (options) {\n return options.fixedThumbWidth;\n },\n\n scrollBar: function ($el) {\n return $el.find(\".scroll-bar.horizontal\");\n },\n\n mouseDelta: function (event1, event2) {\n return event2.pageX - event1.pageX;\n },\n\n offsetComponent: function () {\n return \"left\";\n },\n\n wheelDelta: function (deltaX, deltaY) {\n return deltaX;\n },\n\n scrollAxis: function () {\n return \"X\";\n },\n\n scrollDirection: function (oldPercent, newPercent) {\n return oldPercent < newPercent ? \"right\" : \"left\";\n },\n\n scrollingKeys: {\n 37: function (viewPortSize) {\n return -10; //arrow left\n },\n 39: function (viewPortSize) {\n return 10; //arrow right\n }\n },\n\n isInside: function (element, wrappingElement) {\n var $element = $(element);\n var $wrappingElement = $(wrappingElement);\n var elementOffset = $element.offset();\n var wrappingElementOffset = $wrappingElement.offset();\n return (elementOffset.left >= wrappingElementOffset.left) &&\n (elementOffset.left + $element.width() <= wrappingElementOffset.left + $wrappingElement.width());\n }\n\n }\n\n var VSizing = function () {\n }\n\n VSizing.prototype = {\n\n size: function ($el, arg) {\n if (arg)\n return $el.height(arg);\n else\n return $el.height();\n },\n\n minSize: function ($el) {\n return parseInt($el.css(\"min-height\")) || 0;\n },\n\n maxSize: function ($el) {\n return parseInt($el.css(\"max-height\")) || 0;\n },\n\n fixedThumbSize: function (options) {\n return options.fixedThumbHeight;\n },\n\n scrollBar: function ($el) {\n return $el.find(\".scroll-bar.vertical\");\n },\n\n mouseDelta: function (event1, event2) {\n return event2.pageY - event1.pageY;\n },\n\n offsetComponent: function () {\n return \"top\";\n },\n\n wheelDelta: function (deltaX, deltaY) {\n return deltaY;\n },\n\n scrollAxis: function () {\n return \"Y\";\n },\n\n scrollDirection: function (oldPercent, newPercent) {\n return oldPercent < newPercent ? \"down\" : \"up\";\n },\n\n scrollingKeys: {\n 38: function (viewPortSize) {\n return -10; //arrow up\n },\n 40: function (viewPortSize) {\n return 10; //arrow down\n },\n 33: function (viewPortSize) {\n return -(viewPortSize - 20); //page up\n },\n 34: function (viewPortSize) {\n return viewPortSize - 20; //page down\n }\n },\n\n isInside: function (element, wrappingElement) {\n var $element = $(element);\n var $wrappingElement = $(wrappingElement);\n var elementOffset = $element.offset();\n var wrappingElementOffset = $wrappingElement.offset();\n return (elementOffset.top >= wrappingElementOffset.top) &&\n (elementOffset.top + $element.height() <= wrappingElementOffset.top + $wrappingElement.height());\n }\n\n }\n\n return this.each(function () {\n if (options == undefined)\n options = defaultOptions;\n if (typeof(options) == \"string\") {\n var scrollable = $(this).data(\"scrollable\");\n if (scrollable)\n scrollable[options](args);\n }\n else if (typeof(options) == \"object\") {\n options = $.extend(defaultOptions, options);\n new Scrollable($(this), options);\n }\n else\n throw \"Invalid type of options\";\n });\n\n }\n ;\n\n})\n (jQuery);\n\n(function ($) {\n\n var types = ['DOMMouseScroll', 'mousewheel'];\n\n if ($.event.fixHooks) {\n for (var i = types.length; i;) {\n $.event.fixHooks[ types[--i] ] = $.event.mouseHooks;\n }\n }\n\n $.event.special.mousewheel = {\n setup: function () {\n if (this.addEventListener) {\n for (var i = types.length; i;) {\n this.addEventListener(types[--i], handler, false);\n }\n } else {\n this.onmousewheel = handler;\n }\n },\n\n teardown: function () {\n if (this.removeEventListener) {\n for (var i = types.length; i;) {\n this.removeEventListener(types[--i], handler, false);\n }\n } else {\n this.onmousewheel = null;\n }\n }\n };\n\n $.fn.extend({\n mousewheel: function (fn) {\n return fn ? this.bind(\"mousewheel\", fn) : this.trigger(\"mousewheel\");\n },\n\n unmousewheel: function (fn) {\n return this.unbind(\"mousewheel\", fn);\n }\n });\n\n\n function handler(event) {\n var orgEvent = event || window.event, args = [].slice.call(arguments, 1), delta = 0, returnValue = true, deltaX = 0, deltaY = 0;\n event = $.event.fix(orgEvent);\n event.type = \"mousewheel\";\n\n // Old school scrollwheel delta\n if (orgEvent.wheelDelta) {\n delta = orgEvent.wheelDelta / 120;\n }\n if (orgEvent.detail) {\n delta = -orgEvent.detail / 3;\n }\n\n // New school multidimensional scroll (touchpads) deltas\n deltaY = delta;\n\n // Gecko\n if (orgEvent.axis !== undefined && orgEvent.axis === orgEvent.HORIZONTAL_AXIS) {\n deltaY = 0;\n deltaX = delta;\n }\n\n // Webkit\n if (orgEvent.wheelDeltaY !== undefined) {\n deltaY = orgEvent.wheelDeltaY / 120;\n }\n if (orgEvent.wheelDeltaX !== undefined) {\n deltaX = orgEvent.wheelDeltaX / 120;\n }\n\n // Add event and delta to the front of the arguments\n args.unshift(event, delta, deltaX, deltaY);\n\n return ($.event.dispatch || $.event.handle).apply(this, args);\n }\n\n})(jQuery);\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA;\n *\n *\n */\ndefine('taoCe/controller/home/splash',['jquery', 'taoCe/controller/home/custom-scrollbar'], function ($) {\n 'use strict';\n\n\n /**\n * The SplashScreen creates a modal popup that contains a dynamic diagram of the TAO's workflow.\n * It relies on content that should be there on a .splash-screen-wrapper element. (This content is loaded from the\n * server by {@link module:taoCe/controller/home}\n *\n * @exports taoCe/controller/home/splash\n */\n var SplashScreen = {\n\n /**\n * Initialize the splash screen\n * @param {Boolean} [isHomePage = false] - less options if not used as an entry splash\n */\n init: function (isHomePage) {\n\n //console.log(this)\n this.$splashScreen = $('#splash-screen');\n var $splashWrapper = $('.splash-screen-wrapper');\n var $splashDesc = $('.desc', this.$splashScreen);\n var $splashDiagram = $('.diagram', this.$splashScreen);\n\n //Url to redirect after closing\n this.redirectUrl = '';\n\n //overwrites main styles\n $splashWrapper.css('display', 'block');\n\n if (!isHomePage) {\n $('.modal-footer', this.$splashScreen).hide();\n }\n else {\n $('.modal-footer', this.$splashScreen).show();\n }\n\n /**\n * Place lock icon for disabled modules\n */\n $('[data-module-name]', $splashDiagram).each(function () {\n var $this = $(this);\n\n if ($this.hasClass('disabled')) {\n\n\n $this.find('span').remove();\n $this.prepend('');\n }\n });\n\n /**\n * Initialize custom scrollbar for the description\n */\n $splashDesc.customScrollbar({\n updateOnWindowResize: true,\n skin: 'gray-skin',\n hScroll: false\n });\n\n /**\n * Open modal window immediately\n */\n this.$splashScreen.modal({disableClosing: isHomePage});\n\n this.initNav();\n this.initModulesNav();\n this.initCloseButton();\n //this.adaptHeight();\n },\n\n /**\n * Initialize a listener for the navigation tab buttons\n */\n initNav: function () {\n $('.modal-nav a', this.$splashScreen).on('click', function () {\n var selectedEl = $(this),\n selectedPanelId = selectedEl.data('panel');\n\n $('.modal-nav li').removeClass('active');\n $(\"a[data-panel='\" + selectedPanelId + \"']\").parent().addClass('active');\n\n $('.panels').hide();\n $(\"div[data-panel-id='\" + selectedPanelId + \"']\").show();\n });\n },\n\n /**\n * Initialize a listener for the modules buttons\n */\n initModulesNav: function () {\n var splashObj = this;\n\n $('[data-module-name]', this.$splashScreen).not('.disabled').on('click', function () {\n var selectedEl = $(this),\n selectedModuleName = selectedEl.data('module-name');\n splashObj.redirectUrl = selectedEl.data('url');\n\n $('#splash-close-btn').removeAttr('disabled').find('.module-name').text(selectedEl.text());\n\n if (!selectedEl.hasClass('new-module')) {\n var selectedClass = selectedEl.hasClass('groups') ?\n $('.test-takers').find('span').first().attr('class') :\n selectedEl.find('span').first().attr('class');\n $('.module-desc>span').attr({'class': selectedClass});\n }\n else {\n $('.module-desc>span').attr({'class': ''});\n }\n\n $('[data-module-name]').removeClass('active');\n $('.module-desc').hide();\n\n selectedEl.addClass('active');\n $(\"div[data-module='\" + selectedModuleName + \"']\").show();\n\n $('.desc').customScrollbar('resize', true);\n });\n },\n\n /**\n * Initialize a listener for the close button\n */\n initCloseButton: function () {\n var splashObj = this;\n var $closeButton = $('#splash-close-btn');\n\n //trigger the close by keypress enter\n $(document).on('keypress', function (e) {\n if (e.which === 13) {\n $closeButton.trigger('click');\n }\n });\n\n //clean unbind\n this.$splashScreen.on('closed.modal', function () {\n $(document).off('keypress');\n });\n\n $closeButton.on('click', function (e) {\n e.preventDefault();\n\n //if the checkbox is checked, then add and set the additional GET parameter 'nosplash'\n if ($('#nosplash').prop('checked')) {\n splashObj.redirectUrl += '&nosplash=true';\n }\n\n splashObj.closeSplash(splashObj.redirectUrl);\n });\n },\n\n /**\n * Close the splash screen and redirect to selected module\n * @param {string} url\n */\n closeSplash: function (url) {\n window.location = url;\n },\n\n /**\n * limit height of splash to make sure all buttons can be accessed on smaller screens\n */\n adaptHeight: function() {\n //console.log(this)\n var splashObj = this,\n $splashContentWrap = splashObj.find('.splash-content-wrap'),\n // 40 to have some nice margin below\n maxHeight = $(window).height() - splashObj.find('.modal-title').offset().top - 40;\n $splashContentWrap.css({ maxHeight: maxHeight });\n }\n\n };\n\n return SplashScreen;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA;\n *\n *\n */\ndefine('taoCe/controller/home',[\n 'jquery',\n 'util/url',\n 'taoCe/controller/home/splash'\n], function($, urlUtil, splash) {\n 'use strict';\n\n const $mainContainer = $('body');\n\n /**\n * The homeController set up the splash screen.\n *\n * @exports taoCe/controller/home\n */\n const homeController = {\n\n\n entrySplash : true,\n\n /**\n * Setup the splash screen: loads it's content and initialize the component.\n */\n start: function start() {\n\n //the splash content is loaded only once.\n if ($('#splash-screen', $mainContainer).length === 0) {\n\n $.get(urlUtil.route('splash', 'Home', 'taoCe'))\n .success( response => {\n const $splash = $(response);\n $splash.css('display', 'none');\n\n $mainContainer.append($splash);\n\n splash.init(this.entrySplash);\n });\n } else {\n splash.init(this.entrySplash);\n }\n }\n };\n\n return homeController;\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA;\n *\n *\n */\ndefine('taoCe/controller/help',[\n 'taoCe/controller/home'\n], function(homeController){\n 'use strict';\n\n return Object.assign({ entrySplash : false }, homeController);\n});\n\n","\n/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);\n * \n * \n */\n\n//@see http://forge.taotesting.com/projects/tao/wiki/Front_js\ndefine('taoCe/controller/routes',[],function(){\n 'use strict';\n\n return {\n 'Home' : {\n 'css' : 'home.css'\n },\n 'Main':{\n 'actions': {\n 'index' : 'controller/home'\n }\n }\n };\n});\n","\ndefine(\"taoCe/loader/taoCe.bundle\", function(){});\n"]}