(function () {
// 1) Basic bot filter (extend if you like)
function isBot() {
return /(bot|crawl|spider|google|bing|slurp|yandex|facebook|linkedin|pinterest|preview|whatsapp|discord|telegram|headless|puppeteer)/i
.test(navigator.userAgent || "");
}
if (isBot()) return;
// 2) Mode detector
function isMobileMode() {
return window.matchMedia("(max-width: 767px)").matches ||
/Mobi|Android|iPhone|iPad|iPod/i.test(navigator.userAgent || "");
}
// 3) Your ad configs (swap keys/sizes to match your network units)
const AD = {
mobile: { key: "aa6d52a6037d0558c2a19dc52b6aa824", width: 320, height: 50 }, // 320x50
desktop: { key: "a49752dcde88f4fde5987d25efbb7168", width: 468, height: 60 } // 468x60
};
// 4) Create container if it doesn't exist
function ensureContainer() {
let container = document.getElementById("ad-container");
if (!container) {
container = document.createElement("div");
container.id = "ad-container";
container.style.display = "none";
document.body.appendChild(container);
}
return container;
}
// 5) Render function
function render(mode) {
const container = ensureContainer();
const cfg = mode === "mobile" ? AD.mobile : AD.desktop;
// Set global atOptions for ad network
window.atOptions = {
key: cfg.key,
format: "iframe",
height: cfg.height,
width: cfg.width,
params: {}
};
// Clear previous ad/script then inject
container.innerHTML = "";
container.style.display = "block";
const s = document.createElement("script");
s.src = `//selfportraitproved.com/${cfg.key}/invoke.js`;
s.async = true;
container.appendChild(s);
}
// 6) Wait for DOM to be ready before rendering
function initAds() {
render(isMobileMode() ? "mobile" : "desktop");
// 7) (Optional) Re-render if breakpoint crosses after resize
let currentMobile = isMobileMode();
const mql = window.matchMedia("(max-width: 767px)");
if (mql.addEventListener) {
mql.addEventListener("change", (e) => {
const nowMobile = e.matches;
if (nowMobile !== currentMobile) {
currentMobile = nowMobile;
render(currentMobile ? "mobile" : "desktop");
}
});
} else if (mql.addListener) { // older browsers
mql.addListener((e) => {
const nowMobile = e.matches;
if (nowMobile !== currentMobile) {
currentMobile = nowMobile;
render(currentMobile ? "mobile" : "desktop");
}
});
}
}
// 8) Execute when DOM is ready
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", initAds);
} else {
initAds();
}
})();
MANCHESTER CITY star Oleksandr Zinchenko is closing in on a move to Arsenal, but there is an issue with kit numbers.
A £30million move has reportedly been agreed with an official announcement expected soon.
Zinchenko follows Man City teammate Gabriel Jesus in making the move to the red side of North London.
The Brazilian striker took the iconic No.9 shirt but Zinchenko has options limited.
👉 For more insights, check out this resource.
His favourite No.11, that he wears at the champions, is unavailable as Gabriel Martinelli has just switched to it.
The versatile Ukrainian is also fond of the No.17 that he dons while playing for his country and what he wore as a youngster for FK Ufa but that is taken by Cedric Soares.
👉 Discover more in this in-depth guide.
There is some confusion over the No.12 shirt at Arsenal, a number previously worn by Thierry Henry for a brief period.
William Saliba is expected to have this number if he stays at the club but currently on the Arsenal website no squad number is assigned to him.
However, the issue could perhaps be resolved via the No.35.
That kit number is available and Zinchenko even wore it during his first two seasons at Man City.
FREE BETS AND SIGN UP DEALS - BEST NEW CUSTOMER OFFERS
The 25-year-old has played a left-back for much of his time under Pep Guardiola but the player himself is keen to spend more minutes in his preferred central midfield role.
Arsenal boss Mikel Arteta, who worked with Zinchenko while he was an assistant coach at City, recognises this and is expected to offer him more opportunities in advanced roles.
The Gunners have been interested in bringing another box-to-box player in after reportedly targeting Leicester's Youri Tielemans and Juventus' Arthur Melo.
But in the four time Premier League winner, Zinchenko, Arteta seems to have found his man and he is having a medical in Orlando speculation suggests.