The Waltons cast Richard Thomas' real-life lover to play John-Boy's girlfriend (2024)

'); $videoEl.append('' + '' + ''); setTimeout(function(){ $('.mute-overlay').on('touchstart click', function(e){ if(e.handled === false) return; e.stopPropagation(); e.preventDefault(); e.handled = true; player.muted(false); //console.log("volumee " + WVM.activePlayer.volume()); $(this).hide(); $(this).css('display', 'none'); var currentTime = player.currentTime(); if(currentTime < 3){ player.currentTime(0); } var adsManager = player.ima.getAdsManager(); adsManager.setVolume(player.volume()); }); $('.video-close-floating').on('click', function(){ WVM['player_state' + videoId]['CANCEL_FLOATING'] = true; WVM.IS_FLOATING = false; window.dispatchEvent(WVM.FloatEventEnd); $('#media-container-' + videoId).css('width', "100%"); $('#media-container-' + videoId).removeClass('floating-video'); $('#media-placeholder-' + videoId).css('display', 'none'); player.pause(); WVM.NO_FLOAT_COOKIE(); var adsManager = player.ima.getAdsManager(); if(adsManager){ adsManager.pause(); } }); if(hideClose){ setTimeout(function(){ $('.video-close-floating').css('display', 'none'); $('.video-close-floating').remove(); }, 500); } }, 500); } else{ //wait 500 sec call again setTimeout(function(){ WVM.addMuteButton(videoId, player, hideClose); }, 500); } }; WVM.addFloatingAbility = function(videoId, player){ var deviceName = 'desktop'; if($('#media-container-' + videoId).length > 0){ if(deviceName == 'desktop'){ WVM.VIDEO_TOP = $('#media-container-' + videoId).offset().top; }else{ WVM.VIDEO_TOP = $('#media-container-' + videoId).offset().top - $('.next-dropdown-accordion').height(); } if(deviceName == 'desktop'){ WVM.VIDEO_HEIGHT = $('#html5-video-' + videoId).outerHeight(); }else{ WVM.VIDEO_HEIGHT = $('#html5-video-' + videoId).outerHeight(); } WVM.CONTAINER_HEIGHT = $('#media-container-' + videoId).height(); //console.log("container height: " + WVM.CONTAINER_HEIGHT); $(window).on( "resize", function() { if(deviceName == 'desktop'){ WVM.VIDEO_TOP = $('#media-container-' + videoId).offset().top; }else{ WVM.VIDEO_TOP = $('#media-container-' + videoId).offset().top - $('.next-dropdown-accordion').height(); } if(deviceName == 'desktop'){ WVM.VIDEO_HEIGHT = $('#html5-video-' + videoId).outerHeight(); }else{ WVM.VIDEO_HEIGHT = $('#html5-video-' + videoId).outerHeight(); } WVM.CONTAINER_HEIGHT = $('#media-container-' + videoId).height(); console.log("container height: " + WVM.CONTAINER_HEIGHT); }); //console.log("VIDEOTOP: " + WVM.VIDEO_TOP); //console.log("VIDEOHEIGHT: " + WVM.VIDEO_HEIGHT); $(window).on( "scroll", function() { if(!WVM.IS_FLOATING){ if(deviceName == 'desktop'){ WVM.CONTAINER_HEIGHT = $('#media-container-' + videoId).height(); }else{ WVM.CONTAINER_HEIGHT = $('#media-container-' + videoId + " .hlsvideo-wrapper").height() + $('#media-container-' + videoId + " .now-playing-container").height(); } } //var top = $('#media-container-' + videoId).offset().top; var offset = WVM.VIDEO_TOP + (WVM.VIDEO_HEIGHT / 2); var offsetBack = WVM.VIDEO_TOP; var changed = false; //console.log("VIDEOTOP: " + WVM.VIDEO_TOP); //console.log("VIDEOHEIGHT: " + WVM.VIDEO_HEIGHT); //console.log("scrolltop " + $(window).scrollTop()); //only float if playing var isPlaying = WVM['player_state' + videoId]['IS_PLAYING'] || WVM['player_state' + videoId]['AD_IS_PLAYING']; if(isPlaying){ $('.vjs-loading-spinner').hide(); } var offsetFloatAd = 99999999; if(deviceName == 'desktop' && $('#float_anchor').length > 0){ offsetFloatAd = $('#float_anchor').offset().top - WVM.VIDEO_HEIGHT; //console.log("float anchor offset top " + offsetFloatAd); } if($(window).scrollTop() > offset && isPlaying && !WVM['player_state' + videoId]['CANCEL_FLOATING']){ $('#media-placeholder-' + videoId).height(WVM.CONTAINER_HEIGHT); $('#media-placeholder-' + videoId).css('display', 'block'); if(!WVM.IS_FLOATING){ changed = true; window.dispatchEvent(WVM.FloatEventStart); } WVM.IS_FLOATING = true; $('#media-container-' + videoId).addClass('floating-video'); //set right var sWidth = window.innerWidth || document.documentElement.clientWidth; var sHeight = window.innerHeight || document.documentElement.clientHeight; if(sWidth > 700 && WADS.IS_STICKING){ $('#media-container-' + videoId).addClass('desktop-ad-is-sticky'); }else if(!WADS.IS_STICKING){ $('#media-container-' + videoId).removeClass('desktop-ad-is-sticky'); } if(sWidth <= 700 && WADS.IS_STICKING){ $('#media-container-' + videoId).addClass('mobile-ad-is-sticky'); }else if(sWidth <= 700 && !WADS.IS_STICKING){ $('#media-container-' + videoId).removeClass('mobile-ad-is-sticky'); } if(deviceName == 'desktop' || sWidth > 900){ var leftPos2 = $('aside').get(0).getBoundingClientRect().left; var leftPos = $('aside').offset().left - 50; $('#media-container-' + videoId).css('left', leftPos + "px"); var newWidth = Math.floor(sWidth / 3.5); $('#media-container-' + videoId).css('width', newWidth + "px"); } else{ $('#media-container-' + videoId).css('width', "100% !important"); if(!WVM['player_state' + videoId]['PROMO_PLAYER']){ $('#media-container-' + videoId + ' .now-playing-container').css('display', 'block'); $('#media-container-' + videoId + ' .next-dropdown-accordion').css('display', 'block'); } } if(sWidth < 900 && sWidth > 500 && WVM['player_state' + videoId]['PROMO_PLAYER']){ $('#media-container-' + videoId).addClass('floating-video'); $('#media-container-' + videoId).addClass('mobile-container'); $('#media-container-' + videoId).addClass('promo-playlist'); } //floating-video $('#media-container-' + videoId + " " + '.page-carousel-wrapper').hide(); setTimeout(function(){ var hWrapper = $('.floating-video .hlsvideo-wrapper').height(); var npWidth = $('.floating-video .now-playing-container').height(); var ndWidth = $('.floating-video .next-dropdown-header').height() + 20; var scrollerHeight = sHeight - (hWrapper + npWidth + ndWidth); scrollerHeight = 180; //scrollerHeight = parseInt(scrollerHeight * 0.5); if(WVM.device_name == 'desktop'){ $('#media-container-' + videoId + " " + " .mobile-list-videos").height(scrollerHeight); } }, 100); } if($(window).scrollTop() < offsetBack || $(window).scrollTop() > offsetFloatAd){ if(WVM.IS_FLOATING){ changed = true; window.dispatchEvent(WVM.FloatEventEnd); } WVM.IS_FLOATING = false; $('#media-container-' + videoId).css('width', "100%"); $('#media-container-' + videoId).removeClass('desktop-ad-is-sticky'); $('#media-container-' + videoId).removeClass('mobile-ad-is-sticky'); $('#media-container-' + videoId).removeClass('floating-video'); $('#media-placeholder-' + videoId).css('display', 'none'); $('#media-container-' + videoId + ' .now-playing-container').css('display', 'block'); if(WVM['player_state' + videoId]['PROMO_PLAYER']){ $('#media-container-' + videoId + ' .now-playing-container').css('display', 'none'); $('#media-container-' + videoId + ' .next-dropdown-accordion').css('display', 'none'); } } if($('#next-dropdown-accordion-button-' + videoId).find('i').hasClass('fa-chevron-up')){ if(deviceName == "desktop" && !$('#media-container-' + videoId).hasClass('floating-video')){ $('#media-container-' + videoId + " " + '.page-carousel-wrapper').show(); $('#media-container-' + videoId + " " + '.mobile-list-wrapper').hide(); //console.log("showing desktop"); if(!WVM.player_state139110['CAROUSEL_INIT']){ WVM.setupCarousel(videoId); } }else{ if(changed){ //default closed for mobile/floating player $('#next-dropdown-accordion-button-' + videoId).find('i').removeClass('fa-chevron-up'); $('#next-dropdown-accordion-button-' + videoId).find('i').addClass('fa-chevron-down'); $('#media-container-' + videoId + " " + '.page-carousel-wrapper').hide(); $('#media-container-' + videoId + " " + '.mobile-list-wrapper').hide(); var currVideoId = WVM['player_state' + videoId]['VIDEO_ID']; if(currVideoId == '9999999999'){ currVideoId = WVM.playlist_ids[0]; } var nextVideoId = WVM.getNextPlaylistIndex(currVideoId); var myTitle = WVM.getPlaylistData(videoId, currVideoId, 'noprefixtitle'); $('#video-slider-nexttitle' + videoId).css('display', 'inline'); $('#video-slider-nexttitle' + videoId).html(myTitle); }else{ $('#media-container-' + videoId + " " + '.page-carousel-wrapper').hide(); $('#media-container-' + videoId + " " + '.mobile-list-wrapper').show(); } } }else{ $('#media-container-' + videoId + " " + '.page-carousel-wrapper').hide(); $('#media-container-' + videoId + " " + '.mobile-list-wrapper').hide(); } } ); $('#media-container-' + videoId + ' .video-close').on('click',function(){ //set back to paused and stop floating WVM['player_state' + videoId]['CANCEL_FLOATING'] = true; WVM.IS_FLOATING = false; window.dispatchEvent(WVM.FloatEventEnd); $('#media-container-' + videoId).css('width', "100%"); $('#media-container-' + videoId).removeClass('desktop-ad-is-sticky'); $('#media-container-' + videoId).removeClass('mobile-ad-is-sticky'); $('#media-container-' + videoId).removeClass('floating-video'); $('#media-placeholder-' + videoId).css('display', 'none'); WVM.NO_FLOAT_COOKIE(); player.pause(); player.ima.getAdsManager().pause(); }); } }; WVM.setupCarousel = function(fullVideoId, player){ // initialize Masonry after all images have loaded //alert("setting up carousel"); console.log("setting up carousel on desktop"); $('#page-carousel-' + fullVideoId).css('display', 'block'); WVM['player_state' + fullVideoId]['CAROUSEL_INIT'] = true; if($('#page-carousel-' + fullVideoId).length > 0){ var container = document.querySelector('#page-carousel-' + fullVideoId); imagesLoaded( container, function() { var screenWidth = window.innerWidth || document.documentElement.clientWidth; if(screenWidth > 850){ //alert("setting up carousel3"); WVM.IS_DESKTOP = true; $('#page-carousel-' + fullVideoId + ' .page-carousel-lg-slides').css('display', 'block'); WVM['player_settings' + fullVideoId].slider = $('#page-carousel-' + fullVideoId).owlCarousel({ loop: false, center: false, nav: false, dots: false, autoplay: false, autoplayHoverPause: true, margin: 25, responsiveClass: true, animateOut: 'slideOutDown', animateIn: 'flipInX', navText : ["",""], responsive:{ 0:{ items:3 } } }); }else{ WVM.IS_DESKTOP = false; $('.page-carousel-wrapper').css('display', 'block'); } }); } }; WVM.setupToggleButton = function(fullVideoId, player){ if($('.nextplay-switch-' + fullVideoId).length > 0){ new DG.OnOffSwitchAuto({ cls:'.nextplay-switch-' + fullVideoId, height: 24, trackColorOn:'#F9F9F9', trackColorOff:'#222', textColorOn: '#222', textColorOff: '#222', textOn:'On', textOff:'Off', listener:function(name, checked){ var theVal = 1; if(!checked){ theVal = 0; } $.ajax({ url: '/ajax/update_autoplay_video/', data: { autoplay_on: theVal }, type: 'POST', dataType: 'json', success: function(data) { WVM['player_settings' + fullVideoId]['autoplay'] = checked; }, error : function(){ console.log("Error loading video"); } }); } }); } }; WVM.setupAccordionButton = function(fullVideoId){ var deviceName = 'desktop'; $('#next-dropdown-accordion-button-' + fullVideoId).on('click', function(){ if($(this).find('i').hasClass('fa-chevron-up')){ //hide $(this).find('i').removeClass('fa-chevron-up'); $(this).find('i').addClass('fa-chevron-down'); if(deviceName == "desktop" && !$('#media-container-' + fullVideoId).hasClass('floating-video')){ $('#media-container-' + fullVideoId + " " + '.page-carousel-wrapper').slideUp(); $('#media-container-' + fullVideoId + " " + '.mobile-list-wrapper').hide(); }else{ $('#media-container-' + fullVideoId + " " + '.mobile-list-wrapper').slideUp(); $('#media-container-' + fullVideoId + " " + '.page-carousel-wrapper').hide(); } var currVideoId = WVM['player_state' + fullVideoId]['VIDEO_ID']; if(currVideoId == '9999999999'){ currVideoId = WVM.playlist_ids[0]; } var nextVideoId = WVM.getNextPlaylistIndex(currVideoId); //playerId, mediaId, fieldName var myTitle = WVM.getPlaylistData(fullVideoId, nextVideoId, 'noprefixtitle'); //alert("Getting title " + myTitle); $('#video-slider-nexttitle' + fullVideoId).css('display', 'inline'); $('#video-slider-nexttitle' + fullVideoId).html(myTitle); }else{ //expand $(this).find('i').addClass('fa-chevron-up'); $(this).find('i').removeClass('fa-chevron-down'); $('#media-container-' + fullVideoId + " " + '.mobile-list-wrapper').css('display', 'block'); if(deviceName == "desktop" && !$('#media-container-' + fullVideoId).hasClass('floating-video')){ $('#media-container-' + fullVideoId + " " + '.page-carousel-wrapper').css('display', 'block'); $('#media-container-' + fullVideoId + " " + '.page-carousel-wrapper').slideDown(); $('#media-container-' + fullVideoId + " " + '.mobile-list-wrapper').hide(); if(!WVM.player_state139110['CAROUSEL_INIT']){ WVM.setupCarousel(fullVideoId); } }else{ $('#media-container-' + fullVideoId + " " + '.mobile-list-wrapper').slideDown(); $('#media-container-' + fullVideoId + " " + '.page-carousel-wrapper').hide(); if(!$('#media-container-' + fullVideoId).hasClass('floating-video')){ if(!WVM.player_state139110['CAROUSEL_INIT']){ WVM.setupCarousel(fullVideoId); } } } $('#video-slider-nexttitle' + fullVideoId).css('display', 'none'); } }); var currVideoId = WVM['player_state' + fullVideoId]['VIDEO_ID']; if(currVideoId == '9999999999'){ currVideoId = WVM.playlist_ids[0]; } //console.log("current Video " + currVideoId); var nextVideoId = WVM.getNextPlaylistIndex(currVideoId); var myTitle = WVM.getPlaylistData(fullVideoId, nextVideoId, 'noprefixtitle'); //console.log("setting title " + myTitle); $('#video-slider-nexttitle' + fullVideoId).css('display', 'inline'); $('#video-slider-nexttitle' + fullVideoId).html(myTitle); }; WVM.sendbeacon = function(action, nonInteraction, value, eventLabel) { if(WCS.ONLY_CONTENT || WEBVIEW.is_webview){ WEBVIEW.log_stats("video-" + action, value, WCS.THREAD_URL); var eventCategory = 'app_video'; if (window.gtag) { gtag('event', action, { 'event_category': eventCategory, 'event_label': eventLabel, 'value': value, 'non_interaction': nonInteraction }); } }else{ console.log('test'); var eventCategory = 'video'; if (window.gtag) { gtag('event', action, { 'event_category': eventCategory, 'event_label': eventLabel, 'value': value, 'non_interaction': nonInteraction }); } } }; WVM.getNextPlaylistIndex = function(mediaId, returnArrayIndex){ var currId = null; if(mediaId == null){ return null; } var found = false; for(var x =0; x < WVM.playlist_ids.length; x++){ var myMediaId = WVM.playlist_ids[x]; if(myMediaId == mediaId){ found = true; currId = myMediaId; break; } } var nextId = x + 1; if(nextId < WVM.playlist_ids.length && currId !== null){ if(!returnArrayIndex){ return WVM.playlist_ids[nextId]; }else{ return nextId; } } return null; }; WVM.getPlaylistArrayId = function(mediaId){ for(var x =0; x < WVM.playlist_ids.length; x++){ var myMediaId = WVM.playlist_ids[x]; if(myMediaId == mediaId){ return x; } } return null; }; //unimportant stuff like tracking... don't put anything platform specific here WVM.finishPlayer = function(player, playerState, playerSettings){ var percentsPlayedInterval = 25; //player.off('ready'); player.on('ready', function(){ playerState.PLAYER_READY = true; }); //player.off(['waiting', 'pause']); player.on(['waiting', 'pause'], function() { playerState.IS_PLAYING = false; $('.vjs-loading-spinner').removeClass('badspinner'); }); //player.off('playing'); player.on('playing', function() { console.log('playing'); }); player.on('loadedmetadata', function(){ if(playerState.PLAYER_META){ return; } playerState.PLAYER_META = true; var currId = playerState.VIDEO_ID; if(currId == '9999999999'){ currId = WVM.playlist_ids[0]; } if(!playerState.PROMO_PLAYER){ WVM.sendbeacon("loadedmetadata", true, currId, playerState.VIDEO_TITLE); }else{ WVM.sendbeacon("promoloadedmetadata", true, currId, playerState.VIDEO_TITLE); } }); //player.off('adstart'); player.on('adstart', function(){ console.log("starting ads"); WVM.lastAdRequest = new Date().getTime() / 1000; playerState.AD_IS_PLAYING = true; playerState.PLAYED_AD = true; var currId = playerState.VIDEO_ID if(currId == '9999999999'){ currId = WVM.playlist_ids[0]; } if(!playerState.PROMO_PLAYER){ WVM.sendbeacon("adstart", true, currId, playerState.VIDEO_TITLE); } else{ WVM.sendbeacon("promoadstart", true, currId, playerState.VIDEO_TITLE); } }); //player.off('adend'); player.on('adend', function(){ var playPromise = null; console.log("ad end"); playerState.AD_IS_PLAYING = false; setTimeout(function(){ if(!playerState.IS_PLAYING || player.paused()){ } }, 500); WVM.lastAdRequest = new Date().getTime() / 1000; var currId = playerState.VIDEO_ID; if(currId == '9999999999'){ currId = WVM.playlist_ids[0]; } if(!playerState.PROMO_PLAYER){ WVM.sendbeacon("adend", true, currId, playerState.VIDEO_TITLE); } else{ WVM.sendbeacon("promoadend", true, currId, playerState.VIDEO_TITLE); } }); //player.off('timeupdate'); player.on('timeupdate', function(){ playerState.IS_PLAYING = true; var fullDuration = this.duration() * 1000; var fullCurrent = this.currentTime() * 1000; var rand = parseInt(Math.random() * 100); //console.log("timeupdate " + fullCurrent + " out of " + fullDuration); if(rand > 20){ if(fullDuration > 1 && ((fullDuration - fullCurrent) > 1) && !$('.vjs-loading-spinner').hasClass('badspinner')){ console.log("hiding spinner"); $('.vjs-loading-spinner').addClass('badspinner'); } } var duration_time = Math.floor(this.duration()); //this is a hack because the end video event is not firing... var current_time = Math.floor(this.currentTime()); if ( current_time > 0 && ( fullCurrent >= (fullDuration - 10) )){ var currId = playerState.VIDEO_ID; if(currId == '9999999999'){ currId = WVM.playlist_ids[0]; } var newMediaId = WVM.getNextPlaylistIndex(currId); //if(playerSettings.autoplay_next && newMediaId){ if(newMediaId){ if('desktop' == "iphone" && playerState.AD_ERROR){ console.log("skipped timeupdate end"); }else{ WVM.load_video(newMediaId, true, playerState.ORIGINAL_ID); } } } if(!playerState.START_SENT){ if(!playerState.PROMO_PLAYER){ WVM.sendbeacon('start', true, currId, playerState.VIDEO_TITLE); }else{ WVM.sendbeacon('promostart', true, currId, playerState.VIDEO_TITLE); } playerState.START_SENT = true; } var currentTime, duration, percent, percentPlayed, _i; currentTime = Math.round(this.currentTime()); duration = Math.round(this.duration()); percentPlayed = Math.round(currentTime / duration * 100); for (percent = _i = 0; _i <= 99; percent = _i += percentsPlayedInterval) { if (percentPlayed >= percent && __indexOf.call(playerState['PERCENTS_TRACKED'], percent) < 0) { if (percentPlayed !== 0) { if(!playerState.PROMO_PLAYER){ WVM.sendbeacon('percent-' + percent, true, currId, playerState.VIDEO_TITLE); } else{ WVM.sendbeacon('promopercent-' + percent, true, currId, playerState.VIDEO_TITLE); } } if (percentPlayed > 0) { playerState['PERCENTS_TRACKED'].push(percent); } } } }); //player.off('ended'); player.on('ended', function(){ console.log("ended"); playerState.IS_PLAYING = false; var currId = playerState.VIDEO_ID; if(currId == '9999999999'){ currId = WVM.playlist_ids[0]; } if(!playerState.PROMO_PLAYER){ WVM.sendbeacon("complete", true, currId, playerState.VIDEO_TITLE); } else{ WVM.sendbeacon("promocomplete", true, currId, playerState.VIDEO_TITLE); } console.log("current id " + currId); console.log("playlist ids"); console.log(WVM.playlist_ids); var newMediaId = WVM.getNextPlaylistIndex(currId); //if(playerSettings.autoplay_next && newMediaId){ if(newMediaId){ WVM.load_video(newMediaId, true, playerState.ORIGINAL_ID); }else{ var videoId = playerState.ORIGINAL_ID; WVM['player_state' + videoId]['CANCEL_FLOATING'] = true; WVM.IS_FLOATING = false; window.dispatchEvent(WVM.FloatEventEnd); $('#media-container-' + videoId).css('width', "100%"); $('#media-container-' + videoId).removeClass('floating-video'); $('#media-placeholder-' + videoId).css('display', 'none'); console.log("Playlist complete (no more videos)"); } }); //player.off('adserror'); player.on('adserror', function(e){ //$('#ima-ad-container').remove(); WVM.lastAdRequest = new Date().getTime() / 1000; console.log(e); console.log("ads error"); var errMessage = e['data']['AdError']['l']; playerState.AD_IS_PLAYING = false; playerState.IS_PLAYING = false; // && errMessage == 'The VAST response document is empty.' if(!playerState.AD_ERROR){ var dTime = new Date().getTime(); WVM.firstPrerollTagUrl = WVM.getFirstPrerollUrl(); //console.log("not calling backup ad tag url: " + WVM.adTagUrl); /* WVM.activePlayer.ima.changeAdTag(WVM.adTagUrl + "?" + dTime); WVM.activePlayer.ima.requestAds(); //reload src WVM.activePlayer.src({ src: masterSrc, type: 'video/mp4' }); //firefox *really* hates this load event WVM.activePlayer.load(); */ } playerState.AD_ERROR = true; }); //player.off('error'); player.on('error', function(event) { if (player.error().code === 4) { player.error(null); // clear out the old error player.options().sources.shift(); // drop the highest precedence source console.log("now doing src"); console.log(player.options().sources[0]); player.src(player.options().sources[0]); // retry return; } }); //player.off('volumechange'); player.on('volumechange', function(event) { console.log(event); var theHeight = $('#media-container-' + playerState.ORIGINAL_ID + ' .vjs-volume-level').css('height'); var cssVolume = 0; if(theHeight){ cssVolume = parseInt(theHeight.replace('%', '')); } var theVolume = player.volume(); if(theVolume > 0.0 || cssVolume > 0){ $('#media-container-' + playerState.ORIGINAL_ID + ' .mute-overlay').css('display', 'none'); }else{ $('#media-container-' + playerState.ORIGINAL_ID + ' .mute-overlay').css('display', 'block'); } }); //WVM.reinitRawEvents(playerState.ORIGINAL_ID); //setInterval(function(){ // WVM.reinitRawEvents(playerState.ORIGINAL_ID); //}, 2000); WVM.allPlayers.push(player); } if(!WVM.rawCompleteEvent){ WVM.rawCompleteEvent = function(e){ var playerState = WVM['player_state139110']; }; } if(!WVM.rawTimeupdateEvent){ WVM.rawTimeupdateEvent = function(e){ var playerState = WVM['player_state139110']; var rawVideoElem = document.getElementById('html5-video-' + playerState['ORIGINAL_ID'] + '_html5_api'); var fullCurrent = rawVideoElem.currentTime * 1000; var fullDuration = rawVideoElem.duration * 1000; var current_time = Math.floor(rawVideoElem.currentTime); console.log("raw timeupdate: " + fullCurrent + " out of " + fullDuration); if ( current_time > 0 && ( fullCurrent >= (fullDuration - 50) )){ var currId = playerState.VIDEO_ID; if(currId == '9999999999'){ currId = WVM.playlist_ids[0]; } var newMediaId = WVM.getNextPlaylistIndex(currId); if(newMediaId){ console.log("loading new video from rawtimeupdate"); WVM.load_video(newMediaId, true, playerState.ORIGINAL_ID); } } if(!$('.vjs-loading-spinner').hasClass('badspinner')){ $('.vjs-loading-spinner').addClass('badspinner') } }; } WVM.reinitRawEvents = function(playerId){ var playerState = WVM['player_state' + playerId]; var rawVideoElem = document.getElementById('html5-video-' + WVM['player_state' + playerId]['ORIGINAL_ID'] + '_html5_api'); //COMPLETE EENT if( WVM['player_state' + playerId].COMPLETE_EVENT){ rawVideoElem.removeEventListener('ended', WVM.rawCompleteEvent, false); } rawVideoElem.addEventListener('ended', WVM.rawCompleteEvent, false); //TIME UPDATE EVENT if( WVM['player_state' + playerId].TIMEUPDATE_EVENT){ rawVideoElem.removeEventListener('ended', WVM.rawTimeupdateEvent, false); } rawVideoElem.addEventListener('ended', WVM.rawTimeupdateEvent, false); WVM['player_state' + playerId].COMPLETE_EVENT = true; WVM['player_state' + playerId].TIMEUPDATE_EVENT = true; };

