āχāĻŽā§‡āχāϞ āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰ āĻœā§‡āύāĻžāϰ⧇āϟāϰ

āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ, āϞ⧋āĻ—ā§‹ āĻāĻŦāĻ‚ āϏ⧋āĻļā§āϝāĻžāϞ āϞāĻŋāĻ‚āĻ• āϏāĻš āĻĒā§āϰāĻĢ⧇āĻļāύāĻžāϞ āĻāχāϚāϟāĻŋāĻāĻŽāĻāϞ āχāĻŽā§‡āχāϞ āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύāĨ¤

āϜāĻŋāĻŽā§‡āχāϞ, āφāωāϟāϞ⧁āĻ•, āĻ…ā§āϝāĻžāĻĒāϞ āĻŽā§‡āχāϞ āĻāĻŦāĻ‚ āϏāĻ•āϞ āĻĒā§āϰāϧāĻžāύ āχāĻŽā§‡āχāϞ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡āϰ āϏāĻžāĻĨ⧇ āϏāĻžāĻŽāĻžā§āϜāĻ¸ā§āϝāĻĒā§‚āĻ°ā§āĻŖāĨ¤

📝 āφāĻĒāύāĻžāϰ āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰ⧁āύ

āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āĻŦāĻžāĻ›āĻžāχ āĻ•āϰ⧁āύ
āφāϧ⧁āύāĻŋāĻ•
āφāϧ⧁āύāĻŋāĻ•
āĻ•ā§āϞāĻžāϏāĻŋāĻ•
āĻ•ā§āϞāĻžāϏāĻŋāĻ•
āĻŽāĻŋāύāĻŋāĻŽāĻžāϞ
āĻŽāĻŋāύāĻŋāĻŽāĻžāϞ
āĻĒā§āϰāĻĢ⧇āĻļāύāĻžāϞ

āĻĒā§āϰāĻĢ⧇āĻļāύāĻžāϞ

āĻŦāĻŋāĻ­āĻžāĻ—

āĻ›āĻŦāĻŋ āĻ“ āϞ⧋āĻ—ā§‹

āϏāĻžāĻŽāĻžāϜāĻŋāĻ• āĻŽāĻžāĻ§ā§āϝāĻŽā§‡āϰ āϞāĻŋāĻ‚āĻ•

āĻĄāĻŋāϜāĻžāχāύ āĻ•āĻžāĻ¸ā§āϟāĻŽāĻžāχāĻœā§‡āĻļāύ

āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āϤāĻĨā§āϝ

đŸ‘ī¸ āϞāĻžāχāĻ­ āĻĒā§āϰāĻŋāĻ­āĻŋāω

āϏāĻŋāĻ—āύ⧇āϚāĻžāϰ āĻĒā§āϰāĻŋāĻ­āĻŋāω āĻĻ⧇āĻ–āϤ⧇ āφāĻĒāύāĻžāϰ āϤāĻĨā§āϝ āĻĒā§‚āϰāĻŖ āĻ•āϰ⧁āύ

📄 āĻāχāϚāϟāĻŋāĻāĻŽāĻāϞ āϕ⧋āĻĄ

āĻāχ āĻāχāϚāϟāĻŋāĻāĻŽāĻāϞ āϕ⧋āĻĄāϟāĻŋ āĻ•āĻĒāĻŋ āĻ•āϰ⧇ āφāĻĒāύāĻžāϰ āχāĻŽā§‡āχāϞ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡āϰ āϏāĻŋāĻ—āύ⧇āϚāĻžāϰ āϏ⧇āϟāĻŋāĻ‚āϏ⧇ āĻĒ⧇āĻ¸ā§āϟ āĻ•āϰ⧁āύāĨ¤

📚 āφāĻĒāύāĻžāϰ āχāĻŽā§‡āχāϞ āϏāĻŋāĻ—āύ⧇āϚāĻžāϰ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻžāϰ āύāĻŋāϝāĻŧāĻŽ

āϜāĻŋāĻŽā§‡āχāϞ
āφāωāϟāϞ⧁āĻ•
āĻ…ā§āϝāĻžāĻĒāϞ āĻŽā§‡āχāϞ
āχāϝāĻŧāĻžāĻšā§ āĻŽā§‡āχāϞ

