/*! jQuery Migrate v3.4.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ "undefined"==typeof jQuery.migrateMute&&(jQuery.migrateMute=!0),function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],function(e){return t(e,window)}):"object"==typeof module&&module.exports?module.exports=t(require("jquery"),window):t(jQuery,window)}(function(s,n){"use strict";function e(e){return 0<=function(e,t){for(var r=/^(\d+)\.(\d+)\.(\d+)/,n=r.exec(e)||[],o=r.exec(t)||[],a=1;a<=3;a++){if(+o[a]<+n[a])return 1;if(+n[a]<+o[a])return-1}return 0}(s.fn.jquery,e)}s.migrateVersion="3.4.1";var t=Object.create(null);s.migrateDisablePatches=function(){for(var e=0;e\x20\t\r\n\f]*)[^>]*)\/>/gi;s.UNSAFE_restoreLegacyHtmlPrefilter=function(){s.migrateEnablePatches("self-closed-tags")},i(s,"htmlPrefilter",function(e){var t,r;return(r=(t=e).replace(F,"<$1>"))!==t&&T(t)!==T(r)&&u("self-closed-tags","HTML tags must be properly nested and closed: "+t),e.replace(F,"<$1>")},"self-closed-tags"),s.migrateDisablePatches("self-closed-tags");var D,W,_,I=s.fn.offset;return i(s.fn,"offset",function(){var e=this[0];return!e||e.nodeType&&e.getBoundingClientRect?I.apply(this,arguments):(u("offset-valid-elem","jQuery.fn.offset() requires a valid DOM element"),arguments.length?this:void 0)},"offset-valid-elem"),s.ajax&&(D=s.param,i(s,"param",function(e,t){var r=s.ajaxSettings&&s.ajaxSettings.traditional;return void 0===t&&r&&(u("param-ajax-traditional","jQuery.param() no longer uses jQuery.ajaxSettings.traditional"),t=r),D.call(this,e,t)},"param-ajax-traditional")),c(s.fn,"andSelf",s.fn.addBack,"andSelf","jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()"),s.Deferred&&(W=s.Deferred,_=[["resolve","done",s.Callbacks("once memory"),s.Callbacks("once memory"),"resolved"],["reject","fail",s.Callbacks("once memory"),s.Callbacks("once memory"),"rejected"],["notify","progress",s.Callbacks("memory"),s.Callbacks("memory")]],i(s,"Deferred",function(e){var a=W(),i=a.promise();function t(){var o=arguments;return s.Deferred(function(n){s.each(_,function(e,t){var r="function"==typeof o[e]&&o[e];a[t[1]](function(){var e=r&&r.apply(this,arguments);e&&"function"==typeof e.promise?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[t[0]+"With"](this===i?n.promise():this,r?[e]:arguments)})}),o=null}).promise()}return c(a,"pipe",t,"deferred-pipe","deferred.pipe() is deprecated"),c(i,"pipe",t,"deferred-pipe","deferred.pipe() is deprecated"),e&&e.call(a,a),a},"deferred-pipe"),s.Deferred.exceptionHook=W.exceptionHook),s}); ; (function (factory) { "use strict"; if (typeof define === "function" && define.amd) { define(["jquery"], factory) } else { factory(jQuery) } })(function ($) { "use strict"; var instances = [], matchers = [], defaultOptions = { precision: 100, elapse: !1, defer: !1 }; matchers.push(/^[0-9]*$/.source); matchers.push(/([0-9]{1,2}\/){2}[0-9]{4}( [0-9]{1,2}(:[0-9]{2}){2})?/.source); matchers.push(/[0-9]{4}([\/\-][0-9]{1,2}){2}( [0-9]{1,2}(:[0-9]{2}){2})?/.source); matchers = new RegExp(matchers.join("|")); function parseDateString(dateString) { if (dateString instanceof Date) { return dateString } if (String(dateString).match(matchers)) { if (String(dateString).match(/^[0-9]*$/)) { dateString = Number(dateString) } if (String(dateString).match(/\-/)) { dateString = String(dateString).replace(/\-/g, "/") } return new Date(dateString) } else { throw new Error("Couldn't cast `" + dateString + "` to a date object.") } } var DIRECTIVE_KEY_MAP = { Y: "years", m: "months", n: "daysToMonth", d: "daysToWeek", w: "weeks", W: "weeksToMonth", H: "hours", M: "minutes", S: "seconds", D: "totalDays", I: "totalHours", N: "totalMinutes", T: "totalSeconds" }; function escapedRegExp(str) { var sanitize = str.toString().replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1"); return new RegExp(sanitize) } function strftime(offsetObject) { return function (format) { var directives = format.match(/%(-|!)?[A-Z]{1}(:[^;]+;)?/gi); if (directives) { for (var i = 0, len = directives.length; i < len; ++i) { var directive = directives[i].match(/%(-|!)?([a-zA-Z]{1})(:[^;]+;)?/), regexp = escapedRegExp(directive[0]), modifier = directive[1] || "", plural = directive[3] || "", value = null; directive = directive[2]; if (DIRECTIVE_KEY_MAP.hasOwnProperty(directive)) { value = DIRECTIVE_KEY_MAP[directive]; value = Number(offsetObject[value]) } if (value !== null) { if (modifier === "!") { value = pluralize(plural, value) } if (modifier === "") { if (value < 10) { value = "0" + value.toString() } } format = format.replace(regexp, value.toString()) } } } format = format.replace(/%%/, "%"); return format } } function pluralize(format, count) { var plural = "s", singular = ""; if (format) { format = format.replace(/(:|;|\s)/gi, "").split(/\,/); if (format.length === 1) { plural = format[0] } else { singular = format[0]; plural = format[1] } } if (Math.abs(count) > 1) { return plural } else { return singular } } var Countdown = function (el, finalDate, options) { this.el = el; this.$el = $(el); this.interval = null; this.offset = {}; this.options = $.extend({}, defaultOptions); this.instanceNumber = instances.length; instances.push(this); this.$el.data("countdown-instance", this.instanceNumber); if (options) { if (typeof options === "function") { this.$el.on("update.countdown", options); this.$el.on("stoped.countdown", options); this.$el.on("finish.countdown", options) } else { this.options = $.extend({}, defaultOptions, options) } } this.setFinalDate(finalDate); if (this.options.defer === !1) { this.start() } }; $.extend(Countdown.prototype, { start: function () { if (this.interval !== null) { clearInterval(this.interval) } var self = this; this.update(); this.interval = setInterval(function () { self.update.call(self) }, this.options.precision) }, stop: function () { clearInterval(this.interval); this.interval = null; this.dispatchEvent("stoped") }, toggle: function () { if (this.interval) { this.stop() } else { this.start() } }, pause: function () { this.stop() }, resume: function () { this.start() }, remove: function () { this.stop.call(this); instances[this.instanceNumber] = null; delete this.$el.data().countdownInstance }, setFinalDate: function (value) { this.finalDate = parseDateString(value) }, update: function () { if (this.$el.closest("html").length === 0) { this.remove(); return } var hasEventsAttached = $._data(this.el, "events") !== undefined, now = new Date(), newTotalSecsLeft; newTotalSecsLeft = this.finalDate.getTime() - now.getTime(); newTotalSecsLeft = Math.ceil(newTotalSecsLeft / 1e3); newTotalSecsLeft = !this.options.elapse && newTotalSecsLeft < 0 ? 0 : Math.abs(newTotalSecsLeft); if (this.totalSecsLeft === newTotalSecsLeft || !hasEventsAttached) { return } else { this.totalSecsLeft = newTotalSecsLeft } this.elapsed = now >= this.finalDate; this.offset = { seconds: this.totalSecsLeft % 60, minutes: Math.floor(this.totalSecsLeft / 60) % 60, hours: Math.floor(this.totalSecsLeft / 60 / 60) % 24, days: Math.floor(this.totalSecsLeft / 60 / 60 / 24) % 7, daysToWeek: Math.floor(this.totalSecsLeft / 60 / 60 / 24) % 7, daysToMonth: Math.floor(this.totalSecsLeft / 60 / 60 / 24 % 30.4368), weeks: Math.floor(this.totalSecsLeft / 60 / 60 / 24 / 7), weeksToMonth: Math.floor(this.totalSecsLeft / 60 / 60 / 24 / 7) % 4, months: Math.floor(this.totalSecsLeft / 60 / 60 / 24 / 30.4368), years: Math.abs(this.finalDate.getFullYear() - now.getFullYear()), totalDays: Math.floor(this.totalSecsLeft / 60 / 60 / 24), totalHours: Math.floor(this.totalSecsLeft / 60 / 60), totalMinutes: Math.floor(this.totalSecsLeft / 60), totalSeconds: this.totalSecsLeft }; if (!this.options.elapse && this.totalSecsLeft === 0) { this.stop(); this.dispatchEvent("finish") } else { this.dispatchEvent("update") } }, dispatchEvent: function (eventName) { var event = $.Event(eventName + ".countdown"); event.finalDate = this.finalDate; event.elapsed = this.elapsed; event.offset = $.extend({}, this.offset); event.strftime = strftime(this.offset); this.$el.trigger(event) } }); $.fn.countdown = function () { var argumentsArray = Array.prototype.slice.call(arguments, 0); return this.each(function () { var instanceNumber = $(this).data("countdown-instance"); if (instanceNumber !== undefined) { var instance = instances[instanceNumber], method = argumentsArray[0]; if (Countdown.prototype.hasOwnProperty(method)) { instance[method].apply(instance, argumentsArray.slice(1)) } else if (String(method).match(/^[$A-Z_][0-9A-Z_$]*$/i) === null) { instance.setFinalDate.call(instance, method); instance.start() } else { $.error("Method %s does not exist on jQuery.countdown".replace(/\%s/gi, method)) } } else { new Countdown(this, argumentsArray[0], argumentsArray[1]) } }) } }); (function ($, window, document, undefined) { function Owl(element, options) { this.settings = null; this.options = $.extend({}, Owl.Defaults, options); this.$element = $(element); this._handlers = {}; this._plugins = {}; this._supress = {}; this._current = null; this._speed = null; this._coordinates = []; this._breakpoint = null; this._width = null; this._items = []; this._clones = []; this._mergers = []; this._widths = []; this._invalidated = {}; this._pipe = []; this._drag = { time: null, target: null, pointer: null, stage: { start: null, current: null }, direction: null }; this._states = { current: {}, tags: { 'initializing': ['busy'], 'animating': ['busy'], 'dragging': ['interacting'] } }; $.each(['onResize', 'onThrottledResize'], $.proxy(function (i, handler) { this._handlers[handler] = $.proxy(this[handler], this) }, this)); $.each(Owl.Plugins, $.proxy(function (key, plugin) { this._plugins[key.charAt(0).toLowerCase() + key.slice(1)] = new plugin(this) }, this)); $.each(Owl.Workers, $.proxy(function (priority, worker) { this._pipe.push({ 'filter': worker.filter, 'run': $.proxy(worker.run, this) }) }, this)); this.setup(); this.initialize() } Owl.Defaults = { items: 3, loop: !1, center: !1, rewind: !1, checkVisibility: !0, mouseDrag: !0, touchDrag: !0, pullDrag: !0, freeDrag: !1, margin: 0, stagePadding: 0, merge: !1, mergeFit: !0, autoWidth: !1, startPosition: 0, rtl: !1, smartSpeed: 250, fluidSpeed: !1, dragEndSpeed: !1, responsive: {}, responsiveRefreshRate: 200, responsiveBaseElement: window, fallbackEasing: 'swing', slideTransition: '', info: !1, nestedItemSelector: !1, itemElement: 'div', stageElement: 'div', refreshClass: 'owl-refresh', loadedClass: 'owl-loaded', loadingClass: 'owl-loading', rtlClass: 'owl-rtl', responsiveClass: 'owl-responsive', dragClass: 'owl-drag', itemClass: 'owl-item', stageClass: 'owl-stage', stageOuterClass: 'owl-stage-outer', grabClass: 'owl-grab' }; Owl.Width = { Default: 'default', Inner: 'inner', Outer: 'outer' }; Owl.Type = { Event: 'event', State: 'state' }; Owl.Plugins = {}; Owl.Workers = [{ filter: ['width', 'settings'], run: function () { this._width = this.$element.width() } }, { filter: ['width', 'items', 'settings'], run: function (cache) { cache.current = this._items && this._items[this.relative(this._current)] } }, { filter: ['items', 'settings'], run: function () { this.$stage.children('.cloned').remove() } }, { filter: ['width', 'items', 'settings'], run: function (cache) { var margin = this.settings.margin || '', grid = !this.settings.autoWidth, rtl = this.settings.rtl, css = { 'width': 'auto', 'margin-left': rtl ? margin : '', 'margin-right': rtl ? '' : margin }; !grid && this.$stage.children().css(css); cache.css = css } }, { filter: ['width', 'items', 'settings'], run: function (cache) { var width = (this.width() / this.settings.items).toFixed(3) - this.settings.margin, merge = null, iterator = this._items.length, grid = !this.settings.autoWidth, widths = []; cache.items = { merge: !1, width: width }; while (iterator--) { merge = this._mergers[iterator]; merge = this.settings.mergeFit && Math.min(merge, this.settings.items) || merge; cache.items.merge = merge > 1 || cache.items.merge; widths[iterator] = !grid ? this._items[iterator].width() : width * merge } this._widths = widths } }, { filter: ['items', 'settings'], run: function () { var clones = [], items = this._items, settings = this.settings, view = Math.max(settings.items * 2, 4), size = Math.ceil(items.length / 2) * 2, repeat = settings.loop && items.length ? settings.rewind ? view : Math.max(view, size) : 0, append = '', prepend = ''; repeat /= 2; while (repeat > 0) { clones.push(this.normalize(clones.length / 2, !0)); append = append + items[clones[clones.length - 1]][0].outerHTML; clones.push(this.normalize(items.length - 1 - (clones.length - 1) / 2, !0)); prepend = items[clones[clones.length - 1]][0].outerHTML + prepend; repeat -= 1 } this._clones = clones; $(append).addClass('cloned').appendTo(this.$stage); $(prepend).addClass('cloned').prependTo(this.$stage) } }, { filter: ['width', 'items', 'settings'], run: function () { var rtl = this.settings.rtl ? 1 : -1, size = this._clones.length + this._items.length, iterator = -1, previous = 0, current = 0, coordinates = []; while (++iterator < size) { previous = coordinates[iterator - 1] || 0; current = this._widths[this.relative(iterator)] + this.settings.margin; coordinates.push(previous + current * rtl) } this._coordinates = coordinates } }, { filter: ['width', 'items', 'settings'], run: function () { var padding = this.settings.stagePadding, coordinates = this._coordinates, css = { 'width': Math.ceil(Math.abs(coordinates[coordinates.length - 1])) + padding * 2, 'padding-left': padding || '', 'padding-right': padding || '' }; this.$stage.css(css) } }, { filter: ['width', 'items', 'settings'], run: function (cache) { var iterator = this._coordinates.length, grid = !this.settings.autoWidth, items = this.$stage.children(); if (grid && cache.items.merge) { while (iterator--) { cache.css.width = this._widths[this.relative(iterator)]; items.eq(iterator).css(cache.css) } } else if (grid) { cache.css.width = cache.items.width; items.css(cache.css) } } }, { filter: ['items'], run: function () { this._coordinates.length < 1 && this.$stage.removeAttr('style') } }, { filter: ['width', 'items', 'settings'], run: function (cache) { cache.current = cache.current ? this.$stage.children().index(cache.current) : 0; cache.current = Math.max(this.minimum(), Math.min(this.maximum(), cache.current)); this.reset(cache.current) } }, { filter: ['position'], run: function () { this.animate(this.coordinates(this._current)) } }, { filter: ['width', 'position', 'items', 'settings'], run: function () { var rtl = this.settings.rtl ? 1 : -1, padding = this.settings.stagePadding * 2, begin = this.coordinates(this.current()) + padding, end = begin + this.width() * rtl, inner, outer, matches = [], i, n; for (i = 0, n = this._coordinates.length; i < n; i++) { inner = this._coordinates[i - 1] || 0; outer = Math.abs(this._coordinates[i]) + padding * rtl; if ((this.op(inner, '<=', begin) && (this.op(inner, '>', end))) || (this.op(outer, '<', begin) && this.op(outer, '>', end))) { matches.push(i) } } this.$stage.children('.active').removeClass('active'); this.$stage.children(':eq(' + matches.join('), :eq(') + ')').addClass('active'); this.$stage.children('.center').removeClass('center'); if (this.settings.center) { this.$stage.children().eq(this.current()).addClass('center') } } }]; Owl.prototype.initializeStage = function () { this.$stage = this.$element.find('.' + this.settings.stageClass); if (this.$stage.length) { return } this.$element.addClass(this.options.loadingClass); this.$stage = $('<' + this.settings.stageElement + '>', { "class": this.settings.stageClass }).wrap($('
', { "class": this.settings.stageOuterClass })); this.$element.append(this.$stage.parent()) }; Owl.prototype.initializeItems = function () { var $items = this.$element.find('.owl-item'); if ($items.length) { this._items = $items.get().map(function (item) { return $(item) }); this._mergers = this._items.map(function () { return 1 }); this.refresh(); return } this.replace(this.$element.children().not(this.$stage.parent())); if (this.isVisible()) { this.refresh() } else { this.invalidate('width') } this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass) }; Owl.prototype.initialize = function () { this.enter('initializing'); this.trigger('initialize'); this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl); if (this.settings.autoWidth && !this.is('pre-loading')) { var imgs, nestedSelector, width; imgs = this.$element.find('img'); nestedSelector = this.settings.nestedItemSelector ? '.' + this.settings.nestedItemSelector : undefined; width = this.$element.children(nestedSelector).width(); if (imgs.length && width <= 0) { this.preloadAutoWidthImages(imgs) } } this.initializeStage(); this.initializeItems(); this.registerEventHandlers(); this.leave('initializing'); this.trigger('initialized') }; Owl.prototype.isVisible = function () { return this.settings.checkVisibility ? this.$element.is(':visible') : !0 }; Owl.prototype.setup = function () { var viewport = this.viewport(), overwrites = this.options.responsive, match = -1, settings = null; if (!overwrites) { settings = $.extend({}, this.options) } else { $.each(overwrites, function (breakpoint) { if (breakpoint <= viewport && breakpoint > match) { match = Number(breakpoint) } }); settings = $.extend({}, this.options, overwrites[match]); if (typeof settings.stagePadding === 'function') { settings.stagePadding = settings.stagePadding() } delete settings.responsive; if (settings.responsiveClass) { this.$element.attr('class', this.$element.attr('class').replace(new RegExp('(' + this.options.responsiveClass + '-)\\S+\\s', 'g'), '$1' + match)) } } this.trigger('change', { property: { name: 'settings', value: settings } }); this._breakpoint = match; this.settings = settings; this.invalidate('settings'); this.trigger('changed', { property: { name: 'settings', value: this.settings } }) }; Owl.prototype.optionsLogic = function () { if (this.settings.autoWidth) { this.settings.stagePadding = !1; this.settings.merge = !1 } }; Owl.prototype.prepare = function (item) { var event = this.trigger('prepare', { content: item }); if (!event.data) { event.data = $('<' + this.settings.itemElement + '/>').addClass(this.options.itemClass).append(item) } this.trigger('prepared', { content: event.data }); return event.data }; Owl.prototype.update = function () { var i = 0, n = this._pipe.length, filter = $.proxy(function (p) { return this[p] }, this._invalidated), cache = {}; while (i < n) { if (this._invalidated.all || $.grep(this._pipe[i].filter, filter).length > 0) { this._pipe[i].run(cache) } i++ } this._invalidated = {}; !this.is('valid') && this.enter('valid') }; Owl.prototype.width = function (dimension) { dimension = dimension || Owl.Width.Default; switch (dimension) { case Owl.Width.Inner: case Owl.Width.Outer: return this._width; default: return this._width - this.settings.stagePadding * 2 + this.settings.margin } }; Owl.prototype.refresh = function () { this.enter('refreshing'); this.trigger('refresh'); this.setup(); this.optionsLogic(); this.$element.addClass(this.options.refreshClass); this.update(); this.$element.removeClass(this.options.refreshClass); this.leave('refreshing'); this.trigger('refreshed') }; Owl.prototype.onThrottledResize = function () { window.clearTimeout(this.resizeTimer); this.resizeTimer = window.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate) }; Owl.prototype.onResize = function () { if (!this._items.length) { return !1 } if (this._width === this.$element.width()) { return !1 } if (!this.isVisible()) { return !1 } this.enter('resizing'); if (this.trigger('resize').isDefaultPrevented()) { this.leave('resizing'); return !1 } this.invalidate('width'); this.refresh(); this.leave('resizing'); this.trigger('resized') }; Owl.prototype.registerEventHandlers = function () { if ($.support.transition) { this.$stage.on($.support.transition.end + '.owl.core', $.proxy(this.onTransitionEnd, this)) } if (this.settings.responsive !== !1) { this.on(window, 'resize', this._handlers.onThrottledResize) } if (this.settings.mouseDrag) { this.$element.addClass(this.options.dragClass); this.$stage.on('mousedown.owl.core', $.proxy(this.onDragStart, this)); this.$stage.on('dragstart.owl.core selectstart.owl.core', function () { return !1 }) } if (this.settings.touchDrag) { this.$stage.on('touchstart.owl.core', $.proxy(this.onDragStart, this)); this.$stage.on('touchcancel.owl.core', $.proxy(this.onDragEnd, this)) } }; Owl.prototype.onDragStart = function (event) { var stage = null; if (event.which === 3) { return } if ($.support.transform) { stage = this.$stage.css('transform').replace(/.*\(|\)| /g, '').split(','); stage = { x: stage[stage.length === 16 ? 12 : 4], y: stage[stage.length === 16 ? 13 : 5] } } else { stage = this.$stage.position(); stage = { x: this.settings.rtl ? stage.left + this.$stage.width() - this.width() + this.settings.margin : stage.left, y: stage.top } } if (this.is('animating')) { $.support.transform ? this.animate(stage.x) : this.$stage.stop() this.invalidate('position') } this.$element.toggleClass(this.options.grabClass, event.type === 'mousedown'); this.speed(0); this._drag.time = new Date().getTime(); this._drag.target = $(event.target); this._drag.stage.start = stage; this._drag.stage.current = stage; this._drag.pointer = this.pointer(event); $(document).on('mouseup.owl.core touchend.owl.core', $.proxy(this.onDragEnd, this)); $(document).one('mousemove.owl.core touchmove.owl.core', $.proxy(function (event) { var delta = this.difference(this._drag.pointer, this.pointer(event)); $(document).on('mousemove.owl.core touchmove.owl.core', $.proxy(this.onDragMove, this)); if (Math.abs(delta.x) < Math.abs(delta.y) && this.is('valid')) { return } event.preventDefault(); this.enter('dragging'); this.trigger('drag') }, this)) }; Owl.prototype.onDragMove = function (event) { var minimum = null, maximum = null, pull = null, delta = this.difference(this._drag.pointer, this.pointer(event)), stage = this.difference(this._drag.stage.start, delta); if (!this.is('dragging')) { return } event.preventDefault(); if (this.settings.loop) { minimum = this.coordinates(this.minimum()); maximum = this.coordinates(this.maximum() + 1) - minimum; stage.x = (((stage.x - minimum) % maximum + maximum) % maximum) + minimum } else { minimum = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum()); maximum = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum()); pull = this.settings.pullDrag ? -1 * delta.x / 5 : 0; stage.x = Math.max(Math.min(stage.x, minimum + pull), maximum + pull) } this._drag.stage.current = stage; this.animate(stage.x) }; Owl.prototype.onDragEnd = function (event) { var delta = this.difference(this._drag.pointer, this.pointer(event)), stage = this._drag.stage.current, direction = delta.x > 0 ^ this.settings.rtl ? 'left' : 'right'; $(document).off('.owl.core'); this.$element.removeClass(this.options.grabClass); if (delta.x !== 0 && this.is('dragging') || !this.is('valid')) { this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed); this.current(this.closest(stage.x, delta.x !== 0 ? direction : this._drag.direction)); this.invalidate('position'); this.update(); this._drag.direction = direction; if (Math.abs(delta.x) > 3 || new Date().getTime() - this._drag.time > 300) { this._drag.target.one('click.owl.core', function () { return !1 }) } } if (!this.is('dragging')) { return } this.leave('dragging'); this.trigger('dragged') }; Owl.prototype.closest = function (coordinate, direction) { var position = -1, pull = 30, width = this.width(), coordinates = this.coordinates(); if (!this.settings.freeDrag) { $.each(coordinates, $.proxy(function (index, value) { if (direction === 'left' && coordinate > value - pull && coordinate < value + pull) { position = index } else if (direction === 'right' && coordinate > value - width - pull && coordinate < value - width + pull) { position = index + 1 } else if (this.op(coordinate, '<', value) && this.op(coordinate, '>', coordinates[index + 1] !== undefined ? coordinates[index + 1] : value - width)) { position = direction === 'left' ? index + 1 : index } return position === -1 }, this)) } if (!this.settings.loop) { if (this.op(coordinate, '>', coordinates[this.minimum()])) { position = coordinate = this.minimum() } else if (this.op(coordinate, '<', coordinates[this.maximum()])) { position = coordinate = this.maximum() } } return position }; Owl.prototype.animate = function (coordinate) { var animate = this.speed() > 0; this.is('animating') && this.onTransitionEnd(); if (animate) { this.enter('animating'); this.trigger('translate') } if ($.support.transform3d && $.support.transition) { this.$stage.css({ transform: 'translate3d(' + coordinate + 'px,0px,0px)', transition: (this.speed() / 1000) + 's' + (this.settings.slideTransition ? ' ' + this.settings.slideTransition : '') }) } else if (animate) { this.$stage.animate({ left: coordinate + 'px' }, this.speed(), this.settings.fallbackEasing, $.proxy(this.onTransitionEnd, this)) } else { this.$stage.css({ left: coordinate + 'px' }) } }; Owl.prototype.is = function (state) { return this._states.current[state] && this._states.current[state] > 0 }; Owl.prototype.current = function (position) { if (position === undefined) { return this._current } if (this._items.length === 0) { return undefined } position = this.normalize(position); if (this._current !== position) { var event = this.trigger('change', { property: { name: 'position', value: position } }); if (event.data !== undefined) { position = this.normalize(event.data) } this._current = position; this.invalidate('position'); this.trigger('changed', { property: { name: 'position', value: this._current } }) } return this._current }; Owl.prototype.invalidate = function (part) { if ($.type(part) === 'string') { this._invalidated[part] = !0; this.is('valid') && this.leave('valid') } return $.map(this._invalidated, function (v, i) { return i }) }; Owl.prototype.reset = function (position) { position = this.normalize(position); if (position === undefined) { return } this._speed = 0; this._current = position; this.suppress(['translate', 'translated']); this.animate(this.coordinates(position)); this.release(['translate', 'translated']) }; Owl.prototype.normalize = function (position, relative) { var n = this._items.length, m = relative ? 0 : this._clones.length; if (!this.isNumeric(position) || n < 1) { position = undefined } else if (position < 0 || position >= n + m) { position = ((position - m / 2) % n + n) % n + m / 2 } return position }; Owl.prototype.relative = function (position) { position -= this._clones.length / 2; return this.normalize(position, !0) }; Owl.prototype.maximum = function (relative) { var settings = this.settings, maximum = this._coordinates.length, iterator, reciprocalItemsWidth, elementWidth; if (settings.loop) { maximum = this._clones.length / 2 + this._items.length - 1 } else if (settings.autoWidth || settings.merge) { iterator = this._items.length; if (iterator) { reciprocalItemsWidth = this._items[--iterator].width(); elementWidth = this.$element.width(); while (iterator--) { reciprocalItemsWidth += this._items[iterator].width() + this.settings.margin; if (reciprocalItemsWidth > elementWidth) { break } } } maximum = iterator + 1 } else if (settings.center) { maximum = this._items.length - 1 } else { maximum = this._items.length - settings.items } if (relative) { maximum -= this._clones.length / 2 } return Math.max(maximum, 0) }; Owl.prototype.minimum = function (relative) { return relative ? 0 : this._clones.length / 2 }; Owl.prototype.items = function (position) { if (position === undefined) { return this._items.slice() } position = this.normalize(position, !0); return this._items[position] }; Owl.prototype.mergers = function (position) { if (position === undefined) { return this._mergers.slice() } position = this.normalize(position, !0); return this._mergers[position] }; Owl.prototype.clones = function (position) { var odd = this._clones.length / 2, even = odd + this._items.length, map = function (index) { return index % 2 === 0 ? even + index / 2 : odd - (index + 1) / 2 }; if (position === undefined) { return $.map(this._clones, function (v, i) { return map(i) }) } return $.map(this._clones, function (v, i) { return v === position ? map(i) : null }) }; Owl.prototype.speed = function (speed) { if (speed !== undefined) { this._speed = speed } return this._speed }; Owl.prototype.coordinates = function (position) { var multiplier = 1, newPosition = position - 1, coordinate; if (position === undefined) { return $.map(this._coordinates, $.proxy(function (coordinate, index) { return this.coordinates(index) }, this)) } if (this.settings.center) { if (this.settings.rtl) { multiplier = -1; newPosition = position + 1 } coordinate = this._coordinates[position]; coordinate += (this.width() - coordinate + (this._coordinates[newPosition] || 0)) / 2 * multiplier } else { coordinate = this._coordinates[newPosition] || 0 } coordinate = Math.ceil(coordinate); return coordinate }; Owl.prototype.duration = function (from, to, factor) { if (factor === 0) { return 0 } return Math.min(Math.max(Math.abs(to - from), 1), 6) * Math.abs((factor || this.settings.smartSpeed)) }; Owl.prototype.to = function (position, speed) { var current = this.current(), revert = null, distance = position - this.relative(current), direction = (distance > 0) - (distance < 0), items = this._items.length, minimum = this.minimum(), maximum = this.maximum(); if (this.settings.loop) { if (!this.settings.rewind && Math.abs(distance) > items / 2) { distance += direction * -1 * items } position = current + distance; revert = ((position - minimum) % items + items) % items + minimum; if (revert !== position && revert - distance <= maximum && revert - distance > 0) { current = revert - distance; position = revert; this.reset(current) } } else if (this.settings.rewind) { maximum += 1; position = (position % maximum + maximum) % maximum } else { position = Math.max(minimum, Math.min(maximum, position)) } this.speed(this.duration(current, position, speed)); this.current(position); if (this.isVisible()) { this.update() } }; Owl.prototype.next = function (speed) { speed = speed || !1; this.to(this.relative(this.current()) + 1, speed) }; Owl.prototype.prev = function (speed) { speed = speed || !1; this.to(this.relative(this.current()) - 1, speed) }; Owl.prototype.onTransitionEnd = function (event) { if (event !== undefined) { event.stopPropagation(); if ((event.target || event.srcElement || event.originalTarget) !== this.$stage.get(0)) { return !1 } } this.leave('animating'); this.trigger('translated') }; Owl.prototype.viewport = function () { var width; if (this.options.responsiveBaseElement !== window) { width = $(this.options.responsiveBaseElement).width() } else if (window.innerWidth) { width = window.innerWidth } else if (document.documentElement && document.documentElement.clientWidth) { width = document.documentElement.clientWidth } else { console.warn('Can not detect viewport width.') } return width }; Owl.prototype.replace = function (content) { this.$stage.empty(); this._items = []; if (content) { content = (content instanceof jQuery) ? content : $(content) } if (this.settings.nestedItemSelector) { content = content.find('.' + this.settings.nestedItemSelector) } content.filter(function () { return this.nodeType === 1 }).each($.proxy(function (index, item) { item = this.prepare(item); this.$stage.append(item); this._items.push(item); this._mergers.push(item.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1) }, this)); this.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0); this.invalidate('items') }; Owl.prototype.add = function (content, position) { var current = this.relative(this._current); position = position === undefined ? this._items.length : this.normalize(position, !0); content = content instanceof jQuery ? content : $(content); this.trigger('add', { content: content, position: position }); content = this.prepare(content); if (this._items.length === 0 || position === this._items.length) { this._items.length === 0 && this.$stage.append(content); this._items.length !== 0 && this._items[position - 1].after(content); this._items.push(content); this._mergers.push(content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1) } else { this._items[position].before(content); this._items.splice(position, 0, content); this._mergers.splice(position, 0, content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1) } this._items[current] && this.reset(this._items[current].index()); this.invalidate('items'); this.trigger('added', { content: content, position: position }) }; Owl.prototype.remove = function (position) { position = this.normalize(position, !0); if (position === undefined) { return } this.trigger('remove', { content: this._items[position], position: position }); this._items[position].remove(); this._items.splice(position, 1); this._mergers.splice(position, 1); this.invalidate('items'); this.trigger('removed', { content: null, position: position }) }; Owl.prototype.preloadAutoWidthImages = function (images) { images.each($.proxy(function (i, element) { this.enter('pre-loading'); element = $(element); $(new Image()).one('load', $.proxy(function (e) { element.attr('src', e.target.src); element.css('opacity', 1); this.leave('pre-loading'); !this.is('pre-loading') && !this.is('initializing') && this.refresh() }, this)).attr('src', element.attr('src') || element.attr('data-src') || element.attr('data-src-retina')) }, this)) }; Owl.prototype.destroy = function () { this.$element.off('.owl.core'); this.$stage.off('.owl.core'); $(document).off('.owl.core'); if (this.settings.responsive !== !1) { window.clearTimeout(this.resizeTimer); this.off(window, 'resize', this._handlers.onThrottledResize) } for (var i in this._plugins) { this._plugins[i].destroy() } this.$stage.children('.cloned').remove(); this.$stage.unwrap(); this.$stage.children().contents().unwrap(); this.$stage.children().unwrap(); this.$stage.remove(); this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr('class', this.$element.attr('class').replace(new RegExp(this.options.responsiveClass + '-\\S+\\s', 'g'), '')).removeData('owl.carousel') }; Owl.prototype.op = function (a, o, b) { var rtl = this.settings.rtl; switch (o) { case '<': return rtl ? a > b : a < b; case '>': return rtl ? a < b : a > b; case '>=': return rtl ? a <= b : a >= b; case '<=': return rtl ? a >= b : a <= b; default: break } }; Owl.prototype.on = function (element, event, listener, capture) { if (element.addEventListener) { element.addEventListener(event, listener, capture) } else if (element.attachEvent) { element.attachEvent('on' + event, listener) } }; Owl.prototype.off = function (element, event, listener, capture) { if (element.removeEventListener) { element.removeEventListener(event, listener, capture) } else if (element.detachEvent) { element.detachEvent('on' + event, listener) } }; Owl.prototype.trigger = function (name, data, namespace, state, enter) { var status = { item: { count: this._items.length, index: this.current() } }, handler = $.camelCase($.grep(['on', name, namespace], function (v) { return v }).join('-').toLowerCase()), event = $.Event([name, 'owl', namespace || 'carousel'].join('.').toLowerCase(), $.extend({ relatedTarget: this }, status, data)); if (!this._supress[name]) { $.each(this._plugins, function (name, plugin) { if (plugin.onTrigger) { plugin.onTrigger(event) } }); this.register({ type: Owl.Type.Event, name: name }); this.$element.trigger(event); if (this.settings && typeof this.settings[handler] === 'function') { this.settings[handler].call(this, event) } } return event }; Owl.prototype.enter = function (name) { $.each([name].concat(this._states.tags[name] || []), $.proxy(function (i, name) { if (this._states.current[name] === undefined) { this._states.current[name] = 0 } this._states.current[name]++ }, this)) }; Owl.prototype.leave = function (name) { $.each([name].concat(this._states.tags[name] || []), $.proxy(function (i, name) { this._states.current[name]-- }, this)) }; Owl.prototype.register = function (object) { if (object.type === Owl.Type.Event) { if (!$.event.special[object.name]) { $.event.special[object.name] = {} } if (!$.event.special[object.name].owl) { var _default = $.event.special[object.name]._default; $.event.special[object.name]._default = function (e) { if (_default && _default.apply && (!e.namespace || e.namespace.indexOf('owl') === -1)) { return _default.apply(this, arguments) } return e.namespace && e.namespace.indexOf('owl') > -1 }; $.event.special[object.name].owl = !0 } } else if (object.type === Owl.Type.State) { if (!this._states.tags[object.name]) { this._states.tags[object.name] = object.tags } else { this._states.tags[object.name] = this._states.tags[object.name].concat(object.tags) } this._states.tags[object.name] = $.grep(this._states.tags[object.name], $.proxy(function (tag, i) { return $.inArray(tag, this._states.tags[object.name]) === i }, this)) } }; Owl.prototype.suppress = function (events) { $.each(events, $.proxy(function (index, event) { this._supress[event] = !0 }, this)) }; Owl.prototype.release = function (events) { $.each(events, $.proxy(function (index, event) { delete this._supress[event] }, this)) }; Owl.prototype.pointer = function (event) { var result = { x: null, y: null }; event = event.originalEvent || event || window.event; event = event.touches && event.touches.length ? event.touches[0] : event.changedTouches && event.changedTouches.length ? event.changedTouches[0] : event; if (event.pageX) { result.x = event.pageX; result.y = event.pageY } else { result.x = event.clientX; result.y = event.clientY } return result }; Owl.prototype.isNumeric = function (number) { return !isNaN(parseFloat(number)) }; Owl.prototype.difference = function (first, second) { return { x: first.x - second.x, y: first.y - second.y } }; $.fn.owlCarousel = function (option) { var args = Array.prototype.slice.call(arguments, 1); return this.each(function () { var $this = $(this), data = $this.data('owl.carousel'); if (!data) { data = new Owl(this, typeof option == 'object' && option); $this.data('owl.carousel', data); $.each(['next', 'prev', 'to', 'destroy', 'refresh', 'replace', 'add', 'remove'], function (i, event) { data.register({ type: Owl.Type.Event, name: event }); data.$element.on(event + '.owl.carousel.core', $.proxy(function (e) { if (e.namespace && e.relatedTarget !== this) { this.suppress([event]); data[event].apply(this, [].slice.call(arguments, 1)); this.release([event]) } }, data)) }) } if (typeof option == 'string' && option.charAt(0) !== '_') { data[option].apply(data, args) } }) }; $.fn.owlCarousel.Constructor = Owl })(window.Zepto || window.jQuery, window, document); (function ($, window, document, undefined) { var AutoRefresh = function (carousel) { this._core = carousel; this._interval = null; this._visible = null; this._handlers = { 'initialized.owl.carousel': $.proxy(function (e) { if (e.namespace && this._core.settings.autoRefresh) { this.watch() } }, this) }; this._core.options = $.extend({}, AutoRefresh.Defaults, this._core.options); this._core.$element.on(this._handlers) }; AutoRefresh.Defaults = { autoRefresh: !0, autoRefreshInterval: 500 }; AutoRefresh.prototype.watch = function () { if (this._interval) { return } this._visible = this._core.isVisible(); this._interval = window.setInterval($.proxy(this.refresh, this), this._core.settings.autoRefreshInterval) }; AutoRefresh.prototype.refresh = function () { if (this._core.isVisible() === this._visible) { return } this._visible = !this._visible; this._core.$element.toggleClass('owl-hidden', !this._visible); this._visible && (this._core.invalidate('width') && this._core.refresh()) }; AutoRefresh.prototype.destroy = function () { var handler, property; window.clearInterval(this._interval); for (handler in this._handlers) { this._core.$element.off(handler, this._handlers[handler]) } for (property in Object.getOwnPropertyNames(this)) { typeof this[property] != 'function' && (this[property] = null) } }; $.fn.owlCarousel.Constructor.Plugins.AutoRefresh = AutoRefresh })(window.Zepto || window.jQuery, window, document); (function ($, window, document, undefined) { var Lazy = function (carousel) { this._core = carousel; this._loaded = []; this._handlers = { 'initialized.owl.carousel change.owl.carousel resized.owl.carousel': $.proxy(function (e) { if (!e.namespace) { return } if (!this._core.settings || !this._core.settings.lazyLoad) { return } if ((e.property && e.property.name == 'position') || e.type == 'initialized') { var settings = this._core.settings, n = (settings.center && Math.ceil(settings.items / 2) || settings.items), i = ((settings.center && n * -1) || 0), position = (e.property && e.property.value !== undefined ? e.property.value : this._core.current()) + i, clones = this._core.clones().length, load = $.proxy(function (i, v) { this.load(v) }, this); if (settings.lazyLoadEager > 0) { n += settings.lazyLoadEager; if (settings.loop) { position -= settings.lazyLoadEager; n++ } } while (i++ < n) { this.load(clones / 2 + this._core.relative(position)); clones && $.each(this._core.clones(this._core.relative(position)), load); position++ } } }, this) }; this._core.options = $.extend({}, Lazy.Defaults, this._core.options); this._core.$element.on(this._handlers) }; Lazy.Defaults = { lazyLoad: !1, lazyLoadEager: 0 }; Lazy.prototype.load = function (position) { var $item = this._core.$stage.children().eq(position), $elements = $item && $item.find('.owl-lazy'); if (!$elements || $.inArray($item.get(0), this._loaded) > -1) { return } $elements.each($.proxy(function (index, element) { var $element = $(element), image, url = (window.devicePixelRatio > 1 && $element.attr('data-src-retina')) || $element.attr('data-src') || $element.attr('data-srcset'); this._core.trigger('load', { element: $element, url: url }, 'lazy'); if ($element.is('img')) { $element.one('load.owl.lazy', $.proxy(function () { $element.css('opacity', 1); this._core.trigger('loaded', { element: $element, url: url }, 'lazy') }, this)).attr('src', url) } else if ($element.is('source')) { $element.one('load.owl.lazy', $.proxy(function () { this._core.trigger('loaded', { element: $element, url: url }, 'lazy') }, this)).attr('srcset', url) } else { image = new Image(); image.onload = $.proxy(function () { $element.css({ 'background-image': 'url("' + url + '")', 'opacity': '1' }); this._core.trigger('loaded', { element: $element, url: url }, 'lazy') }, this); image.src = url } }, this)); this._loaded.push($item.get(0)) }; Lazy.prototype.destroy = function () { var handler, property; for (handler in this.handlers) { this._core.$element.off(handler, this.handlers[handler]) } for (property in Object.getOwnPropertyNames(this)) { typeof this[property] != 'function' && (this[property] = null) } }; $.fn.owlCarousel.Constructor.Plugins.Lazy = Lazy })(window.Zepto || window.jQuery, window, document); (function ($, window, document, undefined) { var AutoHeight = function (carousel) { this._core = carousel; this._previousHeight = null; this._handlers = { 'initialized.owl.carousel refreshed.owl.carousel': $.proxy(function (e) { if (e.namespace && this._core.settings.autoHeight) { this.update() } }, this), 'changed.owl.carousel': $.proxy(function (e) { if (e.namespace && this._core.settings.autoHeight && e.property.name === 'position') { this.update() } }, this), 'loaded.owl.lazy': $.proxy(function (e) { if (e.namespace && this._core.settings.autoHeight && e.element.closest('.' + this._core.settings.itemClass).index() === this._core.current()) { this.update() } }, this) }; this._core.options = $.extend({}, AutoHeight.Defaults, this._core.options); this._core.$element.on(this._handlers); this._intervalId = null; var refThis = this; $(window).on('load', function () { if (refThis._core.settings.autoHeight) { refThis.update() } }); $(window).resize(function () { if (refThis._core.settings.autoHeight) { if (refThis._intervalId != null) { clearTimeout(refThis._intervalId) } refThis._intervalId = setTimeout(function () { refThis.update() }, 250) } }) }; AutoHeight.Defaults = { autoHeight: !1, autoHeightClass: 'owl-height' }; AutoHeight.prototype.update = function () { var start = this._core._current, end = start + this._core.settings.items, lazyLoadEnabled = this._core.settings.lazyLoad, visible = this._core.$stage.children().toArray().slice(start, end), heights = [], maxheight = 0; $.each(visible, function (index, item) { heights.push($(item).height()) }); maxheight = Math.max.apply(null, heights); if (maxheight <= 1 && lazyLoadEnabled && this._previousHeight) { maxheight = this._previousHeight } this._previousHeight = maxheight; this._core.$stage.parent().height(maxheight).addClass(this._core.settings.autoHeightClass) }; AutoHeight.prototype.destroy = function () { var handler, property; for (handler in this._handlers) { this._core.$element.off(handler, this._handlers[handler]) } for (property in Object.getOwnPropertyNames(this)) { typeof this[property] !== 'function' && (this[property] = null) } }; $.fn.owlCarousel.Constructor.Plugins.AutoHeight = AutoHeight })(window.Zepto || window.jQuery, window, document); (function ($, window, document, undefined) { var Video = function (carousel) { this._core = carousel; this._videos = {}; this._playing = null; this._handlers = { 'initialized.owl.carousel': $.proxy(function (e) { if (e.namespace) { this._core.register({ type: 'state', name: 'playing', tags: ['interacting'] }) } }, this), 'resize.owl.carousel': $.proxy(function (e) { if (e.namespace && this._core.settings.video && this.isInFullScreen()) { e.preventDefault() } }, this), 'refreshed.owl.carousel': $.proxy(function (e) { if (e.namespace && this._core.is('resizing')) { this._core.$stage.find('.cloned .owl-video-frame').remove() } }, this), 'changed.owl.carousel': $.proxy(function (e) { if (e.namespace && e.property.name === 'position' && this._playing) { this.stop() } }, this), 'prepared.owl.carousel': $.proxy(function (e) { if (!e.namespace) { return } var $element = $(e.content).find('.owl-video'); if ($element.length) { $element.css('display', 'none'); this.fetch($element, $(e.content)) } }, this) }; this._core.options = $.extend({}, Video.Defaults, this._core.options); this._core.$element.on(this._handlers); this._core.$element.on('click.owl.video', '.owl-video-play-icon', $.proxy(function (e) { this.play(e) }, this)) }; Video.Defaults = { video: !1, videoHeight: !1, videoWidth: !1 }; Video.prototype.fetch = function (target, item) { var type = (function () { if (target.attr('data-vimeo-id')) { return 'vimeo' } else if (target.attr('data-vzaar-id')) { return 'vzaar' } else { return 'youtube' } })(), id = target.attr('data-vimeo-id') || target.attr('data-youtube-id') || target.attr('data-vzaar-id'), width = target.attr('data-width') || this._core.settings.videoWidth, height = target.attr('data-height') || this._core.settings.videoHeight, url = target.attr('href'); if (url) { id = url.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/); if (id[3].indexOf('youtu') > -1) { type = 'youtube' } else if (id[3].indexOf('vimeo') > -1) { type = 'vimeo' } else if (id[3].indexOf('vzaar') > -1) { type = 'vzaar' } else { throw new Error('Video URL not supported.') } id = id[6] } else { throw new Error('Missing video URL.') } this._videos[url] = { type: type, id: id, width: width, height: height }; item.attr('data-video', url); this.thumbnail(target, this._videos[url]) }; Video.prototype.thumbnail = function (target, video) { var tnLink, icon, path, dimensions = video.width && video.height ? 'width:' + video.width + 'px;height:' + video.height + 'px;' : '', customTn = target.find('img'), srcType = 'src', lazyClass = '', settings = this._core.settings, create = function (path) { icon = '
'; if (settings.lazyLoad) { tnLink = $('
', { "class": 'owl-video-tn ' + lazyClass, "srcType": path }) } else { tnLink = $('
', { "class": "owl-video-tn", "style": 'opacity:1;background-image:url(' + path + ')' }) } target.after(tnLink); target.after(icon) }; target.wrap($('
', { "class": "owl-video-wrapper", "style": dimensions })); if (this._core.settings.lazyLoad) { srcType = 'data-src'; lazyClass = 'owl-lazy' } if (customTn.length) { create(customTn.attr(srcType)); customTn.remove(); return !1 } if (video.type === 'youtube') { path = "//img.youtube.com/vi/" + video.id + "/hqdefault.jpg"; create(path) } else if (video.type === 'vimeo') { $.ajax({ type: 'GET', url: '//vimeo.com/api/v2/video/' + video.id + '.json', jsonp: 'callback', dataType: 'jsonp', success: function (data) { path = data[0].thumbnail_large; create(path) } }) } else if (video.type === 'vzaar') { $.ajax({ type: 'GET', url: '//vzaar.com/api/videos/' + video.id + '.json', jsonp: 'callback', dataType: 'jsonp', success: function (data) { path = data.framegrab_url; create(path) } }) } }; Video.prototype.stop = function () { this._core.trigger('stop', null, 'video'); this._playing.find('.owl-video-frame').remove(); this._playing.removeClass('owl-video-playing'); this._playing = null; this._core.leave('playing'); this._core.trigger('stopped', null, 'video') }; Video.prototype.play = function (event) { var target = $(event.target), item = target.closest('.' + this._core.settings.itemClass), video = this._videos[item.attr('data-video')], width = video.width || '100%', height = video.height || this._core.$stage.height(), html, iframe; if (this._playing) { return } this._core.enter('playing'); this._core.trigger('play', null, 'video'); item = this._core.items(this._core.relative(item.index())); this._core.reset(item.index()); html = $(''); html.attr('height', height); html.attr('width', width); if (video.type === 'youtube') { html.attr('src', '//www.youtube.com/embed/' + video.id + '?autoplay=1&rel=0&v=' + video.id) } else if (video.type === 'vimeo') { html.attr('src', '//player.vimeo.com/video/' + video.id + '?autoplay=1') } else if (video.type === 'vzaar') { html.attr('src', '//view.vzaar.com/' + video.id + '/player?autoplay=true') } iframe = $(html).wrap('
').insertAfter(item.find('.owl-video')); this._playing = item.addClass('owl-video-playing') }; Video.prototype.isInFullScreen = function () { var element = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement; return element && $(element).parent().hasClass('owl-video-frame') }; Video.prototype.destroy = function () { var handler, property; this._core.$element.off('click.owl.video'); for (handler in this._handlers) { this._core.$element.off(handler, this._handlers[handler]) } for (property in Object.getOwnPropertyNames(this)) { typeof this[property] != 'function' && (this[property] = null) } }; $.fn.owlCarousel.Constructor.Plugins.Video = Video })(window.Zepto || window.jQuery, window, document); (function ($, window, document, undefined) { var Animate = function (scope) { this.core = scope; this.core.options = $.extend({}, Animate.Defaults, this.core.options); this.swapping = !0; this.previous = undefined; this.next = undefined; this.handlers = { 'change.owl.carousel': $.proxy(function (e) { if (e.namespace && e.property.name == 'position') { this.previous = this.core.current(); this.next = e.property.value } }, this), 'drag.owl.carousel dragged.owl.carousel translated.owl.carousel': $.proxy(function (e) { if (e.namespace) { this.swapping = e.type == 'translated' } }, this), 'translate.owl.carousel': $.proxy(function (e) { if (e.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn)) { this.swap() } }, this) }; this.core.$element.on(this.handlers) }; Animate.Defaults = { animateOut: !1, animateIn: !1 }; Animate.prototype.swap = function () { if (this.core.settings.items !== 1) { return } if (!$.support.animation || !$.support.transition) { return } this.core.speed(0); var left, clear = $.proxy(this.clear, this), previous = this.core.$stage.children().eq(this.previous), next = this.core.$stage.children().eq(this.next), incoming = this.core.settings.animateIn, outgoing = this.core.settings.animateOut; if (this.core.current() === this.previous) { return } if (outgoing) { left = this.core.coordinates(this.previous) - this.core.coordinates(this.next); previous.one($.support.animation.end, clear).css({ 'left': left + 'px' }).addClass('animated owl-animated-out').addClass(outgoing) } if (incoming) { next.one($.support.animation.end, clear).addClass('animated owl-animated-in').addClass(incoming) } }; Animate.prototype.clear = function (e) { $(e.target).css({ 'left': '' }).removeClass('animated owl-animated-out owl-animated-in').removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut); this.core.onTransitionEnd() }; Animate.prototype.destroy = function () { var handler, property; for (handler in this.handlers) { this.core.$element.off(handler, this.handlers[handler]) } for (property in Object.getOwnPropertyNames(this)) { typeof this[property] != 'function' && (this[property] = null) } }; $.fn.owlCarousel.Constructor.Plugins.Animate = Animate })(window.Zepto || window.jQuery, window, document); (function ($, window, document, undefined) { var Autoplay = function (carousel) { this._core = carousel; this._call = null; this._time = 0; this._timeout = 0; this._paused = !0; this._handlers = { 'changed.owl.carousel': $.proxy(function (e) { if (e.namespace && e.property.name === 'settings') { if (this._core.settings.autoplay) { this.play() } else { this.stop() } } else if (e.namespace && e.property.name === 'position' && this._paused) { this._time = 0 } }, this), 'initialized.owl.carousel': $.proxy(function (e) { if (e.namespace && this._core.settings.autoplay) { this.play() } }, this), 'play.owl.autoplay': $.proxy(function (e, t, s) { if (e.namespace) { this.play(t, s) } }, this), 'stop.owl.autoplay': $.proxy(function (e) { if (e.namespace) { this.stop() } }, this), 'mouseover.owl.autoplay': $.proxy(function () { if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) { this.pause() } }, this), 'mouseleave.owl.autoplay': $.proxy(function () { if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) { this.play() } }, this), 'touchstart.owl.core': $.proxy(function () { if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) { this.pause() } }, this), 'touchend.owl.core': $.proxy(function () { if (this._core.settings.autoplayHoverPause) { this.play() } }, this) }; this._core.$element.on(this._handlers); this._core.options = $.extend({}, Autoplay.Defaults, this._core.options) }; Autoplay.Defaults = { autoplay: !1, autoplayTimeout: 5000, autoplayHoverPause: !1, autoplaySpeed: !1 }; Autoplay.prototype._next = function (speed) { this._call = window.setTimeout($.proxy(this._next, this, speed), this._timeout * (Math.round(this.read() / this._timeout) + 1) - this.read()); if (this._core.is('interacting') || document.hidden) { return } this._core.next(speed || this._core.settings.autoplaySpeed) } Autoplay.prototype.read = function () { return new Date().getTime() - this._time }; Autoplay.prototype.play = function (timeout, speed) { var elapsed; if (!this._core.is('rotating')) { this._core.enter('rotating') } timeout = timeout || this._core.settings.autoplayTimeout; elapsed = Math.min(this._time % (this._timeout || timeout), timeout); if (this._paused) { this._time = this.read(); this._paused = !1 } else { window.clearTimeout(this._call) } this._time += this.read() % timeout - elapsed; this._timeout = timeout; this._call = window.setTimeout($.proxy(this._next, this, speed), timeout - elapsed) }; Autoplay.prototype.stop = function () { if (this._core.is('rotating')) { this._time = 0; this._paused = !0; window.clearTimeout(this._call); this._core.leave('rotating') } }; Autoplay.prototype.pause = function () { if (this._core.is('rotating') && !this._paused) { this._time = this.read(); this._paused = !0; window.clearTimeout(this._call) } }; Autoplay.prototype.destroy = function () { var handler, property; this.stop(); for (handler in this._handlers) { this._core.$element.off(handler, this._handlers[handler]) } for (property in Object.getOwnPropertyNames(this)) { typeof this[property] != 'function' && (this[property] = null) } }; $.fn.owlCarousel.Constructor.Plugins.autoplay = Autoplay })(window.Zepto || window.jQuery, window, document); (function ($, window, document, undefined) { 'use strict'; var Navigation = function (carousel) { this._core = carousel; this._initialized = !1; this._pages = []; this._controls = {}; this._templates = []; this.$element = this._core.$element; this._overrides = { next: this._core.next, prev: this._core.prev, to: this._core.to }; this._handlers = { 'prepared.owl.carousel': $.proxy(function (e) { if (e.namespace && this._core.settings.dotsData) { this._templates.push('
' + $(e.content).find('[data-dot]').addBack('[data-dot]').attr('data-dot') + '
') } }, this), 'added.owl.carousel': $.proxy(function (e) { if (e.namespace && this._core.settings.dotsData) { this._templates.splice(e.position, 0, this._templates.pop()) } }, this), 'remove.owl.carousel': $.proxy(function (e) { if (e.namespace && this._core.settings.dotsData) { this._templates.splice(e.position, 1) } }, this), 'changed.owl.carousel': $.proxy(function (e) { if (e.namespace && e.property.name == 'position') { this.draw() } }, this), 'initialized.owl.carousel': $.proxy(function (e) { if (e.namespace && !this._initialized) { this._core.trigger('initialize', null, 'navigation'); this.initialize(); this.update(); this.draw(); this._initialized = !0; this._core.trigger('initialized', null, 'navigation') } }, this), 'refreshed.owl.carousel': $.proxy(function (e) { if (e.namespace && this._initialized) { this._core.trigger('refresh', null, 'navigation'); this.update(); this.draw(); this._core.trigger('refreshed', null, 'navigation') } }, this) }; this._core.options = $.extend({}, Navigation.Defaults, this._core.options); this.$element.on(this._handlers) }; Navigation.Defaults = { nav: !1, navText: ['‹', '›'], navSpeed: !1, navElement: 'button type="button" role="presentation"', navContainer: !1, navContainerClass: 'owl-nav', navClass: ['owl-prev', 'owl-next'], slideBy: 1, dotClass: 'owl-dot', dotsClass: 'owl-dots', dots: !0, dotsEach: !1, dotsData: !1, dotsSpeed: !1, dotsContainer: !1 }; Navigation.prototype.initialize = function () { var override, settings = this._core.settings; this._controls.$relative = (settings.navContainer ? $(settings.navContainer) : $('
').addClass(settings.navContainerClass).appendTo(this.$element)).addClass('disabled'); this._controls.$previous = $('<' + settings.navElement + '>').addClass(settings.navClass[0]).html(settings.navText[0]).prependTo(this._controls.$relative).on('click', $.proxy(function (e) { this.prev(settings.navSpeed) }, this)); this._controls.$next = $('<' + settings.navElement + '>').addClass(settings.navClass[1]).html(settings.navText[1]).appendTo(this._controls.$relative).on('click', $.proxy(function (e) { this.next(settings.navSpeed) }, this)); if (!settings.dotsData) { this._templates = [$('