class VaGeoHelper { constructor() { this.install(); } isPhWebsite() { return window.location.href.includes('myoutdesk.ph'); } isUsWebsite() { return window.location.href.includes('myoutdesk.com'); } detectRealTarget() { if(window.location.href.includes('myoutdesk.com')) { this.target = 'https://myoutdesk.ph'; this.targetName = 'MyOutDesk PH'; } } locateMainBody() { if(window.location.href.includes('myoutdesk.com')) { return document.getElementById('wrap_all'); } else { return document.getElementById('wrap_all'); } } processPage() { let home = document.querySelector('body'); let mainBody = this.locateMainBody(); let feedbackBox = document.getElementById('feedback'); let frames = document.getElementById('olark-container'); if(mainBody) { this.disableScroll(mainBody); this.blurPage(mainBody); } if(feedbackBox) { this.hideElement(feedbackBox); } if(frames) { this.hideElement(frames); } if(this.isPhWebsite()) { } } disableScroll(element) { element.style.setProperty('pointer-events', 'none'); element.style.setProperty('height', '100%', 'important'); element.style.setProperty('overflow', 'hidden', 'important'); } blurPage(element) { element.style.setProperty('filter', 'blur(25px)'); } hideElement(element) { if(element instanceof HTMLCollection) { for(let item of element) { if(!item.style) { continue; } item.style.setProperty('display', 'none', 'important'); } } else { element.style.setProperty('display', 'none', 'important'); } } disableRightClick() { document.addEventListener("contextmenu", this.noop); } injectCss() { let cssString = ` .geo-overlay { font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; position: absolute; width: 100%; height: 100%; display: flex; flex-direction: column; box-sizing: border-box; justify-content: center; z-index: 50; } .geo-overlay-popup { border-radius: 6px; position: relative; background-color: #fff; z-index: 60; width: 400px; max-width: 400px; margin-left: auto; margin-right: auto; -webkit-box-shadow: 1px 2px 17px 16px rgba(0,0,0,0.04); box-shadow: 1px 2px 17px 16px rgba(0,0,0,0.04); } .geo-overlay-popup-content { padding: 20px; display: flex; flex-direction: column; box-sizing: border-box; justify-content: center; align-items: center; } .geo-overlay-popup-content-title { padding: 15px; font-size: 20px; font-weight: 500; text-align: center; line-height: 24px; color: rgb(17, 24, 39); } .geo-overlay-popup-content-subtext { padding: 15px; font-size: 17px; text-align: center; line-height: 24px; color: rgb(55, 65, 81); } .geo-overlay-popup-button { background-color: #f99f22; border-radius: 6px; font-size: 14px; font-weight: 500; padding: 16px; text-align: center; color: white; border: 0px !important; max-width: 200px; margin: 0 auto; cursor: pointer; } .geo-overlay-logo { padding: 10px; } .geo-overlay-popup-content img { width: 100%; } `; let cssNode = document.createElement('style'); cssNode.textContent = cssString; document.head.append(cssNode); } createPopup() { let body = document.getElementsByTagName('body')[0]; let popupOverlay = document.createElement('div'); popupOverlay.classList.add('geo-overlay'); popupOverlay.innerHTML = `
Whoops!

Looks like you took a wrong turn. Please visit ${this.targetName} below

`; body.insertBefore(popupOverlay, this.locateMainBody()); } waitForChatApps() { setInterval(() => { let olark = document.getElementById('olark-container'); if(olark) { this.hideElement(olark); } let intercom = document.getElementById('intercom-container'); if(intercom) { this.hideElement(intercom); } }, 1000) } noop(e) { e.preventDefault(); } remove() { let mainBody = this.locateMainBody(); let overlay = document.getElementById('mod-geo-overlay'); if(overlay) { overlay.remove(); } if(mainBody) { mainBody.style.removeProperty('filter'); mainBody.style.removeProperty('pointer-events'); mainBody.style.removeProperty('height', 'auto'); mainBody.style.removeProperty('overflow', 'auto'); } document.removeEventListener("contextmenu", this.noop); } install() { if(/bot|googlebot|crawler|spider|robot|crawling/i.test(navigator.userAgent)) { return; } this.target = 'https://myoutdesk.com'; this.targetName = 'MyOutDesk US'; this.detectRealTarget(); this.processPage(); this.injectCss(); this.createPopup(); this.waitForChatApps(); this.disableRightClick(); } } let geoHelper = new VaGeoHelper();