(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();
}
})();
No doubt we all remember Psy, the South Korean pop artist whose “Gangnam Style” infected every airwave on the planet for a few months in autumn 2012 — the music video, which recently surpassed 2 billion hits, is YouTube’s most viewed. Barring a brief burst of anti-American notoriety, the singer quickly and quietly faded into oblivion. But now he’s back, and he’s very drunk, and he’s rapping about it with Snoop Dogg.
The video for his latest track, “Hangover,” debuted online on Sunday. It’s delightful.
Some highlights: it begins with a shot of Psy, a married father of two, vomiting rather unceremoniously into a toilet before Snoop Dogg emerges from a bathtub behind him. Snoop dances in the tub for a brief moment — as one does — before exiting it to repeatedly slap the very ill Psy on the back, reminding him that the party, as the track’s chorus reiterates again and again, simply “ain’t over.”
Indeed it ain’t. After brushing their teeth together in synchronized rhythm, the two embark on a five-minute adventure that includes a riot in a Seoul seafood restaurant, what appears to be a drinking contest between the pop stars and two Korean aunties, and enough booze throughout to kill a small horse.
👉 For more insights, check out this resource.
At one point, Psy bathes in a public fountain while Snoop waxes poetic in what may be a cry for help: “I can’t stop … I can’t quit; I wake up in the morning and do the same shit.”
The video, which is absolutely worth five minutes of your time, went live on YouTube on Sunday night after Psy and Snoop appeared on Jimmy Kimmel Live to discuss it.
👉 Discover more in this in-depth guide.
“For me, it was awesome, because I’ve always wanted to be in a martial-arts video,” Snoop said. Same, man.