/** * Legal Pages Helper * * Dynamically injects a common header (topbar) and language-aware footer * into all 6 legal pages to eliminate HTML duplication. * * Footer content depends on page language (EN vs RO). * Language links use event delegation so they work on injected elements. */ (function(){ "use strict"; var LANG_KEY = "legalLang"; /** * Detect browser language preference (EN or RO). */ function browserLang(){ var lang = (navigator.language || navigator.userLanguage || 'en').toLowerCase(); return lang.indexOf('ro') === 0 ? 'ro' : 'en'; } /** * Get stored language preference, fall back to browser detection. */ function getLang(){ return localStorage.getItem(LANG_KEY) || browserLang(); } /** * Build URL to alternate language page. * Supports both -en.html and -ro.html naming patterns. */ function targetPage(current, lang){ if(current.indexOf('-ro.html') !== -1) return current.replace('-ro.html', '-' + lang + '.html'); if(current.indexOf('-en.html') !== -1) return current.replace('-en.html', '-' + lang + '.html'); return current; } /** * Get current page base name (terms, privacy, cookies). */ function basePage(){ var path = window.location.pathname; if(path.indexOf('terms') !== -1) return 'terms'; if(path.indexOf('privacy') !== -1) return 'privacy'; if(path.indexOf('cookies') !== -1) return 'cookies'; return ''; } /** * Detect page language (EN or RO). */ function pageLang(){ return window.location.pathname.indexOf('-ro.html') !== -1 ? 'ro' : 'en'; } /** * Inject topbar with logo and language switcher. */ function injectTopbar(){ var base = basePage(); var lang = pageLang(); var html = '
'; $('.wrap').prepend(html); } /** * Inject language-aware footer. * EN: "©2026 myAi. All rights reserved." * RO: "©2026 myAi. Toate drepturile sunt rezervate." */ function injectFooter(){ var lang = pageLang(); var base = basePage(); var copyrightText = lang === 'ro' ? '©2026 myAi. Toate drepturile sunt rezervate.' : '©2026 myAi. All rights reserved.'; var linksHtml = ''; if(lang === 'ro'){ linksHtml = 'Termeni și condiții' + 'Politica de confidențialitate' + 'Politica de COOKIES'; } else { linksHtml = 'Terms and Conditions' + 'Privacy Policy' + 'Cookies Policy'; } var html = ''; $('.wrap').append(html); } /** * Initialize language persistence and topbar injection. */ function init(){ localStorage.setItem(LANG_KEY, pageLang()); injectTopbar(); injectFooter(); } /** * Handle language link clicks with event delegation. * Works on both static and injected links. */ document.addEventListener('click', function(e){ var link = e.target.closest('.lang-link'); if(!link) return; e.preventDefault(); localStorage.setItem(LANG_KEY, link.getAttribute('data-lang')); window.location.href = targetPage(window.location.pathname, link.getAttribute('data-lang')); }); // Run on page load if(document.readyState === 'loading'){ document.addEventListener('DOMContentLoaded', init); } else { init(); } })();