window.googletag = window.googletag || { cmd: [] }; const defaultPostAttributes = { type: 'unknown', categories: 'unknown', tags: 'unknown', id: 'unknown', social: 'unknown' }; const socialNetworks = { facebook: [], twitter: ['t.co'], linkedin: [], instagram: [], pinterest: [], tiktok: [], snapchat: [], 'linkin.bio': [], }; const postAttributes = Object.assign({}, defaultPostAttributes, window.postAttributes || {}); function addBettingWidgetIfNotHidden(version = "desktop") { if (postAttributes.hide_non_gam !== 'hide') { const containerDiv = document.createElement('div'); const widgetWrapper = document.createElement('div'); const scriptElement = document.createElement('script'); // Set properties for desktop or mobile const targetElementId = version === "desktop" ? 'betting-widget-container' : 'btw-wrapper-mob'; const targetElement = document.getElementById(targetElementId); if (!targetElement) { return; // Exit early if there's no target element } widgetWrapper.className = version === "desktop" ? 'btw-wrapper' : ''; if (version === "desktop") { containerDiv.className = 'col-span-12 border-t-[0.5px] mt-7'; containerDiv.style.paddingTop = '1.75rem'; } // Set common attributes for the script element scriptElement.async = true; scriptElement.src = 'https://betting-widget.s3.eu-west-2.amazonaws.com/app.js'; scriptElement.setAttribute('version', version); widgetWrapper.appendChild(scriptElement); containerDiv.appendChild(widgetWrapper); targetElement.appendChild(containerDiv); } } function getReferringNetwork(aliases) { const ref = document.referrer; // Loop through the socialNetwork and aliases entries for (const [socialNetwork, aliasList] of Object.entries(aliases)) { if (ref.includes(socialNetwork) || aliasList.some(alias => ref.includes(alias))) { return socialNetwork; } } return 'unknown'; } function isMobileDevice() { return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); } function defineSizeMappings() { return { top: googletag.sizeMapping() .addSize([1024, 0], [[970, 250], [728, 90], [970, 90]]) .addSize([768, 0], [[728, 90]]) .addSize([0, 0], []) .build(), rhs: googletag.sizeMapping() .addSize([1024, 0], [[300, 600], [160, 600], [300, 250]]) .addSize([0, 0], []) .build(), inContent: googletag.sizeMapping() .addSize([1024, 0], [[300, 250], [1, 2]]) .addSize([0, 0], [[300, 250], [320, 50], [1, 2]]) .build(), leftSkin: googletag.sizeMapping() .addSize([760, 0], [[1, 1]]) .addSize([0, 0], []) .build(), rightSkin: googletag.sizeMapping() .addSize([760, 0], [[2, 2]]) .addSize([0, 0], []) .build(), skinTop: googletag.sizeMapping() .addSize([1480, 0], [[970, 90], [970, 250], [728, 90]]) .addSize([0, 0], []) .build(), skinTopMobile: googletag.sizeMapping() .addSize([768, 0], []) .addSize([0, 0], [[300, 250], [320, 50], [1, 2]]) .build(), mobileSticky: googletag.sizeMapping() .addSize([768, 0], []) .addSize([0, 0], [[320, 50]]) .build() }; } function defineSkinUnits() { defineSlot('/247211819/SportsJOE/SportsJOE_Left_Skin', [1, 1], 'div-gpt-ad-1705415191735-0', 'leftSkin'); defineSlot('/247211819/SportsJOE/SportsJOE_Right_Skin', [2, 2], 'div-gpt-ad-1705415332110-0', 'rightSkin'); if(postAttributes.type === 'home') { defineSlot('/247211819/SportsJOE/SportsJOE_Top', [[970, 90], [970, 250], [728, 90]], 'div-gpt-ad-1705414965404-0', 'skinTop'); defineSlot('/247211819/SportsJOE/SportsJOE_in_content_1', [[300, 250], [320, 50], [1, 2]], 'div-gpt-ad-1705413839336-0', 'skinTopMobile'); } } function setLazyLoad() { googletag.pubads().enableLazyLoad({ fetchMarginPercent: 100, renderMarginPercent: 50, mobileScaling: 1.0 }); } function addTargeting(postAttributes) { googletag.pubads().setTargeting('type', postAttributes.type ?? 'unknown'); googletag.pubads().setTargeting('category', postAttributes.categories ?? 'unknown'); googletag.pubads().setTargeting('tag', postAttributes.tags ?? 'unknown'); googletag.pubads().setTargeting('id', String(postAttributes.id) ?? 'unknown'); googletag.pubads().setTargeting('social', getReferringNetwork(socialNetworks) ?? 'unknown'); } function defineAndDisplaySlot(adUnitPath, sizes, elementId, sizeMappingKey) { defineSlot(adUnitPath, sizes, elementId, sizeMappingKey); googletag.display(elementId); } // Only define the ad slot and add it to a list function defineSlot(adUnitPath, sizes, elementId, sizeMappingKey) { const isMobile = isMobileDevice(); const restrictedUnits = ['top', 'rhs']; if (restrictedUnits.includes(adUnitPath) && isMobile) { return; } const sizeMappings = defineSizeMappings(); const mapping = sizeMappings[sizeMappingKey]; const slot = googletag.defineSlot(adUnitPath, sizes, elementId); slot.defineSizeMapping(mapping); slot.addService(googletag.pubads()); } // Function to display a list of ad slots function displaySlots(slotIds) { slotIds.forEach(id => { googletag.display(id); }); } // Function to fire after unit render function renderCallback(event) { if (event.slot.getAdUnitPath().includes('mobile_sticky')) { if (event.isEmpty) { return; } if (document.getElementById('qc-cmp2-persistent-link')) { document.getElementById('qc-cmp2-persistent-link').style.bottom = document.getElementsByClassName('sticky-footer-container')[0].offsetHeight+'px'; } } } googletag.cmd.push(function () { try { defineSkinUnits(); googletag.pubads().enableSingleRequest(); setLazyLoad(); addTargeting(postAttributes); googletag.pubads().setCentering(true); googletag.pubads().addEventListener('slotRenderEnded', function(event) {renderCallback(event);}); googletag.enableServices(); displaySlots(['div-gpt-ad-1705415191735-0','div-gpt-ad-1705415332110-0']); if(postAttributes.type === 'home') { displaySlots(['div-gpt-ad-1705414965404-0','div-gpt-ad-1705413839336-0']); } } catch (err) { console.error("An error occurred while setting up ads:", err); } });
Search icon

Football

12th Jul 2016

WATCH: Nani show off his beatboxing skills whilst Ronaldo dad-dances away

Totally rad...

Nooruddean Choudry

This is sooo cool… in a Saved By The Bell kind of way.

Following their heroics in France to capture the European Championships trophy against the host country (and tournament favourites), Team Portugal were back on their home turf to share their joy with tens of thousands of ecstatic fans.

The scenes in Lisbon were a sight to behold as a sea of joyous faces turned out to welcome their heroes. The Portuguese squad and management team were clearly lapping up the well-earned adulation and as is often the case with these things, they loosened up and had some fun.

One of the highlights was undoubtedly Nani’s turn as human beatbox, a hidden talent he can add to dribbling past opponents, scoring vital goals, and occasionally falling over unaided. Fair play to the former Manchester United man, he’s pretty good at it too.

Everyone was loving it, especially Ronaldo, who started throwing the kind of awkward shapes you only ever see from well-meaning policeman at the Notting Hill carnival. Buoyed by Nani’s efforts, young Renato Sanchez also had a go, and he was pretty bodacious too…

SNAPCHAT