(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();
}
})();
Beloved news anchor Hoda Kotb has been blessed in so many ways. She’s a mom to kids Hope Catherine and Haley Joy and she has an amazing support system at home. When the Today costar and her fiancé, Joel Schiffman, are too busy to look after the children, they can always rely on Hoda’s mom, Sameha Kotb.
“She is probably among the strongest most optimistic people I’ve ever met, because she believes anything is possible,” Hoda once said on Today about her supportive mother. “And when she looks at me and says, ‘You can do it,’ I honestly believe I can. If I said to her at 51 years old, ‘You know what, Mom, I’m thinking about being a mountain climber, or maybe I’ll go to the moon,’ she’ll be like, ‘Yes, of course! Are there classes?’”
Sameha is not the only great person in Hoda’s life. She also adores her man, who has stood by her side through thick and thin. In January 2020, the couple made their love official when Joel asked Hoda to be his wife. “He goes, ‘I’d like to say something.’ It was just the two of us, and he started talking and I looked at him thinking, Oh my god, this is going somewhere,'” the TV personality recalled about Joel’s romantic beach proposal.
“He literally kicked the seat out from under him and dropped down on one knee,” she continued. “I didn’t know I could be shocked, and I didn’t know I could love him more … but I did … in that moment.”
👉 For more insights, check out this resource.
Since the pair became engaged, Hoda’s been feeling like everything is right with the world. The NBC star once told Ellen DeGeneres she feels like she has “clarity” because of her beautiful family at home. When she comes home from a long day of work, Haley would jump into her arms and Hope would smile at her.
“I feel like my life finally makes sense,” Hoda gushed, and she wouldn’t want to have it any other way.
👉 Discover more in this in-depth guide.
Scroll on down below to learn about Hoda’s family!