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.