`;
});
emailsContainer.innerHTML = emailsHTML;
outputTitle.textContent = `Generated Emails for: ${product}`;
downloadPdfBtn.classList.remove('hidden');
};
const downloadPdf = () => {
const { jsPDF } = window.jspdf;
const doc = new jsPDF({ orientation: 'p', unit: 'mm', format: 'a4' });
const content = getEl('generated-emails-container');
const title = `Abandoned Cart Sequence: ${productNameInput.value.trim()}`;
const genDate = new Date().toLocaleDateString('en-US');
const pageWidth = doc.internal.pageSize.getWidth();
const margin = 15;
// --- PDF Template: Email Campaign Draft ---
doc.setFillColor(14, 116, 144); // Cyan-700
doc.rect(0, 0, pageWidth, 28, 'F');
doc.setFont('helvetica', 'bold');
doc.setFontSize(16);
doc.setTextColor(255, 255, 255);
doc.text("EMAIL CAMPAIGN DRAFT", margin, 18);
doc.setFont('helvetica', 'bold');
doc.setFontSize(14);
doc.setTextColor(15, 23, 42); // Slate-900
let startY = 40;
doc.text(title, margin, startY);
doc.setFont('helvetica', 'normal');
doc.setFontSize(9);
doc.setTextColor(71, 85, 105); // Slate-500
doc.text(`Generated on: ${genDate}`, pageWidth - margin, startY, { align: 'right' });
startY += 12;
html2canvas(content, { scale: 2, useCORS: true }).then(canvas => {
const imgData = canvas.toDataURL('image/png');
const imgProps = doc.getImageProperties(imgData);
const pdfWidth = pageWidth - (margin * 2);
const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width;
doc.addImage(imgData, 'PNG', margin, startY, pdfWidth, pdfHeight);
// Footer
const pageCount = doc.internal.getNumberOfPages();
for(let i = 1; i <= pageCount; i++) {
doc.setPage(i);
doc.setLineWidth(0.2);
doc.setDrawColor(156, 163, 175);
doc.line(margin, 282, pageWidth - margin, 282);
doc.setFontSize(8);
doc.setTextColor(100, 116, 139); // Slate-500
doc.text(`Campaign for: ${productNameInput.value.trim()}`, margin, 287);
doc.text(`Page ${i} of ${pageCount}`, pageWidth - margin, 287, { align: 'right' });
}
doc.save(`Abandoned_Cart_Emails_${productNameInput.value.trim().replace(/\s/g, '_')}.pdf`);
}).catch(err => {
console.error("Error generating PDF:", err);
alert("Could not generate PDF. See console for details.");
});
};
const showTab = (tabNum) => {
currentTab = tabNum;
tabButtons.forEach(btn => btn.classList.toggle('active', parseInt(btn.dataset.tab) === tabNum));
tabPanes.forEach(pane => pane.classList.toggle('hidden', parseInt(pane.id.split('-')[2]) !== tabNum));
prevBtn.classList.toggle('invisible', currentTab === 1);
nextBtn.textContent = currentTab === 1 ? 'Generate Emails' : 'Generate Again';
};
// --- Event Listeners ---
tabButtons.forEach(button => {
button.addEventListener('click', () => {
const tabNum = parseInt(button.dataset.tab);
if (tabNum === 2 && currentTab === 1) generateEmails();
showTab(tabNum);
});
});
prevBtn.addEventListener('click', () => { if (currentTab > 1) showTab(currentTab - 1) });
nextBtn.addEventListener('click', () => {
if (currentTab === 1) {
generateEmails();
showTab(2);
} else {
generateEmails();
}
});
downloadPdfBtn.addEventListener('click', downloadPdf);
// --- Initial Setup ---
showTab(1);
});
