{"version":3,"file":"js/5140-8c334abf4624f54405bb.chunk.js","mappings":"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","sources":["webpack://agra/./app/javascript/phoenix/home/carousel.js","webpack://agra/./node_modules/jcarousel/dist/jquery.jcarousel.js"],"sourcesContent":["import jQuery from 'jquery'\nimport 'jcarousel'\n\nconst spotlightWidth = () => jQuery('.image-carousel .spotlight').outerWidth()\n\nconst spotlightTop = () => jQuery('.image-carousel .spotlight').offset().top\n\nconst overlayContentBottom = function() {\n const content = jQuery('.image-carousel .overlay-content')\n return content.offset().top + content.outerHeight()\n}\n\nconst handleOverlayContent = function() {\n if ((jQuery('.image-carousel .overlay-left').width() < 1) ||\n (jQuery('.image-carousel .spotlight').offset().top >= overlayContentBottom())) {\n jQuery('.image-carousel .overlay-content').removeClass('on-overlay')\n } else {\n jQuery('.image-carousel .overlay-content').addClass('on-overlay')\n }\n}\n\nconst adjustOverlay = function() {\n const spotlightSelector = jQuery('.image-carousel .spotlight')\n const overlayRightSelector = jQuery('.image-carousel .overlay-right')\n const overlayLeftSelector = jQuery('.image-carousel .overlay-left')\n\n const leftOffsetOfRightOverlay = spotlightSelector.offset().left + spotlightWidth()\n const widthOfRightOverlay = jQuery(window).width() - leftOffsetOfRightOverlay\n\n if (widthOfRightOverlay <= 0) {\n overlayRightSelector.width(0)\n } else {\n overlayRightSelector.offset({ left: leftOffsetOfRightOverlay })\n overlayRightSelector.width(widthOfRightOverlay)\n }\n\n const widthOfLeftOverlay = spotlightSelector.offset().left\n\n if (widthOfLeftOverlay <= 0) {\n overlayLeftSelector.width(0)\n } else {\n overlayLeftSelector.offset({ top: spotlightTop() })\n overlayLeftSelector.width(widthOfLeftOverlay)\n }\n\n handleOverlayContent()\n adjustOverlayContentHeight()\n\n if (widthOfRightOverlay > 0) {\n overlayRightSelector.offset({ top: spotlightTop() })\n }\n if (widthOfLeftOverlay > 0) {\n overlayLeftSelector.offset({ top: spotlightTop() })\n }\n}\n\nconst adjustCarouselItemsWidth = () => jQuery('.image-carousel .carousel-items li').css('width', spotlightWidth())\n\nconst adjustOverlayContentHeight = function() {\n jQuery('.image-carousel .overlay-content').css('height', 'auto')\n jQuery('.image-carousel .overlay-content.on-overlay').css('height', jQuery('.image-carousel .spotlight').height())\n}\n\njQuery(() => {\n adjustCarouselItemsWidth()\n const carouselSelector = jQuery('.image-carousel .jcarousel')\n const carouselControlSelector = jQuery('.image-carousel .jcarousel-control')\n\n // Show the description box only on the spotlighted item\n // HACK: jQuery show() / hide() does not work in scenarios for some reason so we just set\n // display CSS property directly to block / none\n carouselSelector.on('jcarousel:targetin', 'li', (event) => {\n jQuery(event.target).find('.list-item-desc-box').css('display', 'block')\n })\n carouselSelector.on('jcarousel:targetout', 'li', (event) => {\n jQuery(event.target).find('.list-item-desc-box').css('display', 'none')\n })\n\n // Set up the carousel\n carouselSelector.jcarousel({wrap: 'both'})\n\n // Start with the 2nd item in the spotlight\n carouselSelector.jcarousel('scroll', 1, false)\n\n // Set up the prev/next buttons\n carouselControlSelector.on('jcarouselcontrol:inactive', (event) => jQuery(event.target).css('display', 'none'))\n carouselControlSelector.on('jcarouselcontrol:active', (event) => jQuery(event.target).css('display', 'block'))\n\n jQuery('.image-carousel .jcarousel-control-prev').jcarouselControl({target: '-=1'})\n jQuery('.image-carousel .jcarousel-control-next').jcarouselControl({target: '+=1'})\n\n // Line up the overlay and its content\n adjustOverlay()\n\n // On resize, get everything aligned right with the new window size.\n const realignOnResize = function() {\n adjustCarouselItemsWidth()\n carouselSelector.jcarousel('reload')\n adjustOverlay()\n }\n\n jQuery(window).on('resize', realignOnResize)\n jQuery(window).on('unload', () => {\n window.removeEventListener('resize', realignOnResize)\n })\n})\n","/*! jCarousel - v0.3.9 - 2018-07-30\n* http://sorgalla.com/jcarousel/\n* Copyright (c) 2006-2018 Jan Sorgalla; Licensed MIT */\n(function($) {\n 'use strict';\n\n var jCarousel = $.jCarousel = {};\n\n jCarousel.version = '0.3.9';\n\n var rRelativeTarget = /^([+\\-]=)?(.+)$/;\n\n jCarousel.parseTarget = function(target) {\n var relative = false,\n parts = typeof target !== 'object' ?\n rRelativeTarget.exec(target) :\n null;\n\n if (parts) {\n target = parseInt(parts[2], 10) || 0;\n\n if (parts[1]) {\n relative = true;\n if (parts[1] === '-=') {\n target *= -1;\n }\n }\n } else if (typeof target !== 'object') {\n target = parseInt(target, 10) || 0;\n }\n\n return {\n target: target,\n relative: relative\n };\n };\n\n jCarousel.detectCarousel = function(element) {\n var carousel;\n\n while (element.length > 0) {\n carousel = element.filter('[data-jcarousel]');\n\n if (carousel.length > 0) {\n return carousel;\n }\n\n carousel = element.find('[data-jcarousel]');\n\n if (carousel.length > 0) {\n return carousel;\n }\n\n element = element.parent();\n }\n\n return null;\n };\n\n jCarousel.base = function(pluginName) {\n return {\n version: jCarousel.version,\n _options: {},\n _element: null,\n _carousel: null,\n _init: $.noop,\n _create: $.noop,\n _destroy: $.noop,\n _reload: $.noop,\n create: function() {\n this._element\n .attr('data-' + pluginName.toLowerCase(), true)\n .data(pluginName, this);\n\n if (false === this._trigger('create')) {\n return this;\n }\n\n this._create();\n\n this._trigger('createend');\n\n return this;\n },\n destroy: function() {\n if (false === this._trigger('destroy')) {\n return this;\n }\n\n this._destroy();\n\n this._trigger('destroyend');\n\n this._element\n .removeData(pluginName)\n .removeAttr('data-' + pluginName.toLowerCase());\n\n return this;\n },\n reload: function(options) {\n if (false === this._trigger('reload')) {\n return this;\n }\n\n if (options) {\n this.options(options);\n }\n\n this._reload();\n\n this._trigger('reloadend');\n\n return this;\n },\n element: function() {\n return this._element;\n },\n options: function(key, value) {\n if (arguments.length === 0) {\n return $.extend({}, this._options);\n }\n\n if (typeof key === 'string') {\n if (typeof value === 'undefined') {\n return typeof this._options[key] === 'undefined' ?\n null :\n this._options[key];\n }\n\n this._options[key] = value;\n } else {\n this._options = $.extend({}, this._options, key);\n }\n\n return this;\n },\n carousel: function() {\n if (!this._carousel) {\n this._carousel = jCarousel.detectCarousel(this.options('carousel') || this._element);\n\n if (!this._carousel) {\n $.error('Could not detect carousel for plugin \"' + pluginName + '\"');\n }\n }\n\n return this._carousel;\n },\n _trigger: function(type, element, data) {\n var event,\n defaultPrevented = false;\n\n data = [this].concat(data || []);\n\n (element || this._element).each(function() {\n event = $.Event((pluginName + ':' + type).toLowerCase());\n\n $(this).trigger(event, data);\n\n if (event.isDefaultPrevented()) {\n defaultPrevented = true;\n }\n });\n\n return !defaultPrevented;\n }\n };\n };\n\n jCarousel.plugin = function(pluginName, pluginPrototype) {\n var Plugin = $[pluginName] = function(element, options) {\n this._element = $(element);\n this.options(options);\n\n this._init();\n this.create();\n };\n\n Plugin.fn = Plugin.prototype = $.extend(\n {},\n jCarousel.base(pluginName),\n pluginPrototype\n );\n\n $.fn[pluginName] = function(options) {\n var args = Array.prototype.slice.call(arguments, 1),\n returnValue = this;\n\n if (typeof options === 'string') {\n this.each(function() {\n var instance = $(this).data(pluginName);\n\n if (!instance) {\n return $.error(\n 'Cannot call methods on ' + pluginName + ' prior to initialization; ' +\n 'attempted to call method \"' + options + '\"'\n );\n }\n\n if (!$.isFunction(instance[options]) || options.charAt(0) === '_') {\n return $.error(\n 'No such method \"' + options + '\" for ' + pluginName + ' instance'\n );\n }\n\n var methodValue = instance[options].apply(instance, args);\n\n if (methodValue !== instance && typeof methodValue !== 'undefined') {\n returnValue = methodValue;\n return false;\n }\n });\n } else {\n this.each(function() {\n var instance = $(this).data(pluginName);\n\n if (instance instanceof Plugin) {\n instance.reload(options);\n } else {\n new Plugin(this, options);\n }\n });\n }\n\n return returnValue;\n };\n\n return Plugin;\n };\n}(jQuery));\n\n(function($, window) {\n 'use strict';\n\n var $window = $(window);\n\n var toFloat = function(val) {\n return parseFloat(val) || 0;\n };\n\n $.jCarousel.plugin('jcarousel', {\n animating: false,\n tail: 0,\n inTail: false,\n resizeState: null,\n resizeTimer: null,\n lt: null,\n vertical: false,\n rtl: false,\n circular: false,\n underflow: false,\n relative: false,\n\n _options: {\n list: function() {\n return this.element().children().eq(0);\n },\n items: function() {\n return this.list().children();\n },\n animation: 400,\n transitions: false,\n wrap: null,\n vertical: null,\n rtl: null,\n center: false\n },\n\n // Protected, don't access directly\n _list: null,\n _items: null,\n _target: $(),\n _first: $(),\n _last: $(),\n _visible: $(),\n _fullyvisible: $(),\n _init: function() {\n var self = this;\n\n self.resizeState = $window.width() + 'x' + $window.height();\n\n this.onWindowResize = function() {\n if (self.resizeTimer) {\n clearTimeout(self.resizeTimer);\n }\n\n self.resizeTimer = setTimeout(function() {\n var currentResizeState = $window.width() + 'x' + $window.height();\n\n // Check if the window size actually changed.\n // iOS might trigger resize events on page scroll.\n if (currentResizeState === self.resizeState) {\n return;\n }\n\n self.resizeState = currentResizeState;\n self.reload();\n }, 100);\n };\n\n return this;\n },\n _create: function() {\n this._reload();\n\n $window.on('resize.jcarousel', this.onWindowResize);\n },\n _destroy: function() {\n $window.off('resize.jcarousel', this.onWindowResize);\n },\n _reload: function() {\n this.vertical = this.options('vertical');\n\n if (this.vertical == null) {\n this.vertical = toFloat(this.list().height()) > toFloat(this.list().width());\n }\n\n this.rtl = this.options('rtl');\n\n if (this.rtl == null) {\n this.rtl = (function(element) {\n if (('' + element.attr('dir')).toLowerCase() === 'rtl') {\n return true;\n }\n\n var found = false;\n\n element.parents('[dir]').each(function() {\n if ((/rtl/i).test($(this).attr('dir'))) {\n found = true;\n return false;\n }\n });\n\n return found;\n }(this._element));\n }\n\n this.lt = this.vertical ? 'top' : 'left';\n\n // Ensure before closest() call\n this.relative = this.list().css('position') === 'relative';\n\n // Force list and items reload\n this._list = null;\n this._items = null;\n\n var item = this.index(this._target) >= 0 ?\n this._target :\n this.closest();\n\n // _prepare() needs this here\n this.circular = this.options('wrap') === 'circular';\n this.underflow = false;\n\n var props = {'left': 0, 'top': 0};\n\n if (item.length > 0) {\n this._prepare(item);\n this.list().find('[data-jcarousel-clone]').remove();\n\n // Force items reload\n this._items = null;\n\n this.underflow = this._fullyvisible.length >= this.items().length;\n this.circular = this.circular && !this.underflow;\n\n props[this.lt] = this._position(item) + 'px';\n }\n\n this.move(props);\n\n return this;\n },\n list: function() {\n if (this._list === null) {\n var option = this.options('list');\n this._list = $.isFunction(option) ? option.call(this) : this._element.find(option);\n }\n\n return this._list;\n },\n items: function() {\n if (this._items === null) {\n var option = this.options('items');\n this._items = ($.isFunction(option) ? option.call(this) : this.list().find(option)).not('[data-jcarousel-clone]');\n }\n\n return this._items;\n },\n index: function(item) {\n return this.items().index(item);\n },\n closest: function() {\n var self = this,\n pos = this.list().position()[this.lt],\n closest = $(), // Ensure we're returning a jQuery instance\n stop = false,\n lrb = this.vertical ? 'bottom' : (this.rtl && !this.relative ? 'left' : 'right'),\n width;\n\n if (this.rtl && this.relative && !this.vertical) {\n pos += toFloat(this.list().width()) - this.clipping();\n }\n\n this.items().each(function() {\n closest = $(this);\n\n if (stop) {\n return false;\n }\n\n var dim = self.dimension(closest);\n\n pos += dim;\n\n if (pos >= 0) {\n width = dim - toFloat(closest.css('margin-' + lrb));\n\n if ((Math.abs(pos) - dim + (width / 2)) <= 0) {\n stop = true;\n } else {\n return false;\n }\n }\n });\n\n\n return closest;\n },\n target: function() {\n return this._target;\n },\n first: function() {\n return this._first;\n },\n last: function() {\n return this._last;\n },\n visible: function() {\n return this._visible;\n },\n fullyvisible: function() {\n return this._fullyvisible;\n },\n hasNext: function() {\n if (false === this._trigger('hasnext')) {\n return true;\n }\n\n var wrap = this.options('wrap'),\n end = this.items().length - 1,\n check = this.options('center') ? this._target : this._last;\n\n return end >= 0 && !this.underflow &&\n ((wrap && wrap !== 'first') ||\n (this.index(check) < end) ||\n (this.tail && !this.inTail)) ? true : false;\n },\n hasPrev: function() {\n if (false === this._trigger('hasprev')) {\n return true;\n }\n\n var wrap = this.options('wrap');\n\n return this.items().length > 0 && !this.underflow &&\n ((wrap && wrap !== 'last') ||\n (this.index(this._first) > 0) ||\n (this.tail && this.inTail)) ? true : false;\n },\n clipping: function() {\n return toFloat(this._element['inner' + (this.vertical ? 'Height' : 'Width')]());\n },\n dimension: function(element) {\n return toFloat(element['outer' + (this.vertical ? 'Height' : 'Width')](true));\n },\n scroll: function(target, animate, callback) {\n if (this.animating) {\n return this;\n }\n\n if (false === this._trigger('scroll', null, [target, animate])) {\n return this;\n }\n\n if ($.isFunction(animate)) {\n callback = animate;\n animate = true;\n }\n\n var parsed = $.jCarousel.parseTarget(target);\n\n if (parsed.relative) {\n var end = this.items().length - 1,\n scroll = Math.abs(parsed.target),\n wrap = this.options('wrap'),\n current,\n first,\n index,\n start,\n curr,\n isVisible,\n props,\n i;\n\n if (parsed.target > 0) {\n var last = this.index(this._last);\n\n if (last >= end && this.tail) {\n if (!this.inTail) {\n this._scrollTail(animate, callback);\n } else {\n if (wrap === 'both' || wrap === 'last') {\n this._scroll(0, animate, callback);\n } else {\n if ($.isFunction(callback)) {\n callback.call(this, false);\n }\n }\n }\n } else {\n current = this.index(this._target);\n\n if ((this.underflow && current === end && (wrap === 'circular' || wrap === 'both' || wrap === 'last')) ||\n (!this.underflow && last === end && (wrap === 'both' || wrap === 'last'))) {\n this._scroll(0, animate, callback);\n } else {\n index = current + scroll;\n\n if (this.circular && index > end) {\n i = end;\n curr = this.items().get(-1);\n\n while (i++ < index) {\n curr = this.items().eq(0);\n isVisible = this._visible.index(curr) >= 0;\n\n if (isVisible) {\n curr.after(curr.clone(true).attr('data-jcarousel-clone', true));\n }\n\n this.list().append(curr);\n\n if (!isVisible) {\n props = {};\n props[this.lt] = this.dimension(curr);\n this.moveBy(props);\n }\n\n // Force items reload\n this._items = null;\n }\n\n this._scroll(curr, animate, callback);\n } else {\n this._scroll(Math.min(index, end), animate, callback);\n }\n }\n }\n } else {\n if (this.inTail) {\n this._scroll(Math.max((this.index(this._first) - scroll) + 1, 0), animate, callback);\n } else {\n first = this.index(this._first);\n current = this.index(this._target);\n start = this.underflow ? current : first;\n index = start - scroll;\n\n if (start <= 0 && ((this.underflow && wrap === 'circular') || wrap === 'both' || wrap === 'first')) {\n this._scroll(end, animate, callback);\n } else {\n if (this.circular && index < 0) {\n i = index;\n curr = this.items().get(0);\n\n while (i++ < 0) {\n curr = this.items().eq(-1);\n isVisible = this._visible.index(curr) >= 0;\n\n if (isVisible) {\n curr.after(curr.clone(true).attr('data-jcarousel-clone', true));\n }\n\n this.list().prepend(curr);\n\n // Force items reload\n this._items = null;\n\n var dim = this.dimension(curr);\n\n props = {};\n props[this.lt] = -dim;\n this.moveBy(props);\n\n }\n\n this._scroll(curr, animate, callback);\n } else {\n this._scroll(Math.max(index, 0), animate, callback);\n }\n }\n }\n }\n } else {\n this._scroll(parsed.target, animate, callback);\n }\n\n this._trigger('scrollend');\n\n return this;\n },\n moveBy: function(properties, opts) {\n var position = this.list().position(),\n multiplier = 1,\n correction = 0;\n\n if (this.rtl && !this.vertical) {\n multiplier = -1;\n\n if (this.relative) {\n correction = toFloat(this.list().width()) - this.clipping();\n }\n }\n\n if (properties.left) {\n properties.left = (toFloat(position.left) + correction + toFloat(properties.left) * multiplier) + 'px';\n }\n\n if (properties.top) {\n properties.top = (toFloat(position.top) + correction + toFloat(properties.top) * multiplier) + 'px';\n }\n\n return this.move(properties, opts);\n },\n move: function(properties, opts) {\n opts = opts || {};\n\n var option = this.options('transitions'),\n transitions = !!option,\n transforms = !!option.transforms,\n transforms3d = !!option.transforms3d,\n duration = opts.duration || 0,\n list = this.list();\n\n if (!transitions && duration > 0) {\n list.animate(properties, opts);\n return;\n }\n\n var complete = opts.complete || $.noop,\n css = {};\n\n if (transitions) {\n var backup = {\n transitionDuration: list.css('transitionDuration'),\n transitionTimingFunction: list.css('transitionTimingFunction'),\n transitionProperty: list.css('transitionProperty')\n },\n oldComplete = complete;\n\n complete = function() {\n $(this).css(backup);\n oldComplete.call(this);\n };\n css = {\n transitionDuration: (duration > 0 ? duration / 1000 : 0) + 's',\n transitionTimingFunction: option.easing || opts.easing,\n transitionProperty: duration > 0 ? (function() {\n if (transforms || transforms3d) {\n // We have to use 'all' because jQuery doesn't prefix\n // css values, like transition-property: transform;\n return 'all';\n }\n\n return properties.left ? 'left' : 'top';\n })() : 'none',\n transform: 'none'\n };\n }\n\n if (transforms3d) {\n css.transform = 'translate3d(' + (properties.left || 0) + ',' + (properties.top || 0) + ',0)';\n } else if (transforms) {\n css.transform = 'translate(' + (properties.left || 0) + ',' + (properties.top || 0) + ')';\n } else {\n $.extend(css, properties);\n }\n\n if (transitions && duration > 0) {\n list.one('transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd', complete);\n }\n\n list.css(css);\n\n if (duration <= 0) {\n list.each(function() {\n complete.call(this);\n });\n }\n },\n _scroll: function(item, animate, callback) {\n if (this.animating) {\n if ($.isFunction(callback)) {\n callback.call(this, false);\n }\n\n return this;\n }\n\n if (typeof item !== 'object') {\n item = this.items().eq(item);\n } else if (typeof item.jquery === 'undefined') {\n item = $(item);\n }\n\n if (item.length === 0) {\n if ($.isFunction(callback)) {\n callback.call(this, false);\n }\n\n return this;\n }\n\n this.inTail = false;\n\n this._prepare(item);\n\n var pos = this._position(item),\n currPos = toFloat(this.list().position()[this.lt]);\n\n if (pos === currPos) {\n if ($.isFunction(callback)) {\n callback.call(this, false);\n }\n\n return this;\n }\n\n var properties = {};\n properties[this.lt] = pos + 'px';\n\n this._animate(properties, animate, callback);\n\n return this;\n },\n _scrollTail: function(animate, callback) {\n if (this.animating || !this.tail) {\n if ($.isFunction(callback)) {\n callback.call(this, false);\n }\n\n return this;\n }\n\n var pos = this.list().position()[this.lt];\n\n if (this.rtl && this.relative && !this.vertical) {\n pos += toFloat(this.list().width()) - this.clipping();\n }\n\n if (this.rtl && !this.vertical) {\n pos += this.tail;\n } else {\n pos -= this.tail;\n }\n\n this.inTail = true;\n\n var properties = {};\n properties[this.lt] = pos + 'px';\n\n this._update({\n target: this._target.next(),\n fullyvisible: this._fullyvisible.slice(1).add(this._visible.last())\n });\n\n this._animate(properties, animate, callback);\n\n return this;\n },\n _animate: function(properties, animate, callback) {\n callback = callback || $.noop;\n\n if (false === this._trigger('animate')) {\n callback.call(this, false);\n return this;\n }\n\n this.animating = true;\n\n var animation = this.options('animation'),\n complete = $.proxy(function() {\n this.animating = false;\n\n var c = this.list().find('[data-jcarousel-clone]');\n\n if (c.length > 0) {\n c.remove();\n this._reload();\n }\n\n this._trigger('animateend');\n\n callback.call(this, true);\n }, this);\n\n var opts = typeof animation === 'object' ?\n $.extend({}, animation) :\n {duration: animation},\n oldComplete = opts.complete || $.noop;\n\n if (animate === false) {\n opts.duration = 0;\n } else if (typeof $.fx.speeds[opts.duration] !== 'undefined') {\n opts.duration = $.fx.speeds[opts.duration];\n }\n\n opts.complete = function() {\n complete();\n oldComplete.call(this);\n };\n\n this.move(properties, opts);\n\n return this;\n },\n _prepare: function(item) {\n var index = this.index(item),\n idx = index,\n wh = this.dimension(item),\n clip = this.clipping(),\n lrb = this.vertical ? 'bottom' : (this.rtl ? 'left' : 'right'),\n center = this.options('center'),\n update = {\n target: item,\n first: item,\n last: item,\n visible: item,\n fullyvisible: wh <= clip ? item : $()\n },\n curr,\n isVisible,\n margin,\n dim;\n\n if (center) {\n wh /= 2;\n clip /= 2;\n }\n\n if (wh < clip) {\n while (true) {\n curr = this.items().eq(++idx);\n\n if (curr.length === 0) {\n if (!this.circular) {\n break;\n }\n\n curr = this.items().eq(0);\n\n if (item.get(0) === curr.get(0)) {\n break;\n }\n\n isVisible = this._visible.index(curr) >= 0;\n\n if (isVisible) {\n curr.after(curr.clone(true).attr('data-jcarousel-clone', true));\n }\n\n this.list().append(curr);\n\n if (!isVisible) {\n var props = {};\n props[this.lt] = this.dimension(curr);\n this.moveBy(props);\n }\n\n // Force items reload\n this._items = null;\n }\n\n dim = this.dimension(curr);\n\n if (dim === 0) {\n break;\n }\n\n wh += dim;\n\n update.last = curr;\n update.visible = update.visible.add(curr);\n\n // Remove right/bottom margin from total width\n margin = toFloat(curr.css('margin-' + lrb));\n\n if ((wh - margin) <= clip) {\n update.fullyvisible = update.fullyvisible.add(curr);\n }\n\n if (wh >= clip) {\n break;\n }\n }\n }\n\n if (!this.circular && !center && wh < clip) {\n idx = index;\n\n while (true) {\n if (--idx < 0) {\n break;\n }\n\n curr = this.items().eq(idx);\n\n if (curr.length === 0) {\n break;\n }\n\n dim = this.dimension(curr);\n\n if (dim === 0) {\n break;\n }\n\n wh += dim;\n\n update.first = curr;\n update.visible = update.visible.add(curr);\n\n // Remove right/bottom margin from total width\n margin = toFloat(curr.css('margin-' + lrb));\n\n if ((wh - margin) <= clip) {\n update.fullyvisible = update.fullyvisible.add(curr);\n }\n\n if (wh >= clip) {\n break;\n }\n }\n }\n\n this._update(update);\n\n this.tail = 0;\n\n if (!center &&\n this.options('wrap') !== 'circular' &&\n this.options('wrap') !== 'custom' &&\n this.index(update.last) === (this.items().length - 1)) {\n\n // Remove right/bottom margin from total width\n wh -= toFloat(update.last.css('margin-' + lrb));\n\n if (wh > clip) {\n this.tail = wh - clip;\n }\n }\n\n return this;\n },\n _position: function(item) {\n var first = this._first,\n pos = toFloat(first.position()[this.lt]),\n center = this.options('center'),\n centerOffset = center ? (this.clipping() / 2) - (this.dimension(first) / 2) : 0;\n\n if (this.rtl && !this.vertical) {\n if (this.relative) {\n pos -= toFloat(this.list().width()) - this.dimension(first);\n } else {\n pos -= this.clipping() - this.dimension(first);\n }\n\n pos += centerOffset;\n } else {\n pos -= centerOffset;\n }\n\n if (!center &&\n (this.index(item) > this.index(first) || this.inTail) &&\n this.tail) {\n pos = this.rtl && !this.vertical ? pos - this.tail : pos + this.tail;\n this.inTail = true;\n } else {\n this.inTail = false;\n }\n\n return -pos;\n },\n _update: function(update) {\n var self = this,\n current = {\n target: this._target,\n first: this._first,\n last: this._last,\n visible: this._visible,\n fullyvisible: this._fullyvisible\n },\n back = this.index(update.first || current.first) < this.index(current.first),\n key,\n doUpdate = function(key) {\n var elIn = [],\n elOut = [];\n\n update[key].each(function() {\n if (current[key].index(this) < 0) {\n elIn.push(this);\n }\n });\n\n current[key].each(function() {\n if (update[key].index(this) < 0) {\n elOut.push(this);\n }\n });\n\n if (back) {\n elIn = elIn.reverse();\n } else {\n elOut = elOut.reverse();\n }\n\n self._trigger(key + 'in', $(elIn));\n self._trigger(key + 'out', $(elOut));\n\n self['_' + key] = update[key];\n };\n\n for (key in update) {\n doUpdate(key);\n }\n\n return this;\n }\n });\n}(jQuery, window));\n\n(function($) {\n 'use strict';\n\n $.jcarousel.fn.scrollIntoView = function(target, animate, callback) {\n var parsed = $.jCarousel.parseTarget(target),\n first = this.index(this._fullyvisible.first()),\n last = this.index(this._fullyvisible.last()),\n index;\n\n if (parsed.relative) {\n index = parsed.target < 0 ? Math.max(0, first + parsed.target) : last + parsed.target;\n } else {\n index = typeof parsed.target !== 'object' ? parsed.target : this.index(parsed.target);\n }\n\n if (index < first) {\n return this.scroll(index, animate, callback);\n }\n\n if (index >= first && index <= last) {\n if ($.isFunction(callback)) {\n callback.call(this, false);\n }\n\n return this;\n }\n\n var items = this.items(),\n clip = this.clipping(),\n lrb = this.vertical ? 'bottom' : (this.rtl ? 'left' : 'right'),\n wh = 0,\n curr;\n\n while (true) {\n curr = items.eq(index);\n\n if (curr.length === 0) {\n break;\n }\n\n wh += this.dimension(curr);\n\n if (wh >= clip) {\n var margin = parseFloat(curr.css('margin-' + lrb)) || 0;\n if ((wh - margin) !== clip) {\n index++;\n }\n break;\n }\n\n if (index <= 0) {\n break;\n }\n\n index--;\n }\n\n return this.scroll(index, animate, callback);\n };\n}(jQuery));\n\n(function($) {\n 'use strict';\n\n $.jCarousel.plugin('jcarouselControl', {\n _options: {\n target: '+=1',\n event: 'click',\n method: 'scroll'\n },\n _active: null,\n _init: function() {\n this.onDestroy = $.proxy(function() {\n this._destroy();\n this.carousel()\n .one('jcarousel:createend', $.proxy(this._create, this));\n }, this);\n this.onReload = $.proxy(this._reload, this);\n this.onEvent = $.proxy(function(e) {\n e.preventDefault();\n\n var method = this.options('method');\n\n if ($.isFunction(method)) {\n method.call(this);\n } else {\n this.carousel()\n .jcarousel(this.options('method'), this.options('target'));\n }\n }, this);\n },\n _create: function() {\n this.carousel()\n .one('jcarousel:destroy', this.onDestroy)\n .on('jcarousel:reloadend jcarousel:scrollend', this.onReload);\n\n this._element\n .on(this.options('event') + '.jcarouselcontrol', this.onEvent);\n\n this._reload();\n },\n _destroy: function() {\n this._element\n .off('.jcarouselcontrol', this.onEvent);\n\n this.carousel()\n .off('jcarousel:destroy', this.onDestroy)\n .off('jcarousel:reloadend jcarousel:scrollend', this.onReload);\n },\n _reload: function() {\n var parsed = $.jCarousel.parseTarget(this.options('target')),\n carousel = this.carousel(),\n active;\n\n if (parsed.relative) {\n active = carousel\n .jcarousel(parsed.target > 0 ? 'hasNext' : 'hasPrev');\n } else {\n var target = typeof parsed.target !== 'object' ?\n carousel.jcarousel('items').eq(parsed.target) :\n parsed.target;\n\n active = carousel.jcarousel('target').index(target) >= 0;\n }\n\n if (this._active !== active) {\n this._trigger(active ? 'active' : 'inactive');\n this._active = active;\n }\n\n return this;\n }\n });\n}(jQuery));\n\n(function($) {\n 'use strict';\n\n $.jCarousel.plugin('jcarouselPagination', {\n _options: {\n perPage: null,\n item: function(page) {\n return '' + page + '';\n },\n event: 'click',\n method: 'scroll'\n },\n _carouselItems: null,\n _pages: {},\n _items: {},\n _currentPage: null,\n _init: function() {\n this.onDestroy = $.proxy(function() {\n this._destroy();\n this.carousel()\n .one('jcarousel:createend', $.proxy(this._create, this));\n }, this);\n this.onReload = $.proxy(this._reload, this);\n this.onScroll = $.proxy(this._update, this);\n },\n _create: function() {\n this.carousel()\n .one('jcarousel:destroy', this.onDestroy)\n .on('jcarousel:reloadend', this.onReload)\n .on('jcarousel:scrollend', this.onScroll);\n\n this._reload();\n },\n _destroy: function() {\n this._clear();\n\n this.carousel()\n .off('jcarousel:destroy', this.onDestroy)\n .off('jcarousel:reloadend', this.onReload)\n .off('jcarousel:scrollend', this.onScroll);\n\n this._carouselItems = null;\n },\n _reload: function() {\n var perPage = this.options('perPage');\n\n this._pages = {};\n this._items = {};\n\n // Calculate pages\n if ($.isFunction(perPage)) {\n perPage = perPage.call(this);\n }\n\n if (perPage == null) {\n this._pages = this._calculatePages();\n } else {\n var pp = parseInt(perPage, 10) || 0,\n items = this._getCarouselItems(),\n page = 1,\n i = 0,\n curr;\n\n while (true) {\n curr = items.eq(i++);\n\n if (curr.length === 0) {\n break;\n }\n\n if (!this._pages[page]) {\n this._pages[page] = curr;\n } else {\n this._pages[page] = this._pages[page].add(curr);\n }\n\n if (i % pp === 0) {\n page++;\n }\n }\n }\n\n this._clear();\n\n var self = this,\n carousel = this.carousel().data('jcarousel'),\n element = this._element,\n item = this.options('item'),\n numCarouselItems = this._getCarouselItems().length;\n\n $.each(this._pages, function(page, carouselItems) {\n var currItem = self._items[page] = $(item.call(self, page, carouselItems));\n\n currItem.on(self.options('event') + '.jcarouselpagination', $.proxy(function() {\n var target = carouselItems.eq(0);\n\n // If circular wrapping enabled, ensure correct scrolling direction\n if (carousel.circular) {\n var currentIndex = carousel.index(carousel.target()),\n newIndex = carousel.index(target);\n\n if (parseFloat(page) > parseFloat(self._currentPage)) {\n if (newIndex < currentIndex) {\n target = '+=' + (numCarouselItems - currentIndex + newIndex);\n }\n } else {\n if (newIndex > currentIndex) {\n target = '-=' + (currentIndex + (numCarouselItems - newIndex));\n }\n }\n }\n\n carousel[this.options('method')](target);\n }, self));\n\n element.append(currItem);\n });\n\n this._update();\n },\n _update: function() {\n var target = this.carousel().jcarousel('target'),\n currentPage;\n\n $.each(this._pages, function(page, carouselItems) {\n carouselItems.each(function() {\n if (target.is(this)) {\n currentPage = page;\n return false;\n }\n });\n\n if (currentPage) {\n return false;\n }\n });\n\n if (this._currentPage !== currentPage) {\n this._trigger('inactive', this._items[this._currentPage]);\n this._trigger('active', this._items[currentPage]);\n }\n\n this._currentPage = currentPage;\n },\n items: function() {\n return this._items;\n },\n reloadCarouselItems: function() {\n this._carouselItems = null;\n return this;\n },\n _clear: function() {\n this._element.empty();\n this._currentPage = null;\n },\n _calculatePages: function() {\n var carousel = this.carousel().data('jcarousel'),\n items = this._getCarouselItems(),\n clip = carousel.clipping(),\n wh = 0,\n idx = 0,\n page = 1,\n pages = {},\n curr,\n dim;\n\n while (true) {\n curr = items.eq(idx++);\n\n if (curr.length === 0) {\n break;\n }\n\n dim = carousel.dimension(curr);\n\n if ((wh + dim) > clip) {\n page++;\n wh = 0;\n }\n\n wh += dim;\n\n if (!pages[page]) {\n pages[page] = curr;\n } else {\n pages[page] = pages[page].add(curr);\n }\n }\n\n return pages;\n },\n _getCarouselItems: function() {\n if (!this._carouselItems) {\n this._carouselItems = this.carousel().jcarousel('items');\n }\n\n return this._carouselItems;\n }\n });\n}(jQuery));\n\n(function($, document) {\n 'use strict';\n\n var hiddenProp,\n visibilityChangeEvent,\n visibilityChangeEventNames = {\n hidden: 'visibilitychange',\n mozHidden: 'mozvisibilitychange',\n msHidden: 'msvisibilitychange',\n webkitHidden: 'webkitvisibilitychange'\n }\n ;\n\n $.each(visibilityChangeEventNames, function(key, val) {\n if (typeof document[key] !== 'undefined') {\n hiddenProp = key;\n visibilityChangeEvent = val;\n return false;\n }\n });\n\n $.jCarousel.plugin('jcarouselAutoscroll', {\n _options: {\n target: '+=1',\n interval: 3000,\n autostart: true,\n method: 'scroll'\n },\n _timer: null,\n _started: false,\n _init: function () {\n this.onDestroy = $.proxy(function() {\n this._destroy();\n this.carousel()\n .one('jcarousel:createend', $.proxy(this._create, this));\n }, this);\n\n this.onAnimateEnd = $.proxy(this._start, this);\n\n this.onVisibilityChange = $.proxy(function() {\n if (document[hiddenProp]) {\n this._stop();\n } else {\n this._start();\n }\n }, this);\n },\n _create: function() {\n this.carousel()\n .one('jcarousel:destroy', this.onDestroy);\n\n $(document)\n .on(visibilityChangeEvent, this.onVisibilityChange);\n\n if (this.options('autostart')) {\n this.start();\n }\n },\n _destroy: function() {\n this._stop();\n\n this.carousel()\n .off('jcarousel:destroy', this.onDestroy);\n\n $(document)\n .off(visibilityChangeEvent, this.onVisibilityChange);\n },\n _start: function() {\n this._stop();\n\n if (!this._started) {\n return;\n }\n\n this.carousel()\n .one('jcarousel:animateend', this.onAnimateEnd);\n\n this._timer = setTimeout($.proxy(function() {\n this.carousel().jcarousel(this.options('method'), this.options('target'));\n }, this), this.options('interval'));\n\n return this;\n },\n _stop: function() {\n if (this._timer) {\n this._timer = clearTimeout(this._timer);\n }\n\n this.carousel()\n .off('jcarousel:animateend', this.onAnimateEnd);\n\n return this;\n },\n start: function() {\n this._started = true;\n this._start();\n\n return this;\n },\n stop: function() {\n this._started = false;\n this._stop();\n\n return this;\n }\n });\n}(jQuery, document));\n"],"names":["spotlightWidth","jQuery","outerWidth","spotlightTop","offset","top","handleOverlayContent","width","content","outerHeight","overlayContentBottom","removeClass","addClass","adjustOverlay","spotlightSelector","overlayRightSelector","overlayLeftSelector","leftOffsetOfRightOverlay","left","widthOfRightOverlay","window","widthOfLeftOverlay","adjustOverlayContentHeight","adjustCarouselItemsWidth","css","height","carouselSelector","carouselControlSelector","on","event","target","find","jcarousel","wrap","jcarouselControl","realignOnResize","removeEventListener","$","jCarousel","version","rRelativeTarget","parseTarget","relative","parts","exec","parseInt","detectCarousel","element","carousel","length","filter","parent","base","pluginName","_options","_element","_carousel","_init","noop","_create","_destroy","_reload","create","this","attr","toLowerCase","data","_trigger","destroy","removeData","removeAttr","reload","options","key","value","arguments","extend","error","type","defaultPrevented","concat","each","Event","trigger","isDefaultPrevented","plugin","pluginPrototype","Plugin","fn","prototype","args","Array","slice","call","returnValue","instance","isFunction","charAt","methodValue","apply","$window","toFloat","val","parseFloat","animating","tail","inTail","resizeState","resizeTimer","lt","vertical","rtl","circular","underflow","list","children","eq","items","animation","transitions","center","_list","_items","_target","_first","_last","_visible","_fullyvisible","self","onWindowResize","clearTimeout","setTimeout","currentResizeState","off","found","parents","test","item","index","closest","props","_prepare","remove","_position","move","option","not","pos","position","stop","lrb","clipping","dim","dimension","Math","abs","first","last","visible","fullyvisible","hasNext","end","check","hasPrev","scroll","animate","callback","parsed","current","start","curr","isVisible","i","_scroll","_scrollTail","get","after","clone","append","moveBy","min","max","prepend","properties","opts","multiplier","correction","transforms","transforms3d","duration","complete","backup","transitionDuration","transitionTimingFunction","transitionProperty","oldComplete","easing","transform","one","jquery","_animate","_update","next","add","proxy","c","fx","speeds","idx","wh","clip","update","centerOffset","back","doUpdate","elIn","elOut","push","reverse","scrollIntoView","method","_active","onDestroy","onReload","onEvent","e","preventDefault","active","perPage","page","_carouselItems","_pages","_currentPage","onScroll","_clear","_calculatePages","pp","_getCarouselItems","numCarouselItems","carouselItems","currItem","currentIndex","newIndex","currentPage","is","reloadCarouselItems","empty","pages","document","hiddenProp","visibilityChangeEvent","hidden","mozHidden","msHidden","webkitHidden","interval","autostart","_timer","_started","onAnimateEnd","_start","onVisibilityChange","_stop"],"sourceRoot":""}