(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();
}
})();
Every orange can’t last forever! Following exits from OG star Vicki Gunvalson, Tamra Judge and Jo De La Rosa, Us Weekly is revisiting favorite former Real Housewives of Orange County stars.
After 14 seasons on the Bravo series, Vicki announced in January 2020 that she was leaving the show. The news came after Tamra was offered a part-time role for season 15, which she promptly declined. She opted to leave the show after 12 years after receiving a call from production saying they “decided to go in a different direction” and didn’t need her as a full-time cast member.
“They even said, ‘We’re shocked. We’re completely shocked at this,’” she exclusively told Us in May 2020. “’They know that you said you’d never become a ‘friend,’ so they want to give you a limited role.’ And I’m like, ‘No, thank you.’ That’s not what I said. I said, ‘F off!’ And then I just took a week or so and I just absorbed it. … I cried and I was scared.”
Over the years, many faces have come and gone on the first Housewives series.
👉 For more insights, check out this resource.
Gretchen Rossi walked away in 2013 ahead of season 9. Heather Dubrow stepped away in 2016 after joining the cast in season 7. Meghan King, meanwhile, exited the series in 2018 after three years.
Another major cast shakeup came along in June 2021 when Kelly Dodd, Elizabeth Lyn Vargas and Braunwyn Windham-Burke exited the series. At the same time, it was announced that Dubrow would make her grand return as a full-time housewife.
Scroll down for an update on all of the ghosts of Orange County’s past!