';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);};// wrap video content into owl-video-wrapper divtarget.wrap( $( '
', {"class": "owl-video-wrapper","style": dimensions}));if (this._core.settings.lazyLoad) {srcType = 'data-src';lazyClass = 'owl-lazy';}// custom thumbnailif (customTn.length) {create(customTn.attr(srcType));customTn.remove();return false;}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);}});}};/** * Stops the current video. * @public */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');};/** * Starts the current video. * @public * @param {Event} event - The event arguments. */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');};/** * Checks whether an video is currently in full screen mode or not. * @todo Bad style because looks like a readonly method but changes members. * @protected * @returns {Boolean} */Video.prototype.isInFullScreen = function() {var element = document.fullscreenElement || document.mozFullScreenElement ||document.webkitFullscreenElement;return element && $(element).parent().hasClass('owl-video-frame');};/** * Destroys the plugin. */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);/** * Animate Plugin * @version 2.3.4 * @author Bartosz Wojciechowski * @author David Deutsch * @license The MIT License (MIT) */;(function($, window, document, undefined) {/** * Creates the animate plugin. * @class The Navigation Plugin * @param {Owl} scope - The Owl Carousel */var Animate = function(scope) {this.core = scope;this.core.options = $.extend({}, Animate.Defaults, this.core.options);this.swapping = true;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);};/** * Default options. * @public */Animate.Defaults = {animateOut: false,animateIn: false};/** * Toggles the animation classes whenever an translations starts. * @protected * @returns {Boolean|undefined} */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();};/** * Destroys the plugin. * @public */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);/** * Autoplay Plugin * @version 2.3.4 * @author Bartosz Wojciechowski * @author Artus Kolanowski * @author David Deutsch * @author Tom De Caluwé * @license The MIT License (MIT) */;(function($, window, document, undefined) {/** * Creates the autoplay plugin. * @class The Autoplay Plugin * @param {Owl} scope - The Owl Carousel */var Autoplay = function(carousel) {/** * Reference to the core. * @protected * @type {Owl} */this._core = carousel;/** * The autoplay timeout id. * @type {Number} */this._call = null;/** * Depending on the state of the plugin, this variable contains either * the start time of the timer or the current timer value if it's * paused. Since we start in a paused state we initialize the timer * value. * @type {Number} */this._time = 0;/** * Stores the timeout currently used. * @type {Number} */this._timeout = 0;/** * Indicates whenever the autoplay is paused. * @type {Boolean} */this._paused = true;/** * All event handlers. * @protected * @type {Object} */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) {// Reset the timer. This code is triggered when the position// of the carousel was changed through user interaction.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)};// register event handlersthis._core.$element.on(this._handlers);// set default optionsthis._core.options = $.extend({}, Autoplay.Defaults, this._core.options);};/** * Default options. * @public */Autoplay.Defaults = {autoplay: false,autoplayTimeout: 5000,autoplayHoverPause: false,autoplaySpeed: false};/** * Transition to the next slide and set a timeout for the next transition. * @private * @param {Number} [speed] - The animation speed for the animations. */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);}/** * Reads the current timer value when the timer is playing. * @public */Autoplay.prototype.read = function() {return new Date().getTime() - this._time;};/** * Starts the autoplay. * @public * @param {Number} [timeout] - The interval before the next animation starts. * @param {Number} [speed] - The animation speed for the animations. */Autoplay.prototype.play = function(timeout, speed) {var elapsed;if (!this._core.is('rotating')) {this._core.enter('rotating');}timeout = timeout || this._core.settings.autoplayTimeout;// Calculate the elapsed time since the last transition. If the carousel// wasn't playing this calculation will yield zero.elapsed = Math.min(this._time % (this._timeout || timeout), timeout);if (this._paused) {// Start the clock.this._time = this.read();this._paused = false;} else {// Clear the active timeout to allow replacement.window.clearTimeout(this._call);}// Adjust the origin of the timer to match the new timeout value.this._time += this.read() % timeout - elapsed;this._timeout = timeout;this._call = window.setTimeout($.proxy(this._next, this, speed), timeout - elapsed);};/** * Stops the autoplay. * @public */Autoplay.prototype.stop = function() {if (this._core.is('rotating')) {// Reset the clock.this._time = 0;this._paused = true;window.clearTimeout(this._call);this._core.leave('rotating');}};/** * Pauses the autoplay. * @public */Autoplay.prototype.pause = function() {if (this._core.is('rotating') && !this._paused) {// Pause the clock.this._time = this.read();this._paused = true;window.clearTimeout(this._call);}};/** * Destroys the plugin. */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);/** * Navigation Plugin * @version 2.3.4 * @author Artus Kolanowski * @author David Deutsch * @license The MIT License (MIT) */;(function($, window, document, undefined) {'use strict';/** * Creates the navigation plugin. * @class The Navigation Plugin * @param {Owl} carousel - The Owl Carousel. */var Navigation = function(carousel) {/** * Reference to the core. * @protected * @type {Owl} */this._core = carousel;/** * Indicates whether the plugin is initialized or not. * @protected * @type {Boolean} */this._initialized = false;/** * The current paging indexes. * @protected * @type {Array} */this._pages = [];/** * All DOM elements of the user interface. * @protected * @type {Object} */this._controls = {};/** * Markup for an indicator. * @protected * @type {Array.
' +$(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 = true;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)};// set default optionsthis._core.options = $.extend({}, Navigation.Defaults, this._core.options);// register event handlersthis.$element.on(this._handlers);};/** * Default options. * @public * @todo Rename `slideBy` to `navBy` */Navigation.Defaults = {nav: false,navText: ['‹','›'],navSpeed: false,navElement: 'button type="button" role="presentation"',navContainer: false,navContainerClass: 'owl-nav',navClass: ['owl-prev','owl-next'],slideBy: 1,dotClass: 'owl-dot',dotsClass: 'owl-dots',dots: true,dotsEach: false,dotsData: false,dotsSpeed: false,dotsContainer: false};/** * Initializes the layout of the plugin and extends the carousel. * @protected */Navigation.prototype.initialize = function() {var override,settings = this._core.settings;// create DOM structure for relative navigationthis._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));// create DOM structure for absolute navigationif (!settings.dotsData) {this._templates = [ $('