Adventure & Outdoor Health Safety Planner

Adventure & Outdoor Health Safety Planner

Plan Your Adventure

Start by defining the key details of your upcoming trip.

Evacuation Details:
${emergencyPlan.evac.replace(/\n/g, '
')}

Gear & First Aid Checklist

${checklistHtml}
`; planButtons.classList.remove('hidden'); switchTab('plan'); }; const downloadPDF = () => { const pdfContent = document.getElementById('pdf-content'); window.html2canvas(pdfContent, { scale: 2, backgroundColor: '#ffffff' }).then(canvas => { const imgData = canvas.toDataURL('image/png'); const { jsPDF } = window.jspdf; const pdf = new jsPDF({ orientation: 'portrait', unit: 'pt', format: 'a4' }); const pdfWidth = pdf.internal.pageSize.getWidth(); const pdfMargin = 40; const contentWidth = pdfWidth - (pdfMargin * 2); const imgHeight = canvas.height * contentWidth / canvas.width; pdf.addImage(imgData, 'PNG', pdfMargin, pdfMargin, contentWidth, imgHeight); pdf.save('Adventure_Safety_Plan.pdf'); }); }; initialize(); }); function switchTab(tabId) { const tabs = ['trip', 'gear', 'emergency', 'plan']; const buttons = { next: document.getElementById('next-btn'), prev: document.getElementById('prev-btn'), generate: document.getElementById('generate-plan-btn') }; tabs.forEach(id => { document.getElementById(`${id}-tab`).style.display = (id === tabId) ? 'block' : 'none'; document.getElementById(`tab-${id}-btn`).classList.toggle('active', id === tabId); }); buttons.prev.disabled = (tabId === 'trip'); buttons.next.style.display = (tabId === 'emergency' || tabId === 'plan') ? 'none' : 'inline-block'; buttons.generate.style.display = (tabId === 'emergency') ? 'inline-block' : 'none'; if (tabId === 'plan') { document.getElementById('tab-plan-btn').disabled = false; } } function navigateTabs(direction) { const currentActive = document.querySelector('.tab-btn.active'); const tabs = ['trip', 'gear', 'emergency', 'plan']; let currentIndex = tabs.findIndex(t => `tab-${t}-btn` === currentActive.id); if (direction === 'next' && currentIndex < tabs.length - 1) { switchTab(tabs[currentIndex + 1]); } else if (direction === 'prev' && currentIndex > 0) { switchTab(tabs[currentIndex - 1]); } }
Scroll to Top