PageSourceSearch

https://www.ethosprodutora.com.br/wp-content/themes/soundrise/js/iron-audioplayer.js

js ethosprodutora.com.br collected 2026-10-03 01:32:11 UTC 22,728 bytes, 834 lines download raw bytes

1var elementAudio = document.createElement( 'audio' );
2elementAudio.src =  IRON.state.theme_url + '/js/assets/default.wav';
3
4var elementAudioSingle = document.createElement( 'audio' );
5elementAudioSingle.src =  IRON.state.theme_url + '/js/assets/default.wav';
6
7IRON.audioPlayer = function($){
8	"use strict";
9	var seekTimeOut;
10
11
12	function initPlayer( player ){
13		var audioPlayer = player;
14		this.audioPlayer = player;
15		var waveContainer = this.audioPlayer.find('.player .wave').attr('id');
16		var playlist = audioPlayer.find('.playlist');
17		this.playlist = playlist;
18
19
20		var wavesurfer = WaveSurfer.create({
21			container: '#' + waveContainer,
22			cursorWidth: 0,
23			barWidth: 1,
24			progressColor: iron_vars.soundrise_music.color_progress,
25			waveColor: iron_vars.soundrise_music.color_base,
26			height: 70,
27			backend: 'MediaElement',
28			mediaControls: false,
29		});
30
31		wavesurfer.on('loading', function(){
32				var progressLoad = arguments[0]
33				audioPlayer.find('.progressLoading').css('background', iron_vars.soundrise_music.color_base );
34				audioPlayer.find('.progressLoading').css('width', 'calc( ' + progressLoad + '% - 200px )' )
35				if (progressLoad == 100) {
36					audioPlayer.find('.player').addClass('reveal')
37					audioPlayer.find('.progressLoading').css('opacity', '0' )
38				}
39			})
40
41		this.wavesurfer = wavesurfer;
42
43		setPlaylist( playlist , wavesurfer, audioPlayer );
44		setCurrentTrack( playlist.find('li').eq(0), playlist.find('li').index(), audioPlayer, wavesurfer );
45		setControl( wavesurfer, audioPlayer, playlist );
46		setNextSong( wavesurfer, audioPlayer, playlist );
47		trackListItemResize();
48
49		if( audioPlayer.data('autoplay') ){
50
51			if (IRON.state.enable_ajax) {
52				if( typeof IRON.continuousPlayer.wavesurfer !== "undefined" && IRON.continuousPlayer.wavesurfer.isPlaying() )
53					return
54
55				$.when( IRON.continuousPlayer.ready ).done(function(){
56					play( audioPlayer, wavesurfer );
57				})
58			}else{
59				if ( wavesurfer.isPlaying() )
60					return
61
62				triggerPlay(wavesurfer, audioPlayer)
63			}
64		}
65	}
66
67	var setNextSong = function( wavesurfer, audioPlayer, playlist ){
68		wavesurfer.on('finish', function(){
69			next(audioPlayer, playlist)
70		})
71	}
72
73
74	function triggerPlay(wavesurfer, audioPlayer ){
75		wavesurfer.on('ready', function(){
76			if( wavesurfer.isPlaying() )
77				return
78
79			wavesurfer.play();
80			togglePlaying(audioPlayer, wavesurfer)
81		})
82	}
83
84	function setCurrentTrack( track, index, audioPlayer, wavesurfer ){
85		var albumArt = audioPlayer.find('.album .album-art');
86		var trackTitle = audioPlayer.find('.track-title');
87		var trackArtist = audioPlayer.find('.sr_it-artists-value');
88		var albumTitle = audioPlayer.find('.album-title');
89		var albumTitle = audioPlayer.find('.sr_it-playlist-title');
90		var albumReleaseDate = audioPlayer.find('.sr_it-date-value');
91
92		if ( albumArt.find('img').length ) {
93			albumArt.find('img').attr('src', track.data('albumart'));
94		}else{
95			albumArt.css('background-image', 'url(' + track.data('albumart') + ')');
96		}
97
98		if( !audioPlayer.hasClass('show-playlist') ){
99			albumArt.one('click', function(){
100				setContinuousPlayer( index , audioPlayer);
101			})
102			albumArt.css('cursor','pointer')
103		}
104			audioPlayer.data('currentTrack', index);
105
106		if ( !IRON.state.enable_ajax ) {
107			trackTitle.text(track.data('tracktitle'));
108			trackArtist.html(track.data('trackartists'));
109			albumReleaseDate.text(track.data('releasedate'));
110			albumTitle.text(track.data('albumtitle'));
111			audioPlayer.find('.player').removeClass('hide')
112
113			if ( !track.data('showloading') ) {
114				audioPlayer.find('.player').addClass('hide')
115			}else{
116				audioPlayer.find('.progressLoading').css('opacity', '0.75' )
117			}
118
119			setAudio(track.data('audiopath'), wavesurfer);
120			setTime( audioPlayer, wavesurfer );
121		}
122		hideEmptyAttribut(track.data('releasedate'), audioPlayer.find('.sr_it-playlist-release-date'));
123		hideEmptyAttribut(track.data('trackartists'), audioPlayer.find('.sr_it-playlist-artists'));
124
125	}
126
127	function setPlaylist( playlist , wavesurfer, audioPlayer ){
128		playlist.find('li').each(function(){
129			setSingleTrack( $(this), $(this).index(), wavesurfer, audioPlayer );
130		})
131	}
132
133	function setTime( audioPlayer, wavesurfer ){
134		wavesurfer.on('ready', function(){
135			if( wavesurfer.isPlaying() )
136				return
137
138			var totalTime = moment.duration(wavesurfer.getDuration(), 'seconds' );
139			audioPlayer.find('.totalTime').html( moment( totalTime.minutes()+':'+totalTime.seconds(), 'm:s' ).format( 'mm:ss' ) );
140			wavesurfer.on('audioprocess', function(){
141				var time = moment.duration(wavesurfer.getCurrentTime(), 'seconds' );
142				audioPlayer.find('.currentTime').html( moment( time.minutes()+':'+time.seconds(), 'm:s' ).format( 'mm:ss' ) );
143			})
144		})
145	}
146
147	function setControl( wavesurfer, audioPlayer, playlist ){
148		var ctrl = audioPlayer.find('.control');
149		if ( IRON.state.enable_ajax ){
150
151			audioPlayer.find('.wave').remove()
152
153		}
154
155		ctrl.on('click', '.play', function(){
156			play( audioPlayer, wavesurfer )
157			triggerPlay(wavesurfer, audioPlayer )
158		})
159		ctrl.on('click', '.previous', function(){
160			previous( audioPlayer, wavesurfer, playlist )
161		})
162		ctrl.on('click', '.next', function(){
163			next( audioPlayer, wavesurfer, playlist )
164		})
165
166	}
167
168	function setSingleTrack( singleTrack , eq, wavesurfer, audioPlayer ){
169		var tracknumber = eq + 1;
170		var trackplay = $('<span/>',{
171			class: 'track-number',
172			html: '<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 17.5 21.2" style="enable-background:new 0 0 17.5 21.2;" xml:space="preserve"><path d="M0,0l17.5,10.9L0,21.2V0z"></path><rect width="6" height="21.2"></rect><rect x="11.5" width="6" height="21.2"></rect></svg><span class="number">' + tracknumber + '</span>'
173		})
174		$('')
175		$('<a/>',{
176			class: 'audio-track',
177			click: function(){
178				if( $(this).parent().attr('data-audiopath').length == 0 ){
179					return;
180				}
181				if ( IRON.state.enable_ajax ) {
182					setContinuousPlayer( eq , audioPlayer);
183					audioPlayer.data('currentTrack', eq);
184				}else{
185					setCurrentTrack( singleTrack , eq, audioPlayer, wavesurfer);
186					audioPlayer.find('.playlist li').removeClass('current');
187					singleTrack.addClass('current');
188					triggerPlay(wavesurfer, audioPlayer)
189					togglePlaying( audioPlayer, wavesurfer);
190
191				}
192			}
193		}).appendTo(singleTrack).prepend(trackplay).append('<div class="tracklist-item-title">' + singleTrack.data('tracktitle') + '</div>');
194	}
195
196	function trackListItemResize(){
197		$('.playlist li').each(function(){
198			$(this).find('.tracklist-item-title').css( 'max-width', $(this).outerWidth() - $(this).find('.button').outerWidth() - $(this).find('.track-number').outerWidth() - 10 );
199		})
200	};
201
202	var setAudio = function( audio, wavesurfer ){
203		seekTimeOut = setTimeout( function(){
204			elementAudio.src = audio
205			wavesurfer.load( elementAudio );
206		}, 250 )
207	}
208
209	function getTime( wavesurfer ){
210		return wavesurfer.getCurrentTime()
211	}
212
213	function togglePlaying(audioPlayer, wavesurfer  ) {
214
215		$.each(IRON.players, function(index, value){
216			IRON.players[index].audioPlayer.removeClass('audio-playing');
217		})
218
219		if ( wavesurfer.isPlaying() ) {
220			audioPlayer.addClass('audio-playing');
221			return;
222		}
223		audioPlayer.removeClass('audio-playing')
224	}
225
226	function play( audioPlayer, wavesurfer ){
227		if ( IRON.state.enable_ajax ) {
228			var playlist = audioPlayer.find('.playlist');
229			var currentTrack = audioPlayer.data('currentTrack');
230
231			if ( ( IRON.continuousPlayer.wavesurfer.getCurrentTime() >= 0.1 || IRON.continuousPlayer.wavesurfer.isPlaying() ) && IRON.continuousPlayer.playlist.url == audioPlayer.data('url-playlist') ) {
232				IRON.continuousPlayer.play()
233				return
234			}
235			if ( IRON.continuousPlayer.wavesurfer.getDuration() == 1) {
236				IRON.continuousPlayer.wavesurfer.play()
237			}
238			playlist.find('li').eq(currentTrack).find('a').click();
239			return
240		}
241
242		wavesurfer.playPause();
243		togglePlaying( audioPlayer, wavesurfer);
244	}
245
246	function previous( audioPlayer, wavesurfer, playlist ){
247		var currentTrack = audioPlayer.data('currentTrack');
248		var nextTrack = currentTrack - 1;
249
250		if ('2' < getTime( wavesurfer ) ) {
251			wavesurfer.seekTo(0);
252			return;
253		}
254		playlist.find('li').eq(nextTrack).find('a').click();
255
256	}
257
258	function next( audioPlayer, wavesurfer, playlist ){
259		var currentTrack = audioPlayer.data('currentTrack');
260		var nextTrack = currentTrack + 1;
261
262		if ( !playlist.find('li').eq(nextTrack).length){
263			nextTrack = 0;
264		}
265		wavesurfer.pause();
266		playlist.find('li').eq(nextTrack).find('a').click();
267	}
268
269	function getPlayer(){
270		return this;
271	}
272	function getplay(){
273		play( this.audioPlayer, this.wavesurfer )
274	}
275
276	function setContinuousPlayer( eq , audioPlayer){
277		IRON.continuousPlayer.setPlaylist( audioPlayer )
278		IRON.continuousPlayer.setCurrentTrack( eq , audioPlayer)
279	}
280
281	return {
282		init : initPlayer,
283		getPlayer : getPlayer,
284		play : getplay
285
286	};
287
288}(jQuery);
289
290
291IRON.continuousPlayer = function($){
292	"use strict";
293	var playlist = {
294		'promise' : $.Deferred()
295	}
296	var playing = false
297	var wavesurfer
298	var continuousPlayer = {}
299	var seekTimeOut
300	var ready = $.Deferred()
301	var playerConsent = false
302
303
304	var setPlayer = function( player ){
305		var ready = this.ready
306		$.get( IRON.state.theme_url + '/js/assets/audioplayer.html').done(function(data){
307			$('body').append(data)
308			continuousPlayer = $('.continuousPlayer');
309			var continuous_background = iron_vars.soundrise_music.continuous_background
310			if ( iron_vars.soundrise_music.continuous_background == '' ) {
311				continuous_background = 'rgb(0,0,0)'
312			}
313			continuousPlayer.css( 'background-color', continuous_background )
314
315			wavesurfer = WaveSurfer.create({
316				container: '#cplayer',
317				cursorWidth: 0,
318				barWidth: 1,
319				progressColor: iron_vars.soundrise_music.continuous_timeline_background,
320				waveColor: iron_vars.soundrise_music.continuous_progress_bar,
321				height: 36,
322				backend: 'MediaElement',
323				mediaControls: false,
324				partialRender: true
325			});
326
327			wavesurfer.load(elementAudio)
328			IRON.continuousPlayer.wavesurfer = wavesurfer
329			setControl()
330			setNextSong()
331
332			wavesurfer.on('ready', function(){
333				setLoading('done');
334			})
335
336			wavesurfer.on('loading', function(){
337				var progressLoad = arguments[0]
338				continuousPlayer.find('.progressLoading').css('background', iron_vars.soundrise_music.continuous_progress_bar );
339				continuousPlayer.find('.progressLoading').css('width', 'calc( ' + progressLoad + '% - 200px )' )
340
341			})
342
343			wavesurfer.on('waveform-ready', function(){
344				revealWave();
345				continuousPlayer.find('.progressLoading').css('opacity', '0' )
346			})
347
348			ready.resolve()
349		})
350
351	}
352
353	var revealWave = function(){
354		continuousPlayer.find('#cplayer').addClass('reveal')
355	}
356
357
358	var setPlaylist = function( audioPlayer ){
359		playlist.promise = $.Deferred()
360
361		if ( playlist.url == undefined || playlist.url != audioPlayer.data('url-playlist') ) {
362
363			$.when( $.getJSON(audioPlayer.data('url-playlist'))).done(function(data){
364
365				if ( ! $('body').hasClass('artistPlayer-enable') ) {
366					IRON.initPusherHeight()
367					continuousPlayer.addClass('enable')
368					$('body').addClass('continuousPlayer-enable')
369				}
370				playlist.url = audioPlayer.data('url-playlist')
371				playlist.list = data
372				playlist.promise.resolve()
373			})
374		}else{
375			IRON.continuousPlayer.playlist.promise.resolve()
376		}
377	}
378
379	var setCurrentTrack = function( eq ,audioPlayer){
380
381		playing = true
382		if (playlist.currentTrack == eq && playlist.url == audioPlayer.data('url-playlist') ) {
383
384			wavesurfer.playPause();
385			setStatus()
386		}else{
387
388			playlist.currentTrack = eq
389			continuousPlayer.find('#cplayer').removeClass('reveal')
390
391			$.when( playlist.promise ).done(function(){
392				setTrackInfo(eq);
393				setAudio( playlist.list[eq].mp3 );
394
395				if ( !playlist.list[eq].showLoading ) {
396					continuousPlayer.find('#cplayer').addClass('hide')
397				}else{
398					continuousPlayer.find('.progressLoading').css('opacity', '0.75' )
399				}
400				if ( playerConsent || ( !isiPhone && !isiPad ) ) {
401						wavesurfer.on('ready', function(){
402						wavesurfer.play();
403						setStatus()
404						playing = false
405					})
406				}
407			})
408		}
409
410
411	}
412
413	var setTrackInfo = function(eq){
414		$.when( playlist.promise ).done(function(){
415			continuousPlayer.find('.album-art img').attr('src', playlist.list[eq].poster)
416			$('.iron-audioplayer[data-url-playlist="' + playlist.url + '"]').find('.album-art img').attr('src', playlist.list[eq].poster)
417			continuousPlayer.find('.metadata .album-title').text( playlist.list[eq].album_title)
418			continuousPlayer.find('.metadata .track-name').text( playlist.list[eq].track_title)
419			$('.iron-audioplayer[data-url-playlist="' + playlist.url + '"]').find('.sr_it-playlist-title').html( playlist.list[eq].album_title)
420			$('.iron-audioplayer[data-url-playlist="' + playlist.url + '"]').find('.sr_it-artists-value').html( playlist.list[eq].artist)
421			$('.iron-audioplayer[data-url-playlist="' + playlist.url + '"]').find('.sr_it-date-value').html( playlist.list[eq].release_date)
422		})
423		hideEmptyAttribut(playlist.list[eq].release_date, $('.iron-audioplayer[data-url-playlist="' + playlist.url + '"]').find('.sr_it-playlist-release-date'));
424		hideEmptyAttribut(playlist.list[eq].artist, $('.iron-audioplayer[data-url-playlist="' + playlist.url + '"]').find('.sr_it-playlist-artists'));}
425
426	var setNextSong = function(){
427		wavesurfer.on('finish', function(){
428			if( !playing )
429				next()
430		})
431	}
432
433	var setLoading = function( classes ){
434		switch (classes) {
435			case 'loading':
436				continuousPlayer.addClass('loading')
437				break;
438
439			default:
440				continuousPlayer.removeClass('loading')
441		}
442	}
443
444	var setAudio = function( audio ){
445			seekTimeOut = setTimeout( function(){
446				elementAudio.src = audio
447				wavesurfer.load( elementAudio );
448			}, 250 )
449	}
450
451	function setControl(){
452		var ctrl = continuousPlayer.find('.control');
453
454		ctrl.on('click', '.play', function(){
455			play()
456		})
457		ctrl.on('click', '.previous', function(){
458			previous()
459		})
460		ctrl.on('click', '.next', function(){
461			next()
462		})
463
464	}
465
466	function play(){
467		playerConsent = true;
468		wavesurfer.playPause();
469		setStatus()
470	}
471
472	var setStatus = function(){
473
474		$.each(IRON.players, function(index, value){
475			IRON.players[index].audioPlayer.removeClass('audio-playing');
476		})
477
478		if ( wavesurfer.isPlaying() ) {
479			$('.iron-audioplayer[data-url-playlist="' + playlist.url + '"]').addClass('audio-playing')
480			$('.iron-audioplayer[data-url-playlist="' + playlist.url + '"]').find('li').removeClass('current');
481			$('.iron-audioplayer[data-url-playlist="' + playlist.url + '"]').find('li').eq( IRON.continuousPlayer.playlist.currentTrack ).addClass('current');
482			continuousPlayer.addClass('audio-playing');
483
484			return;
485		}
486
487		$('.iron-audioplayer[data-url-playlist="' + playlist.url + '"]').removeClass('audio-playing')
488		$('.iron-audioplayer[data-url-playlist="' + playlist.url + '"]').find('li').removeClass('current');
489		continuousPlayer.removeClass('audio-playing')
490	}
491
492	function previous(){
493		clearTimeout(seekTimeOut)
494		var currentTrack = playlist.currentTrack;
495		var nextTrack = currentTrack - 1;
496
497		if ('2' < getTime( wavesurfer ) ) {
498			wavesurfer.seekTo(0);
499			return;
500		}
501
502		if ( nextTrack < 0 ){
503			nextTrack = playlist.list.length - 1;
504		}
505		setCurrentTrack(nextTrack);
506
507
508	}
509
510	function next(){
511		clearTimeout(seekTimeOut)
512		var currentTrack = playlist.currentTrack;
513		var nextTrack = currentTrack + 1;
514
515		if ( nextTrack + 1 > playlist.list.length ){
516			nextTrack = 0;
517		}
518		setCurrentTrack(nextTrack);
519
520	}
521
522	function getTime(){
523		return wavesurfer.getCurrentTime()
524	}
525
526	return {
527		setPlayer : setPlayer,
528		setPlaylist : setPlaylist,
529		setCurrentTrack : setCurrentTrack,
530		setTrackInfo : setTrackInfo,
531		setAudio : setAudio,
532		playlist : playlist,
533		play : play,
534		ready : ready
535	}
536
537}(jQuery);
538
539function hideEmptyAttribut(string, selector){
540		if(string== ''){
541			selector.css('display', 'none');
542		}else{
543			selector.css('display', 'block');
544		}
545}
546
547IRON.artistPlayer = function($){
548	"use strict";
549	var artistWavesurfer
550	var artistPlayer
551	var seekTimeOut
552	var playlist = {
553		'promise' : $.Deferred()
554	}
555	var playerConsent = false
556
557	var setPlayer = function(){
558		IRON.artistPlayer.continuousPlayer = false;
559		playerConsent = false
560
561
562
563		artistPlayer = $('.artist_player');
564		var continuous_background = iron_vars.soundrise_music.continuous_background
565		if ( iron_vars.soundrise_music.continuous_background == '' ) {
566			continuous_background = 'rgb(0,0,0)'
567		}
568		artistPlayer.css( 'background-color', continuous_background )
569
570		artistWavesurfer = WaveSurfer.create({
571			container: '#artistPlayer',
572			cursorWidth: 0,
573			barWidth: 1,
574			progressColor: iron_vars.soundrise_music.continuous_timeline_background,
575			waveColor: iron_vars.soundrise_music.continuous_progress_bar,
576			height: 36,
577			backend: 'MediaElement',
578			mediaControls: false,
579			partialRender: true
580		});
581
582		artistWavesurfer.load(elementAudioSingle)
583		IRON.artistPlayer.wavesurfer = artistWavesurfer
584		setControl()
585		setNextSong()
586		IRON.artistPlayer.playlist.promise = $.Deferred();
587		setPlaylist()
588		setCurrentTrack(0)
589
590
591		artistWavesurfer.on('loading', function(){
592			var progressLoad = arguments[0]
593			artistPlayer.find('.progressLoading').css('background', iron_vars.soundrise_music.continuous_progress_bar );
594			artistPlayer.find('.progressLoading').css('width', 'calc( ' + progressLoad + '% - 275px )' )
595			if (progressLoad == 100) {
596				revealWave();
597				artistPlayer.find('.progressLoading').css('opacity', '0' )
598			}
599		})
600
601
602	}
603	var revealWave = function(){
604		artistPlayer.find('#artistPlayer').addClass('reveal')
605	}
606
607	var setPlaylist = function(){
608		IRON.artistPlayer.playlist.promise = $.Deferred();
609
610			$.when( $.getJSON(artistPlayer.data('url-playlist'))).done(function(data){
611				artistPlayer.addClass('enable')
612
613				IRON.initPusherHeight()
614				$('body').addClass('artistPlayer-enable')
615				playlist.url = artistPlayer.data('url-playlist')
616				playlist.list = data
617				IRON.artistPlayer.playlist.promise.resolve()
618
619			})
620	}
621
622	var setCurrentTrack = function( eq , audioPlayer ){
623
624			playlist.currentTrack = eq
625			artistPlayer.find('#artistPlayer').removeClass('reveal')
626
627			$.when( IRON.artistPlayer.playlist.promise ).done(function(){
628				artistPlayer.find('.album-art img').attr('src', playlist.list[eq].poster).css('display','block');
629				artistPlayer.find('.metadata .album-title').text( playlist.list[eq].album_title)
630				artistPlayer.find('.sr_it-playlist-title').text( playlist.list[eq].album_title)
631				artistPlayer.find('.metadata .track-name').text( playlist.list[eq].track_title)
632				artistPlayer.find('.sr_it-artists-value').html( playlist.list[eq].release_date )
633				artistPlayer.find('.sr_it-date-value').html( playlist.list[eq].artist )
634
635				setAudio( playlist.list[eq].mp3 );
636				if (IRON.artistPlayer.continuousPlayer) {
637					transfertPlaylist()
638				}
639
640				if ( !playlist.list[eq].showLoading ) {
641					artistPlayer.find('#artistPlayer').addClass('hide')
642				}else{
643					artistPlayer.find('.progressLoading').css('opacity', '0.75' )
644				}
645
646				if ( playerConsent ) {
647					artistWavesurfer.on('ready', function(){
648						artistWavesurfer.play();
649						setStatus()
650					})
651				}
652
653			})
654
655
656	}
657
658	var setNextSong = function(){
659		artistWavesurfer.on('finish', function(){
660			next()
661		})
662	}
663
664	var setLoading = function( classes ){
665		switch (classes) {
666			case 'loading':
667				artistPlayer.addClass('loading')
668				break;
669
670			default:
671				artistPlayer.removeClass('loading')
672		}
673	}
674
675	var setAudio = function( audio ){
676		seekTimeOut = setTimeout( function(){
677
678			if ( IRON.artistPlayer.continuousPlayer ) {
679				elementAudio.src = audio
680				artistWavesurfer.load( elementAudio );
681			}else{
682				elementAudioSingle.src = audio
683				artistWavesurfer.load( elementAudioSingle );
684			}
685
686		}, 250 )
687	}
688
689	function setControl(){
690		var ctrl = artistPlayer.find('.control');
691		ctrl.find('.play').css({
692			'fill': iron_vars.soundrise_music.continuous_control_color,
693			'path': iron_vars.soundrise_music.continuous_control_color
694		})
695		ctrl.find('.next').css({
696			'fill': iron_vars.soundrise_music.continuous_control_color,
697			'path': iron_vars.soundrise_music.continuous_control_color
698		})
699		ctrl.find('.previous').css({
700			'fill': iron_vars.soundrise_music.continuous_control_color,
701			'path': iron_vars.soundrise_music.continuous_control_color
702		})
703
704
705		ctrl.on('click', '.play', function(){
706
707			if (!IRON.artistPlayer.continuousPlayer) {
708				playerConsent = true;
709				$('.continuousPlayer').removeClass('enable')
710				$('body').removeClass('continuousPlayer-enable')
711				IRON.initPusherHeight()
712
713				enableContinuousPlayer()
714				transfertPlaylist()
715				setPlaylist()
716				setCurrentTrack( playlist.currentTrack )
717			}else{
718				play()
719			}
720		})
721		ctrl.on('click', '.previous', function(){
722			previous()
723		})
724		ctrl.on('click', '.next', function(){
725			next()
726		})
727
728	}
729
730
731
732	var enableContinuousPlayer = function(){
733			IRON.artistPlayer.continuousPlayer = true;
734	}
735
736	var setStatus = function(){
737		if ( artistWavesurfer.isPlaying() ) {
738			artistPlayer.addClass('audio-playing');
739			return;
740		}
741		artistPlayer.removeClass('audio-playing')
742	}
743
744
745	function play(){
746		playerConsent = true;
747		artistWavesurfer.playPause();
748		setStatus()
749
750	}
751
752	var transfertPlaylist = function(){
753		$.when( IRON.continuousPlayer.ready ).done(function(){
754			IRON.continuousPlayer.setPlaylist( artistPlayer );
755			$.when( IRON.continuousPlayer.playlist.promise ).done(function(){
756				IRON.continuousPlayer.setTrackInfo( IRON.artistPlayer.playlist.currentTrack );
757				IRON.continuousPlayer.playlist.currentTrack = IRON.artistPlayer.playlist.currentTrack;
758				IRON.continuousPlayer.setAudio( IRON.continuousPlayer.playlist.list[IRON.artistPlayer.playlist.currentTrack].mp3 )
759			})
760		})
761	}
762
763	function previous(){
764		clearTimeout(seekTimeOut)
765		var currentTrack = playlist.currentTrack;
766		var nextTrack = currentTrack - 1;
767
768		if ('2' < getTime( artistWavesurfer ) ) {
769			artistWavesurfer.seekTo(0);
770			return;
771		}
772
773		if ( nextTrack < 0 ){
774			nextTrack = playlist.list.length - 1;
775		}
776		setCurrentTrack(nextTrack);
777
778
779	}
780
781	function next(){
782		clearTimeout(seekTimeOut)
783		var currentTrack = playlist.currentTrack;
784		var nextTrack = currentTrack + 1;
785
786		if ( nextTrack + 1 > playlist.list.length ){
787			nextTrack = 0;
788		}
789		setCurrentTrack(nextTrack);
790
791	}
792
793	function getTime(){
794		return artistWavesurfer.getCurrentTime()
795	}
796
797	return {
798		setPlayer : setPlayer,
799		setPlaylist : setPlaylist,
800		setCurrentTrack : setCurrentTrack,
801		playlist : playlist,
802		play : play
803	}
804
805}(jQuery);
806
807
808
809
810
811
812
813
814
815
816
817if (jQuery('.artist_player').length) {
818	IRON.artistPlayer.setPlayer()
819}
820
821IRON.continuousPlayer.setPlayer()
822
823IRON.players = [];
824jQuery('.iron-audioplayer').each(function(){
825
826	var player = Object.create(  IRON.audioPlayer );
827	player.init(jQuery(this));
828
829	IRON.players.push(player)
830})
831
832
833
834

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.