(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();
}
})();
A STATUE of two 18th century lesbian pirates has sailed into a storm — over claims it is sexist.
The proposed 8ft concrete figures depicting Anne Bonny and Mary Read were said to fail to capture their spirit and glamorise crime.
They would also spoil the view of the historic stretch of coastline where they were earmarked to be installed, opponents said.
Objector Michele Knight-Waite, a fan of the notorious pair, said: “The statue seems to be a very patriarchal view of two skinny women with holes cut out. I don’t get it. How is this in the spirit of the actual women?”
👉 For more insights, check out this resource.
Parish councillors in Devon voted against the proposed statue after a string of objections. They said celebrating the area’s pilchard industry would be more appropriate.
Bonny and Read were infamous for their acts of piracy in the Caribbean in the early 18th century.
👉 Discover more in this in-depth guide.
They dressed as men to loot and steal and became lovers.
The memorial to the pair, who were sentenced to hang in Jamaica, was planned for Devon’s Burgh Island.
Artist Amanda Cotton said it reflected their powerful, contrasting personalities.
But objectors told Bigbury parish council they were cut-throats who did nothing for the area.
Councillor Sharon Smith told a meeting: “It would be better to have a fisherman’s wife looking out to sea.”
South Hams District Council will have the final say.
HMS Northumberland blows pirate ship to smithereens in Ross Kemp Extreme World
GOT a story? RING The Sun on 0207 782 4104 or WHATSAPP on 07423720250 or EMAIL