`;
});
let tipsHTML = '';
data.tips.forEach(tip => {
tipsHTML += `
${tip}
`;
});
const resultsHTML = `
Dynamic Warm-Up Routine
${warmupHTML}
`;
resultsContainer.innerHTML = resultsHTML;
resultsContainer.classList.remove('hidden');
document.getElementById('download-pdf-btn').addEventListener('click', downloadPdf);
resultsContainer.scrollIntoView({ behavior: 'smooth' });
}
function downloadPdf() {
const data = guideData[selectedActivity];
if (!data) return;
const { jsPDF } = window.jspdf;
const doc = new jsPDF();
// Header
doc.setFontSize(22);
doc.setFont('helvetica', 'bold');
doc.text(`Warm-Up & Injury Prevention Guide`, 105, 20, { align: 'center' });
doc.setFontSize(16);
doc.text(`Activity: ${data.title}`, 105, 28, { align: 'center' });
// Warm-Up Table
doc.setFontSize(14);
doc.setFont('helvetica', 'bold');
doc.text('Dynamic Warm-Up Routine', 14, 45);
const warmupTableData = data.warmup.map(item => [item.name, `${item.sets} / ${item.reps}`, item.desc]);
doc.autoTable({
startY: 50,
head: [['Exercise', 'Sets/Reps', 'Description']],
body: warmupTableData,
theme: 'grid',
headStyles: { fillColor: [79, 70, 229] }, // Indigo
columnStyles: { 2: { cellWidth: 80 } }
});
// Tips Section
const finalY = doc.autoTable.previous.finalY;
doc.setFontSize(14);
doc.setFont('helvetica', 'bold');
doc.text('Injury Prevention Tips', 14, finalY + 15);
doc.setFontSize(11);
doc.setFont('helvetica', 'normal');
let yPos = finalY + 22;
data.tips.forEach(tip => {
// Manual bullet point
doc.text('•', 14, yPos);
const textLines = doc.splitTextToSize(tip, 170);
doc.text(textLines, 20, yPos);
yPos += (textLines.length * 5) + 2;
});
doc.save(`${data.title}-Warmup-Guide.pdf`);
}
// --- EVENT LISTENERS ---
generateBtn.addEventListener('click', generateGuide);
});