/**
* DO NOT EDIT THIS FILE.
* See the following change record for more information,
* https://www.drupal.org/node/2815083
* @preserve
**/

(function ($, Drupal) {
  'use strict';

  Drupal.AudiofieldAudiojs = {};

  Drupal.AudiofieldAudiojs.generate = function (context, settings) {
    $.each($(context).find('#' + settings.element).once('generate-audiojs'), function (index, item) {
      var audioPlayer = audiojs.create($(item).find('audio').get(0), {
        css: false,
        createPlayer: {
          markup: false,
          playPauseClass: 'play-pauseZ',
          scrubberClass: 'scrubberZ',
          progressClass: 'progressZ',
          loaderClass: 'loadedZ',
          timeClass: 'timeZ',
          durationClass: 'durationZ',
          playedClass: 'playedZ',
          errorMessageClass: 'error-messageZ',
          playingClass: 'playingZ',
          loadingClass: 'loadingZ',
          errorClass: 'errorZ'
        },

        trackEnded: function trackEnded() {
          var next = $(context).find('#' + settings.element + ' ol li.playing').next();
          if (!next.length) {
            next = $(context).find('#' + settings.element + ' ol li:first');
          }
          next.addClass('playing').siblings().removeClass('playing');
          audioPlayer.load($('a', next).attr('data-src'));
          audioPlayer.play();
        }
      });

      $(item).find('ol li:first').addClass('playing');
      audioPlayer.load($(item).find('ol a:first').attr('data-src'));

      $(item).find('ol li').click(function (event) {
        event.preventDefault();
        $(event.currentTarget).addClass('playing').siblings().removeClass('playing');
        audioPlayer.load($('a', event.currentTarget).attr('data-src'));
        audioPlayer.play();
      });
    });
  };

  Drupal.behaviors.audiofieldaudiojs = {
    attach: function attach(context, settings) {
      $.each(settings.audiofieldaudiojs, function (key, settingEntry) {
        Drupal.AudiofieldAudiojs.generate(context, settingEntry);
      });
    }
  };
})(jQuery, Drupal);