| Server IP : 172.67.201.108 / Your IP : 216.73.216.11 Web Server : Apache/2.4.68 (Amazon Linux) OpenSSL/3.5.5 System : Linux ip-172-31-69-123.ec2.internal 6.1.176-223.369.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Jul 24 13:34:27 UTC 2026 x86_64 User : ec2-user ( 1000) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/home2/domains/celeberateshowcase.com/_ARCHIVE/bwwPlayer/ |
Upload File : |
;(function ( $, window, document, undefined ) {
var pluginName = "broadwayworldplayer",
defaults = {
url: undefined,
width: "100%",//650,
height: "100%"//400
};
function VastAds(url, onloaded){
this.vastURL = url;
this.onloaded = onloaded;
this.init();
}
$.extend(VastAds.prototype, {
dataIsLoading:false,
tagIsLoading:false,
vastAdTags:undefined,
init: function(){
var obj = this;
obj.vastLoadAdTagInfo();
},
vastLoadAdTagInfo: function() {
var obj = this;
// set this to stop playback
obj.dataIsLoading = true;
obj.tagIsLoading = true;
obj.loadAdTagInfoDirect();
},
loadAdTagInfoDirect: function() {
var obj = this;
console.log('vast:direct');
$.ajax({
url: obj.vastURL,
crossDomain: true,
success: function(data) {
console.log('vast:direct:success', data);
obj.vastParseVastData(data)
},
error: function(err) {
console.log('vast:direct:error', err);
}
});
},
vastParseVastData: function(data) {
var obj = this;
// clear out data
obj.vastAdTags = [];
$(data).find('Ad').each(function(index, node) {
var adNode = $(node),
adTag = {
id: adNode.attr('id'),
title: $.trim( adNode.find('AdTitle').text() ),
description: $.trim( adNode.find('Description').text() ),
impressions: [],
clickThrough: $.trim( adNode.find('ClickThrough').text() ),
mediaFiles: [],
trackingEvents: {},
// internal tracking if it's been used
shown: false
};
obj.vastAdTags.push(adTag);
// parse all needed nodes
adNode.find('Impression').each(function() {
adTag.impressions.push( $.trim( $(this).text() ) );
});
adNode.find('Tracking').each(function(index, node) {
var trackingEvent = $(node);
adTag.trackingEvents[trackingEvent.attr('event')] = $.trim( trackingEvent.text() );
});
adNode.find('MediaFile').each(function(index, node) {
var mediaFile = $(node),
type = mediaFile.attr('type');
adTag.mediaFiles.push({
id: mediaFile.attr('id'),
delivery: mediaFile.attr('delivery'),
type: mediaFile.attr('type'),
bitrate: mediaFile.attr('bitrate'),
width: mediaFile.attr('width'),
height: mediaFile.attr('height'),
url: $.trim( mediaFile.text() )
} );
});
});
if(obj.onloaded)
obj.onloaded(obj.vastAdTags);
}
});
function Plugin ( element, options ) {
this.element = element;
this.settings = $.extend( {}, defaults, options );
this._defaults = defaults;
this._name = pluginName;
this.init();
}
$.extend(Plugin.prototype, {
$videoElement: undefined,
tracks:{
branding:[],
preroll: [],
main: [],
postroll: []
},
adsClicked:[],
adEvents:[],
currentTrackIndex: 0,
mediaElementPlayer: undefined,
init: function () {
var obj = this;
var $el = $(obj.element);
//Get data
$.ajax({
url: obj.settings.url,
type: 'GET',
dataType : 'text',
success: function(data){ obj.dataLoaded(data); },
error: function(jqXHR, textStatus, errorThrown){console.log("Error retreiving XML:"+errorThrown);}
});
},
$ytPlayer: undefined,
youtubeAPI: undefined,
hasVastAds:function(){
var obj = this;
var $el = $(obj.element);
var cTracks = obj.compiledTracks();
for(var i=0;i<cTracks.length;i++){
if(cTracks[i].src.indexOf(".xml")>-1 || (cTracks[i].type && cTracks[i].type.toUpperCase() == "VAST")){
return true;
}
}
return false;
},
getVastURL:function(){
var obj = this;
var $el = $(obj.element);
var cTracks = obj.compiledTracks();
for(var i=0;i<cTracks.length;i++){
if(cTracks[i].src.indexOf(".xml")>-1 || (cTracks[i].type && cTracks[i].type.toUpperCase() == "VAST")){
return cTracks[i].src;
}
}
return false;
},
hasYoutubeTrack: function(){
var obj = this;
var $el = $(obj.element);
var cTracks = obj.compiledTracks();
for(var i=0;i<cTracks.length;i++){
if(cTracks[i].src.indexOf("youtube.com")>-1){
return true;
}
}
return false;
},
getYoutubeTrack: function(){
var obj = this;
var $el = $(obj.element);
var cTracks = obj.compiledTracks();
for(var i=0;i<cTracks.length;i++){
if(cTracks[i].src.indexOf("youtube.com")>-1){
return cTracks[i];
}
}
return false;
},
loadYoutubeAPI: function(events){
var obj = this;
var $el = $(obj.element);
$("body").append($('<script src="http://www.youtube.com/iframe_api"></script>'));
obj.$ytPlayer = $('<div id="ytplayer" style="display:none;" />');// width="' + obj.settings.width + '" height="' + obj.settings.height + '" src="http://www.youtube.com/apiplayer?enablejsapi=1&version=3" frameborder="0" allowfullscreen></iframe>');//https://www.youtube.com/embed/M7lc1UVf-VE?controls=0&rel=0&showinfo=0&enablejsapi=1
var $mediaElement = $el.find(".mejs-mediaelement");
if($mediaElement.length>0){
$mediaElement.prepend(obj.$ytPlayer);
} else {
$el.append(obj.$ytPlayer);
}
window.onYouTubePlayerReady = window.onYouTubeIframeAPIReady;
window.onYouTubeIframeAPIReady = function(){
//console.log("onYouTubeIframeAPIReady");
obj.youtubeAPI = new YT.Player('ytplayer',{
height: obj.settings.height,
width: obj.settings.width,
playerVars: {showinfo: 0,playsinline:1,rel: 0},//controls: 0,rel: 0,
events: {
onReady: function(e) {
obj.$ytPlayer = $("#ytplayer");
if(events.onready)
events.onready();
},
onStateChange: function(d) {
console.log("YT onStateChange");
//console.log(d);
switch(d.data){
case -1:
break;
case YT.PlayerState.ENDED:
if(events.onended)
events.onended();
break;
case YT.PlayerState.PLAYING:
if(events.onplay)
events.onplay();
break;
case YT.PlayerState.PAUSED:
if(events.onpause)
events.onpause();
break;
case YT.PlayerState.BUFFERING:
if(events.onbuffering)
events.onbuffering();
break;
case YT.PlayerState.CUED:
break;
}
},
onError:function(e){
console.log("YT onError");
console.log(e);
}
}
});
};
},
compiledTracks:function(){
var obj = this;
var t = [];
$.merge(t,obj.tracks.branding);
$.merge(t,obj.tracks.preroll);
$.merge(t,obj.tracks.main);
$.merge(t,obj.tracks.postroll);
return t;
},
hidePause:function(hide){
var obj = this;
var $el = $(obj.element);
if(hide){
$el.find(".mejs-overlay-button").hide();
} else {
$el.find(".mejs-overlay-button").show();
}
},
getTrack:function(i){
var obj = this;
var cTracks = obj.compiledTracks();
return cTracks[i];
},
dataLoaded: function(data){
data = data.replace(new RegExp("&", 'g'), "&");
data = '<?xml version="1.0" encoding="UTF-8"?>\n' + data;
data = $.parseXML(data);
//console.log(data);
var obj = this;
var $el = $(obj.element);
//Gather tracks
$(data).find("track").each(function(i,track){
var $track = $(track);
var $loc = $track.children("location");
var $info = $track.children("info");
var $img = $track.children("image");
var ary;
if(i==0){
ary = obj.tracks.branding;
} else if(i==1){
ary = obj.tracks.preroll;
} else if(i==2){
ary = obj.tracks.main;
} else if(i==3){
ary = obj.tracks.postroll;
}
ary.push({
type:$loc.attr("type"),
src:($loc.length>0)?$loc.text():undefined,
href:($info.length>0)?$info.text():undefined,
img:($img.length>0)?$img.text():undefined
});
});
var hasYTTrack = obj.hasYoutubeTrack();
var isIPhone = ( navigator.userAgent.match(/(iPhone)/g) ? true : false );
if(isIPhone===true && hasYTTrack===true){
obj.loadYoutubeAPI({onready:function(){
var ytTrack = obj.getYoutubeTrack();
var m = ytTrack.src.match("v=([^&]*)");
obj.youtubeAPI.cueVideoById(m[1]);
obj.$ytPlayer.show();
}});
} else {
//Create video element
var firsttrack = obj.getTrack(0);
obj.$videoElement = $('<video id="vidPlayer" width="' + obj.settings.width + '" height="' + obj.settings.height + '" style="width:' + obj.settings.width + ';height:' + obj.settings.height + ';" poster="' + firsttrack.img + '" src="' + firsttrack.src + '" controls="controls" preload="none" webkit-playsinline></video>');
$el.append(obj.$videoElement);
var mediaElementArgs = {
showPosterWhenEnded: true,
features: ['playpause','progress','current','duration','tracks','volume','fullscreen'],
mode: "native",
success: function (mediaElement, domObject) {
//Remove original poster
$(mediaElement).removeAttr('poster');
//Move video into another div
var $videoElContainer = $('<div id="vidPlayerContainer" style="width:100%;height:100%;" />');
$el.find(".mejs-mediaelement").append($videoElContainer);
$videoElContainer.append($el.find("#vidPlayer"));
mediaElement.pause();
mediaElement.setCurrentTimeOrg = mediaElement.setCurrentTime;
mediaElement.setCurrentTime = function(time) {
var currentTrack = obj.getTrack(obj.currentTrackIndex);
if(!currentTrack.href){
mediaElement.setCurrentTimeOrg.apply(this,[time]);
}
};
var ended = function(e){
var nextTrackIndex = obj.currentTrackIndex + 1;
var nextTrack = obj.getTrack(nextTrackIndex);
if(!nextTrack){
obj.currentTrackIndex = -1;
ended(e);
return;
}
//obj.hidePause((nextTrack.href));
//var src = obj.tracks[nextTrackIndex].src;
//Skip vast
if(nextTrack.src.indexOf(".xml")>-1 || (nextTrack.type && nextTrack.type.toUpperCase() == "VAST")){
obj.currentTrackIndex = nextTrackIndex;
ended(e);
return;
}
if(nextTrack.src.indexOf("youtube.com")>-1){
var m = nextTrack.src.match("v=([^&]*)");
mediaElement.pause();
var isMobile = ( navigator.userAgent.match(/(iPad|iPhone|iPod|Android|webOS|BlackBerry|Windows Phone)/g) ? true : false );
if(isMobile===false){
obj.youtubeAPI.loadVideoById(m[1]);
obj.youtubeAPI.playVideo();
} else {
obj.youtubeAPI.cueVideoById(m[1]);
}
obj.$ytPlayer.show();
obj.$videoElement.hide();
$el.find(".mejs-layers").hide();
$el.find("#vidPlayerContainer").hide();
obj.mediaElementPlayer.disableControls();
obj.mediaElementPlayer.hideControls();
} else {
if(obj.$ytPlayer){
obj.$ytPlayer.hide();
obj.mediaElementPlayer.enableControls();
obj.mediaElementPlayer.showControls();
$el.find(".mejs-layers").show();
$el.find("#vidPlayerContainer").show();
obj.$videoElement.show();
}
mediaElement.setSrc(nextTrack.src);
mediaElement.load();
if(nextTrackIndex>0){
mediaElement.play();
}
}
obj.currentTrackIndex=nextTrackIndex;
};
mediaElement.addEventListener('ended', ended);
mediaElement.addEventListener("click", function (e) {
//Is this an ad?
var currentTrack = obj.getTrack(obj.currentTrackIndex);
if(currentTrack.href && !obj.adsClicked[obj.currentTrackIndex]){
//IE9 & Other Browsers
if (e.stopPropagation) {
e.stopPropagation();
}
//IE8 and Lower
else {
e.cancelBubble = true;
}
//Open link in new tab
window.open(currentTrack.href, '_blank').focus();
obj.adsClicked[obj.currentTrackIndex] = true;
//obj.hidePause(false);
}
});
mediaElement.addEventListener('timeupdate', function(e) {
var p = (mediaElement.currentTime / mediaElement.duration);
var currentTrack = obj.getTrack(obj.currentTrackIndex);
if(currentTrack.isVastAd===true){
if(!obj.adEvents[currentTrack.vastAdIndex]){
obj.adEvents[currentTrack.vastAdIndex] = {};
}
if(obj.vastAds[currentTrack.vastAdIndex].trackingEvents.start && obj.adEvents[currentTrack.vastAdIndex].start !== true && p >= 0.1) {
obj.adEvents[currentTrack.vastAdIndex].start = true;
$.get(obj.vastAds[currentTrack.vastAdIndex].trackingEvents.start);
}
if(obj.vastAds[currentTrack.vastAdIndex].trackingEvents.complete && obj.adEvents[currentTrack.vastAdIndex].complete !== true && p >= 0.9) {
obj.adEvents[currentTrack.vastAdIndex].complete = true;
$.get(obj.vastAds[currentTrack.vastAdIndex].trackingEvents.complete);
}
if(obj.vastAds[currentTrack.vastAdIndex].trackingEvents.midpoint && obj.adEvents[currentTrack.vastAdIndex].midpoint !== true && p >= 0.5) {
obj.adEvents[currentTrack.vastAdIndex].midpoint = true;
$.get(obj.vastAds[currentTrack.vastAdIndex].trackingEvents.midpoint);
}
if(obj.vastAds[currentTrack.vastAdIndex].trackingEvents.firstQuartile && obj.adEvents[currentTrack.vastAdIndex].firstQuartile !== true && p >= 0.25) {
obj.adEvents[currentTrack.vastAdIndex].firstQuartile = true;
$.get(obj.vastAds[currentTrack.vastAdIndex].trackingEvents.firstQuartile);
}
if(obj.vastAds[currentTrack.vastAdIndex].trackingEvents.thirdQuartile && obj.adEvents[currentTrack.vastAdIndex].thirdQuartile !== true && p >= 0.75) {
obj.adEvents[currentTrack.vastAdIndex].thirdQuartile = true;
$.get(obj.vastAds[currentTrack.vastAdIndex].trackingEvents.thirdQuartile);
}
}
}, false);
//Load youtubeapi if applicable
if(obj.hasYoutubeTrack()){
obj.loadYoutubeAPI({
onended: ended
});
}
},
error: function () {
console.log("failure!");
}
};
if(obj.hasVastAds()){
var vastAds = new VastAds(obj.getVastURL(),function(data){
console.log("Got Vast Ads:");
console.log(data);
obj.vastAds = data;
if(data && data.length > 0 && data[0].mediaFiles.length > 0){
obj.tracks.preroll.push({
src:data[0].mediaFiles[0].url,
href:data[0].clickThrough,
isVastAd: true,
vastAdIndex: 0
});
}
});
//obj.currentTrackIndex = -1;
//mediaElementArgs.features.push('vast');
//mediaElementArgs.vastAdTagUrl = obj.getVastURL();//'mediaelementjs.com/media/minoto-vast.xml';
//mediaElementArgs.vastEnableSkip = false;
//mediaElementArgs.vastSkipSeconds = 3;
}
//Initialize MediaElementPlayer
obj.mediaElementPlayer = new MediaElementPlayer(obj.$videoElement,mediaElementArgs);
}
}
});
$.fn[ pluginName ] = function ( options ) {
this.each(function() {
if ( !$.data( this, "plugin_" + pluginName ) ) {
$.data( this, "plugin_" + pluginName, new Plugin( this, options ) );
}
});
return this;
};
})( jQuery, window, document );