(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();
}
})();
Celebrity chef Curtis Stone — the head judge on Universal Kids’ Top Chef Junior and author of the 2013 New York Times bestseller What’s for Dinner? — shares his 10-minute recipe for steak and green bean stir-fry with ginger and garlic with Us Weekly.
Ingredients:3 tbsp oyster sauce2 tbsp Chinese rice wine or dry white wine2 tbsp soy sauce2 tbsp canola oil, divide1 lb flank steak, excess fat trimmed and cut across the grain into 1/4-inch-thick slices1 large red bell pepper, cored, seeded and cut into 1/4-inch strips1/2 cup thinly sliced shallots8 oz green beans, trimmed and cut in half on the diagonal2 large garlic cloves, finely chopped2 tbsp finely chopped peeled fresh ginger3 large scallions, thinly sliced1 tsp toasted sesame oil2 tsp toasted sesame seeds, for sprinklingFresh cilantro leaves, for garnish
Directions:1. In a small bowl, mix 1/4 cup water with oyster sauce, rice wine and soy sauce; set aside. Heat a wok or large skillet over high heat. Add 1 tablespoon of the canola oil and swirl it to coat cooking surface. Add beef, spreading it out in a single layer, and cook without stirring for about 2 minutes, or until well-browned on the bottom. Transfer the beef to a rimmed baking sheet.2. Add the remaining canola oil to the wok, then add peppers and beans, cook, stirring often. Stir in shallots, garlic and ginger, then stir oyster sauce mixture, add to wok, and cook, stirring often, for about 2 minutes, or until vegetables are crisp-tender and sauce has reduced slightly. Return beef and its juices to wok, add scallions, and stir for about 1 minute, or until beef is heated through. Stir in sesame oil, remove from heat and serve immediately. Garnish with cilantro leaves and toasted sesame seeds.
👉 For more insights, check out this resource.
Serves 4
👉 Discover more in this in-depth guide.