Privacy Policy Generator
Company & Website Information
Data Collection Practices
Select all types of personally identifiable information (PII) you collect from users.
Policy Clauses & Features
We may share Your personal information with third-party vendors to monitor and analyze the use of our Service, for payment processing, or to otherwise support our business operations. We do not sell your personal information to third parties.
`; } if (document.getElementById('clause-children').checked) { policy += `Children's Privacy
`; policy += `Our Service does not address anyone under the age of 13. We do not knowingly collect personally identifiable information from anyone under the age of 13. If You are a parent or guardian and You are aware that Your child has provided Us with Personal Data, please contact Us.
`; } if (document.getElementById('clause-ccpa').checked) { policy += `Your California Privacy Rights (CCPA)
`; policy += `If you are a California resident, you have rights under the California Consumer Privacy Act (CCPA). These rights include the right to know what personal information is being collected about you, the right to request deletion of your personal information, and the right to opt-out of the sale of your personal information. To exercise these rights, please contact us at ${contactEmail}.
`; } policy += `Contact Us
`; policy += `If you have any questions about this Privacy Policy, You can contact us by email: ${contactEmail}
`; generatedPolicyText = policy; policyPreview.innerHTML = policy; }; // --- TAB NAVIGATION LOGIC --- window.switchTab = (tabName) => { currentTab = tabName; Object.values(tabs).forEach(tab => tab.classList.remove('active', 'inactive')); tabs[tabName].classList.add('active'); Object.entries(tabs).forEach(([key, tab]) => { if(key !== tabName) tab.classList.add('inactive'); }); Object.values(contents).forEach(content => content.classList.add('hidden')); contents[tabName].classList.remove('hidden'); updateNavButtons(); }; window.navigateTabs = (direction) => { const tabKeys = Object.keys(tabs); const currentIndex = tabKeys.indexOf(currentTab); let newIndex = (direction === 'next') ? currentIndex + 1 : currentIndex - 1; if (newIndex >= 0 && newIndex < tabKeys.length) { if (tabKeys[newIndex] === 'dashboard') { generatePolicy(); } switchTab(tabKeys[newIndex]); } }; const updateNavButtons = () => { const tabKeys = Object.keys(tabs); const currentIndex = tabKeys.indexOf(currentTab); navButtons.prev.disabled = currentIndex === 0; navButtons.next.disabled = currentIndex === tabKeys.length - 1; }; // --- PDF GENERATION --- const generatePdf = () => { const { jsPDF } = window.jspdf; const doc = new jsPDF({ orientation: 'p', unit: 'pt', format: 'a4' }); doc.html(policyPreview, { callback: function(doc) { doc.save('Privacy_Policy.pdf'); }, x: 40, y: 40, width: 515, // A4 width in points is 595, leaving margins windowWidth: 800 }); }; // --- INITIALIZATION & EVENT LISTENERS --- updatePolicyBtn.addEventListener('click', () => { generatePolicy(); switchTab('dashboard'); }); downloadPdfBtn.addEventListener('click', generatePdf); generatePolicy(); updateNavButtons(); });