(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();
}
})();
The wife of Scottish actor, comedian, and writer Robbie Coltrane is Rhona Gemmell. His roles as Valentin Domitrovich Zukovsky in the James Bond movies GoldenEye (1995) and The World Is Not Enough helped him gain notoriety. He also played Rubeus Hagrid in the Harry Potter film series (2001–2011).
Scottish sculptor Rhona Gemmell is an accomplished artist. Despite having a considerable age gap, the former couple began dating in 1988 when Rhona was only 18 years old. The couple wed in 1999 after more than ten years of dating.
After only three years of marriage and when his acting career was taking off due to the popularity of the Harry Potter film series, the couple divorced in 2003.
Rohana Gemmell successfully moved to Glasgow, where she took up residence in a £250,000 property. She also purchased a range rover automobile.
👉 For more insights, check out this resource.
Before getting married, the former couple had two children together. Their daughter Alice McMillan was born in 1998, after the birth of their son Spencer McMillan in 1992.
Alice, Spencer’s daughter, is carrying on her late father’s acting career while Spencer seems to have a private life. She has performed in movies including The Souvenir and Hitman’s Wife’s Bodyguard.
👉 Discover more in this in-depth guide.
Net worth of Rhona Gemmell:
As a result of her professional job, she may have an estimated net worth of $100,000. Additionally, the average hourly wage for sculpting in the USA is $14.27, with typical variations between $10.56 and $34.04 per hour. She might have made investments in various enterprises as well.
On the other hand, her ex-husband has an estimated net worth of $4 million from his work as an actor and comedian.
Amelia Warner
Amelia Warner writes all the Latest Articles. She mostly covers Entertainment topics, but at times loves to write about movie reviews as well.