legal-ai-assistant

(function() { const API_ENDPOINT = ‘https://yashrao.app.n8n.cloud/webhook-test/analyze-case-facts’; let currentAnalysis = null; // Form submission handler document.getElementById(‘legalForm’).addEventListener(‘submit’, async function(e) { e.preventDefault(); // Show loading state document.getElementById(‘statusDisplay’).classList.add(‘hidden’); document.getElementById(‘resultsDisplay’).classList.add(‘hidden’); document.getElementById(‘loadingState’).classList.remove(‘hidden’); // Collect form data const formData = { case_facts: document.getElementById(‘caseFacts’).value, notice_type: document.getElementById(‘noticeType’).value, monetary_value: parseInt(document.getElementById(‘monetaryValue’).value) || 0, client_details: { name: document.getElementById(‘clientName’).value, address: document.getElementById(‘clientAddress’).value, lawyer_name: document.getElementById(‘lawyerName’).value, lawyer_designation: document.getElementById(‘lawyerDesignation’).value, law_firm: document.getElementById(‘lawFirm’).value, lawyer_address: document.getElementById(‘lawyerAddress’).value, lawyer_phone: document.getElementById(‘lawyerPhone’).value, lawyer_email: document.getElementById(‘lawyerEmail’).value, bar_registration: document.getElementById(‘barRegistration’).value, place: document.getElementById(‘place’).value }, opponent_details: { name: document.getElementById(‘opponentName’).value, address: document.getElementById(‘opponentAddress’).value }, case_details: { agreement_date: formatDate(document.getElementById(‘agreementDate’).value), payment_date: formatDate(document.getElementById(‘paymentDate’).value), property_description: document.getElementById(‘propertyDescription’).value, contract_subject: document.getElementById(‘propertyDescription’).value } }; try { const response = await fetch(API_ENDPOINT, { method: ‘POST’, headers: { ‘Content-Type’: ‘application/json’ }, body: JSON.stringify(formData) }); const result = await response.json(); if (result.success) { currentAnalysis = result; displayResults(result); } else { showError(‘Failed to generate legal notice: ‘ + (result.error || ‘Unknown error’)); } } catch (error) { showError(‘Network error: ‘ + error.message); } finally { document.getElementById(‘loadingState’).classList.add(‘hidden’); } }); function displayResults(result) { const analysis = result.case_analysis || result.document?.analysis_integration; const document = result.document; // Display legal sections const sectionsContainer = document.getElementById(‘legalSections’); sectionsContainer.innerHTML = ”; if (analysis && analysis.primary_sections) { analysis.primary_sections.forEach(section => { const sectionDiv = document.createElement(‘div’); sectionDiv.className = ‘legal-section’; sectionDiv.style.cssText = ‘background-color: #eff6ff; padding: 12px; border-radius: 8px;’; sectionDiv.innerHTML = `
Section ${section.section}
${section.act}
${section.reasoning}
`; sectionsContainer.appendChild(sectionDiv); }); } // Display document quality if (document) { document.getElementById(‘completeness’).textContent = document.document_quality?.completeness + ‘%’ || ‘N/A’; document.getElementById(‘legalCoverage’).textContent = document.document_quality?.legal_coverage ? ‘Good’ : ‘Basic’; document.getElementById(‘confidence’).textContent = Math.round((analysis?.confidence_score || 0.8) * 100) + ‘%’; } // Show results document.getElementById(‘resultsDisplay’).classList.remove(‘hidden’); } function showError(message) { document.getElementById(‘statusDisplay’).innerHTML = `

${message}

Please check your input and try again

`; document.getElementById(‘statusDisplay’).classList.remove(‘hidden’); } function formatDate(dateString) { if (!dateString) return ”; const date = new Date(dateString); return date.toLocaleDateString(‘en-IN’); } // Preview modal handlers document.getElementById(‘previewBtn’).addEventListener(‘click’, function() { if (currentAnalysis && currentAnalysis.document) { document.getElementById(‘documentPreview’).textContent = currentAnalysis.document.formatted_notice; document.getElementById(‘previewModal’).classList.remove(‘hidden’); } }); document.getElementById(‘closePreview’).addEventListener(‘click’, function() { document.getElementById(‘previewModal’).classList.add(‘hidden’); }); document.getElementById(‘closePreview2’).addEventListener(‘click’, function() { document.getElementById(‘previewModal’).classList.add(‘hidden’); }); document.getElementById(‘copyDocument’).addEventListener(‘click’, function() { const text = document.getElementById(‘documentPreview’).textContent; navigator.clipboard.writeText(text).then(function() { alert(‘Document copied to clipboard!’); }); }); // Download handler document.getElementById(‘downloadBtn’).addEventListener(‘click’, function() { if (currentAnalysis && currentAnalysis.document) { const element = document.createElement(‘a’); const file = new Blob([currentAnalysis.document.formatted_notice], {type: ‘text/plain’}); element.href = URL.createObjectURL(file); element.download = `Legal_Notice_${Date.now()}.txt`; document.body.appendChild(element); element.click(); document.body.removeChild(element); } }); })();