āϜāĻŋāĻŽā§‡āχāϞ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻžāĻŦāϞ⧀:

  1. āϜāĻŋāĻŽā§‡āχāϞ āϖ⧁āϞ⧁āύ āĻāĻŦāĻ‚ āϏ⧇āϟāĻŋāĻ‚āϏ āĻ—āĻŋāϝāĻŧāĻžāϰ āφāχāĻ•āύ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧁āύ
  2. "āϏāĻŽāĻ¸ā§āϤ āϏ⧇āϟāĻŋāĻ‚āϏ āĻĻ⧇āϖ⧁āύ" āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰ⧁āύ
  3. "āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰ" āĻŦāĻŋāĻ­āĻžāϗ⧇ āĻ¸ā§āĻ•ā§āϰāϞ āĻ•āϰ⧁āύ
  4. "āύāϤ⧁āύ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ" āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āύāĻžāĻŽ āĻĻāĻŋāύ
  5. āĻŸā§‡āĻ•ā§āϏāϟ āĻŦāĻ•ā§āϏ⧇ āφāĻĒāύāĻžāϰ HTML āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰ āĻĒ⧇āĻ¸ā§āϟ āĻ•āϰ⧁āύ
  6. āύāĻŋāĻšā§‡ āĻ¸ā§āĻ•ā§āϰāϞ āĻ•āϰ⧇ "āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāϗ⧁āϞāĻŋ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧁āύ" āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧁āύ

āφāωāϟāϞ⧁āĻ• āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻžāĻŦāϞ⧀:

  1. āφāωāϟāϞ⧁āĻ• āϖ⧁āϞ⧁āύ āĻāĻŦāĻ‚ āĻĢāĻžāχāϞ > āĻ…āĻĒāĻļāύāϏ āĻ āϝāĻžāύ
  2. āĻŦāĻžāĻŽ āϏāĻžāχāĻĄāĻŦāĻžāϰ āĻĨ⧇āϕ⧇ "āĻŽā§‡āχāϞ" āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰ⧁āύ
  3. "āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰāϏāĻŽā§‚āĻš..." āĻŦāĻžāϟāύ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧁āύ
  4. āύāϤ⧁āύ āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ "āύāϤ⧁āύ" āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧁āύ
  5. āĻāĻĄāĻŋāϟāϰ⧇ āφāĻĒāύāĻžāϰ HTML āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰ āĻĒ⧇āĻ¸ā§āϟ āĻ•āϰ⧁āύ
  6. āύāϤ⧁āύ āĻŦāĻžāĻ°ā§āϤāĻž āĻāĻŦāĻ‚ āωāĻ¤ā§āϤāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻšāĻŋāϏ⧇āĻŦ⧇ āϏ⧇āϟ āĻ•āϰ⧁āύ
  7. āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāϤ⧇ "āĻ“āϕ⧇" āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧁āύ

āĻ…ā§āϝāĻžāĻĒāϞ āĻŽā§‡āχāϞ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻžāĻŦāϞ⧀:

  1. āĻ…ā§āϝāĻžāĻĒāϞ āĻŽā§‡āχāϞ āϖ⧁āϞ⧁āύ āĻāĻŦāĻ‚ āĻŽā§‡āχāϞ > āĻĒāĻ›āĻ¨ā§āĻĻāϏāĻŽā§‚āĻš āĻ āϝāĻžāύ
  2. "āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰ" āĻŸā§āϝāĻžāĻŦ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧁āύ
  3. āĻŦāĻžāĻŽ āĻ•āϞāĻžāĻŽā§‡ āχāĻŽā§‡āχāϞ āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰ⧁āύ
  4. āύāϤ⧁āύ āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰ āϝ⧋āĻ— āĻ•āϰāϤ⧇ "+" āĻŦāĻžāϟāύ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧁āύ
  5. āĻĄāĻžāύ āĻĒā§āϝāĻžāύ⧇āϞ⧇ āφāĻĒāύāĻžāϰ HTML āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰ āĻĒ⧇āĻ¸ā§āϟ āĻ•āϰ⧁āύ
  6. āχāĻšā§āĻ›āĻž āĻšāϞ⧇ āĻāχ āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰāϟāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦ⧇āϛ⧇ āύāĻŋāύ

