Shareholder Dispute Resolution Agreement Generator

Shareholder Dispute Resolution Agreement Generator

Create a formal agreement to resolve internal shareholder conflicts.

Company Information

Date of Agreement

Shareholder A (Party 1)

Shareholder B (Party 2)

The Parties agree to submit their dispute to mediation with ${data.thirdPartyName} (the "Mediator") on ${data.thirdPartyDate}. The Parties will participate in the mediation in good faith and share the costs of the mediation equally. Any agreement reached during mediation will be documented in a separate settlement agreement.

`; } else if (data.resolutionMethod === 'arbitration') { resolutionClause = `

2. Binding Arbitration.

The Parties agree to submit their dispute to binding arbitration. The arbitration shall be conducted by ${data.thirdPartyName} (the "Arbitrator") on ${data.thirdPartyDate}. The Arbitrator's decision shall be final and binding on the Parties, and judgment may be entered upon it in any court having jurisdiction.

`; } return `

SHAREHOLDER DISPUTE RESOLUTION AGREEMENT

This Shareholder Dispute Resolution Agreement (this "Agreement") is made and entered into as of ${data.agreementDate}, by and between ${data.shareholderAName} ("Shareholder A") and ${data.shareholderBName} ("Shareholder B") (collectively, the "Parties").

RECITALS

WHEREAS, the Parties are shareholders of ${data.companyName}, a ${data.companyState} corporation (the "Company");

WHEREAS, a dispute has arisen between the Parties concerning: ${data.disputeDescription} (the "Dispute");

WHEREAS, the Parties wish to resolve the Dispute amicably and permanently on the terms and conditions set forth in this Agreement.

NOW, THEREFORE, in consideration of the mutual covenants and promises contained herein, the Parties agree as follows:

1. Full and Final Settlement. This Agreement constitutes a full and final settlement of the Dispute and any and all claims, known or unknown, that the Parties may have against each other arising out of or related to their status as shareholders of the Company.

${resolutionClause}

3. General Release. Each Party hereby releases and forever discharges the other Party, the Company, and their respective officers, directors, employees, and agents from any and all claims, demands, liabilities, and causes of action of any kind, whether known or unknown, arising out of the Dispute.

4. Governing Law. This Agreement shall be governed by and construed in accordance with the laws of the State of ${data.companyState}.

IN WITNESS WHEREOF, the Parties have executed this Agreement as of the date first above written.



______________________________
${data.shareholderAName}



______________________________
${data.shareholderBName}

`; }; // --- UI & NAVIGATION --- const updateNavButtons = () => { prevBtn.disabled = currentTab === '1'; nextBtn.disabled = currentTab === '3'; prevBtn.classList.toggle('opacity-50', prevBtn.disabled); nextBtn.classList.toggle('opacity-50', nextBtn.disabled); }; window.switchTab = (tabId) => { currentTab = tabId; tabs.forEach(id => { document.getElementById(`tab-content-${id}`).classList.toggle('hidden', id !== currentTab); document.getElementById(`tab-btn-${id}`).classList.toggle('tab-active', id === currentTab); document.getElementById(`tab-btn-${id}`).classList.toggle('tab-inactive', id !== currentTab); }); if (tabId === '3') { document.getElementById('agreement-preview').innerHTML = generateAgreementText(); } updateNavButtons(); }; const navigateTabs = (direction) => { const currentIndex = tabs.indexOf(currentTab); let nextIndex = currentIndex + direction; if (nextIndex >= 0 && nextIndex < tabs.length) { switchTab(tabs[nextIndex]); } }; const handleResolutionMethodChange = () => { const buyoutSection = document.getElementById('buyout-section'); const thirdPartySection = document.getElementById('third-party-section'); const thirdPartyTitle = document.getElementById('third-party-title'); const method = resolutionMethod.value; buyoutSection.classList.toggle('hidden', method !== 'buyout'); thirdPartySection.classList.toggle('hidden', method !== 'mediation' && method !== 'arbitration'); if (method === 'mediation') { thirdPartyTitle.textContent = 'Mediator Details'; } else if (method === 'arbitration') { thirdPartyTitle.textContent = 'Arbitrator Details'; } }; const updateShareholderDropdowns = () => { const nameA = shareholderAName.value || 'Shareholder A'; const nameB = shareholderBName.value || 'Shareholder B'; sellingShareholder.innerHTML = ``; buyingShareholder.innerHTML = ``; }; // --- PDF GENERATION --- const downloadPdf = () => { const { jsPDF } = window.jspdf; const doc = new jsPDF({ unit: 'pt', format: 'a4' }); const agreementHtml = generateAgreementText(); const tempDiv = document.createElement('div'); tempDiv.innerHTML = agreementHtml; const title = tempDiv.querySelector('h2').innerText; const paragraphs = Array.from(tempDiv.querySelectorAll('p')); let y = 60; const margin = 50; const pageWidth = doc.internal.pageSize.getWidth(); const maxWidth = pageWidth - margin * 2; doc.setFontSize(16); doc.setFont('times', 'bold'); doc.text(title, pageWidth / 2, y, { align: 'center' }); y += 40; doc.setFontSize(12); doc.setFont('times', 'normal'); paragraphs.forEach(p => { const isBold = p.querySelector('strong'); if (isBold) { doc.setFont('times', 'bold'); } const text = p.innerText; const lines = doc.splitTextToSize(text, maxWidth); lines.forEach(line => { if (y > doc.internal.pageSize.getHeight() - margin) { doc.addPage(); y = margin; } doc.text(line, margin, y); y += 15; // line height }); if (isBold) { doc.setFont('times', 'normal'); } y += 5; // extra space after paragraph }); doc.save('Shareholder_Dispute_Agreement.pdf'); }; // --- EVENT LISTENERS & INITIAL SETUP --- prevBtn.addEventListener('click', () => navigateTabs(-1)); nextBtn.addEventListener('click', () => navigateTabs(1)); resolutionMethod.addEventListener('change', handleResolutionMethodChange); document.getElementById('download-pdf-btn').addEventListener('click', downloadPdf); [shareholderAName, shareholderBName].forEach(el => el.addEventListener('keyup', updateShareholderDropdowns)); // Initial setup const today = new Date().toISOString().split('T')[0]; agreementDate.value = today; closingDate.value = today; thirdPartyDate.value = today; updateNavButtons(); handleResolutionMethodChange(); updateShareholderDropdowns(); lucide.createIcons(); });
Scroll to Top