PageSourceSearch

https://www.rewind1079.com/wp-content/plugins/wpb-show-core/module…?v=8-jun-2026&ver=2.4.7

js rewind1079.com collected 2026-10-02 15:48:39 UTC 45,267 bytes, 1,369 lines download raw bytes

1try {
2  window.IS_PROD = jQuery( '#is_prod' ).html().trim() == true;
3  if ( ! IS_PROD) {
4    console.log( 'Staging Server Detected' );
5  }
6} catch (e) {
7  // console.log(e);
8}
9
10var ITM_jPlayer                  = window.ITM_jPlayer || {};
11ITM_jPlayer.ITM_jPlayerLoad      = false;
12ITM_jPlayer.ITM_jPlayerLoad_Flag = '';
13
14window.console.log( 'hi to jquery.jplayer-init-latest.js file loaded..........' ); // we need this....
15
16jQuery( document ).ready(
17  function( $ ){
18    readyFn_jPlayerFunc( $ , 'document.ready' );
19    ITM_jPlayer.ITM_jPlayerLoad_Flag = 'document.ready';
20  }
21);
22
23// jQuery(document).ready(function($) { // WPB-518
24function readyFn_jPlayerFunc( $ , flagCheck = '') {
25  if (ITM_jPlayer.ITM_jPlayerLoad) {
26    window.console.log( 'ITM_jPlayerLoad return : ' + flagCheck );
27    window.console.log( 'ITM_jPlayerLoad_Flag : ' + ITM_jPlayer.ITM_jPlayerLoad_Flag );
28
29    // donot want to call this func again..... from pjax....
30    return;
31  }
32
33  ITM_jPlayer.ITM_jPlayerLoad = true;
34
35  window.console.log( 'HERE >>>>> readyFn_jPlayerFunc >> jquery.jplayer-init-latest.js..... ' + flagCheck );
36
37  // --------------------------------------------------
38  // WPB-402
39  // AWS CONFIGURATION
40  AWS.config.credentials = new AWS.CognitoIdentityCredentials(
41    {
42      IdentityPoolId: 'us-east-1:adc43218-48bc-4c15-87ed-037b09ebb86d'
43    }
44  );
45  AWS.config.region      = 'us-east-1';
46
47  // STATE
48  // make a default kinesis var for context
49  var kinesis;
50  // define record holding array
51  var recordData_init_latest = [];
52  // var recordData_init_download = [];
53
54  var recordData_audio = []; // fill up one another array
55
56  var currentTime = 0;
57  var fileDuration=0;
58  // --------------------------------------------------
59
60  // JPlayer instance is set by player.php module
61  if (typeof JPlayer === 'object') {
62    updatePlayerTheme( JPlayer.playerThemeSettings );
63    // No need to check upon playlists (done by player.php)
64    // audio is array of audio objects (playlist for current player)
65    $( JPlayer.playlists ).each(
66      function(num, audio) {
67        // WPB-5494
68        var unique_id_chk_val = num;
69        try {
70          var unique_val_player = JPlayer.playlists_unique_ids[num];
71          if (unique_val_player) {
72            unique_id_chk_val = unique_val_player;
73            num               = unique_id_chk_val;
74          }
75        } catch (e) {
76        }
77
78        // There is player in html for each plalist
79        var player = $( '#player-' + num ),
80        container  = player.parents( '.player-container' ),
81        loader     = container.find( '.loading' ),
82        playIndex  = 0,
83        hasPreroll = false;
84
85        // Player ui elements
86        var currentTitle = container.find( '.jp-current-title' ); // jp-title , episodeTitle
87
88        // WD-705
89        container.find( '.jp-play' ).bind(
90          "click",
91          function() {
92            var srcAudioValue = player.find( 'audio' ).prop( "src" );
93            if (srcAudioValue) {
94            } else {
95              playlistConfig( playIndex );
96            }
97          }
98        );
99        // ---------------------------------------------------------
100
101        function guid_1() {
102          function s4() {
103            return Math.floor( (1 + Math.random()) * 0x10000 )
104            .toString( 16 )
105            .substring( 1 );
106          }
107          return (
108          s4() +
109          s4() +
110          "-" +
111          s4() +
112          "-" +
113          s4() +
114          "-" +
115          s4() +
116          "-" +
117          s4() +
118          s4() +
119          s4()
120          );
121        }
122
123        $( "#player-interface-" + num + " .jp-mute" ).on(
124          'click',
125          function(ev) {
126            $( this ).hide();
127            $( "#player-interface-" + num + " .jp-unmute" ).show();
128          }
129        );
130
131        $( "#player-interface-" + num + " .jp-unmute" ).on(
132          'click',
133          function(ev) {
134            $( this ).hide();
135            $( "#player-interface-" + num + " .jp-mute" ).show();
136          }
137        );
138
139        var uuid_1;
140        var midPausedTime;
141        var midrollExists;
142        var postrollExists;
143        var midMp3;
144        var originalMp3;
145        var prerollMp3;
146        var player_flag;
147        var currentlyPlaying='';
148        var midrollPlayed=false;
149        var midrollPlaying=false;
150
151        var status = player.jPlayer(
152          {
153            ready: function(event) {
154              uuid_1         = guid_1();
155              midPausedTime  = 0;
156              midrollExists  = false;
157              postrollExists = false;
158              midMp3         = '';
159
160              if(audio[0].preroll==1){
161               currentlyPlaying='preroll';
162              }
163              else{
164               currentlyPlaying='original';
165              }
166              
167
168              // Set initial player media
169              // playlistConfig(playIndex); //WD-705 -- stop during page load. and bind on play button click.
170
171              // Loader is showing only while page loads
172              loader.remove();
173
174              $( this ).jPlayer(
175                "setMedia",
176                {
177                  mp3: audio[playIndex].mp3,
178                }
179              );
180
181              // Check autoplay feature
182              if (player.attr( 'data-autoplay' ) === '1') {
183                player.jPlayer( 'play' );
184              }
185
186              // When volume is disabled there need to be some css changes done
187              if (event.jPlayer.status.noVolume) {
188                container.addClass( 'no-volume' );
189              }
190
191            },
192            play: function() {
193
194               if (isPreroll())
195                currentlyPlaying = 'preroll';
196
197
198              // ------------------------------
199              // WPB-435
200              var dfp_video_ad_tag_val = eval( 'wpb_jplayer_settings_' + num ).dfp_video_ad_tag;
201              if (dfp_video_ad_tag_val) {
202                var videoPlayerContDivObj = document.getElementById( 'vid-container-' + num );
203                if (videoPlayerContDivObj.style.display == 'block') {
204                  jQuery( "#player-" + num ).jPlayer( 'stop' );
205                  eval( 'vid' + num ).play(); // play video direct ads.
206                  return;
207                }
208              }
209
210              var player_flag = checkPlaylistPlayer( num );
211              // ------------------------------
212
213              // Avoid both jPlayers playing together.
214              player.jPlayer( "pauseOthers" );
215              collectStats();
216            },
217            oggSupport: false,
218            swfPath: "/wp-content/plugins/wpb-show-core/modules/jplayer",
219            supplied: "mp3",
220            wmode: "window",
221            cssSelectorAncestor: "#player-interface-" + num,
222            noVolume: false,
223          }
224        );
225
226         //WPB-6000
227         subscribeMenu_New(num); // WPB-6000
228         podcastMenu_New(num);
229         stylingActions_New(num);
230
231         player.bind(jQuery.jPlayer.event.timeupdate, function(event) { // Add a listener to report the time play began
232               currentTime = Math.round( event.jPlayer.status.currentTime );
233               fileDuration = Math.round( event.jPlayer.status.duration);
234            });  
235
236        $( "#play-btn-" + num ).click(
237          function(){
238            var srcAudioValue = player.find( 'audio' ).prop( "src" );
239            $( ".jp-image canvas" ).hide()
240            $( ".jp-play" ).removeClass( "hidden" );
241            $( "#pause-btn-" + num ).removeClass( "hidden" );
242          }
243        );
244
245        // WPB-6000
246        $( "#backword-btn-" + num ).click(
247          function(){
248             player_flag = checkPlaylistPlayer( num );
249             if (player_flag == 'advance_playlist') {
250                currentlyPlaying= jQuery('#currentlyPlaying-'+num).val();
251             }
252           
253            if(currentlyPlaying=='original' || currentlyPlaying=='original_part'){
254             player.jPlayer( "pause");
255              setTimeout(function() {
256              $('#pause-btn-'+num).show();
257              $('#play-btn-'+num).hide();
258              $('#pause-btn-'+num).removeClass( "hidden" );
259             },10);
260
261             setTimeout(function() {
262              player.jPlayer( "play", currentTime-15 );
263             },300);
264            } 
265          }
266        );
267
268        $( "#forword-btn-" + num ).click(
269          function(){
270            player_flag = checkPlaylistPlayer( num );
271             if (player_flag == 'advance_playlist') {
272               currentlyPlaying= jQuery('#currentlyPlaying-'+num).val();
273             }
274
275             if(currentlyPlaying=='original' || currentlyPlaying=='original_part'){
276               player.jPlayer( "pause");
277              setTimeout(function() {
278              $('#pause-btn-'+num).show();
279              $('#play-btn-'+num).hide();
280              $('#pause-btn-'+num).removeClass( "hidden" );
281             },10);
282               setTimeout(function() {
283                player.jPlayer( "play", currentTime+15 );
284               },300); 
285             }  
286          }
287        );
288
289        $( "#speed-control-menu-" + num + " li" ).click(
290          function(){
291            var speedSelected = $( this ).html();
292             $( "#speed-control-btn-" + num).css("color", $( "#speed-control-menu-"+num ).attr( "textColor" ));
293
294            speedSelected     = speedSelected.replace( "x", "" );
295            if (speedSelected != "1" || speedSelected != 1) {
296               $( "#speed-control-btn-" + num ).css("color", $( "#speed-control-menu-"+num ).attr( "primarycolor" ));;
297            } else {
298              $( "#speed-control-btn-" + num ).css("color", $( "#speed-control-menu-"+num ).attr( "textColor" ));
299            }
300
301            player.jPlayer( "option","playbackRate", speedSelected );
302            $( "#speed-control-btn-" + num ).html( speedSelected + "x" );
303          }
304        );
305
306        /**
307         * Setup player media according to passed index
308         *
309         * @param  {int} index playlist index
310         * @return {[type]}       [description]
311         */
312        function playlistConfig(index) {
313          player.jPlayer( "setMedia", audio[index] );
314        }
315
316        /**
317         * Set current playing title
318         */
319        function setTitle() {
320          currentTitle.html( audio[playIndex].title );
321        }
322
323        // Create an ended event handler to move to the next item
324        player.on(
325          $.jPlayer.event.ended,
326          function(event) {
327            var player_flag = checkPlaylistPlayer( num );
328        
329            if(typeof currentlyPlaying=='undefined'){
330              currentlyPlaying = 'original';
331            }
332            if(typeof postrollExists=='undefined'){
333              postrollExists = false;
334            }
335
336            if(typeof postrollExists=='undefined'){
337              postrollExists = false;
338            }
339
340              
341            if (currentlyPlaying == 'postroll') {
342              container.find( '.jp-title' ).html( audio[playIndex].title );
343              player.jPlayer( "setMedia", audio[playIndex] );
344               currentlyPlaying = 'original';
345              return;
346            }
347
348            if ( ! postrollExists) {
349              if (isPreroll() == false && (currentlyPlaying == 'original' || currentlyPlaying == 'original_part')) {
350                container.find( '.jp-title' ).html( audio[playIndex].title );
351                player.jPlayer( "setMedia", audio[playIndex] );
352                return;
353              }
354            }
355
356            if ( ! midrollExists) {
357              if (currentlyPlaying == 'original') {
358                currentlyPlaying = 'original_part'
359              }
360            }
361
362           if (postrollExists) {
363            if (isPreroll() == false && currentlyPlaying == 'original_part') {
364               currentlyPlaying = 'postroll';
365              var ObjAdv = document.getElementById( 'hid-advinfo-' + num );
366              if (ObjAdv.value != '') {
367                var advArray = ObjAdv.value.split( '^#^' );
368
369                var postrollIdArr  = advArray[1].split( '^@^' );
370                var postroll_id    = postrollIdArr[1];
371                var postrollmp3Arr = advArray[2].split( '^@^' );
372                var postroll_mp3   = postrollmp3Arr[1];
373
374                player.jPlayer(
375                  "setMedia",
376                  {
377                    mp3: postroll_mp3,
378                  }
379                );
380
381                player.jPlayer( "play" );
382                return;
383              }
384            }
385          }else{
386            if(currentlyPlaying!='midroll')
387             currentlyPlaying = 'original';
388          }
389
390            if (isPreroll() == false) {
391              $( "#play-btn-" + num ).removeClass( "hidden" );
392              $( "#play-btn-" + num ).css( "display", "block" );
393
394              // single player and once actual audio stop to play then hide equilizer.
395              // better audio stats plugin deactivate.
396            }
397
398            if (currentlyPlaying == 'midroll') {
399              currentlyPlaying = 'original_part';
400              // on finish of midroll, start original audio again
401              player.jPlayer(
402                "setMedia",
403                {
404                  mp3: originalMp3,
405                }
406              );
407
408              container.find( '.jp-title' ).html( audio[playIndex].title );
409              player.jPlayer( 'play',midPausedTime );
410
411              $( ".jp-image canvas" ).hide()
412              $( ".jp-play" ).removeClass( "hidden" );
413              $( "#pause-btn-" + num ).removeClass( "hidden" );
414            } else {
415              currentlyPlaying='original';
416              playListNext(); // as usual means only preroll and then actual audio.
417            }
418          }
419        );
420
421        player.bind(
422          jQuery.jPlayer.event.ready,
423          function(event) {
424            player_flag = checkPlaylistPlayer( num );
425            if (player_flag == 'advance_playlist') {
426              return;
427            }
428            if (isPreroll()) {
429              originalMp3 = audio[playIndex + 1].mp3;
430              prerollMp3  = audio[playIndex].mp3;
431              currentlyPlaying='preroll';
432            } else {
433              originalMp3 = audio[playIndex].mp3;
434              prerollMp3  = ''; // no prerolls.
435              currentlyPlaying='original';
436            }
437
438            var ObjAdv = document.getElementById( 'hid-advinfo-' + num );
439
440            if (ObjAdv.value != '') {
441              var advArray = ObjAdv.value.split( '^#^' );
442              var midrollIdArr  = advArray[3].split( '^@^' );
443              var midroll_id    = midrollIdArr[1];
444              var midrollmp3Arr = advArray[4].split( '^@^' );
445              var midroll_mp3   = midrollmp3Arr[1];
446
447              if (midroll_mp3 != '') {
448                midrollExists = true;
449                midMp3        = midroll_mp3;
450              } else {
451                midrollExists = false;
452              }
453
454              var postrollIdArr  = advArray[1].split( '^@^' );
455              var postroll_id    = postrollIdArr[1];
456              var postrollmp3Arr = advArray[2].split( '^@^' );
457              var postroll_mp3   = postrollmp3Arr[1];
458
459              if (postroll_mp3 != '') {
460                postrollExists = true;
461              } else {
462                postrollExists = false;
463              }
464
465            }
466          }
467        );
468
469        player_flag = checkPlaylistPlayer( num );
470
471        if (player_flag != 'advance_playlist') {
472
473          player.bind(
474            jQuery.jPlayer.event.timeupdate,
475            function(event) {
476              if (player_flag == 'advance_playlist') {
477                return;
478              }
479
480              if (currentlyPlaying != 'original') {
481                return;
482              }
483
484              if ( ! midrollExists) {
485                //player.unbind( jQuery.jPlayer.event.timeupdate );
486                return;
487              }
488
489              if(midrollPlayed)
490                return;
491
492              var midDuration = Math.round( event.jPlayer.status.duration / 2 );
493              var current     = Math.round( event.jPlayer.status.currentTime );
494
495              if (midDuration > 0 && (current >= midDuration)) {
496                midPausedTime = event.jPlayer.status.currentTime;
497                
498                player.jPlayer(
499                  "setMedia",
500                  {
501                    mp3: midMp3,
502                  }
503                );
504                currentlyPlaying = 'midroll';
505                player.jPlayer( "play" );
506
507                midrollPlayed=true;  
508              }
509            }
510          );
511        }
512
513        /**
514         * Play next playlist item
515         *
516         * @return {void}
517         */
518        function playListNext() {
519          var index = (playIndex + 1 < audio.length) ? playIndex + 1 : 0;
520          playListChange( index );
521
522          // There is no repeat, and player is minimized
523          if (index == 0) {
524            // minimizePlayer();
525            $( "#play-btn-" + index ).removeClass( "hidden" );
526            $( "#pause-btn-" + index ).addClass( "hidden" );
527          } else {
528            player.jPlayer( 'play' );
529          }
530        }
531
532        /**
533         * Set audio according to passed index
534         *
535         * @param  {int} index playlist index
536         * @return {void}
537         */
538        function playListChange(index) {
539          playIndex = index;
540          playlistConfig( index );
541        }
542
543        /**
544         * Check if playlist item is preroll
545         *
546         * @param  {int}  index playlist item to check
547         * @return {bool}
548         */
549        function isPreroll(index) {
550          if (typeof index == 'number') {
551            return audio[index].hasOwnProperty( 'preroll' );
552          } else {
553            return audio[playIndex].hasOwnProperty( 'preroll' );
554          }
555        }
556
557        /**
558         * Toggle player condition classes on player container
559         */
560        player
561        .on(
562          $.jPlayer.event.play,
563          function(event) {
564            container
565            .addClass( 'playing' )
566            .removeClass( 'pause' );
567
568            // Handle Preroll classes
569            if (isPreroll()) {
570              container.addClass( 'playing-preroll' );
571              currentlyPlaying='preroll';
572            } else {
573              container.removeClass( 'playing-preroll' );
574            }
575          }
576        )
577        .on(
578          $.jPlayer.event.pause,
579          function(event) {
580            container
581            .addClass( 'pause' )
582            .removeClass( 'playing' );
583          }
584        );
585
586        /**
587         * Collect player statistics
588         * Stats is collected for
589         *
590         * @return {void}
591         */
592        function collectStats() {
593          // ----------------------------------------------------------------------
594          var player_flag = checkPlaylistPlayer( num );
595
596          var blogid = eval( 'wpb_jplayer_settings_' + num ).blogid;
597          var gmt_offset_site = eval( 'wpb_jplayer_settings_' + num ).gmt_offset_site;
598          var ck_dm           = eval( 'wpb_jplayer_settings_' + num ).ck_dm;
599
600          var ajax_url_val = eval( 'wpb_jplayer_settings_' + num ).ajaxurl_path;
601          var ajax_simple  = 0;
602          if (ajax_url_val) {
603            ajax_url_val = eval( 'wpb_jplayer_settings_' + num ).siteUrl + ajax_url_val;
604            ajax_simple  = 1;
605          } else {
606            ajax_url_val = ajaxurl; // as usual.
607          }
608
609          if (player_flag == 'advance_playlist') {
610            var ObjHid     = document.getElementById( 'hid-extra-' + num );
611            var field_arr  = ObjHid.value.split( '^#^' );
612            var field1_arr = field_arr[0].split( '^@^' );
613            var e_id       = field1_arr[1];
614            var field2_arr = field_arr[1].split( '^@^' );
615            var p_id       = field2_arr[1];
616            var field3_arr = field_arr[2].split( '^@^' );
617            var flag_play  = field3_arr[1];
618            // WPB-434
619            var field4_arr = field_arr[3].split( '^@^' );
620            var pod_id     = field4_arr[1];
621            var field5_arr = field_arr[4].split( '^@^' );
622            var ply_f      = field5_arr[1];
623            if (flag_play == 'episode') {
624              var send_ajax_call  = true;
625              var flag_array_fill = '';
626
627              if (document.getElementById( 'hid-palyed-' + num ).value) {
628                var played_str = document.getElementById( 'hid-palyed-' + num ).value;
629                var played_arr = document.getElementById( 'hid-palyed-' + num ).value.split( ':' );
630                if (in_array_js_check( e_id, played_arr ) != -1) {
631                  // in array then donot insert it again.
632                  send_ajax_call = false;
633
634                  flag_array_fill = 'ALREADY_INTO_ARRAY';
635                } else {
636                  document.getElementById( 'hid-palyed-' + num ).value = played_str + ':' + e_id;
637                  flag_array_fill = 'ADD_INTO_ARRAY'; // another episode id, next one.
638                  uuid_1 = guid_1(); // new number for new episode id. ( next episode )
639                }
640              } else {
641                document.getElementById( 'hid-palyed-' + num ).value = e_id;
642
643                flag_array_fill = 'FIRST_TIME';
644              }
645              if (send_ajax_call) {
646                var data = {};
647                if (ajax_simple) {
648                  data.blogid          = blogid;
649                  data.gmt_offset_site = gmt_offset_site;
650                  data.ck_dm           = ck_dm;
651                  data.ajax_simple     = ajax_simple;
652                }
653                data.action      = 'player_played';
654                data.type        = 'audio';
655                data.topic       = 'audio_player_stats'; // WPB-402
656                data.id          = e_id;
657                data.preroll_id  = p_id;
658                data.player_type = 'advance_playlist';
659                data.podcast_id  = pod_id; // WPB-434
660                data.flag_call   = 'wpb_req_playlist_without_duration';
661                data.uuid_1      = uuid_1;
662
663                // --------------------------------------------------
664                // WPB-402
665                var record = {
666                  topic: 'audio_player_stats',
667                  data: data
668                };
669
670                var params = { // for AWS Kinesis
671                  Data: JSON.stringify( record ) + ",",
672                  PartitionKey: 'partition-' + AWS.config.credentials.identityId
673                }
674
675                recordData_audio.push( num + ':' + data.id );
676
677                recordData_init_latest.push( params );
678                // stop below individual ajax request for playlist player.
679                // --------------------------------------------------
680
681              }
682            } //End of if (flag_play == 'episode')
683            return;
684          } //End of if (player_flag == 'advance_playlist')
685          // ----------------------------------------------------------------------
686
687          // WPB-434
688          var pod_id = 0;
689          try {
690            var ObjHid     = document.getElementById( 'hid-extra-' + num );
691            var field_arr  = ObjHid.value.split( '^#^' );
692            var field1_arr = field_arr[0].split( '^@^' );
693            var e_id       = field1_arr[1];
694            var field2_arr = field_arr[1].split( '^@^' );
695            var p_id       = field2_arr[1];
696            var field3_arr = field_arr[2].split( '^@^' );
697            var flag_play  = field3_arr[1];
698            var field4_arr = field_arr[3].split( '^@^' );
699            var pod_id     = field4_arr[1];
700            var field5_arr = field_arr[4].split( '^@^' );
701            var ply_f      = field5_arr[1];
702          } catch (e) {
703          }
704
705          // as usual code for single episode player.
706          var type,
707          action = 'player_played',
708          data   = {};
709
710          if ( ! audio[playIndex].hasOwnProperty( 'played' )) {
711            type = (isPreroll()) ? 'preroll' : 'audio';
712
713            // Prepare data to send with notification request
714            data.action = action;
715
716            if (ajax_simple) {
717              data.blogid          = blogid;
718              data.gmt_offset_site = gmt_offset_site;
719              data.ck_dm           = ck_dm;
720              data.ajax_simple     = ajax_simple;
721            }
722
723            data.topic = 'audio_player_stats'; // WPB-402
724
725            data.type = type;
726            data.id   = audio[playIndex].id;
727            var got_preroll_id = false;
728
729            // Send preroll id if audio is playing and current plalist contains preroll
730            if ( ! isPreroll() && hasPreroll) {
731              data.preroll_id = audio[0].id;
732              got_preroll_id  = true;
733            }
734
735            data.podcast_id = pod_id; // WPB-434
736            data.flag_call  = 'wpb_req_single_without_duration';
737            data.uuid_1     = uuid_1;
738
739            if (data.type == 'preroll') {
740              return; // stop ajax request too for preroll, instead of stop into php method, to improve code.
741            }
742
743            // --------------------------------------------------
744            // WPB-402
745            var record = {
746              topic: 'audio_player_stats',
747              data: data
748            };
749
750            var params = { // for AWS Kinesis
751              Data: JSON.stringify( record ) + ",",
752              PartitionKey: 'partition-' + AWS.config.credentials.identityId
753            }
754
755            recordData_audio.push( num + ':' + data.id );
756
757            recordData_init_latest.push( params );
758            // stop below individual ajax request for single player.
759            // --------------------------------------------------
760
761            audio[playIndex].played = 1;
762          }
763        }
764
765        function in_array_js_check(needle, haystack) {
766          var found = 0;
767          for (var i = 0, len = haystack.length; i < len; i++) {
768            if (haystack[i] == needle) {
769              return i;
770            }
771            found++;
772          }
773          return -1;
774        }
775
776        // WPB-227
777        function checkPlaylistPlayer(num) {
778          var player_unique_index_val = num;
779
780
781          var player_flag = '';
782          try {
783            var playlists_arr = eval( 'playlists_arr_' + player_unique_index_val );
784            if (playlists_arr) {
785                player_flag = 'advance_playlist';
786            }
787          } catch (e) {
788          }
789
790        if(player_flag=='advance_playlist'){
791           if($('#jplayer-single-type-'+num).length>0)
792            player_flag = 'single';
793        }
794
795          return player_flag;
796        }
797
798        // DOWNLOAD CLICK in any case whether better audio stats activate or not and for both the players.
799        // single player, and playlist player both.
800        container.on(
801          'click',
802          ".jp_download",
803          function(ev) {
804            var player_flag = checkPlaylistPlayer( num );
805            var blogid = eval( 'wpb_jplayer_settings_' + num ).blogid;
806            var gmt_offset_site = eval( 'wpb_jplayer_settings_' + num ).gmt_offset_site;
807            var ajax_url_val = eval( 'wpb_jplayer_settings_' + num ).ajaxurl_path;
808            var ajax_simple  = 0;
809            if (ajax_url_val) {
810              ajax_url_val = eval( 'wpb_jplayer_settings_' + num ).siteUrl + ajax_url_val;
811              ajax_simple  = 1;
812            } else {
813              ajax_url_val = ajaxurl; // as usual.
814            }
815
816            // -----------------------------------------------
817            if (player_flag == 'advance_playlist') {
818              var ObjHid     = document.getElementById( 'hid-extra-' + num );
819              var field_arr  = ObjHid.value.split( '^#^' );
820              var field1_arr = field_arr[0].split( '^@^' );
821              var e_id       = field1_arr[1];
822              var field2_arr = field_arr[1].split( '^@^' );
823              var p_id       = field2_arr[1];
824              var field3_arr = field_arr[2].split( '^@^' );
825              var flag_play  = field3_arr[1];
826              // WPB-434
827              var field4_arr = field_arr[3].split( '^@^' );
828              var pod_id     = field4_arr[1];
829              var field5_arr = field_arr[4].split( '^@^' );
830              var ply_f      = field5_arr[1];
831
832              var data = {};
833              if (ajax_simple) {
834                data.blogid          = blogid;
835                data.gmt_offset_site = gmt_offset_site;
836                // data.ck_dm = ck_dm;
837                data.ajax_simple = ajax_simple;
838              }
839              data.action      = 'track_episode_download';
840              data.type        = 'audio';
841              data.topic       = 'audio_player_stats_download'; // WPB-402
842              data.id          = e_id;
843              data.preroll_id  = p_id;
844              data.player_type = 'advance_playlist';
845              data.podcast_id  = pod_id; // WPB-434
846              data.flag_call   = 'wpb_download_req_playlist';
847
848              /* WPB-518 */
849              var client_signature = jQuery( "#client_signature" );
850              if (client_signature) {
851                data.http_signature = client_signature.html().trim();
852              }
853
854              var client_ip = jQuery( "#client_ip" );
855              if (client_ip) {
856                data.ipv4_long = client_ip.html().trim();
857              }
858
859              var client_ua = jQuery( "#client_ua" );
860              if (client_ua) {
861                data.user_agent = client_ua.html().trim();
862              }
863
864              var uuid_download  = guid_1();
865              data.uuid_download = uuid_download;
866
867              // --------------------------------------------------
868              // WPB-402
869              var record = {
870                topic: 'audio_player_stats',
871                data: data
872              };
873
874              /* WPB-518 staging testing */
875              if ( ! IS_PROD) {
876                record.topic = 'audio_player_stats_test';
877              }
878
879              var params = { // for AWS Kinesis
880                Data: JSON.stringify( record ) + ",",
881                PartitionKey: 'partition-' + AWS.config.credentials.identityId
882              }
883
884              recordData_init_latest.push( params );
885              return;
886            }
887
888            // -----------------------------------------------
889
890            // WPB-434
891            var pod_id = 0;
892            try {
893              var ObjHid     = document.getElementById( 'hid-extra-' + num );
894              var field_arr  = ObjHid.value.split( '^#^' );
895              var field1_arr = field_arr[0].split( '^@^' );
896              var e_id       = field1_arr[1];
897              var field2_arr = field_arr[1].split( '^@^' );
898              var p_id       = field2_arr[1];
899              var field3_arr = field_arr[2].split( '^@^' );
900              var flag_play  = field3_arr[1];
901              var field4_arr = field_arr[3].split( '^@^' );
902              var pod_id     = field4_arr[1];
903              var field5_arr = field_arr[4].split( '^@^' );
904              var ply_f      = field5_arr[1];
905            } catch (e) {
906            }
907
908            // WPB-431
909            var type,
910            action = 'track_episode_download',
911            data   = {};
912
913            type = (isPreroll()) ? 'preroll' : 'audio';
914
915            // Prepare data to send with notification request
916            data.action = action;
917
918            if (ajax_simple) {
919              data.blogid          = blogid;
920              data.gmt_offset_site = gmt_offset_site;
921              // data.ck_dm = ck_dm;
922              data.ajax_simple = ajax_simple;
923            }
924
925            var preroll_id = 0;
926            var episode_id = 0;
927            if (isPreroll( 0 )) {
928              episode_id = audio[1].id;
929              preroll_id = audio[0].id;
930            } else { // no prerolls into audio array, only 0 index.
931              episode_id = audio[0].id;
932            }
933
934            data.id         = episode_id;
935            data.preroll_id = preroll_id;
936            data.podcast_id = pod_id;
937
938            data.topic = 'audio_player_stats_download'; // WPB-402 + WPB-431
939
940            data.type      = type;
941            data.flag_call = 'wpb_download_req_single'; // for both better audio stats activate or not.
942
943            /* WPB-518 */
944            var client_signature = jQuery( "#client_signature" );
945            if (client_signature) {
946              data.http_signature = client_signature.html().trim();
947            }
948
949            var client_ip = jQuery( "#client_ip" );
950            if (client_ip) {
951              data.ipv4_long = client_ip.html().trim();
952            }
953
954            var client_ua = jQuery( "#client_ua" );
955            if (client_ua) {
956              data.user_agent = client_ua.html().trim();
957            }
958
959            var uuid_download  = guid_1();
960            data.uuid_download = uuid_download;
961
962            // --------------------------------------------------
963            // WPB-402 + WPB-431
964            var record = {
965              topic: 'audio_player_stats',
966              data: data
967            };
968
969            /* WPB-518 staging testing */
970            if ( ! IS_PROD) {
971              record.topic = 'audio_player_stats_test';
972            }
973
974            var params = { // for AWS Kinesis
975              Data: JSON.stringify( record ) + ",",
976              PartitionKey: 'partition-' + AWS.config.credentials.identityId
977            }
978
979            recordData_init_latest.push( params );
980          }
981        );
982
983      }
984    ) // foreach playlists loop
985  } // instance presence check
986
987  // --------------------------------------------------------------
988  // put outside foreach playlists loop.
989  // WPB-402
990  AWS.config.credentials.get(
991    function(err) {
992      // attach event listener
993      if (err) {
994        return;
995      }
996      // create kinesis service object
997      kinesis = new AWS.Kinesis(
998        {
999          apiVersion: '2013-12-02'
1000        }
1001      );
1002
1003      var call_this_func = 0;
1004
1005      setInterval(
1006        function() {
1007          
1008          if ( ! IS_PROD) {
1009            // console.log("Local/Staging Debug: recordData_init_latest.length : "+recordData_init_latest.length);
1010            // console.log("Local/Staging Debug: recordData_init_download.length : "+recordData_init_download.length);
1011          }
1012
1013          if ( ! recordData_init_latest.length) {
1014            if ( ! IS_PROD) {
1015              // console.log("Local/Staging Debug: recordData_init_latest.length not found.");
1016            }
1017            return;
1018          } // dont do anything if there is no records
1019
1020          if (recordData_init_latest.length == 0) {
1021            if ( ! IS_PROD) {
1022              // console.log("Local/Staging Debug: recordData_init_latest.length = 0");
1023            }
1024            return;
1025          }
1026
1027          // upload data to Amazon Kinesis
1028          if (kinesis) {
1029            call_this_func = 1;
1030
1031            kinesis.putRecords(
1032              {
1033                Records: recordData_init_latest,
1034                //Records: recordData_Local, // checking with local variable.
1035                StreamName: 'iap-stats-pipeline'
1036              },
1037              function(err, data) {
1038                if (err) {
1039                }
1040                recordData_init_latest = [];
1041
1042                if ( ! IS_PROD) {
1043                  console.log( "Local/Staging Debug: recordData_init_latest to []" );
1044                }
1045
1046                call_this_func = 0;
1047              }
1048            );
1049            // clear record data
1050          } // if there is a kinesis
1051        },
1052        10000
1053      ); // set interval - 10 seconds - WPB-7003
1054      // can we change interval from 1000 ( 1 second ) to other seconds ?
1055
1056    }
1057  );
1058  // --------------------------------------------------------------
1059
1060  // });
1061}; //ducment ready end.
1062
1063
1064// common for wpb code both the players.
1065function hideAudioPlayerShowVideoPlayer(unique_num) {
1066  var returnInfoArr = getObjectInfo( unique_num );
1067  var audioPlayerDivObj     = returnInfoArr['audioPlayerDivObj'];
1068  var videoPlayerDivObj     = returnInfoArr['videoPlayerDivObj'];
1069  var videoPlayerContDivObj = returnInfoArr['videoPlayerContDivObj'];
1070
1071  var dfp_video_ad_tag_val = eval( 'wpb_jplayer_settings_' + unique_num ).dfp_video_ad_tag;
1072  if (dfp_video_ad_tag_val) {
1073    if (eval( 'gotVideo_' + unique_num )) {
1074      // donot hide audio player again, if pause and start.
1075    } else {
1076      audioPlayerDivObj.style.display     = 'none';
1077      videoPlayerContDivObj.style.display = 'block';
1078      eval( 'gotVideo_' + unique_num + '=true;' );
1079
1080      return true;
1081    }
1082  }
1083
1084  return false;
1085}
1086
1087function getObjectInfo(unique_num) {
1088  var audioPlayerDivObj     = document.getElementById( 'aud-' + unique_num );
1089  var videoPlayerDivObj     = document.getElementById( 'vid-' + unique_num );
1090  var videoPlayerContDivObj = document.getElementById( 'vid-container-' + unique_num );
1091
1092  var returnInfoArr = [];
1093
1094  returnInfoArr['audioPlayerDivObj']     = audioPlayerDivObj;
1095  returnInfoArr['videoPlayerDivObj']     = videoPlayerDivObj;
1096  returnInfoArr['videoPlayerContDivObj'] = videoPlayerContDivObj;
1097
1098  return returnInfoArr;
1099}
1100
1101// WPB-435 -- used in file videojs.vast.js
1102function getHidExtraInfo(num_unique) {
1103  var ObjHid = document.getElementById( 'hid-extra-' + num_unique );
1104
1105  if (ObjHid && ObjHid != 'undefined') {
1106    // if find then only. otherwise blank.
1107  } else {
1108    var hidExtraInfoArr = [];
1109
1110    hidExtraInfoArr['e_id']        = '';
1111    hidExtraInfoArr['p_id']        = '';
1112    hidExtraInfoArr['flag_play']   = '';
1113    hidExtraInfoArr['pod_id']      = '';
1114    hidExtraInfoArr['ply_f']       = '';
1115    hidExtraInfoArr['audio_mp3']   = '';
1116    hidExtraInfoArr['audio_title'] = '';
1117
1118    return hidExtraInfoArr;
1119  }
1120
1121  var field_arr  = ObjHid.value.split( '^#^' );
1122  var field1_arr = field_arr[0].split( '^@^' );
1123  var e_id       = field1_arr[1];
1124  var field2_arr = field_arr[1].split( '^@^' );
1125  var p_id       = field2_arr[1];
1126  var field3_arr = field_arr[2].split( '^@^' );
1127  var flag_play  = field3_arr[1];
1128  var field4_arr = field_arr[3].split( '^@^' );
1129  var pod_id     = field4_arr[1];
1130  var field5_arr = field_arr[4].split( '^@^' );
1131  var ply_f      = field5_arr[1];
1132
1133  var audio_mp3   = '';
1134  var audio_title = '';
1135  try {
1136    var field6_arr  = field_arr[5].split( '^@^' );
1137    var audio_mp3   = field6_arr[1];
1138    var field7_arr  = field_arr[6].split( '^@^' );
1139    var audio_title = field7_arr[1];
1140  } catch (e) {
1141  }
1142
1143  var hidExtraInfoArr = [];
1144
1145  hidExtraInfoArr['e_id']        = e_id;
1146  hidExtraInfoArr['p_id']        = p_id;
1147  hidExtraInfoArr['flag_play']   = flag_play;
1148  hidExtraInfoArr['pod_id']      = pod_id;
1149  hidExtraInfoArr['ply_f']       = ply_f;
1150  hidExtraInfoArr['audio_mp3']   = audio_mp3;
1151  hidExtraInfoArr['audio_title'] = audio_title;
1152
1153  return hidExtraInfoArr;
1154}
1155// WPB-435 -- used in file videojs.vast.js
1156function checkPlaylistPlayer(num) {
1157  var player_unique_index_val = num;
1158  var player_flag             = '';
1159  try {
1160    var playlists_arr = eval( 'playlists_arr_' + player_unique_index_val );
1161    if (playlists_arr) {
1162      player_flag = 'advance_playlist';
1163    }
1164  } catch (e) {
1165  }
1166
1167     if(player_flag=='advance_playlist'){
1168           if($('#jplayer-single-type-'+num).length>0)
1169            player_flag = 'single';
1170        }
1171
1172  return player_flag;
1173} //End of func checkPlaylistPlayer
1174
1175// WPB-3671 -- same func called in pjax theme file.
1176function callEqualizer(jQueryParam, flagChk, playerUnqIdx) {
1177  jQuery( ".jp-jplayer" ).each(
1178    function() {
1179      var playerUniqId = jQuery( this ).attr( 'id' );
1180      playerUniqId = playerUniqId.replace( "player-", "" );
1181      eval( 'callEqualizer_' + playerUniqId + '();' );
1182    }
1183  );
1184}
1185
1186var Equalizer = function(_canvas, _numBars, _height, _barRatio, _paddingRatio, _growSpeed, _shrinkSpeed, _color) {
1187  // ---------------------------------------
1188  // Private Variables
1189  // ---------------------------------------
1190  if (_barRatio > 1 || _paddingRatio > 1) {
1191    console.error( "There was a problem with the ratio value provided. They must be less than or equal to 1. Given Values:", _barRatio, _paddingRatio );
1192    return;
1193  }
1194  var animating    = false;
1195  var midPoint     = 0;
1196  var maxBarHeight = _height;
1197  var maxBarSmall  = 50;
1198  var minBarHeight = 20;
1199  var barRatio     = _barRatio;
1200  var paddingRatio = _paddingRatio;
1201  var barPadding   = 10;
1202  var barWidth     = 10;
1203  var totalBars    = _numBars;
1204  var barColor     = _color;
1205  var canvas       = document.getElementById( _canvas );
1206  var ctx          = canvas.getContext( "2d" );
1207  var bar          = [];
1208  var width        = canvas.width;
1209  var speed        = {
1210    grow: _growSpeed,
1211    shrink: _shrinkSpeed
1212  };
1213
1214  // var mousePos = {
1215  // x: 0, y: 0
1216  // };
1217  var resizeTimeOut = false;
1218  // -----------------------------
1219  // Bind function calls to dom
1220  // -----------------------------
1221  init();
1222  // -----------------------------
1223  // init()
1224  // - Begins the animation sequence
1225  // -----------------------------
1226  function init() {
1227    initBars();
1228    // bindResizeEvents();
1229    // bindMouseMove();
1230  }
1231
1232  function start() {
1233    animating = true;
1234    update();
1235  }
1236
1237  function initBars() {
1238    resize( jQuery( window ).width() );
1239    var barHeight = 0,
1240    x             = 0,
1241    y             = 0;
1242    midpoint      = width / 2;
1243    for (var i = 0; i < totalBars; i++) {
1244      x = (i + i) * barPadding + (barWidth * i);
1245
1246      barHeight = randomizeHeight( x );
1247      y         = getHeight( barHeight );
1248
1249      bar.push(
1250        {
1251          height: barHeight,
1252          buffHeight: barHeight,
1253          direction: -1,
1254          x: x,
1255          y: y
1256        }
1257      );
1258    }
1259  }
1260  // -----------------------------
1261  // stop()
1262  // - Stops the animation sequence
1263  // -----------------------------
1264  function stop() {
1265    animating = false;
1266  }
1267  // -----------------------------
1268  // draw()
1269  // - Draw the contents of an individual frame
1270  // -----------------------------
1271  function draw() {
1272    for (var index = 0; index < bar.length; index++) {
1273      ctx.fillStyle = barColor;
1274      ctx.clearRect( bar[index].x, bar[index].y, barWidth, bar[index].height );
1275      bar[index].y = getHeight( bar[index].height );
1276      bar[index].x = (index + index) * barPadding + (barWidth * index);
1277      // if (mousePos.x >= bar[index].x - barWidth * 10 &&
1278      // mousePos.x < bar[index].x + barWidth * 10 &&
1279      // Math.abs(mousePos.y - maxBarHeight / 2) < 100) {
1280      // bar[index].direction = -1;
1281      // }
1282      if (bar[index].height < bar[index].buffHeight && bar[index].direction > 0) {
1283        bar[index].height += speed.grow;
1284      } else if (bar[index].direction > 0) {
1285        bar[index].direction = -1;
1286      }
1287      // If increasing grow it
1288      if (bar[index].height > bar[index].buffHeight / 1.25 && bar[index].direction < 0) {
1289        bar[index].height -= speed.shrink;
1290      } else if (bar[index].direction < 0) {
1291        bar[index].buffHeight = randomizeHeight( bar[index].x );
1292        bar[index].direction  = 1;
1293      }
1294      ctx.fillRect( bar[index].x, bar[index].y, barWidth, bar[index].height );
1295    }
1296    var grd = ctx.createLinearGradient( 146.000, 0.000, 154.000, 4000.000 );
1297    /*         var grd = ctx.createLinearGradient(146.000, 0.000, 154.000, 600.000);*/
1298    // Add colors
1299    grd.addColorStop( 0.000, 'rgba(255, 255, 255, 0.000)' );
1300    grd.addColorStop( 1.000, 'rgba(0, 0, 0, 1.000)' );
1301    // Fill with gradient
1302    ctx.fillStyle = grd;
1303    ctx.fillRect( 0, 400, width, 400 );
1304  }
1305  // -----------------------------
1306  // update()
1307  // - Redraws Canvas each frame
1308  // -----------------------------
1309  function update() {
1310    if ( ! animating) {
1311      return;
1312    }
1313    draw();
1314    requestAnimationFrame( update );
1315  }
1316  // -----------------------------
1317  // getHeight()
1318  // - Returns the height in relation to the maxBarHeight
1319  // -----------------------------
1320  function getHeight(_height) {
1321    return Math.round( (maxBarHeight - _height) / 2 );
1322  }
1323  // -----------------------------
1324  // randomizeHeight()
1325  // - Calculate a new maxheight to reach when increasing in size
1326  // -----------------------------
1327  function randomizeHeight(pos) {
1328    var maxVal,
1329    temp;
1330    if (pos > midPoint) {
1331      pos  = pos - midPoint;
1332      temp = Math.abs( (pos / midPoint) - 1 );
1333    } else {
1334      temp = (pos / midPoint);
1335      if (temp == 0) {
1336        temp = 0.01;
1337      }
1338    }
1339    maxVal = temp * maxBarHeight;
1340    return Math.floor( (Math.random() * maxVal) + minBarHeight );
1341  }
1342  // -----------------------------
1343  // resize()
1344  // - Handles resizing the canvas elements according to a specified canvas width
1345  // -----------------------------
1346  function resize(_width) {
1347    width        = _width;
1348    canvas.width = _width;
1349    midPoint     = _width / 2;
1350    totalWidth   = Math.abs( _width / totalBars );
1351    barWidth     = Math.ceil( totalWidth * barRatio );
1352    barPadding   = Math.ceil( totalWidth * paddingRatio );
1353  }
1354  // -----------------------------
1355  // setSpeed()
1356  // - set speed values used to grow or shrink the size
1357  // -----------------------------
1358  function setSpeed(_grow, _shrink) {
1359    speed.grow   = _grow;
1360    speed.shrink = _shrink;
1361  }
1362  // ---------------------------------------
1363  // Publicly Accessible Variables / Functions
1364  // ---------------------------------------
1365  return ({
1366    start: start,
1367    stop: stop
1368  });
1369} //End of Equalizer

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.