āχāϝāĻŧāĻžāĻšā§ āĻŽā§‡āχāϞ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻžāĻŦāϞ⧀:

  1. āχāϝāĻŧāĻžāĻšā§ āĻŽā§‡āχāϞ āϖ⧁āϞ⧁āύ āĻāĻŦāĻ‚ āϏ⧇āϟāĻŋāĻ‚āϏ āĻ—āĻŋāϝāĻŧāĻžāϰ āφāχāĻ•āύ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧁āύ
  2. "āφāϰāĻ“ āϏ⧇āϟāĻŋāĻ‚āϏ" āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰ⧁āύ
  3. āĻŦāĻžāĻŽ āĻŽā§‡āύ⧁ āĻĨ⧇āϕ⧇ "āχāĻŽā§‡āχāϞ āϞ⧇āĻ–āĻž" āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧁āύ
  4. "āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰ" āĻŦāĻŋāĻ­āĻžāϗ⧇ āĻ¸ā§āĻ•ā§āϰāϞ āĻ•āϰ⧁āύ
  5. āĻŸā§‡āĻ•ā§āϏāϟ āĻāϰāĻŋāϝāĻŧāĻžāϤ⧇ āφāĻĒāύāĻžāϰ HTML āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰ āĻĒ⧇āĻ¸ā§āϟ āĻ•āϰ⧁āύ
  6. āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāϗ⧁āϞāĻŋ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāϤ⧇ "āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧁āύ" āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧁āύ

đŸ’ŧ āφāĻĒāύāĻžāϰ āĻĒ⧇āĻļāĻžāĻĻāĻžāϰ āĻŦā§āĻ°ā§āϝāĻžāĻ¨ā§āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāϛ⧇āύ?

āĻŦā§āϝāĻŦāϏāĻžāϝāĻŧāĻŋāĻ• āĻ•āĻžāĻ°ā§āĻĄ, āĻŽāĻžāĻ°ā§āϕ⧇āϟāĻŋāĻ‚ āϏāĻžāĻŽāĻ—ā§āϰ⧀ āĻāĻŦāĻ‚ āĻŦā§āĻ°ā§āϝāĻžāĻ¨ā§āĻĄāĻŋāĻ‚ āϰāĻŋāϏ⧋āĻ°ā§āϏ āϖ⧁āρāϜ⧁āύ

āĻ¸ā§āĻŽāĻžāĻ°ā§āϟ āύ⧇āĻļāύ⧇āϰ āĻŽā§‚āϞ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹: āĻĄāĻŦā§āϞāĻŋāωāφāχāĻ āϕ⧋āĻĄ

āĻĄā§āϰ⧋āĻ¨Âˇāϰ⧋āĻŦāϟ āĻĄā§‡āϞāĻŋāĻ­āĻžāϰāĻŋ, āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āĻĄā§āϰāĻžāχāĻ­āĻŋāĻ‚, āϜāϰ⧁āϰāĻŋ āωāĻĻā§āϧāĻžāϰ āĻāĻŦāĻ‚ āφāϰāĻ“ āĻ…āύ⧇āĻ• āĻ•āĻŋāϛ⧁ - ā§Šā§Ļ āĻĻāĻŋāύ⧇āϰ āϜāĻ¨ā§āϝ āĻ­āĻŦāĻŋāĻˇā§āϝāϤ⧇āϰ āĻ…āĻ­āĻŋāĻœā§āĻžāϤāĻž āύāĻŋāύ, āφāĻĒāύāĻžāϰ āĻĻ⧇āĻļ⧇āϰ āϜāĻ¨ā§āϝ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻŦāĻŋāύāĻžāĻŽā§‚āĻ˛ā§āϝ⧇!

āĻĄāĻŦā§āϞāĻŋāωāφāχāĻ āϕ⧋āĻĄ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āφāϰāĻ“ āϜāĻžāύ⧁āύ

🤖 āφāĻĒāύāĻžāϰ āĻāφāχ āϏāĻšāĻ•āĻžāϰ⧀ āĻŦ⧇āϛ⧇ āύāĻŋāύ

