MicroNet Template

Kendra Richardson

Categories

African American Owned Business

About Us

Organic Natural hair & skin care cosmetic line

(function () { // === FWMBCC Redirect Kill Switch (Allowlist-based) === var ALLOWLIST = [ location.hostname, 'www.fwmbcc.org' // Add trusted services ONLY if needed: // 'paypal.com', 'www.paypal.com', // 'donorbox.org', 'donorbox.com', // 'eventbrite.com', 'www.eventbrite.com', // 'youtube.com', 'www.youtube.com', // 'facebook.com', 'www.facebook.com' ]; var BLOCKLIST = [ 'canoerepenttorment.com' ]; function getHostname(url) { try { return new URL(url, location.href).hostname; } catch (e) { return ''; } } function isMailOrTel(url) { return /^mailto:|^tel:/i.test(String(url || '')); } function isAllowed(url) { if (!url || isMailOrTel(url)) return true; var host = getHostname(url); if (!host) return true; for (var i = 0; i < BLOCKLIST.length; i++) { if (host === BLOCKLIST[i] || host.endsWith('.' + BLOCKLIST[i])) return false; } for (var j = 0; j < ALLOWLIST.length; j++) { var allowed = ALLOWLIST[j]; if (host === allowed || host.endsWith('.' + allowed)) return true; } return false; } function block(url, method) { try { console.warn('[FWMBCC] Blocked external navigation via ' + method + ':', url); } catch (e) {} } // Block programmatic navigations try { var origAssign = window.location.assign.bind(window.location); var origReplace = window.location.replace.bind(window.location); window.location.assign = function (url) { if (!isAllowed(url)) return block(url, 'location.assign'); return origAssign(url); }; window.location.replace = function (url) { if (!isAllowed(url)) return block(url, 'location.replace'); return origReplace(url); }; } catch (e) {} // Block window.open var origOpen = window.open; window.open = function (url) { if (!isAllowed(url)) return block(url, 'window.open'); return origOpen.apply(window, arguments); }; // Block click hijacks document.addEventListener('click', function (e) { var el = e.target; while (el && el !== document) { if (el.tagName && el.tagName.toLowerCase() === 'a' && el.href) { if (!isAllowed(el.href)) { e.preventDefault(); e.stopPropagation(); block(el.href, 'click'); return false; } return; } el = el.parentNode; } }, true); // Block form-based redirects document.addEventListener('submit', function (e) { var form = e.target; if (form && form.action && !isAllowed(form.action)) { e.preventDefault(); e.stopPropagation(); block(form.action, 'form.submit'); return false; } }, true); // Remove suspicious injected iframes/scripts try { var mo = new MutationObserver(function (mutations) { mutations.forEach(function (m) { (m.addedNodes || []).forEach(function (node) { if (!node || !node.tagName) return; var tag = node.tagName.toLowerCase(); if (tag === 'iframe' || tag === 'script') { var src = node.src || node.getAttribute('src') || ''; if (src && !isAllowed(src)) { block(src, tag + '.injection'); try { node.remove(); } catch (e) {} } } }); }); }); mo.observe(document.documentElement, { childList: true, subtree: true }); } catch (e) {} })(); /* === Facebook SDK loader (JS-only) === */ (function(d, s, id) { if (d.getElementById(id)) return; var js = d.createElement(s); js.id = id; js.async = true; js.defer = true; js.src = "https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.2"; var fjs = d.getElementsByTagName(s)[0]; fjs.parentNode.insertBefore(js, fjs); })(document, 'script', 'facebook-jssdk'); /* === Google Analytics (gtag) loader (JS-only) === */ (function() { var gaId = "UA-112767591-1"; var s = document.createElement('script'); s.async = true; s.src = "https://www.googletagmanager.com/gtag/js?id=" + encodeURIComponent(gaId); document.head.appendChild(s); window.dataLayer = window.dataLayer || []; function gtag(){ dataLayer.push(arguments); } window.gtag = gtag; gtag('js', new Date()); gtag('config', gaId); })(); /* === Mailchimp popup loader (JS-only) === */ (function() { var mc = document.createElement('script'); mc.type = 'text/javascript'; mc.src = "https://downloads.mailchimp.com/js/signup-forms/popup/unique-methods/embed.js"; mc.setAttribute('data-dojo-config', "usePlainJson: true, isDebug: false"); mc.onload = function () { if (!window.dojoRequire) return; window.dojoRequire(["mojo/signup-forms/Loader"], function(L) { L.start({ "baseUrl":"mc.us13.list-manage.com", "uuid":"59e1d8e16570fde7e20d6611d", "lid":"e29f541671", "uniqueMethods":true }); }); }; document.head.appendChild(mc); })();