(function() { // Scroll reveal var observer = new IntersectionObserver(function(entries) { entries.forEach(function(entry) { if (entry.isIntersecting) { entry.target.classList.add('bs-visible'); if (entry.target.closest('.bs-hero-visual')) { entry.target.style.opacity = '1'; entry.target.style.transform = 'translateX(0)'; } } }); }, { threshold: 0.1, rootMargin: '0px 0px -40px 0px' }); var wrapper = document.querySelector('.cf-baas'); if (wrapper) { wrapper.querySelectorAll('.bs-reveal').forEach(function(el) { observer.observe(el); }); var heroVisual = wrapper.querySelector('.bs-hero-visual'); if (heroVisual) observer.observe(heroVisual); } // Modal var modal = document.getElementById('cfbaas-modal'); var closeBtn = document.getElementById('cfbaas-modal-close'); var formLoaded = false; function openModal(e) { e.preventDefault(); modal.classList.add('bs-modal-open'); document.body.style.overflow = 'hidden'; if (!formLoaded && window.hbspt) { hbspt.forms.create({ portalId: '45830035', formId: '4c205b15-e4d2-45f0-927b-cb9ea1aa05b9', target: '#cfbaas-hs-form' }); formLoaded = true; } } function closeModal() { modal.classList.remove('bs-modal-open'); document.body.style.overflow = ''; } document.querySelectorAll('.bs-modal-trigger').forEach(function(btn) { btn.addEventListener('click', openModal); }); if (closeBtn) closeBtn.addEventListener('click', closeModal); if (modal) modal.addEventListener('click', function(e) { if (e.target === modal) closeModal(); }); document.addEventListener('keydown', function(e) { if (e.key === 'Escape') closeModal(); }); // Recovery progress bar animation var vaultWrap = document.querySelector('.bs-vault-wrap'); var pctEl = document.getElementById('cfb-pct'); var fillEl = document.getElementById('cfb-fill'); var speedEl = document.getElementById('cfb-speed'); var recoverAnim = null; var recoverVal = 0; var speeds = ['1.8 TB/hr', '2.1 TB/hr', '2.4 TB/hr', '2.9 TB/hr', '3.2 TB/hr', '3.6 TB/hr', '3.8 TB/hr']; function animateRecover() { if (recoverVal >= 100) { recoverVal = 100; if (pctEl) pctEl.textContent = '100%'; if (fillEl) fillEl.style.width = '100%'; if (speedEl) speedEl.textContent = 'Recovery Complete'; setTimeout(function() { recoverVal = 0; if (fillEl) fillEl.style.width = '0%'; if (pctEl) pctEl.textContent = '0%'; if (speedEl) speedEl.textContent = '2.4 TB/hr'; recoverAnim = requestAnimationFrame(animateRecover); }, 1200); return; } var increment = 0.4 + (recoverVal / 100) * 0.8 + Math.random() * 0.3; recoverVal = Math.min(recoverVal + increment, 100); var rounded = Math.round(recoverVal); if (pctEl) pctEl.textContent = rounded + '%'; if (fillEl) fillEl.style.width = rounded + '%'; var sIdx = Math.min(Math.floor(recoverVal / 15), speeds.length - 1); if (speedEl && recoverVal < 100) speedEl.textContent = speeds[sIdx]; recoverAnim = requestAnimationFrame(animateRecover); } if (vaultWrap) { vaultWrap.addEventListener('mouseenter', function() { recoverVal = 0; if (fillEl) fillEl.style.width = '0%'; if (pctEl) pctEl.textContent = '0%'; if (speedEl) speedEl.textContent = '1.8 TB/hr'; recoverAnim = requestAnimationFrame(animateRecover); }); vaultWrap.addEventListener('mouseleave', function() { if (recoverAnim) cancelAnimationFrame(recoverAnim); recoverAnim = null; recoverVal = 0; if (fillEl) fillEl.style.width = '0%'; if (pctEl) pctEl.textContent = '0%'; if (speedEl) speedEl.textContent = '2.4 TB/hr'; }); } // ================================================================ // BACKUP RISK ASSESSMENT // ================================================================ var BSA_QUESTIONS = [ { id:'q_env', q:'How would you describe your IT environment?', hint:'Think about the systems and data you rely on day to day.', opts:[ {id:'simple',label:'Simple -- a few computers, light IT needs'}, {id:'moderate',label:'Moderate -- servers, cloud storage, some complexity'}, {id:'complex',label:'Complex -- VMs, hybrid cloud, multi-site infrastructure'}, {id:'personal',label:'Personal -- just my own files and devices'} ]}, { id:'q_size', q:'How many people are in your organization?', hint:'This helps us match you to the right scale of solution.', opts:[ {id:'individual',label:'Just me'}, {id:'smb',label:'Small team (2-50 people)'}, {id:'midmarket',label:'Mid-size organization (50-500 people)'}, {id:'enterprise',label:'Large organization (500+ people)'} ]}, { id:'q_goal', q:'What matters most to you when it comes to your data?', hint:'Pick the one that best describes your top priority.', opts:[ {id:'files',label:'Recovering my files quickly if something goes wrong'}, {id:'continuity',label:'Keeping my business running no matter what happens'}, {id:'compliance',label:'Meeting compliance and regulatory requirements'}, {id:'threats',label:'Defending against ransomware and cyber threats'} ]}, { id:'q_rto', q:'If you lost access to your data today, how long could you afford to be down?', hint:'Be honest -- this is one of the most important questions.', opts:[ {id:'days',label:'A day or two would be okay'}, {id:'hours',label:'A few hours at most'}, {id:'instant',label:'Minutes -- every hour of downtime costs us significantly'}, {id:'unknown',label:'I am not sure -- we have never thought through it'} ]}, { id:'q_current', q:'How would you describe your current backup situation?', hint:'No judgment -- we just want to understand where you are today.', opts:[ {id:'none',label:'We have no backup or cloud backup in place'}, {id:'basic',label:'We back up to an external drive or local device'}, {id:'cloud',label:'We use a cloud backup service'}, {id:'unsure',label:'I am not sure what we have'} ]}, { id:'q_concern', q:'What keeps you up at night when it comes to your data?', hint:'Pick the scenario that worries you most.', opts:[ {id:'ransomware',label:'A ransomware attack locking us out of everything'}, {id:'accidental',label:'Accidental deletion or hardware failure'}, {id:'compliance',label:'A compliance audit exposing gaps in our data protection'}, {id:'disaster',label:'A fire, flood, or outage wiping out our systems'} ]}, { id:'q_m365', q:'Does your organization use Microsoft 365?', hint:'Exchange, Outlook, SharePoint, Teams, or OneDrive.', opts:[ {id:'yes',label:'Yes -- we use Microsoft 365'}, {id:'no',label:'No -- we do not use Microsoft 365'}, {id:'partial',label:'Some of us do'} ]} ]; var BSA_PRODUCTS = { Veeam:{tag:'Enterprise Backup & Recovery',desc:'Your environment calls for enterprise-grade protection. Veeam gives you full coverage across VMs, physical servers, and hybrid cloud with fast, verifiable recovery.',bullets:['Instant VM and physical server recovery','Immutable off-site storage ransomware cannot touch','Automated recovery testing so you know it works','Full hybrid and multi-cloud support']}, LiveVault:{tag:'Server Backup & Recovery',desc:'For businesses where keeping servers running is everything. LiveVault backs up your servers every 15 minutes and gets you back online fast.',bullets:['Automated backups every 15 minutes','Bare metal recovery for entire servers','Simple web portal to manage backups','24x7 U.S.-based live support']}, JungleDisk:{tag:'Simple Cloud File Backup',desc:'Reliable protection without the complexity. JungleDisk protects your files and workstations in the cloud, simple to set up and dependable when it counts.',bullets:['File-level backup for servers and workstations','Versioned rollback before ransomware struck','Off-device encrypted cloud storage','Single dashboard to manage everything']}, ElephantDrive:{tag:'Personal Cloud Backup',desc:'Simple, affordable protection for your personal files and devices. Keeps your data safe in the cloud and accessible from anywhere.',bullets:['Works on Windows, macOS, Linux, iOS and Android','AES-256 encryption before files leave your device','Restore any version by date and time','NAS integration for home storage']}, Asigra:{tag:'Compliance-Grade Backup',desc:'Your compliance requirements demand more than standard backup. Built for regulated environments with immutable retention, deep security, and audit-ready reporting.',bullets:['Agentless architecture','Immutable retention and multi-layer MFA','Quarantine scanning blocks re-infection','Built for healthcare, finance, legal, government']}, Ahsay:{tag:'Flexible Business Backup',desc:'A flexible, dependable backup platform that covers your servers, workstations, and applications without enterprise complexity.',bullets:['Covers Windows, macOS, and Linux','Military-grade AES-256 encryption','Granular file and application recovery','Flexible cloud and offsite storage']} }; var bsaAnswers = {}, bsaStep = 0; function bsaGoTo(p) { document.querySelectorAll('.bsa-step').forEach(function(x){x.classList.remove('bsa-active');}); var el = document.getElementById('bsaStep'+p); if(el) el.classList.add('bsa-active'); var sect = document.querySelector('.bs-assess'); if(sect) sect.scrollIntoView({behavior:'smooth',block:'start'}); } function bsaRenderQ() { var q = BSA_QUESTIONS[bsaStep], total = BSA_QUESTIONS.length; var pct = Math.round((bsaStep/total)*100); document.getElementById('bsaStepLabel').textContent = 'Question '+(bsaStep+1)+' of '+total; document.getElementById('bsaStepPct').textContent = pct+'%'; document.getElementById('bsaFill').style.width = pct+'%'; document.getElementById('bsaBackBtn').style.visibility = bsaStep===0?'hidden':'visible'; var card = document.getElementById('bsaQCard'); card.innerHTML = '