đŸ’Ŧ āĻšā§āϝāĻžāϟāϜāĻŋāĻĒāĻŋāϟāĻŋ
āχāĻŽā§‡āχāϞ āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰ āĻĄāĻŋāϜāĻžāχāύ āϟāĻŋāĻĒāϏ āĻāϰ āϜāĻ¨ā§āϝ āϏ⧇āϰāĻž
🧠 āĻ•ā§āϞāĻĄ
āĻĒ⧇āĻļāĻžāĻĻāĻžāϰ āϝ⧋āĻ—āĻžāϝ⧋āϗ⧇āϰ āĻĒāϰāĻžāĻŽāĻ°ā§āĻļ⧇āϰ āϜāĻ¨ā§āϝ āύāĻŋāϖ⧁āρāϤ
✨ āĻœā§‡āĻŽāĻŋāύāĻžāχ āĻŦāĻŋāύāĻžāĻŽā§‚āĻ˛ā§āϝ⧇
āĻŦā§āϝāĻŦāϏāĻžāϝāĻŧāĻŋāĻ• āĻŦā§āĻ°ā§āϝāĻžāĻ¨ā§āĻĄāĻŋāĻ‚ āĻ āĻŦāĻŋāύāĻžāĻŽā§‚āĻ˛ā§āϝ⧇ āϏāĻšāĻžāϝāĻŧāϤāĻž
`; const blob = new Blob([fullHTML], { type: 'text/html' }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = `email-signature-${signatureData.fullName.replace(/\s+/g, '-').toLowerCase()}.html`; document.body.appendChild(a); a.click(); document.body.removeChild(a); URL.revokeObjectURL(url); showNotification('Signature downloaded!', 'success'); trackEvent('signature_downloaded'); } // Download HTML file function downloadHTML() { const htmlCode = document.getElementById('htmlOutput').value; if (!htmlCode.trim()) { showNotification('āĻ…āύ⧁āĻ—ā§āϰāĻš āĻ•āϰ⧇ āĻĒā§āϰāĻĨāĻŽā§‡ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ', 'error'); return; } const blob = new Blob([htmlCode], { type: 'text/html' }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = `signature-code-${Date.now()}.html`; document.body.appendChild(a); a.click(); document.body.removeChild(a); URL.revokeObjectURL(url); showNotification('HTML file downloaded!', 'success'); trackEvent('html_downloaded'); } // ========== UTILITY FUNCTIONS ========== // Show notification toast function showNotification(message, type = 'success') { const toast = document.createElement('div'); toast.className = `toast ${type}`; toast.textContent = message; document.body.appendChild(toast); setTimeout(() => { toast.remove(); }, 3000); } // Show OTA section function showOTA() { const otaContainer = document.getElementById('otaContainer'); if (otaContainer && (otaContainer.style.display === 'none' || !otaContainer.style.display)) { otaContainer.style.display = 'block'; } } // Analytics tracking function trackEvent(eventName, data = {}) { if (typeof gtag !== 'undefined') { gtag('event', eventName, { 'event_category': TOOL_CONFIG.category, 'event_label': TOOL_CONFIG.name, ...data }); } } // ========== AI ASSISTANT FUNCTIONS ========== function openAIModal() { const modal = document.getElementById('aiModal'); modal.classList.add('show'); } function closeAIModal() { const modal = document.getElementById('aiModal'); modal.classList.remove('show'); } function selectAI(aiType) { switch(aiType) { case 'chatgpt': const toolContext = `I'm using an Email Signature Generator tool. I need help with professional email signature design, business communication, or branding advice.`; const chatUrl = `https://chat.openai.com/?q=${encodeURIComponent(toolContext)}`; window.open(chatUrl, '_blank'); closeAIModal(); trackEvent('ai_selection', { ai_type: 'chatgpt' }); break; case 'claude': const claudeContext = `I'm using an Email Signature Generator tool. I need help with professional email signature design, business communication, or branding advice.`; const claudeUrl = `https://claude.ai/chat?q=${encodeURIComponent(claudeContext)}`; window.open(claudeUrl, '_blank'); closeAIModal(); trackEvent('ai_selection', { ai_type: 'claude' }); break; case 'gemini': const geminiContext = `I'm using an Email Signature Generator tool. I need help with professional email signature design, business communication, or branding advice.`; const geminiUrl = `https://gemini.google.com/?q=${encodeURIComponent(geminiContext)}`; window.open(geminiUrl, '_blank'); closeAIModal(); trackEvent('ai_selection', { ai_type: 'gemini' }); break; } } // ========== EVENT LISTENERS ========== document.addEventListener('āĻĄāĻŽāĻ•āύāĻŸā§‡āĻ¨ā§āϟāϞ⧋āĻĄā§‡āĻĄ', function() { // Template selection document.querySelectorAll('.template-option').forEach(option => { option.addEventListener('click', function() { document.querySelectorAll('.template-option').forEach(opt => opt.classList.remove('active')); this.classList.add('active'); generateSignature(); }); }); // Form field changes const formFields = [ 'fullName', 'jobTitle', 'company', 'department', 'email', 'phone', 'website', 'address', 'linkedin', 'twitter', 'facebook', 'instagram', 'primaryColor', 'fontFamily', 'quote', 'disclaimer' ]; formFields.forEach(fieldId => { const field = document.getElementById(fieldId); if (field) { field.addEventListener('input', generateSignature); field.addEventListener('change', generateSignature); } }); // File uploads document.getElementById('profilePhoto').addEventListener('change', generateSignature); document.getElementById('companyLogo').addEventListener('change', generateSignature); // Color picker sync document.getElementById('primaryColor').addEventListener('input', function() { document.getElementById('primaryColorText').value = this.value; generateSignature(); }); document.getElementById('primaryColorText').addEventListener('input', function() { if (/^#[0-9A-F]{6}$/i.test(this.value)) { document.getElementById('primaryColor').value = this.value; generateSignature(); } }); // Instruction tabs document.querySelectorAll('.instruction-tab').forEach(tab => { tab.addEventListener('click', function() { const tabId = this.dataset.tab; // Update active tab document.querySelectorAll('.instruction-tab').forEach(t => t.classList.remove('active')); this.classList.add('active'); // Update active content document.querySelectorAll('.instruction-content').forEach(content => { content.classList.remove('active'); }); document.getElementById(`${tabId}-instructions`).classList.add('active'); }); }); // AI modal events document.getElementById('aiBtn').addEventListener('click', openAIModal); document.getElementById('aiModal').addEventListener('click', function(e) { if (e.target === this) closeAIModal(); }); // ESC key to close modal document.addEventListener('keydown', function(e) { if (e.key === 'āĻāĻ¸ā§āϕ⧇āĻĒ') closeAIModal(); }); // Initialize updateCurrentYear(); updateToolCount(); trackEvent('page_view', { tool: TOOL_CONFIG.name, category: TOOL_CONFIG.category }); }); // ========== DYNAMIC TOOL COUNT ========== async function updateToolCount() { try { const response = await fetch('/api/tool-count.php'); const data = await response.json(); document.querySelectorAll('.dynamic-tools-count').forEach(el => { el.textContent = `${data.count}+ free online tools in 206 languages. No signup, no fees, just tools that work.`; }); document.querySelectorAll('.dynamic-count').forEach(el => { const prefix = el.getAttribute('data-text') || ''; const suffix = el.getAttribute('data-suffix') || ''; const icon = el.textContent.split(' ')[0] || ''; el.textContent = `${icon} ${prefix} ${data.count}+ ${suffix}`; }); } catch (error) { const fallbackCount = 333; document.querySelectorAll('.dynamic-tools-count').forEach(el => { el.textContent = `${fallbackCount}+ free online tools in 206 languages. No signup, no fees, just tools that work.`; }); document.querySelectorAll('.dynamic-count').forEach(el => { const prefix = el.getAttribute('data-text') || ''; const suffix = el.getAttribute('data-suffix') || ''; const icon = el.textContent.split(' ')[0] || ''; el.textContent = `${icon} ${prefix} ${fallbackCount}+ ${suffix}`; }); } } function updateCurrentYear() { const currentYear = new Date().getFullYear(); document.querySelectorAll('.current-year').forEach(el => { el.textContent = currentYear; }); } // ========== ANALYTICS ========== window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-XXXXXXXXX');