403Webshell
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/home2/domains/celeberateshowcase.com/_ARCHIVE/bwwPlayer/broadwayworldplayer.js
;(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'), "&amp;");
				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 );

Youez - 2016 - github.com/yon3zu
LinuXploit