// 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); }; });

It’s that time of year, an announcement for the new Call of Duty is expected any day now (according to our sources) so we have been on high alert for any possible leaks. It seems the first *possible* leak is coming from online retailer “TESCO Direct” in the form of ‘Call of Duty: Ghosts’. Pay no attention to the release date or price as it’s possibly a placeholder since the retailer still might not know.

Xbox 360 listing
PS3 Listing
UPDATE: Tesco has now taken the links down.

ghosts
[nggallery id=475]

UPDATE 2: New promo ad (spotted via Kotaku) from Target further collaborates this; says game is coming November 5th, 2013:

20130424-111502.jpg

UPDATE 3: Tesco has put these listings back up (with the box art for Xbox 360) and have put out the official description of the game (New Article HERE):

The franchise that has defined a generation of gaming is set to raise the bar once again with the all-new Call of Duty®: Ghosts. Published by Activision and developed by Infinity Ward, the studio that created the original Call of Duty and the seminal Call of Duty®: Modern Warfare® series, Call of Duty: Ghosts ushers in the next generation of the franchise, delivering a riveting all-new gameplay experience built on an entirely new story, setting and cast, all powered by a new next-generation Call of Duty engine.

SOURCE: TESCO Direct Via @Drift0r

comments below