As an enthusiast deeply immersed in web development and JavaScript programming, I can recognize the code snippet you've shared. It appears to be part of a larger script that involves managing and manipulating video elements on a web page using JavaScript and the Video.js library. Let me break down the concepts and functionalities used in this code:

  1. JavaScript Event Handling:

    • The code extensively utilizes event listeners (on) to respond to various events, such as clicks, scrolls, and resizing.
    • It makes use of functions like setTimeout and setInterval for handling time-based events.
  2. DOM Manipulation:

    • The script manipulates the Document Object Model (DOM) to locate and modify HTML elements dynamically.
    • Selectors like $('#elementId') and $('.className') are used to target specific HTML elements.
  3. Responsive Design:

    • The code checks for the device type (desktop or mobile) and adjusts the layout and positioning of video elements accordingly.
    • Responsive design is achieved through CSS adjustments based on the window size.
  4. CSS Manipulation:

    • The script changes the CSS properties of elements to control their appearance and behavior dynamically.
    • It adjusts the width, height, and display properties of video containers based on various conditions.
  5. Floating Video Feature:

    • The script implements a floating video feature, where the video player can become a floating element while scrolling.
    • This involves manipulating CSS classes, positions, and dimensions based on the scroll position.
  6. Video Advertisem*nt Handling:

    • The code includes logic for handling video ads, including events such as ad start, ad end, and ad errors.
    • It uses the Video.js IMA plugin for managing video ads.
  7. Carousel Initialization:

    • There's a section for initializing a carousel using the Owl Carousel library when the screen width is above a certain threshold.
  8. Playlist Navigation:

    • The script manages a playlist of videos and handles navigation between them, triggering the loading of the next video when the current one ends.
  9. Volume Control:

    • The code monitors changes in the volume of the video player and adjusts the display of mute overlays accordingly.
  10. Ajax Requests:

    • The script makes asynchronous Ajax requests to the server to update settings, such as turning autoplay on or off.
  11. Error Handling:

    • There's error-handling logic, including handling errors related to ads and reloading video sources in case of certain errors.
  12. Analytics and Tracking:

    • The script sends analytics events using gtag and custom functions, tracking various video-related actions such as video start, ad start, and video completion.

It's worth noting that without the complete context and the associated HTML structure, some specific functionalities and details might not be fully clear. If you have any specific questions or need clarification on certain aspects of the code, feel free to ask!

The Waltons cast Richard Thomas' real-life lover to play John-Boy's girlfriend (2024)
Top Articles
Latest Posts
Article information

Author: Jamar Nader

Last Updated:

Views: 6010

Rating: 4.4 / 5 (55 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Jamar Nader

Birthday: 1995-02-28

Address: Apt. 536 6162 Reichel Greens, Port Zackaryside, CT 22682-9804

Phone: +9958384818317

Job: IT Representative

Hobby: Scrapbooking, Hiking, Hunting, Kite flying, Blacksmithing, Video gaming, Foraging

Introduction: My name is Jamar Nader, I am a fine, shiny, colorful, bright, nice, perfect, curious person who loves writing and wants to share my knowledge and understanding with you.