{"version":3,"file":"37.138bef1145fe83ec0298.chunk.js","mappings":"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","sources":["webpack://seges/./node_modules/owl.carousel/src/js/owl.autoplay.js","webpack://seges/./node_modules/owl.carousel/src/js/owl.carousel.js","webpack://seges/./node_modules/owl.carousel/src/js/owl.navigation.js","webpack://seges/./node_modules/owl.carousel/src/js/owl.support.js"],"sourcesContent":["/**\n * Autoplay Plugin\n * @version 2.3.4\n * @author Bartosz Wojciechowski\n * @author Artus Kolanowski\n * @author David Deutsch\n * @author Tom De Caluwé\n * @license The MIT License (MIT)\n */\n;(function($, window, document, undefined) {\n\n\t/**\n\t * Creates the autoplay plugin.\n\t * @class The Autoplay Plugin\n\t * @param {Owl} scope - The Owl Carousel\n\t */\n\tvar Autoplay = function(carousel) {\n\t\t/**\n\t\t * Reference to the core.\n\t\t * @protected\n\t\t * @type {Owl}\n\t\t */\n\t\tthis._core = carousel;\n\n\t\t/**\n\t\t * The autoplay timeout id.\n\t\t * @type {Number}\n\t\t */\n\t\tthis._call = null;\n\n\t\t/**\n\t\t * Depending on the state of the plugin, this variable contains either\n\t\t * the start time of the timer or the current timer value if it's\n\t\t * paused. Since we start in a paused state we initialize the timer\n\t\t * value.\n\t\t * @type {Number}\n\t\t */\n\t\tthis._time = 0;\n\n\t\t/**\n\t\t * Stores the timeout currently used.\n\t\t * @type {Number}\n\t\t */\n\t\tthis._timeout = 0;\n\n\t\t/**\n\t\t * Indicates whenever the autoplay is paused.\n\t\t * @type {Boolean}\n\t\t */\n\t\tthis._paused = true;\n\n\t\t/**\n\t\t * All event handlers.\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._handlers = {\n\t\t\t'changed.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && e.property.name === 'settings') {\n\t\t\t\t\tif (this._core.settings.autoplay) {\n\t\t\t\t\t\tthis.play();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.stop();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.namespace && e.property.name === 'position' && this._paused) {\n\t\t\t\t\t// Reset the timer. This code is triggered when the position\n\t\t\t\t\t// of the carousel was changed through user interaction.\n\t\t\t\t\tthis._time = 0;\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'initialized.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.settings.autoplay) {\n\t\t\t\t\tthis.play();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'play.owl.autoplay': $.proxy(function(e, t, s) {\n\t\t\t\tif (e.namespace) {\n\t\t\t\t\tthis.play(t, s);\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'stop.owl.autoplay': $.proxy(function(e) {\n\t\t\t\tif (e.namespace) {\n\t\t\t\t\tthis.stop();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'mouseover.owl.autoplay': $.proxy(function() {\n\t\t\t\tif (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {\n\t\t\t\t\tthis.pause();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'mouseleave.owl.autoplay': $.proxy(function() {\n\t\t\t\tif (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {\n\t\t\t\t\tthis.play();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'touchstart.owl.core': $.proxy(function() {\n\t\t\t\tif (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {\n\t\t\t\t\tthis.pause();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'touchend.owl.core': $.proxy(function() {\n\t\t\t\tif (this._core.settings.autoplayHoverPause) {\n\t\t\t\t\tthis.play();\n\t\t\t\t}\n\t\t\t}, this)\n\t\t};\n\n\t\t// register event handlers\n\t\tthis._core.$element.on(this._handlers);\n\n\t\t// set default options\n\t\tthis._core.options = $.extend({}, Autoplay.Defaults, this._core.options);\n\t};\n\n\t/**\n\t * Default options.\n\t * @public\n\t */\n\tAutoplay.Defaults = {\n\t\tautoplay: false,\n\t\tautoplayTimeout: 5000,\n\t\tautoplayHoverPause: false,\n\t\tautoplaySpeed: false\n\t};\n\n\t/**\n\t * Transition to the next slide and set a timeout for the next transition.\n\t * @private\n\t * @param {Number} [speed] - The animation speed for the animations.\n\t */\n\tAutoplay.prototype._next = function(speed) {\n\t\tthis._call = window.setTimeout(\n\t\t\t$.proxy(this._next, this, speed),\n\t\t\tthis._timeout * (Math.round(this.read() / this._timeout) + 1) - this.read()\n\t\t);\n\n\t\tif (this._core.is('interacting') || document.hidden) {\n\t\t\treturn;\n\t\t}\n\t\tthis._core.next(speed || this._core.settings.autoplaySpeed);\n\t}\n\n\t/**\n\t * Reads the current timer value when the timer is playing.\n\t * @public\n\t */\n\tAutoplay.prototype.read = function() {\n\t\treturn new Date().getTime() - this._time;\n\t};\n\n\t/**\n\t * Starts the autoplay.\n\t * @public\n\t * @param {Number} [timeout] - The interval before the next animation starts.\n\t * @param {Number} [speed] - The animation speed for the animations.\n\t */\n\tAutoplay.prototype.play = function(timeout, speed) {\n\t\tvar elapsed;\n\n\t\tif (!this._core.is('rotating')) {\n\t\t\tthis._core.enter('rotating');\n\t\t}\n\n\t\ttimeout = timeout || this._core.settings.autoplayTimeout;\n\n\t\t// Calculate the elapsed time since the last transition. If the carousel\n\t\t// wasn't playing this calculation will yield zero.\n\t\telapsed = Math.min(this._time % (this._timeout || timeout), timeout);\n\n\t\tif (this._paused) {\n\t\t\t// Start the clock.\n\t\t\tthis._time = this.read();\n\t\t\tthis._paused = false;\n\t\t} else {\n\t\t\t// Clear the active timeout to allow replacement.\n\t\t\twindow.clearTimeout(this._call);\n\t\t}\n\n\t\t// Adjust the origin of the timer to match the new timeout value.\n\t\tthis._time += this.read() % timeout - elapsed;\n\n\t\tthis._timeout = timeout;\n\t\tthis._call = window.setTimeout($.proxy(this._next, this, speed), timeout - elapsed);\n\t};\n\n\t/**\n\t * Stops the autoplay.\n\t * @public\n\t */\n\tAutoplay.prototype.stop = function() {\n\t\tif (this._core.is('rotating')) {\n\t\t\t// Reset the clock.\n\t\t\tthis._time = 0;\n\t\t\tthis._paused = true;\n\n\t\t\twindow.clearTimeout(this._call);\n\t\t\tthis._core.leave('rotating');\n\t\t}\n\t};\n\n\t/**\n\t * Pauses the autoplay.\n\t * @public\n\t */\n\tAutoplay.prototype.pause = function() {\n\t\tif (this._core.is('rotating') && !this._paused) {\n\t\t\t// Pause the clock.\n\t\t\tthis._time = this.read();\n\t\t\tthis._paused = true;\n\n\t\t\twindow.clearTimeout(this._call);\n\t\t}\n\t};\n\n\t/**\n\t * Destroys the plugin.\n\t */\n\tAutoplay.prototype.destroy = function() {\n\t\tvar handler, property;\n\n\t\tthis.stop();\n\n\t\tfor (handler in this._handlers) {\n\t\t\tthis._core.$element.off(handler, this._handlers[handler]);\n\t\t}\n\t\tfor (property in Object.getOwnPropertyNames(this)) {\n\t\t\ttypeof this[property] != 'function' && (this[property] = null);\n\t\t}\n\t};\n\n\t$.fn.owlCarousel.Constructor.Plugins.autoplay = Autoplay;\n\n})(window.Zepto || window.jQuery, window, document);\n","/**\n * Owl carousel\n * @version 2.3.4\n * @author Bartosz Wojciechowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n * @todo Lazy Load Icon\n * @todo prevent animationend bubling\n * @todo itemsScaleUp\n * @todo Test Zepto\n * @todo stagePadding calculate wrong active classes\n */\n;(function($, window, document, undefined) {\n\n\t/**\n\t * Creates a carousel.\n\t * @class The Owl Carousel.\n\t * @public\n\t * @param {HTMLElement|jQuery} element - The element to create the carousel for.\n\t * @param {Object} [options] - The options\n\t */\n\tfunction Owl(element, options) {\n\n\t\t/**\n\t\t * Current settings for the carousel.\n\t\t * @public\n\t\t */\n\t\tthis.settings = null;\n\n\t\t/**\n\t\t * Current options set by the caller including defaults.\n\t\t * @public\n\t\t */\n\t\tthis.options = $.extend({}, Owl.Defaults, options);\n\n\t\t/**\n\t\t * Plugin element.\n\t\t * @public\n\t\t */\n\t\tthis.$element = $(element);\n\n\t\t/**\n\t\t * Proxied event handlers.\n\t\t * @protected\n\t\t */\n\t\tthis._handlers = {};\n\n\t\t/**\n\t\t * References to the running plugins of this carousel.\n\t\t * @protected\n\t\t */\n\t\tthis._plugins = {};\n\n\t\t/**\n\t\t * Currently suppressed events to prevent them from being retriggered.\n\t\t * @protected\n\t\t */\n\t\tthis._supress = {};\n\n\t\t/**\n\t\t * Absolute current position.\n\t\t * @protected\n\t\t */\n\t\tthis._current = null;\n\n\t\t/**\n\t\t * Animation speed in milliseconds.\n\t\t * @protected\n\t\t */\n\t\tthis._speed = null;\n\n\t\t/**\n\t\t * Coordinates of all items in pixel.\n\t\t * @todo The name of this member is missleading.\n\t\t * @protected\n\t\t */\n\t\tthis._coordinates = [];\n\n\t\t/**\n\t\t * Current breakpoint.\n\t\t * @todo Real media queries would be nice.\n\t\t * @protected\n\t\t */\n\t\tthis._breakpoint = null;\n\n\t\t/**\n\t\t * Current width of the plugin element.\n\t\t */\n\t\tthis._width = null;\n\n\t\t/**\n\t\t * All real items.\n\t\t * @protected\n\t\t */\n\t\tthis._items = [];\n\n\t\t/**\n\t\t * All cloned items.\n\t\t * @protected\n\t\t */\n\t\tthis._clones = [];\n\n\t\t/**\n\t\t * Merge values of all items.\n\t\t * @todo Maybe this could be part of a plugin.\n\t\t * @protected\n\t\t */\n\t\tthis._mergers = [];\n\n\t\t/**\n\t\t * Widths of all items.\n\t\t */\n\t\tthis._widths = [];\n\n\t\t/**\n\t\t * Invalidated parts within the update process.\n\t\t * @protected\n\t\t */\n\t\tthis._invalidated = {};\n\n\t\t/**\n\t\t * Ordered list of workers for the update process.\n\t\t * @protected\n\t\t */\n\t\tthis._pipe = [];\n\n\t\t/**\n\t\t * Current state information for the drag operation.\n\t\t * @todo #261\n\t\t * @protected\n\t\t */\n\t\tthis._drag = {\n\t\t\ttime: null,\n\t\t\ttarget: null,\n\t\t\tpointer: null,\n\t\t\tstage: {\n\t\t\t\tstart: null,\n\t\t\t\tcurrent: null\n\t\t\t},\n\t\t\tdirection: null\n\t\t};\n\n\t\t/**\n\t\t * Current state information and their tags.\n\t\t * @type {Object}\n\t\t * @protected\n\t\t */\n\t\tthis._states = {\n\t\t\tcurrent: {},\n\t\t\ttags: {\n\t\t\t\t'initializing': [ 'busy' ],\n\t\t\t\t'animating': [ 'busy' ],\n\t\t\t\t'dragging': [ 'interacting' ]\n\t\t\t}\n\t\t};\n\n\t\t$.each([ 'onResize', 'onThrottledResize' ], $.proxy(function(i, handler) {\n\t\t\tthis._handlers[handler] = $.proxy(this[handler], this);\n\t\t}, this));\n\n\t\t$.each(Owl.Plugins, $.proxy(function(key, plugin) {\n\t\t\tthis._plugins[key.charAt(0).toLowerCase() + key.slice(1)]\n\t\t\t\t= new plugin(this);\n\t\t}, this));\n\n\t\t$.each(Owl.Workers, $.proxy(function(priority, worker) {\n\t\t\tthis._pipe.push({\n\t\t\t\t'filter': worker.filter,\n\t\t\t\t'run': $.proxy(worker.run, this)\n\t\t\t});\n\t\t}, this));\n\n\t\tthis.setup();\n\t\tthis.initialize();\n\t}\n\n\t/**\n\t * Default options for the carousel.\n\t * @public\n\t */\n\tOwl.Defaults = {\n\t\titems: 3,\n\t\tloop: false,\n\t\tcenter: false,\n\t\trewind: false,\n\t\tcheckVisibility: true,\n\n\t\tmouseDrag: true,\n\t\ttouchDrag: true,\n\t\tpullDrag: true,\n\t\tfreeDrag: false,\n\n\t\tmargin: 0,\n\t\tstagePadding: 0,\n\n\t\tmerge: false,\n\t\tmergeFit: true,\n\t\tautoWidth: false,\n\n\t\tstartPosition: 0,\n\t\trtl: false,\n\n\t\tsmartSpeed: 250,\n\t\tfluidSpeed: false,\n\t\tdragEndSpeed: false,\n\n\t\tresponsive: {},\n\t\tresponsiveRefreshRate: 200,\n\t\tresponsiveBaseElement: window,\n\n\t\tfallbackEasing: 'swing',\n\t\tslideTransition: '',\n\n\t\tinfo: false,\n\n\t\tnestedItemSelector: false,\n\t\titemElement: 'div',\n\t\tstageElement: 'div',\n\n\t\trefreshClass: 'owl-refresh',\n\t\tloadedClass: 'owl-loaded',\n\t\tloadingClass: 'owl-loading',\n\t\trtlClass: 'owl-rtl',\n\t\tresponsiveClass: 'owl-responsive',\n\t\tdragClass: 'owl-drag',\n\t\titemClass: 'owl-item',\n\t\tstageClass: 'owl-stage',\n\t\tstageOuterClass: 'owl-stage-outer',\n\t\tgrabClass: 'owl-grab'\n\t};\n\n\t/**\n\t * Enumeration for width.\n\t * @public\n\t * @readonly\n\t * @enum {String}\n\t */\n\tOwl.Width = {\n\t\tDefault: 'default',\n\t\tInner: 'inner',\n\t\tOuter: 'outer'\n\t};\n\n\t/**\n\t * Enumeration for types.\n\t * @public\n\t * @readonly\n\t * @enum {String}\n\t */\n\tOwl.Type = {\n\t\tEvent: 'event',\n\t\tState: 'state'\n\t};\n\n\t/**\n\t * Contains all registered plugins.\n\t * @public\n\t */\n\tOwl.Plugins = {};\n\n\t/**\n\t * List of workers involved in the update process.\n\t */\n\tOwl.Workers = [ {\n\t\tfilter: [ 'width', 'settings' ],\n\t\trun: function() {\n\t\t\tthis._width = this.$element.width();\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function(cache) {\n\t\t\tcache.current = this._items && this._items[this.relative(this._current)];\n\t\t}\n\t}, {\n\t\tfilter: [ 'items', 'settings' ],\n\t\trun: function() {\n\t\t\tthis.$stage.children('.cloned').remove();\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function(cache) {\n\t\t\tvar margin = this.settings.margin || '',\n\t\t\t\tgrid = !this.settings.autoWidth,\n\t\t\t\trtl = this.settings.rtl,\n\t\t\t\tcss = {\n\t\t\t\t\t'width': 'auto',\n\t\t\t\t\t'margin-left': rtl ? margin : '',\n\t\t\t\t\t'margin-right': rtl ? '' : margin\n\t\t\t\t};\n\n\t\t\t!grid && this.$stage.children().css(css);\n\n\t\t\tcache.css = css;\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function(cache) {\n\t\t\tvar width = (this.width() / this.settings.items).toFixed(3) - this.settings.margin,\n\t\t\t\tmerge = null,\n\t\t\t\titerator = this._items.length,\n\t\t\t\tgrid = !this.settings.autoWidth,\n\t\t\t\twidths = [];\n\n\t\t\tcache.items = {\n\t\t\t\tmerge: false,\n\t\t\t\twidth: width\n\t\t\t};\n\n\t\t\twhile (iterator--) {\n\t\t\t\tmerge = this._mergers[iterator];\n\t\t\t\tmerge = this.settings.mergeFit && Math.min(merge, this.settings.items) || merge;\n\n\t\t\t\tcache.items.merge = merge > 1 || cache.items.merge;\n\n\t\t\t\twidths[iterator] = !grid ? this._items[iterator].width() : width * merge;\n\t\t\t}\n\n\t\t\tthis._widths = widths;\n\t\t}\n\t}, {\n\t\tfilter: [ 'items', 'settings' ],\n\t\trun: function() {\n\t\t\tvar clones = [],\n\t\t\t\titems = this._items,\n\t\t\t\tsettings = this.settings,\n\t\t\t\t// TODO: Should be computed from number of min width items in stage\n\t\t\t\tview = Math.max(settings.items * 2, 4),\n\t\t\t\tsize = Math.ceil(items.length / 2) * 2,\n\t\t\t\trepeat = settings.loop && items.length ? settings.rewind ? view : Math.max(view, size) : 0,\n\t\t\t\tappend = '',\n\t\t\t\tprepend = '';\n\n\t\t\trepeat /= 2;\n\n\t\t\twhile (repeat > 0) {\n\t\t\t\t// Switch to only using appended clones\n\t\t\t\tclones.push(this.normalize(clones.length / 2, true));\n\t\t\t\tappend = append + items[clones[clones.length - 1]][0].outerHTML;\n\t\t\t\tclones.push(this.normalize(items.length - 1 - (clones.length - 1) / 2, true));\n\t\t\t\tprepend = items[clones[clones.length - 1]][0].outerHTML + prepend;\n\t\t\t\trepeat -= 1;\n\t\t\t}\n\n\t\t\tthis._clones = clones;\n\n\t\t\t$(append).addClass('cloned').appendTo(this.$stage);\n\t\t\t$(prepend).addClass('cloned').prependTo(this.$stage);\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function() {\n\t\t\tvar rtl = this.settings.rtl ? 1 : -1,\n\t\t\t\tsize = this._clones.length + this._items.length,\n\t\t\t\titerator = -1,\n\t\t\t\tprevious = 0,\n\t\t\t\tcurrent = 0,\n\t\t\t\tcoordinates = [];\n\n\t\t\twhile (++iterator < size) {\n\t\t\t\tprevious = coordinates[iterator - 1] || 0;\n\t\t\t\tcurrent = this._widths[this.relative(iterator)] + this.settings.margin;\n\t\t\t\tcoordinates.push(previous + current * rtl);\n\t\t\t}\n\n\t\t\tthis._coordinates = coordinates;\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function() {\n\t\t\tvar padding = this.settings.stagePadding,\n\t\t\t\tcoordinates = this._coordinates,\n\t\t\t\tcss = {\n\t\t\t\t\t'width': Math.ceil(Math.abs(coordinates[coordinates.length - 1])) + padding * 2,\n\t\t\t\t\t'padding-left': padding || '',\n\t\t\t\t\t'padding-right': padding || ''\n\t\t\t\t};\n\n\t\t\tthis.$stage.css(css);\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function(cache) {\n\t\t\tvar iterator = this._coordinates.length,\n\t\t\t\tgrid = !this.settings.autoWidth,\n\t\t\t\titems = this.$stage.children();\n\n\t\t\tif (grid && cache.items.merge) {\n\t\t\t\twhile (iterator--) {\n\t\t\t\t\tcache.css.width = this._widths[this.relative(iterator)];\n\t\t\t\t\titems.eq(iterator).css(cache.css);\n\t\t\t\t}\n\t\t\t} else if (grid) {\n\t\t\t\tcache.css.width = cache.items.width;\n\t\t\t\titems.css(cache.css);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tfilter: [ 'items' ],\n\t\trun: function() {\n\t\t\tthis._coordinates.length < 1 && this.$stage.removeAttr('style');\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function(cache) {\n\t\t\tcache.current = cache.current ? this.$stage.children().index(cache.current) : 0;\n\t\t\tcache.current = Math.max(this.minimum(), Math.min(this.maximum(), cache.current));\n\t\t\tthis.reset(cache.current);\n\t\t}\n\t}, {\n\t\tfilter: [ 'position' ],\n\t\trun: function() {\n\t\t\tthis.animate(this.coordinates(this._current));\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'position', 'items', 'settings' ],\n\t\trun: function() {\n\t\t\tvar rtl = this.settings.rtl ? 1 : -1,\n\t\t\t\tpadding = this.settings.stagePadding * 2,\n\t\t\t\tbegin = this.coordinates(this.current()) + padding,\n\t\t\t\tend = begin + this.width() * rtl,\n\t\t\t\tinner, outer, matches = [], i, n;\n\n\t\t\tfor (i = 0, n = this._coordinates.length; i < n; i++) {\n\t\t\t\tinner = this._coordinates[i - 1] || 0;\n\t\t\t\touter = Math.abs(this._coordinates[i]) + padding * rtl;\n\n\t\t\t\tif ((this.op(inner, '<=', begin) && (this.op(inner, '>', end)))\n\t\t\t\t\t|| (this.op(outer, '<', begin) && this.op(outer, '>', end))) {\n\t\t\t\t\tmatches.push(i);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.$stage.children('.active').removeClass('active');\n\t\t\tthis.$stage.children(':eq(' + matches.join('), :eq(') + ')').addClass('active');\n\n\t\t\tthis.$stage.children('.center').removeClass('center');\n\t\t\tif (this.settings.center) {\n\t\t\t\tthis.$stage.children().eq(this.current()).addClass('center');\n\t\t\t}\n\t\t}\n\t} ];\n\n\t/**\n\t * Create the stage DOM element\n\t */\n\tOwl.prototype.initializeStage = function() {\n\t\tthis.$stage = this.$element.find('.' + this.settings.stageClass);\n\n\t\t// if the stage is already in the DOM, grab it and skip stage initialization\n\t\tif (this.$stage.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.$element.addClass(this.options.loadingClass);\n\n\t\t// create stage\n\t\tthis.$stage = $('<' + this.settings.stageElement + '>', {\n\t\t\t\"class\": this.settings.stageClass\n\t\t}).wrap( $( '
', {\n\t\t\t\"class\": this.settings.stageOuterClass\n\t\t}));\n\n\t\t// append stage\n\t\tthis.$element.append(this.$stage.parent());\n\t};\n\n\t/**\n\t * Create item DOM elements\n\t */\n\tOwl.prototype.initializeItems = function() {\n\t\tvar $items = this.$element.find('.owl-item');\n\n\t\t// if the items are already in the DOM, grab them and skip item initialization\n\t\tif ($items.length) {\n\t\t\tthis._items = $items.get().map(function(item) {\n\t\t\t\treturn $(item);\n\t\t\t});\n\n\t\t\tthis._mergers = this._items.map(function() {\n\t\t\t\treturn 1;\n\t\t\t});\n\n\t\t\tthis.refresh();\n\n\t\t\treturn;\n\t\t}\n\n\t\t// append content\n\t\tthis.replace(this.$element.children().not(this.$stage.parent()));\n\n\t\t// check visibility\n\t\tif (this.isVisible()) {\n\t\t\t// update view\n\t\t\tthis.refresh();\n\t\t} else {\n\t\t\t// invalidate width\n\t\t\tthis.invalidate('width');\n\t\t}\n\n\t\tthis.$element\n\t\t\t.removeClass(this.options.loadingClass)\n\t\t\t.addClass(this.options.loadedClass);\n\t};\n\n\t/**\n\t * Initializes the carousel.\n\t * @protected\n\t */\n\tOwl.prototype.initialize = function() {\n\t\tthis.enter('initializing');\n\t\tthis.trigger('initialize');\n\n\t\tthis.$element.toggleClass(this.settings.rtlClass, this.settings.rtl);\n\n\t\tif (this.settings.autoWidth && !this.is('pre-loading')) {\n\t\t\tvar imgs, nestedSelector, width;\n\t\t\timgs = this.$element.find('img');\n\t\t\tnestedSelector = this.settings.nestedItemSelector ? '.' + this.settings.nestedItemSelector : undefined;\n\t\t\twidth = this.$element.children(nestedSelector).width();\n\n\t\t\tif (imgs.length && width <= 0) {\n\t\t\t\tthis.preloadAutoWidthImages(imgs);\n\t\t\t}\n\t\t}\n\n\t\tthis.initializeStage();\n\t\tthis.initializeItems();\n\n\t\t// register event handlers\n\t\tthis.registerEventHandlers();\n\n\t\tthis.leave('initializing');\n\t\tthis.trigger('initialized');\n\t};\n\n\t/**\n\t * @returns {Boolean} visibility of $element\n\t * if you know the carousel will always be visible you can set `checkVisibility` to `false` to\n\t * prevent the expensive browser layout forced reflow the $element.is(':visible') does\n\t */\n\tOwl.prototype.isVisible = function() {\n\t\treturn this.settings.checkVisibility\n\t\t\t? this.$element.is(':visible')\n\t\t\t: true;\n\t};\n\n\t/**\n\t * Setups the current settings.\n\t * @todo Remove responsive classes. Why should adaptive designs be brought into IE8?\n\t * @todo Support for media queries by using `matchMedia` would be nice.\n\t * @public\n\t */\n\tOwl.prototype.setup = function() {\n\t\tvar viewport = this.viewport(),\n\t\t\toverwrites = this.options.responsive,\n\t\t\tmatch = -1,\n\t\t\tsettings = null;\n\n\t\tif (!overwrites) {\n\t\t\tsettings = $.extend({}, this.options);\n\t\t} else {\n\t\t\t$.each(overwrites, function(breakpoint) {\n\t\t\t\tif (breakpoint <= viewport && breakpoint > match) {\n\t\t\t\t\tmatch = Number(breakpoint);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tsettings = $.extend({}, this.options, overwrites[match]);\n\t\t\tif (typeof settings.stagePadding === 'function') {\n\t\t\t\tsettings.stagePadding = settings.stagePadding();\n\t\t\t}\n\t\t\tdelete settings.responsive;\n\n\t\t\t// responsive class\n\t\t\tif (settings.responsiveClass) {\n\t\t\t\tthis.$element.attr('class',\n\t\t\t\t\tthis.$element.attr('class').replace(new RegExp('(' + this.options.responsiveClass + '-)\\\\S+\\\\s', 'g'), '$1' + match)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tthis.trigger('change', { property: { name: 'settings', value: settings } });\n\t\tthis._breakpoint = match;\n\t\tthis.settings = settings;\n\t\tthis.invalidate('settings');\n\t\tthis.trigger('changed', { property: { name: 'settings', value: this.settings } });\n\t};\n\n\t/**\n\t * Updates option logic if necessery.\n\t * @protected\n\t */\n\tOwl.prototype.optionsLogic = function() {\n\t\tif (this.settings.autoWidth) {\n\t\t\tthis.settings.stagePadding = false;\n\t\t\tthis.settings.merge = false;\n\t\t}\n\t};\n\n\t/**\n\t * Prepares an item before add.\n\t * @todo Rename event parameter `content` to `item`.\n\t * @protected\n\t * @returns {jQuery|HTMLElement} - The item container.\n\t */\n\tOwl.prototype.prepare = function(item) {\n\t\tvar event = this.trigger('prepare', { content: item });\n\n\t\tif (!event.data) {\n\t\t\tevent.data = $('<' + this.settings.itemElement + '/>')\n\t\t\t\t.addClass(this.options.itemClass).append(item)\n\t\t}\n\n\t\tthis.trigger('prepared', { content: event.data });\n\n\t\treturn event.data;\n\t};\n\n\t/**\n\t * Updates the view.\n\t * @public\n\t */\n\tOwl.prototype.update = function() {\n\t\tvar i = 0,\n\t\t\tn = this._pipe.length,\n\t\t\tfilter = $.proxy(function(p) { return this[p] }, this._invalidated),\n\t\t\tcache = {};\n\n\t\twhile (i < n) {\n\t\t\tif (this._invalidated.all || $.grep(this._pipe[i].filter, filter).length > 0) {\n\t\t\t\tthis._pipe[i].run(cache);\n\t\t\t}\n\t\t\ti++;\n\t\t}\n\n\t\tthis._invalidated = {};\n\n\t\t!this.is('valid') && this.enter('valid');\n\t};\n\n\t/**\n\t * Gets the width of the view.\n\t * @public\n\t * @param {Owl.Width} [dimension=Owl.Width.Default] - The dimension to return.\n\t * @returns {Number} - The width of the view in pixel.\n\t */\n\tOwl.prototype.width = function(dimension) {\n\t\tdimension = dimension || Owl.Width.Default;\n\t\tswitch (dimension) {\n\t\t\tcase Owl.Width.Inner:\n\t\t\tcase Owl.Width.Outer:\n\t\t\t\treturn this._width;\n\t\t\tdefault:\n\t\t\t\treturn this._width - this.settings.stagePadding * 2 + this.settings.margin;\n\t\t}\n\t};\n\n\t/**\n\t * Refreshes the carousel primarily for adaptive purposes.\n\t * @public\n\t */\n\tOwl.prototype.refresh = function() {\n\t\tthis.enter('refreshing');\n\t\tthis.trigger('refresh');\n\n\t\tthis.setup();\n\n\t\tthis.optionsLogic();\n\n\t\tthis.$element.addClass(this.options.refreshClass);\n\n\t\tthis.update();\n\n\t\tthis.$element.removeClass(this.options.refreshClass);\n\n\t\tthis.leave('refreshing');\n\t\tthis.trigger('refreshed');\n\t};\n\n\t/**\n\t * Checks window `resize` event.\n\t * @protected\n\t */\n\tOwl.prototype.onThrottledResize = function() {\n\t\twindow.clearTimeout(this.resizeTimer);\n\t\tthis.resizeTimer = window.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate);\n\t};\n\n\t/**\n\t * Checks window `resize` event.\n\t * @protected\n\t */\n\tOwl.prototype.onResize = function() {\n\t\tif (!this._items.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this._width === this.$element.width()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!this.isVisible()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.enter('resizing');\n\n\t\tif (this.trigger('resize').isDefaultPrevented()) {\n\t\t\tthis.leave('resizing');\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.invalidate('width');\n\n\t\tthis.refresh();\n\n\t\tthis.leave('resizing');\n\t\tthis.trigger('resized');\n\t};\n\n\t/**\n\t * Registers event handlers.\n\t * @todo Check `msPointerEnabled`\n\t * @todo #261\n\t * @protected\n\t */\n\tOwl.prototype.registerEventHandlers = function() {\n\t\tif ($.support.transition) {\n\t\t\tthis.$stage.on($.support.transition.end + '.owl.core', $.proxy(this.onTransitionEnd, this));\n\t\t}\n\n\t\tif (this.settings.responsive !== false) {\n\t\t\tthis.on(window, 'resize', this._handlers.onThrottledResize);\n\t\t}\n\n\t\tif (this.settings.mouseDrag) {\n\t\t\tthis.$element.addClass(this.options.dragClass);\n\t\t\tthis.$stage.on('mousedown.owl.core', $.proxy(this.onDragStart, this));\n\t\t\tthis.$stage.on('dragstart.owl.core selectstart.owl.core', function() { return false });\n\t\t}\n\n\t\tif (this.settings.touchDrag){\n\t\t\tthis.$stage.on('touchstart.owl.core', $.proxy(this.onDragStart, this));\n\t\t\tthis.$stage.on('touchcancel.owl.core', $.proxy(this.onDragEnd, this));\n\t\t}\n\t};\n\n\t/**\n\t * Handles `touchstart` and `mousedown` events.\n\t * @todo Horizontal swipe threshold as option\n\t * @todo #261\n\t * @protected\n\t * @param {Event} event - The event arguments.\n\t */\n\tOwl.prototype.onDragStart = function(event) {\n\t\tvar stage = null;\n\n\t\tif (event.which === 3) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ($.support.transform) {\n\t\t\tstage = this.$stage.css('transform').replace(/.*\\(|\\)| /g, '').split(',');\n\t\t\tstage = {\n\t\t\t\tx: stage[stage.length === 16 ? 12 : 4],\n\t\t\t\ty: stage[stage.length === 16 ? 13 : 5]\n\t\t\t};\n\t\t} else {\n\t\t\tstage = this.$stage.position();\n\t\t\tstage = {\n\t\t\t\tx: this.settings.rtl ?\n\t\t\t\t\tstage.left + this.$stage.width() - this.width() + this.settings.margin :\n\t\t\t\t\tstage.left,\n\t\t\t\ty: stage.top\n\t\t\t};\n\t\t}\n\n\t\tif (this.is('animating')) {\n\t\t\t$.support.transform ? this.animate(stage.x) : this.$stage.stop()\n\t\t\tthis.invalidate('position');\n\t\t}\n\n\t\tthis.$element.toggleClass(this.options.grabClass, event.type === 'mousedown');\n\n\t\tthis.speed(0);\n\n\t\tthis._drag.time = new Date().getTime();\n\t\tthis._drag.target = $(event.target);\n\t\tthis._drag.stage.start = stage;\n\t\tthis._drag.stage.current = stage;\n\t\tthis._drag.pointer = this.pointer(event);\n\n\t\t$(document).on('mouseup.owl.core touchend.owl.core', $.proxy(this.onDragEnd, this));\n\n\t\t$(document).one('mousemove.owl.core touchmove.owl.core', $.proxy(function(event) {\n\t\t\tvar delta = this.difference(this._drag.pointer, this.pointer(event));\n\n\t\t\t$(document).on('mousemove.owl.core touchmove.owl.core', $.proxy(this.onDragMove, this));\n\n\t\t\tif (Math.abs(delta.x) < Math.abs(delta.y) && this.is('valid')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\n\t\t\tthis.enter('dragging');\n\t\t\tthis.trigger('drag');\n\t\t}, this));\n\t};\n\n\t/**\n\t * Handles the `touchmove` and `mousemove` events.\n\t * @todo #261\n\t * @protected\n\t * @param {Event} event - The event arguments.\n\t */\n\tOwl.prototype.onDragMove = function(event) {\n\t\tvar minimum = null,\n\t\t\tmaximum = null,\n\t\t\tpull = null,\n\t\t\tdelta = this.difference(this._drag.pointer, this.pointer(event)),\n\t\t\tstage = this.difference(this._drag.stage.start, delta);\n\n\t\tif (!this.is('dragging')) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\n\t\tif (this.settings.loop) {\n\t\t\tminimum = this.coordinates(this.minimum());\n\t\t\tmaximum = this.coordinates(this.maximum() + 1) - minimum;\n\t\t\tstage.x = (((stage.x - minimum) % maximum + maximum) % maximum) + minimum;\n\t\t} else {\n\t\t\tminimum = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum());\n\t\t\tmaximum = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum());\n\t\t\tpull = this.settings.pullDrag ? -1 * delta.x / 5 : 0;\n\t\t\tstage.x = Math.max(Math.min(stage.x, minimum + pull), maximum + pull);\n\t\t}\n\n\t\tthis._drag.stage.current = stage;\n\n\t\tthis.animate(stage.x);\n\t};\n\n\t/**\n\t * Handles the `touchend` and `mouseup` events.\n\t * @todo #261\n\t * @todo Threshold for click event\n\t * @protected\n\t * @param {Event} event - The event arguments.\n\t */\n\tOwl.prototype.onDragEnd = function(event) {\n\t\tvar delta = this.difference(this._drag.pointer, this.pointer(event)),\n\t\t\tstage = this._drag.stage.current,\n\t\t\tdirection = delta.x > 0 ^ this.settings.rtl ? 'left' : 'right';\n\n\t\t$(document).off('.owl.core');\n\n\t\tthis.$element.removeClass(this.options.grabClass);\n\n\t\tif (delta.x !== 0 && this.is('dragging') || !this.is('valid')) {\n\t\t\tthis.speed(this.settings.dragEndSpeed || this.settings.smartSpeed);\n\t\t\tthis.current(this.closest(stage.x, delta.x !== 0 ? direction : this._drag.direction));\n\t\t\tthis.invalidate('position');\n\t\t\tthis.update();\n\n\t\t\tthis._drag.direction = direction;\n\n\t\t\tif (Math.abs(delta.x) > 3 || new Date().getTime() - this._drag.time > 300) {\n\t\t\t\tthis._drag.target.one('click.owl.core', function() { return false; });\n\t\t\t}\n\t\t}\n\n\t\tif (!this.is('dragging')) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.leave('dragging');\n\t\tthis.trigger('dragged');\n\t};\n\n\t/**\n\t * Gets absolute position of the closest item for a coordinate.\n\t * @todo Setting `freeDrag` makes `closest` not reusable. See #165.\n\t * @protected\n\t * @param {Number} coordinate - The coordinate in pixel.\n\t * @param {String} direction - The direction to check for the closest item. Ether `left` or `right`.\n\t * @return {Number} - The absolute position of the closest item.\n\t */\n\tOwl.prototype.closest = function(coordinate, direction) {\n\t\tvar position = -1,\n\t\t\tpull = 30,\n\t\t\twidth = this.width(),\n\t\t\tcoordinates = this.coordinates();\n\n\t\tif (!this.settings.freeDrag) {\n\t\t\t// check closest item\n\t\t\t$.each(coordinates, $.proxy(function(index, value) {\n\t\t\t\t// on a left pull, check on current index\n\t\t\t\tif (direction === 'left' && coordinate > value - pull && coordinate < value + pull) {\n\t\t\t\t\tposition = index;\n\t\t\t\t// on a right pull, check on previous index\n\t\t\t\t// to do so, subtract width from value and set position = index + 1\n\t\t\t\t} else if (direction === 'right' && coordinate > value - width - pull && coordinate < value - width + pull) {\n\t\t\t\t\tposition = index + 1;\n\t\t\t\t} else if (this.op(coordinate, '<', value)\n\t\t\t\t\t&& this.op(coordinate, '>', coordinates[index + 1] !== undefined ? coordinates[index + 1] : value - width)) {\n\t\t\t\t\tposition = direction === 'left' ? index + 1 : index;\n\t\t\t\t}\n\t\t\t\treturn position === -1;\n\t\t\t}, this));\n\t\t}\n\n\t\tif (!this.settings.loop) {\n\t\t\t// non loop boundries\n\t\t\tif (this.op(coordinate, '>', coordinates[this.minimum()])) {\n\t\t\t\tposition = coordinate = this.minimum();\n\t\t\t} else if (this.op(coordinate, '<', coordinates[this.maximum()])) {\n\t\t\t\tposition = coordinate = this.maximum();\n\t\t\t}\n\t\t}\n\n\t\treturn position;\n\t};\n\n\t/**\n\t * Animates the stage.\n\t * @todo #270\n\t * @public\n\t * @param {Number} coordinate - The coordinate in pixels.\n\t */\n\tOwl.prototype.animate = function(coordinate) {\n\t\tvar animate = this.speed() > 0;\n\n\t\tthis.is('animating') && this.onTransitionEnd();\n\n\t\tif (animate) {\n\t\t\tthis.enter('animating');\n\t\t\tthis.trigger('translate');\n\t\t}\n\n\t\tif ($.support.transform3d && $.support.transition) {\n\t\t\tthis.$stage.css({\n\t\t\t\ttransform: 'translate3d(' + coordinate + 'px,0px,0px)',\n\t\t\t\ttransition: (this.speed() / 1000) + 's' + (\n\t\t\t\t\tthis.settings.slideTransition ? ' ' + this.settings.slideTransition : ''\n\t\t\t\t)\n\t\t\t});\n\t\t} else if (animate) {\n\t\t\tthis.$stage.animate({\n\t\t\t\tleft: coordinate + 'px'\n\t\t\t}, this.speed(), this.settings.fallbackEasing, $.proxy(this.onTransitionEnd, this));\n\t\t} else {\n\t\t\tthis.$stage.css({\n\t\t\t\tleft: coordinate + 'px'\n\t\t\t});\n\t\t}\n\t};\n\n\t/**\n\t * Checks whether the carousel is in a specific state or not.\n\t * @param {String} state - The state to check.\n\t * @returns {Boolean} - The flag which indicates if the carousel is busy.\n\t */\n\tOwl.prototype.is = function(state) {\n\t\treturn this._states.current[state] && this._states.current[state] > 0;\n\t};\n\n\t/**\n\t * Sets the absolute position of the current item.\n\t * @public\n\t * @param {Number} [position] - The new absolute position or nothing to leave it unchanged.\n\t * @returns {Number} - The absolute position of the current item.\n\t */\n\tOwl.prototype.current = function(position) {\n\t\tif (position === undefined) {\n\t\t\treturn this._current;\n\t\t}\n\n\t\tif (this._items.length === 0) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tposition = this.normalize(position);\n\n\t\tif (this._current !== position) {\n\t\t\tvar event = this.trigger('change', { property: { name: 'position', value: position } });\n\n\t\t\tif (event.data !== undefined) {\n\t\t\t\tposition = this.normalize(event.data);\n\t\t\t}\n\n\t\t\tthis._current = position;\n\n\t\t\tthis.invalidate('position');\n\n\t\t\tthis.trigger('changed', { property: { name: 'position', value: this._current } });\n\t\t}\n\n\t\treturn this._current;\n\t};\n\n\t/**\n\t * Invalidates the given part of the update routine.\n\t * @param {String} [part] - The part to invalidate.\n\t * @returns {Array.} - The invalidated parts.\n\t */\n\tOwl.prototype.invalidate = function(part) {\n\t\tif ($.type(part) === 'string') {\n\t\t\tthis._invalidated[part] = true;\n\t\t\tthis.is('valid') && this.leave('valid');\n\t\t}\n\t\treturn $.map(this._invalidated, function(v, i) { return i });\n\t};\n\n\t/**\n\t * Resets the absolute position of the current item.\n\t * @public\n\t * @param {Number} position - The absolute position of the new item.\n\t */\n\tOwl.prototype.reset = function(position) {\n\t\tposition = this.normalize(position);\n\n\t\tif (position === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._speed = 0;\n\t\tthis._current = position;\n\n\t\tthis.suppress([ 'translate', 'translated' ]);\n\n\t\tthis.animate(this.coordinates(position));\n\n\t\tthis.release([ 'translate', 'translated' ]);\n\t};\n\n\t/**\n\t * Normalizes an absolute or a relative position of an item.\n\t * @public\n\t * @param {Number} position - The absolute or relative position to normalize.\n\t * @param {Boolean} [relative=false] - Whether the given position is relative or not.\n\t * @returns {Number} - The normalized position.\n\t */\n\tOwl.prototype.normalize = function(position, relative) {\n\t\tvar n = this._items.length,\n\t\t\tm = relative ? 0 : this._clones.length;\n\n\t\tif (!this.isNumeric(position) || n < 1) {\n\t\t\tposition = undefined;\n\t\t} else if (position < 0 || position >= n + m) {\n\t\t\tposition = ((position - m / 2) % n + n) % n + m / 2;\n\t\t}\n\n\t\treturn position;\n\t};\n\n\t/**\n\t * Converts an absolute position of an item into a relative one.\n\t * @public\n\t * @param {Number} position - The absolute position to convert.\n\t * @returns {Number} - The converted position.\n\t */\n\tOwl.prototype.relative = function(position) {\n\t\tposition -= this._clones.length / 2;\n\t\treturn this.normalize(position, true);\n\t};\n\n\t/**\n\t * Gets the maximum position for the current item.\n\t * @public\n\t * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position.\n\t * @returns {Number}\n\t */\n\tOwl.prototype.maximum = function(relative) {\n\t\tvar settings = this.settings,\n\t\t\tmaximum = this._coordinates.length,\n\t\t\titerator,\n\t\t\treciprocalItemsWidth,\n\t\t\telementWidth;\n\n\t\tif (settings.loop) {\n\t\t\tmaximum = this._clones.length / 2 + this._items.length - 1;\n\t\t} else if (settings.autoWidth || settings.merge) {\n\t\t\titerator = this._items.length;\n\t\t\tif (iterator) {\n\t\t\t\treciprocalItemsWidth = this._items[--iterator].width();\n\t\t\t\telementWidth = this.$element.width();\n\t\t\t\twhile (iterator--) {\n\t\t\t\t\treciprocalItemsWidth += this._items[iterator].width() + this.settings.margin;\n\t\t\t\t\tif (reciprocalItemsWidth > elementWidth) {\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\tmaximum = iterator + 1;\n\t\t} else if (settings.center) {\n\t\t\tmaximum = this._items.length - 1;\n\t\t} else {\n\t\t\tmaximum = this._items.length - settings.items;\n\t\t}\n\n\t\tif (relative) {\n\t\t\tmaximum -= this._clones.length / 2;\n\t\t}\n\n\t\treturn Math.max(maximum, 0);\n\t};\n\n\t/**\n\t * Gets the minimum position for the current item.\n\t * @public\n\t * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position.\n\t * @returns {Number}\n\t */\n\tOwl.prototype.minimum = function(relative) {\n\t\treturn relative ? 0 : this._clones.length / 2;\n\t};\n\n\t/**\n\t * Gets an item at the specified relative position.\n\t * @public\n\t * @param {Number} [position] - The relative position of the item.\n\t * @return {jQuery|Array.} - The item at the given position or all items if no position was given.\n\t */\n\tOwl.prototype.items = function(position) {\n\t\tif (position === undefined) {\n\t\t\treturn this._items.slice();\n\t\t}\n\n\t\tposition = this.normalize(position, true);\n\t\treturn this._items[position];\n\t};\n\n\t/**\n\t * Gets an item at the specified relative position.\n\t * @public\n\t * @param {Number} [position] - The relative position of the item.\n\t * @return {jQuery|Array.} - The item at the given position or all items if no position was given.\n\t */\n\tOwl.prototype.mergers = function(position) {\n\t\tif (position === undefined) {\n\t\t\treturn this._mergers.slice();\n\t\t}\n\n\t\tposition = this.normalize(position, true);\n\t\treturn this._mergers[position];\n\t};\n\n\t/**\n\t * Gets the absolute positions of clones for an item.\n\t * @public\n\t * @param {Number} [position] - The relative position of the item.\n\t * @returns {Array.} - The absolute positions of clones for the item or all if no position was given.\n\t */\n\tOwl.prototype.clones = function(position) {\n\t\tvar odd = this._clones.length / 2,\n\t\t\teven = odd + this._items.length,\n\t\t\tmap = function(index) { return index % 2 === 0 ? even + index / 2 : odd - (index + 1) / 2 };\n\n\t\tif (position === undefined) {\n\t\t\treturn $.map(this._clones, function(v, i) { return map(i) });\n\t\t}\n\n\t\treturn $.map(this._clones, function(v, i) { return v === position ? map(i) : null });\n\t};\n\n\t/**\n\t * Sets the current animation speed.\n\t * @public\n\t * @param {Number} [speed] - The animation speed in milliseconds or nothing to leave it unchanged.\n\t * @returns {Number} - The current animation speed in milliseconds.\n\t */\n\tOwl.prototype.speed = function(speed) {\n\t\tif (speed !== undefined) {\n\t\t\tthis._speed = speed;\n\t\t}\n\n\t\treturn this._speed;\n\t};\n\n\t/**\n\t * Gets the coordinate of an item.\n\t * @todo The name of this method is missleanding.\n\t * @public\n\t * @param {Number} position - The absolute position of the item within `minimum()` and `maximum()`.\n\t * @returns {Number|Array.} - The coordinate of the item in pixel or all coordinates.\n\t */\n\tOwl.prototype.coordinates = function(position) {\n\t\tvar multiplier = 1,\n\t\t\tnewPosition = position - 1,\n\t\t\tcoordinate;\n\n\t\tif (position === undefined) {\n\t\t\treturn $.map(this._coordinates, $.proxy(function(coordinate, index) {\n\t\t\t\treturn this.coordinates(index);\n\t\t\t}, this));\n\t\t}\n\n\t\tif (this.settings.center) {\n\t\t\tif (this.settings.rtl) {\n\t\t\t\tmultiplier = -1;\n\t\t\t\tnewPosition = position + 1;\n\t\t\t}\n\n\t\t\tcoordinate = this._coordinates[position];\n\t\t\tcoordinate += (this.width() - coordinate + (this._coordinates[newPosition] || 0)) / 2 * multiplier;\n\t\t} else {\n\t\t\tcoordinate = this._coordinates[newPosition] || 0;\n\t\t}\n\n\t\tcoordinate = Math.ceil(coordinate);\n\n\t\treturn coordinate;\n\t};\n\n\t/**\n\t * Calculates the speed for a translation.\n\t * @protected\n\t * @param {Number} from - The absolute position of the start item.\n\t * @param {Number} to - The absolute position of the target item.\n\t * @param {Number} [factor=undefined] - The time factor in milliseconds.\n\t * @returns {Number} - The time in milliseconds for the translation.\n\t */\n\tOwl.prototype.duration = function(from, to, factor) {\n\t\tif (factor === 0) {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn Math.min(Math.max(Math.abs(to - from), 1), 6) * Math.abs((factor || this.settings.smartSpeed));\n\t};\n\n\t/**\n\t * Slides to the specified item.\n\t * @public\n\t * @param {Number} position - The position of the item.\n\t * @param {Number} [speed] - The time in milliseconds for the transition.\n\t */\n\tOwl.prototype.to = function(position, speed) {\n\t\tvar current = this.current(),\n\t\t\trevert = null,\n\t\t\tdistance = position - this.relative(current),\n\t\t\tdirection = (distance > 0) - (distance < 0),\n\t\t\titems = this._items.length,\n\t\t\tminimum = this.minimum(),\n\t\t\tmaximum = this.maximum();\n\n\t\tif (this.settings.loop) {\n\t\t\tif (!this.settings.rewind && Math.abs(distance) > items / 2) {\n\t\t\t\tdistance += direction * -1 * items;\n\t\t\t}\n\n\t\t\tposition = current + distance;\n\t\t\trevert = ((position - minimum) % items + items) % items + minimum;\n\n\t\t\tif (revert !== position && revert - distance <= maximum && revert - distance > 0) {\n\t\t\t\tcurrent = revert - distance;\n\t\t\t\tposition = revert;\n\t\t\t\tthis.reset(current);\n\t\t\t}\n\t\t} else if (this.settings.rewind) {\n\t\t\tmaximum += 1;\n\t\t\tposition = (position % maximum + maximum) % maximum;\n\t\t} else {\n\t\t\tposition = Math.max(minimum, Math.min(maximum, position));\n\t\t}\n\n\t\tthis.speed(this.duration(current, position, speed));\n\t\tthis.current(position);\n\n\t\tif (this.isVisible()) {\n\t\t\tthis.update();\n\t\t}\n\t};\n\n\t/**\n\t * Slides to the next item.\n\t * @public\n\t * @param {Number} [speed] - The time in milliseconds for the transition.\n\t */\n\tOwl.prototype.next = function(speed) {\n\t\tspeed = speed || false;\n\t\tthis.to(this.relative(this.current()) + 1, speed);\n\t};\n\n\t/**\n\t * Slides to the previous item.\n\t * @public\n\t * @param {Number} [speed] - The time in milliseconds for the transition.\n\t */\n\tOwl.prototype.prev = function(speed) {\n\t\tspeed = speed || false;\n\t\tthis.to(this.relative(this.current()) - 1, speed);\n\t};\n\n\t/**\n\t * Handles the end of an animation.\n\t * @protected\n\t * @param {Event} event - The event arguments.\n\t */\n\tOwl.prototype.onTransitionEnd = function(event) {\n\n\t\t// if css2 animation then event object is undefined\n\t\tif (event !== undefined) {\n\t\t\tevent.stopPropagation();\n\n\t\t\t// Catch only owl-stage transitionEnd event\n\t\t\tif ((event.target || event.srcElement || event.originalTarget) !== this.$stage.get(0)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tthis.leave('animating');\n\t\tthis.trigger('translated');\n\t};\n\n\t/**\n\t * Gets viewport width.\n\t * @protected\n\t * @return {Number} - The width in pixel.\n\t */\n\tOwl.prototype.viewport = function() {\n\t\tvar width;\n\t\tif (this.options.responsiveBaseElement !== window) {\n\t\t\twidth = $(this.options.responsiveBaseElement).width();\n\t\t} else if (window.innerWidth) {\n\t\t\twidth = window.innerWidth;\n\t\t} else if (document.documentElement && document.documentElement.clientWidth) {\n\t\t\twidth = document.documentElement.clientWidth;\n\t\t} else {\n\t\t\tconsole.warn('Can not detect viewport width.');\n\t\t}\n\t\treturn width;\n\t};\n\n\t/**\n\t * Replaces the current content.\n\t * @public\n\t * @param {HTMLElement|jQuery|String} content - The new content.\n\t */\n\tOwl.prototype.replace = function(content) {\n\t\tthis.$stage.empty();\n\t\tthis._items = [];\n\n\t\tif (content) {\n\t\t\tcontent = (content instanceof jQuery) ? content : $(content);\n\t\t}\n\n\t\tif (this.settings.nestedItemSelector) {\n\t\t\tcontent = content.find('.' + this.settings.nestedItemSelector);\n\t\t}\n\n\t\tcontent.filter(function() {\n\t\t\treturn this.nodeType === 1;\n\t\t}).each($.proxy(function(index, item) {\n\t\t\titem = this.prepare(item);\n\t\t\tthis.$stage.append(item);\n\t\t\tthis._items.push(item);\n\t\t\tthis._mergers.push(item.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1);\n\t\t}, this));\n\n\t\tthis.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0);\n\n\t\tthis.invalidate('items');\n\t};\n\n\t/**\n\t * Adds an item.\n\t * @todo Use `item` instead of `content` for the event arguments.\n\t * @public\n\t * @param {HTMLElement|jQuery|String} content - The item content to add.\n\t * @param {Number} [position] - The relative position at which to insert the item otherwise the item will be added to the end.\n\t */\n\tOwl.prototype.add = function(content, position) {\n\t\tvar current = this.relative(this._current);\n\n\t\tposition = position === undefined ? this._items.length : this.normalize(position, true);\n\t\tcontent = content instanceof jQuery ? content : $(content);\n\n\t\tthis.trigger('add', { content: content, position: position });\n\n\t\tcontent = this.prepare(content);\n\n\t\tif (this._items.length === 0 || position === this._items.length) {\n\t\t\tthis._items.length === 0 && this.$stage.append(content);\n\t\t\tthis._items.length !== 0 && this._items[position - 1].after(content);\n\t\t\tthis._items.push(content);\n\t\t\tthis._mergers.push(content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1);\n\t\t} else {\n\t\t\tthis._items[position].before(content);\n\t\t\tthis._items.splice(position, 0, content);\n\t\t\tthis._mergers.splice(position, 0, content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1);\n\t\t}\n\n\t\tthis._items[current] && this.reset(this._items[current].index());\n\n\t\tthis.invalidate('items');\n\n\t\tthis.trigger('added', { content: content, position: position });\n\t};\n\n\t/**\n\t * Removes an item by its position.\n\t * @todo Use `item` instead of `content` for the event arguments.\n\t * @public\n\t * @param {Number} position - The relative position of the item to remove.\n\t */\n\tOwl.prototype.remove = function(position) {\n\t\tposition = this.normalize(position, true);\n\n\t\tif (position === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.trigger('remove', { content: this._items[position], position: position });\n\n\t\tthis._items[position].remove();\n\t\tthis._items.splice(position, 1);\n\t\tthis._mergers.splice(position, 1);\n\n\t\tthis.invalidate('items');\n\n\t\tthis.trigger('removed', { content: null, position: position });\n\t};\n\n\t/**\n\t * Preloads images with auto width.\n\t * @todo Replace by a more generic approach\n\t * @protected\n\t */\n\tOwl.prototype.preloadAutoWidthImages = function(images) {\n\t\timages.each($.proxy(function(i, element) {\n\t\t\tthis.enter('pre-loading');\n\t\t\telement = $(element);\n\t\t\t$(new Image()).one('load', $.proxy(function(e) {\n\t\t\t\telement.attr('src', e.target.src);\n\t\t\t\telement.css('opacity', 1);\n\t\t\t\tthis.leave('pre-loading');\n\t\t\t\t!this.is('pre-loading') && !this.is('initializing') && this.refresh();\n\t\t\t}, this)).attr('src', element.attr('src') || element.attr('data-src') || element.attr('data-src-retina'));\n\t\t}, this));\n\t};\n\n\t/**\n\t * Destroys the carousel.\n\t * @public\n\t */\n\tOwl.prototype.destroy = function() {\n\n\t\tthis.$element.off('.owl.core');\n\t\tthis.$stage.off('.owl.core');\n\t\t$(document).off('.owl.core');\n\n\t\tif (this.settings.responsive !== false) {\n\t\t\twindow.clearTimeout(this.resizeTimer);\n\t\t\tthis.off(window, 'resize', this._handlers.onThrottledResize);\n\t\t}\n\n\t\tfor (var i in this._plugins) {\n\t\t\tthis._plugins[i].destroy();\n\t\t}\n\n\t\tthis.$stage.children('.cloned').remove();\n\n\t\tthis.$stage.unwrap();\n\t\tthis.$stage.children().contents().unwrap();\n\t\tthis.$stage.children().unwrap();\n\t\tthis.$stage.remove();\n\t\tthis.$element\n\t\t\t.removeClass(this.options.refreshClass)\n\t\t\t.removeClass(this.options.loadingClass)\n\t\t\t.removeClass(this.options.loadedClass)\n\t\t\t.removeClass(this.options.rtlClass)\n\t\t\t.removeClass(this.options.dragClass)\n\t\t\t.removeClass(this.options.grabClass)\n\t\t\t.attr('class', this.$element.attr('class').replace(new RegExp(this.options.responsiveClass + '-\\\\S+\\\\s', 'g'), ''))\n\t\t\t.removeData('owl.carousel');\n\t};\n\n\t/**\n\t * Operators to calculate right-to-left and left-to-right.\n\t * @protected\n\t * @param {Number} [a] - The left side operand.\n\t * @param {String} [o] - The operator.\n\t * @param {Number} [b] - The right side operand.\n\t */\n\tOwl.prototype.op = function(a, o, b) {\n\t\tvar rtl = this.settings.rtl;\n\t\tswitch (o) {\n\t\t\tcase '<':\n\t\t\t\treturn rtl ? a > b : a < b;\n\t\t\tcase '>':\n\t\t\t\treturn rtl ? a < b : a > b;\n\t\t\tcase '>=':\n\t\t\t\treturn rtl ? a <= b : a >= b;\n\t\t\tcase '<=':\n\t\t\t\treturn rtl ? a >= b : a <= b;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\t/**\n\t * Attaches to an internal event.\n\t * @protected\n\t * @param {HTMLElement} element - The event source.\n\t * @param {String} event - The event name.\n\t * @param {Function} listener - The event handler to attach.\n\t * @param {Boolean} capture - Wether the event should be handled at the capturing phase or not.\n\t */\n\tOwl.prototype.on = function(element, event, listener, capture) {\n\t\tif (element.addEventListener) {\n\t\t\telement.addEventListener(event, listener, capture);\n\t\t} else if (element.attachEvent) {\n\t\t\telement.attachEvent('on' + event, listener);\n\t\t}\n\t};\n\n\t/**\n\t * Detaches from an internal event.\n\t * @protected\n\t * @param {HTMLElement} element - The event source.\n\t * @param {String} event - The event name.\n\t * @param {Function} listener - The attached event handler to detach.\n\t * @param {Boolean} capture - Wether the attached event handler was registered as a capturing listener or not.\n\t */\n\tOwl.prototype.off = function(element, event, listener, capture) {\n\t\tif (element.removeEventListener) {\n\t\t\telement.removeEventListener(event, listener, capture);\n\t\t} else if (element.detachEvent) {\n\t\t\telement.detachEvent('on' + event, listener);\n\t\t}\n\t};\n\n\t/**\n\t * Triggers a public event.\n\t * @todo Remove `status`, `relatedTarget` should be used instead.\n\t * @protected\n\t * @param {String} name - The event name.\n\t * @param {*} [data=null] - The event data.\n\t * @param {String} [namespace=carousel] - The event namespace.\n\t * @param {String} [state] - The state which is associated with the event.\n\t * @param {Boolean} [enter=false] - Indicates if the call enters the specified state or not.\n\t * @returns {Event} - The event arguments.\n\t */\n\tOwl.prototype.trigger = function(name, data, namespace, state, enter) {\n\t\tvar status = {\n\t\t\titem: { count: this._items.length, index: this.current() }\n\t\t}, handler = $.camelCase(\n\t\t\t$.grep([ 'on', name, namespace ], function(v) { return v })\n\t\t\t\t.join('-').toLowerCase()\n\t\t), event = $.Event(\n\t\t\t[ name, 'owl', namespace || 'carousel' ].join('.').toLowerCase(),\n\t\t\t$.extend({ relatedTarget: this }, status, data)\n\t\t);\n\n\t\tif (!this._supress[name]) {\n\t\t\t$.each(this._plugins, function(name, plugin) {\n\t\t\t\tif (plugin.onTrigger) {\n\t\t\t\t\tplugin.onTrigger(event);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.register({ type: Owl.Type.Event, name: name });\n\t\t\tthis.$element.trigger(event);\n\n\t\t\tif (this.settings && typeof this.settings[handler] === 'function') {\n\t\t\t\tthis.settings[handler].call(this, event);\n\t\t\t}\n\t\t}\n\n\t\treturn event;\n\t};\n\n\t/**\n\t * Enters a state.\n\t * @param name - The state name.\n\t */\n\tOwl.prototype.enter = function(name) {\n\t\t$.each([ name ].concat(this._states.tags[name] || []), $.proxy(function(i, name) {\n\t\t\tif (this._states.current[name] === undefined) {\n\t\t\t\tthis._states.current[name] = 0;\n\t\t\t}\n\n\t\t\tthis._states.current[name]++;\n\t\t}, this));\n\t};\n\n\t/**\n\t * Leaves a state.\n\t * @param name - The state name.\n\t */\n\tOwl.prototype.leave = function(name) {\n\t\t$.each([ name ].concat(this._states.tags[name] || []), $.proxy(function(i, name) {\n\t\t\tthis._states.current[name]--;\n\t\t}, this));\n\t};\n\n\t/**\n\t * Registers an event or state.\n\t * @public\n\t * @param {Object} object - The event or state to register.\n\t */\n\tOwl.prototype.register = function(object) {\n\t\tif (object.type === Owl.Type.Event) {\n\t\t\tif (!$.event.special[object.name]) {\n\t\t\t\t$.event.special[object.name] = {};\n\t\t\t}\n\n\t\t\tif (!$.event.special[object.name].owl) {\n\t\t\t\tvar _default = $.event.special[object.name]._default;\n\t\t\t\t$.event.special[object.name]._default = function(e) {\n\t\t\t\t\tif (_default && _default.apply && (!e.namespace || e.namespace.indexOf('owl') === -1)) {\n\t\t\t\t\t\treturn _default.apply(this, arguments);\n\t\t\t\t\t}\n\t\t\t\t\treturn e.namespace && e.namespace.indexOf('owl') > -1;\n\t\t\t\t};\n\t\t\t\t$.event.special[object.name].owl = true;\n\t\t\t}\n\t\t} else if (object.type === Owl.Type.State) {\n\t\t\tif (!this._states.tags[object.name]) {\n\t\t\t\tthis._states.tags[object.name] = object.tags;\n\t\t\t} else {\n\t\t\t\tthis._states.tags[object.name] = this._states.tags[object.name].concat(object.tags);\n\t\t\t}\n\n\t\t\tthis._states.tags[object.name] = $.grep(this._states.tags[object.name], $.proxy(function(tag, i) {\n\t\t\t\treturn $.inArray(tag, this._states.tags[object.name]) === i;\n\t\t\t}, this));\n\t\t}\n\t};\n\n\t/**\n\t * Suppresses events.\n\t * @protected\n\t * @param {Array.} events - The events to suppress.\n\t */\n\tOwl.prototype.suppress = function(events) {\n\t\t$.each(events, $.proxy(function(index, event) {\n\t\t\tthis._supress[event] = true;\n\t\t}, this));\n\t};\n\n\t/**\n\t * Releases suppressed events.\n\t * @protected\n\t * @param {Array.} events - The events to release.\n\t */\n\tOwl.prototype.release = function(events) {\n\t\t$.each(events, $.proxy(function(index, event) {\n\t\t\tdelete this._supress[event];\n\t\t}, this));\n\t};\n\n\t/**\n\t * Gets unified pointer coordinates from event.\n\t * @todo #261\n\t * @protected\n\t * @param {Event} - The `mousedown` or `touchstart` event.\n\t * @returns {Object} - Contains `x` and `y` coordinates of current pointer position.\n\t */\n\tOwl.prototype.pointer = function(event) {\n\t\tvar result = { x: null, y: null };\n\n\t\tevent = event.originalEvent || event || window.event;\n\n\t\tevent = event.touches && event.touches.length ?\n\t\t\tevent.touches[0] : event.changedTouches && event.changedTouches.length ?\n\t\t\t\tevent.changedTouches[0] : event;\n\n\t\tif (event.pageX) {\n\t\t\tresult.x = event.pageX;\n\t\t\tresult.y = event.pageY;\n\t\t} else {\n\t\t\tresult.x = event.clientX;\n\t\t\tresult.y = event.clientY;\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t/**\n\t * Determines if the input is a Number or something that can be coerced to a Number\n\t * @protected\n\t * @param {Number|String|Object|Array|Boolean|RegExp|Function|Symbol} - The input to be tested\n\t * @returns {Boolean} - An indication if the input is a Number or can be coerced to a Number\n\t */\n\tOwl.prototype.isNumeric = function(number) {\n\t\treturn !isNaN(parseFloat(number));\n\t};\n\n\t/**\n\t * Gets the difference of two vectors.\n\t * @todo #261\n\t * @protected\n\t * @param {Object} - The first vector.\n\t * @param {Object} - The second vector.\n\t * @returns {Object} - The difference.\n\t */\n\tOwl.prototype.difference = function(first, second) {\n\t\treturn {\n\t\t\tx: first.x - second.x,\n\t\t\ty: first.y - second.y\n\t\t};\n\t};\n\n\t/**\n\t * The jQuery Plugin for the Owl Carousel\n\t * @todo Navigation plugin `next` and `prev`\n\t * @public\n\t */\n\t$.fn.owlCarousel = function(option) {\n\t\tvar args = Array.prototype.slice.call(arguments, 1);\n\n\t\treturn this.each(function() {\n\t\t\tvar $this = $(this),\n\t\t\t\tdata = $this.data('owl.carousel');\n\n\t\t\tif (!data) {\n\t\t\t\tdata = new Owl(this, typeof option == 'object' && option);\n\t\t\t\t$this.data('owl.carousel', data);\n\n\t\t\t\t$.each([\n\t\t\t\t\t'next', 'prev', 'to', 'destroy', 'refresh', 'replace', 'add', 'remove'\n\t\t\t\t], function(i, event) {\n\t\t\t\t\tdata.register({ type: Owl.Type.Event, name: event });\n\t\t\t\t\tdata.$element.on(event + '.owl.carousel.core', $.proxy(function(e) {\n\t\t\t\t\t\tif (e.namespace && e.relatedTarget !== this) {\n\t\t\t\t\t\t\tthis.suppress([ event ]);\n\t\t\t\t\t\t\tdata[event].apply(this, [].slice.call(arguments, 1));\n\t\t\t\t\t\t\tthis.release([ event ]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, data));\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (typeof option == 'string' && option.charAt(0) !== '_') {\n\t\t\t\tdata[option].apply(data, args);\n\t\t\t}\n\t\t});\n\t};\n\n\t/**\n\t * The constructor for the jQuery Plugin\n\t * @public\n\t */\n\t$.fn.owlCarousel.Constructor = Owl;\n\n})(window.Zepto || window.jQuery, window, document);\n","/**\n * Navigation Plugin\n * @version 2.3.4\n * @author Artus Kolanowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n */\n;(function($, window, document, undefined) {\n\t'use strict';\n\n\t/**\n\t * Creates the navigation plugin.\n\t * @class The Navigation Plugin\n\t * @param {Owl} carousel - The Owl Carousel.\n\t */\n\tvar Navigation = function(carousel) {\n\t\t/**\n\t\t * Reference to the core.\n\t\t * @protected\n\t\t * @type {Owl}\n\t\t */\n\t\tthis._core = carousel;\n\n\t\t/**\n\t\t * Indicates whether the plugin is initialized or not.\n\t\t * @protected\n\t\t * @type {Boolean}\n\t\t */\n\t\tthis._initialized = false;\n\n\t\t/**\n\t\t * The current paging indexes.\n\t\t * @protected\n\t\t * @type {Array}\n\t\t */\n\t\tthis._pages = [];\n\n\t\t/**\n\t\t * All DOM elements of the user interface.\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._controls = {};\n\n\t\t/**\n\t\t * Markup for an indicator.\n\t\t * @protected\n\t\t * @type {Array.}\n\t\t */\n\t\tthis._templates = [];\n\n\t\t/**\n\t\t * The carousel element.\n\t\t * @type {jQuery}\n\t\t */\n\t\tthis.$element = this._core.$element;\n\n\t\t/**\n\t\t * Overridden methods of the carousel.\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._overrides = {\n\t\t\tnext: this._core.next,\n\t\t\tprev: this._core.prev,\n\t\t\tto: this._core.to\n\t\t};\n\n\t\t/**\n\t\t * All event handlers.\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._handlers = {\n\t\t\t'prepared.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.settings.dotsData) {\n\t\t\t\t\tthis._templates.push('
' +\n\t\t\t\t\t\t$(e.content).find('[data-dot]').addBack('[data-dot]').attr('data-dot') + '
');\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'added.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.settings.dotsData) {\n\t\t\t\t\tthis._templates.splice(e.position, 0, this._templates.pop());\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'remove.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.settings.dotsData) {\n\t\t\t\t\tthis._templates.splice(e.position, 1);\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'changed.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && e.property.name == 'position') {\n\t\t\t\t\tthis.draw();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'initialized.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && !this._initialized) {\n\t\t\t\t\tthis._core.trigger('initialize', null, 'navigation');\n\t\t\t\t\tthis.initialize();\n\t\t\t\t\tthis.update();\n\t\t\t\t\tthis.draw();\n\t\t\t\t\tthis._initialized = true;\n\t\t\t\t\tthis._core.trigger('initialized', null, 'navigation');\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'refreshed.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._initialized) {\n\t\t\t\t\tthis._core.trigger('refresh', null, 'navigation');\n\t\t\t\t\tthis.update();\n\t\t\t\t\tthis.draw();\n\t\t\t\t\tthis._core.trigger('refreshed', null, 'navigation');\n\t\t\t\t}\n\t\t\t}, this)\n\t\t};\n\n\t\t// set default options\n\t\tthis._core.options = $.extend({}, Navigation.Defaults, this._core.options);\n\n\t\t// register event handlers\n\t\tthis.$element.on(this._handlers);\n\t};\n\n\t/**\n\t * Default options.\n\t * @public\n\t * @todo Rename `slideBy` to `navBy`\n\t */\n\tNavigation.Defaults = {\n\t\tnav: false,\n\t\tnavText: [\n\t\t\t'',\n\t\t\t''\n\t\t],\n\t\tnavSpeed: false,\n\t\tnavElement: 'button type=\"button\" role=\"presentation\"',\n\t\tnavContainer: false,\n\t\tnavContainerClass: 'owl-nav',\n\t\tnavClass: [\n\t\t\t'owl-prev',\n\t\t\t'owl-next'\n\t\t],\n\t\tslideBy: 1,\n\t\tdotClass: 'owl-dot',\n\t\tdotsClass: 'owl-dots',\n\t\tdots: true,\n\t\tdotsEach: false,\n\t\tdotsData: false,\n\t\tdotsSpeed: false,\n\t\tdotsContainer: false\n\t};\n\n\t/**\n\t * Initializes the layout of the plugin and extends the carousel.\n\t * @protected\n\t */\n\tNavigation.prototype.initialize = function() {\n\t\tvar override,\n\t\t\tsettings = this._core.settings;\n\n\t\t// create DOM structure for relative navigation\n\t\tthis._controls.$relative = (settings.navContainer ? $(settings.navContainer)\n\t\t\t: $('
').addClass(settings.navContainerClass).appendTo(this.$element)).addClass('disabled');\n\n\t\tthis._controls.$previous = $('<' + settings.navElement + '>')\n\t\t\t.addClass(settings.navClass[0])\n\t\t\t.html(settings.navText[0])\n\t\t\t.prependTo(this._controls.$relative)\n\t\t\t.on('click', $.proxy(function(e) {\n\t\t\t\tthis.prev(settings.navSpeed);\n\t\t\t}, this));\n\t\tthis._controls.$next = $('<' + settings.navElement + '>')\n\t\t\t.addClass(settings.navClass[1])\n\t\t\t.html(settings.navText[1])\n\t\t\t.appendTo(this._controls.$relative)\n\t\t\t.on('click', $.proxy(function(e) {\n\t\t\t\tthis.next(settings.navSpeed);\n\t\t\t}, this));\n\n\t\t// create DOM structure for absolute navigation\n\t\tif (!settings.dotsData) {\n\t\t\tthis._templates = [ $('