text: /*! jCarousel - v0.3.5 - 2017-03-15
  * http://sorgalla.com/jcarousel/
  * Copyright (c) 2006-2017 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
          },
          _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('scroll', 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));
  