Mediation Agreement Generator Mediation Agreement Generator Create a comprehensive mediation agreement by filling out the sections below. Parties Dispute Terms Agreement Party One Details Full Name Address Party Two Details Full Name Address Mediation Information Date of Agreement Governing State Brief, Neutral Description of the Dispute A disagreement concerning the final payment and project deliverables for a web design project initiated on April 15, 2025. Total Settlement Payment Amount ($) Who is making the payment? Party One Party Two Payment Due Date Other Agreed-Upon Terms Describe any other actions, such as return of property, confidentiality clauses, or mutual release of claims. Use numbered points for clarity. 1. Upon receipt of the full settlement payment, Party One agrees to deliver all outstanding project files and assets to Party Two within 3 business days. 2. Both parties agree to a mutual non-disparagement clause, refraining from making negative public or private statements about each other regarding this dispute. 3. This agreement constitutes a full and final settlement of all claims related to the aforementioned dispute. Both parties hereby release and discharge each other from any and all claims, liabilities, and obligations arising from this matter. Your generated agreement will appear here. Download Agreement as PDF Previous Generate Agreement Next This Agreement shall be governed by and construed in accordance with the laws of the State of ${data.governingState}. The Parties represent that they have read and understood this Agreement and sign it voluntarily. ${data.partyOneName} Date: ____________________ ${data.partyTwoName} Date: ____________________ `; document.getElementById('agreement-output-container').innerHTML = agreementHTML; document.getElementById('pdf-download-section').classList.remove('hidden'); lucide.createIcons(); showTab(tabs.length - 1); } async function downloadPdf() { const pdfLoader = document.getElementById('pdf-loader'); const downloadBtn = document.getElementById('downloadPdfBtn'); const content = document.getElementById('agreement-output'); pdfLoader.classList.remove('hidden'); downloadBtn.disabled = true; try { const canvas = await html2canvas(content, { scale: 2 }); const imgData = canvas.toDataURL('image/png'); const { jsPDF } = window.jspdf; // Use letter size (8.5x11 inches) which is 612x792 points const pdf = new jsPDF('p', 'pt', 'letter'); const pdfWidth = pdf.internal.pageSize.getWidth(); const pdfHeight = pdf.internal.pageSize.getHeight(); const margin = 40; const canvasWidth = canvas.width; const canvasHeight = canvas.height; const ratio = canvasWidth / canvasHeight; const imgWidth = pdfWidth - (margin * 2); const imgHeight = imgWidth / ratio; let heightLeft = imgHeight; let position = margin; pdf.addImage(imgData, 'PNG', margin, position, imgWidth, imgHeight); heightLeft -= (pdfHeight - margin * 2); while (heightLeft > 0) { position = position - (pdfHeight - margin * 2); pdf.addPage(); pdf.addImage(imgData, 'PNG', margin, position, imgWidth, imgHeight); heightLeft -= (pdfHeight - margin * 2); } pdf.save('Mediation-Settlement-Agreement.pdf'); } catch (error) { console.error("Error generating PDF:", error); alert("There was an error generating the PDF. Please try again."); } finally { pdfLoader.classList.add('hidden'); downloadBtn.disabled = false; } } // Event Listeners generateBtn.addEventListener('click', generateAgreement); downloadPdfBtn.addEventListener('click', downloadPdf); // Initial UI setup showTab(currentTab); lucide.createIcons(); });