PageSourceSearch

https://thecomedybureau.com/wp-content/themes/croma/js/iron-audioplayer.js

js thecomedybureau.com collected 2026-10-02 10:57:39 UTC 23,547 bytes, 865 lines download raw bytes

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

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.