No analysis data available to generate a report.
`;
return;
}
container.innerHTML = `
Lease Analysis Summary
${analysisData.map(item => `
${item.name} - ${item.risk} Risk
Clause Text: ${item.extractedText}
Suggestion: ${item.suggestion}
`).join('')}
`;
}
// --- UI & Navigation Logic ---
function showTab(tabNumber) {
document.querySelectorAll('.tab-pane').forEach(p => p.classList.add('hidden'));
getEl(`tab-${tabNumber}`).classList.remove('hidden');
document.querySelectorAll('.tab-btn').forEach(b => {
b.classList.toggle('active', b.dataset.tab === `tab-${tabNumber}`);
b.classList.toggle('inactive', b.dataset.tab !== `tab-${tabNumber}`);
});
currentTab = tabNumber;
updateNavigation();
}
function updateNavigation() {
prevBtn.disabled = currentTab === 1;
nextBtn.disabled = currentTab === totalTabs || analysisData.length === 0;
stepIndicator.textContent = `Step ${currentTab} of ${totalTabs}`;
}
function downloadPdf() {
if (analysisData.length === 0) {
alert('Please analyze a document first.');
return;
}
const { jsPDF } = window.jspdf;
const doc = new jsPDF();
doc.setFontSize(18);
doc.text("Business Lease Agreement Analysis", 105, 20, { align: 'center' });
const tableBody = analysisData.map(item => [item.name, item.risk, item.suggestion]);
doc.autoTable({
startY: 30,
head: [['Clause', 'Risk Level', 'Suggestion']],
body: tableBody,
theme: 'grid',
headStyles: { fillColor: [79, 70, 229] },
columnStyles: { 2: { cellWidth: 80 } },
didParseCell: function(data) {
if (data.section === 'body' && data.column.index === 1) {
const risk = data.cell.raw;
if(risk === 'High') data.cell.styles.textColor = [239, 68, 68];
if(risk === 'Medium') data.cell.styles.textColor = [245, 158, 11];
}
}
});
doc.save(`Lease-Analysis-Report.pdf`);
}
// --- Event Listeners ---
analyzeBtn.addEventListener('click', () => {
if (leaseInput.value.trim() === '') {
alert('Please paste your lease agreement text into the box.');
return;
}
showTab(2);
getEl('analysis-results').classList.add('hidden');
getEl('analysis-loading').classList.remove('hidden');
// Simulate AI processing time
setTimeout(() => {
runAnalysis();
renderAnalysisResults();
updateNavigation();
getEl('analysis-loading').classList.add('hidden');
getEl('analysis-results').classList.remove('hidden');
}, 1500);
});
nextBtn.addEventListener('click', () => {
if (currentTab < totalTabs && analysisData.length > 0) {
if (currentTab === 2) renderReport();
showTab(currentTab + 1);
}
});
prevBtn.addEventListener('click', () => {
if (currentTab > 1) {
showTab(currentTab - 1);
}
});
getEl('download-pdf-btn').addEventListener('click', downloadPdf);
// --- Initialization ---
updateNavigation();
});