`;
});
}
planOutput.innerHTML = `
Adventure Safety Plan
For your trip to ${tripDetails.location}
Trip Overview
Activity: ${tripDetails.activity}
Duration: ${tripDetails.duration} day(s)
Group Size: ${tripDetails.people} person(s)
Emergency Plan
Contact: ${emergencyPlan.contact}
Check-in Plan: ${emergencyPlan.checkIn}
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]);
}
}