// initialize jwplayer var playerInstance = jwplayer('player');// player dom elements var playerContainerEl = document.querySelector('.player-container');// returns video player position from top of document function getElementOffsetTop(el) { var boundingClientRect = el.getBoundingClientRect(); var bodyEl = document.body; var docEl = document.documentElement; var scrollTop = window.pageYOffset || docEl.scrollTop || bodyEl.scrollTop; var clientTop = docEl.clientTop || bodyEl.clientTop || 0; return Math.round(boundingClientRect.top + scrollTop - clientTop); }// returns the current y scroll position function getScrollTop() { var docEl = document.documentElement; return (window.pageYOffset || docEl.scrollTop) - (docEl.clientTop || 0); }// configure jwplayer instance playerInstance.setup({ autostart: true, playlist: 'https://cdn.jwplayer.com/v2/playlists/mYdavspX', primary: 'html5', setFullscreen: true, width: '100%' });// when jwplayer instance is ready playerInstance.on('ready', function() { var config = playerInstance.getConfig(); var utils = playerInstance.utils; // get height of player element var playerHeight = config.containerHeight; // flag determining whether close has been clicked var closed = true; // CHANGED // flag determing whether player is playing var playing = false; // ADDED // eventhandler for when close button is being pressed document.getElementsByClassName('icon-close')[0].addEventListener('click', () => { closed = true; onScrollViewHandler(); }); playerInstance.on('play', function() { closed = false; playing = true; // ADDED }).on('pause', function () { playing = false; // ADDED }).on('adPlay', function() { closed = false; // ADDED playing = true; // ADDED }).on('adPause', function() { playing = false; // ADDED });// get player element position from top of document var playerOffsetTop = getElementOffsetTop(playerContainerEl);// set player container to match height of actual video element playerContainerEl.style.height = playerHeight + 'px';// below we handle window scroll event without killing performance function onScrollViewHandler() { var minimized = getScrollTop() >= playerOffsetTop;if (closed && minimized) { minimized = false; jwplayer().pause(); playing = false; // ADDED } else if (!minimized && !playing) { closed = true; // ADDED } utils.toggleClass(playerContainerEl, 'player-minimize', minimized); // update the player's size so the controls are adjusted playerInstance.resize(); }// namespace for whether or not we are waiting for setTimeout() to finish var isScrollTimeout = false;// window onscroll event handler window.onscroll = function() { // skip if we're waiting on a scroll update timeout to finish if (isScrollTimeout) return; // flag that a new timeout will begin isScrollTimeout = true; // otherwise, call scroll event view handler onScrollViewHandler(); // set new timeout setTimeout(function() { // reset timeout flag to false (no longer waiting) isScrollTimeout = false; }, 80); };});

This is taking Twitter by storm this morning and seems to be the talk of the CoD community. Witness this heated exchange at yesterday’s UMG event in Atlanta……

Let us know what you think in the comments.

UPDATE: After this controversy, Epsilon has released the team due to lack of professionalism. Here’s their statement on what happened:

We must lead by example for the next generation. We have the chance to live our passions and we must thank our fans & the public for this privilege as we would not be here today without them and their support.

Regardless of how a player may outplay another, there must be an understanding that he is studied and analysed by all, just as any other celebrity.

Upon the recruitment of Impact, we were conscious of the issues of their public image, and tried to set a base of acceptable behavior by speaking with the line-up. Regardless of their attitudes towards nV being amicable & trash talk having a place in every sport, the public’s response was justifiably negative towards the overall behavior of the squad.

It is thus with regret that today we must release the American Call of Duty line-up due to a lack of professional discipline during the Black Ops 2 tournament at UMG AtLANtA 2013.

Impact is composed of great, sociable players who are, once you look past the game, good people. However, we must maintain a standard of excellence and professionalism. The world of eSports will not only be advanced by inter-organizational relationships, but also the image that we present to our fans and the rest of the world.

I would like to personally thank Chris, Adam, Marcus and John for their brief stay with Epsilon. They know that we do not hold anything against them and that we enjoyed our short time together. We have obligations, standards that our players must abide to, and no amount of talent can allow those principles to be broken.

comments below