/*! jCarousel - v0.3.9 - 2018-07-30 * http://sorgalla.com/jcarousel/ * Copyright (c) 2006-2018 Jan Sorgalla; Licensed MIT */ (function($, document) { 'use strict'; var hiddenProp, visibilityChangeEvent, visibilityChangeEventNames = { hidden: 'visibilitychange', mozHidden: 'mozvisibilitychange', msHidden: 'msvisibilitychange', webkitHidden: 'webkitvisibilitychange' } ; $.each(visibilityChangeEventNames, function(key, val) { if (typeof document[key] !== 'undefined') { hiddenProp = key; visibilityChangeEvent = val; return false; } }); $.jCarousel.plugin('jcarouselAutoscroll', { _options: { target: '+=1', interval: 3000, autostart: true, method: 'scroll' }, _timer: null, _started: false, _init: function () { this.onDestroy = $.proxy(function() { this._destroy(); this.carousel() .one('jcarousel:createend', $.proxy(this._create, this)); }, this); this.onAnimateEnd = $.proxy(this._start, this); this.onVisibilityChange = $.proxy(function() { if (document[hiddenProp]) { this._stop(); } else { this._start(); } }, this); }, _create: function() { this.carousel() .one('jcarousel:destroy', this.onDestroy); $(document) .on(visibilityChangeEvent, this.onVisibilityChange); if (this.options('autostart')) { this.start(); } }, _destroy: function() { this._stop(); this.carousel() .off('jcarousel:destroy', this.onDestroy); $(document) .off(visibilityChangeEvent, this.onVisibilityChange); }, _start: function() { this._stop(); if (!this._started) { return; } this.carousel() .one('jcarousel:animateend', this.onAnimateEnd); this._timer = setTimeout($.proxy(function() { this.carousel().jcarousel(this.options('method'), this.options('target')); }, this), this.options('interval')); return this; }, _stop: function() { if (this._timer) { this._timer = clearTimeout(this._timer); } this.carousel() .off('jcarousel:animateend', this.onAnimateEnd); return this; }, start: function() { this._started = true; this._start(); return this; }, stop: function() { this._started = false; this._stop(); return this; } }); }(jQuery, document));