(function() { "use strict"; // ================================================================ // Scroll reveal // ================================================================ var observer = new IntersectionObserver(function(entries) { entries.forEach(function(entry) { if (entry.isIntersecting) { entry.target.classList.add("br-visible"); if (entry.target.closest(".br-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-braas"); if (wrapper) { wrapper.querySelectorAll(".br-reveal").forEach(function(el) { observer.observe(el); }); var heroVisual = wrapper.querySelector(".br-hero-visual"); if (heroVisual) observer.observe(heroVisual); } // ================================================================ // Hero status text swap on hover // ================================================================ var serverWrap = document.querySelector(".br-server-wrap"); var statusText = document.querySelector(".cf-braas .br-status-text"); if (serverWrap && statusText) { serverWrap.addEventListener("mouseenter", function() { statusText.textContent = "Recovery Active"; }); serverWrap.addEventListener("mouseleave", function() { statusText.textContent = "Recovery Ready"; }); } // ================================================================ // Modal // ================================================================ var modal = document.getElementById("cfbraas-modal"); var closeBtn = document.getElementById("cfbraas-modal-close"); var formLoaded = false; function openModal(e) { e.preventDefault(); modal.classList.add("br-modal-open"); document.body.style.overflow = "hidden"; if (!formLoaded && window.hbspt) { hbspt.forms.create({ portalId: "45830035", formId: "4c205b15-e4d2-45f0-927b-cb9ea1aa05b9", target: "#cfbraas-hs-form" }); formLoaded = true; } } function closeModal() { modal.classList.remove("br-modal-open"); document.body.style.overflow = ""; } document.querySelectorAll(".br-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(); }); // ================================================================ // BACKUP RISK ASSESSMENT // ================================================================ var BRA_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 BRA_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 braAnswers = {}, braStepNum = 0; function braGoTo(p) { document.querySelectorAll(".bra-step").forEach(function(x){x.classList.remove("bra-active");}); var el = document.getElementById("braStep"+p); if(el) el.classList.add("bra-active"); var sect = document.querySelector(".br-assess"); if(sect) sect.scrollIntoView({behavior:"smooth",block:"start"}); } function braRenderQ() { var q = BRA_QUESTIONS[braStepNum], total = BRA_QUESTIONS.length; var pct = Math.round((braStepNum/total)*100); document.getElementById("braStepLabel").textContent = "Question "+(braStepNum+1)+" of "+total; document.getElementById("braStepPct").textContent = pct+"%"; document.getElementById("braFill").style.width = pct+"%"; document.getElementById("braBackBtn").style.visibility = braStepNum===0?"hidden":"visible"; var card = document.getElementById("braQCard"); card.innerHTML = '
Question '+(braStepNum+1)+" of "+total+'
'+q.q+'
'+q.hint+'
'; var opts = document.getElementById("braOpts"); q.opts.forEach(function(o){ var b = document.createElement("button"); b.className = "bra-opt"+(braAnswers[q.id]===o.id?" selected":""); b.textContent = o.label; b.onclick = function(){ braAnswers[q.id] = o.id; opts.querySelectorAll(".bra-opt").forEach(function(x){x.classList.remove("selected");}); b.classList.add("selected"); setTimeout(function(){ if(braStepNum0){ html+='
What We Found
'; for(var i=0;i
'+f[i].icon+'
'+f[i].title+'
'+f[i].desc+'
';} html+='
'; } html+=''; html+='
Best Match
'+top+'
'+p.tag+'
'+p.desc+'
'; for(var j=0;j'+p.bullets[j]+'
';} html+=""; html+='
Also Consider
'+second+'
'+p2.tag+'
'+p2.desc+'
'; for(var k=0;k'+p2.bullets[k]+'
';} html+=""; if(showDR){ html+='
'; html+='
Recommended Add-On
BRaaS
Backup Recovery as a Service
Your downtime tolerance and environment complexity call for on-demand disaster recovery. BRaaS turns your Veeam backups into one-click failover to bare-metal cloud.
'; html+='
Recovery in hours, not weeks
No idle standby infrastructure costs
Automated DR testing and compliance reports
'; } if(showMDR){ html+='
'; html+='
Recommended Add-On
MDR
Managed Detection & Response
Your concern about threats means you need proactive defense. CyberFortress MDR monitors your environment 24/7 and neutralizes threats before they reach your backups.
'; html+='
24/7 SOC monitoring and threat hunting
Automated containment and response
Endpoint, network, and cloud coverage
'; } html+='
Ready to Close the Gaps?
Talk to a CyberFortress specialist about the right combination of backup, recovery, and security for your organization.
'; document.getElementById("braResults").innerHTML = html; // Re-bind modal triggers in results document.querySelectorAll("#braResults .br-modal-trigger").forEach(function(btn){ btn.addEventListener("click", openModal); }); braSubmitToHS(top, second); braGoTo(3); } // Wire up assessment var startBtn = document.getElementById("braStartBtn"); if(startBtn) startBtn.addEventListener("click", function(){ braGoTo(1); braRenderQ(); }); var backBtn = document.getElementById("braBackBtn"); if(backBtn) backBtn.addEventListener("click", function(){ if(braStepNum>0){braStepNum--;braRenderQ();} else{braGoTo(0);} }); var submitBtn = document.getElementById("braSubmitBtn"); if(submitBtn) submitBtn.addEventListener("click", function(){ var email = document.getElementById("braEmail").value; var first = document.getElementById("braFirstName").value; var last = document.getElementById("braLastName").value; if(!email||!first||!last){ submitBtn.textContent = "Please fill in required fields"; submitBtn.style.background = "#c0392b"; setTimeout(function(){ submitBtn.textContent = "See My Results \u2192"; submitBtn.style.background = ""; },2000); return; } braShowResults(); }); })();