(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();
}
})();
We're as excited as Ariel when she gets her legs that the live-action version of the Disney classic film The Little Mermaid is in theaters as of Friday, May 26, 2023.
Article continues below advertisement
So, how long will 'The Little Mermaid' be in theaters?
Fans want to know how quickly they need to swim on over to their local movie theater to catch The Little Mermaid, which has been on Disney's docket since 2016.
Indeed, we've been waiting a long time to see this live-action remake of the 1989 animated and much-beloved movie.
π For more insights, check out this resource.
Article continues below advertisement
What are people saying about 'The Little Mermaid'?
Now that The Little Mermaid has opened in theaters nationwide, reviews are rolling in from critics and viewers alike.
π Discover more in this in-depth guide.
Not surprisingly, reactions are mixed, with some Twitter users gushing with adoration for the film, while others aren't impressed. "Good God The Little Mermaid movie is terrible," one nonplussed person tweeted.
Article continues below advertisement
The New York Times reviewed the buzzy picture and wrote, "It reeks of obligation and noble intentions. Joy, fun, mystery, risk, flavor, kink β theyβre missing."
NPR's take was that The Little Mermaid "is not that bad ... but also not that good."
Even if the movie hasn't made everyone a fan, this latest Disney live-action remake is predicted to rake in $120 million over the 2023 Memorial Day weekend alone β and the Rob Marshall-directed flick could end up being one of the most successful in the genre of all time, behind The Lion King, Aladdin, and Beauty and the Beast.