рдИрдореЗрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЬрдирд░реЗрдЯрд░

рдХрд╕реНрдЯрдо рдЯреЗрдореНрдкрд▓реЗрдЯ, рд▓реЛрдЧреЛ рдФрд░ рд╕реЛрд╢рд▓ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдкреЗрд╢реЗрд╡рд░ HTML рдИрдореЗрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдмрдирд╛рдПрдВред

рдЬреАрдореЗрд▓, рдЖрдЙрдЯрд▓реБрдХ, рдПрдкреНрдкрд▓ рдореЗрд▓ рдФрд░ рд╕рднреА рдкреНрд░рдореБрдЦ рдИрдореЗрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддред

ЁЯУЭ рдЕрдкрдирд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░реЗрдВ

рдЯреЗрдореНрдкрд▓реЗрдЯ рдЪреБрдиреЗрдВ
рдЖрдзреБрдирд┐рдХ
рдЖрдзреБрдирд┐рдХ
рдХреНрд▓рд╛рд╕рд┐рдХ
рдХреНрд▓рд╛рд╕рд┐рдХ
рдорд┐рдирд┐рдорд▓
рдорд┐рдирд┐рдорд▓
рдкреЗрд╢реЗрд╡рд░

рдкреЗрд╢реЗрд╡рд░

рд╡рд┐рднрд╛рдЧ

рдЫрд╡рд┐рдпрд╛рдВ рдФрд░ рд▓реЛрдЧреЛ

рд╕реЛрд╢рд▓ рдореАрдбрд┐рдпрд╛ рд▓рд┐рдВрдХ

рдбрд┐рдЬрд╝рд╛рдЗрди рдЕрдиреБрдХреВрд▓рди

рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА

ЁЯСБя╕П рд▓рд╛рдЗрд╡ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди

рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдЬрд╛рдирдХрд╛рд░реА рднрд░реЗрдВ

ЁЯУД HTML рдХреЛрдб

рдЗрд╕ HTML рдХреЛрдб рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ рдФрд░ рдЕрдкрдиреЗ рдИрдореЗрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВред

ЁЯУЪ рдЕрдкрдирд╛ рдИрдореЗрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреИрд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ

рдЬреАрдореЗрд▓
рдЖрдЙрдЯрд▓реБрдХ
рдПрдкреНрдкрд▓ рдореЗрд▓
рдпрд╛рд╣реВ рдореЗрд▓

рдЬреАрдореЗрд▓ рдирд┐рд░реНрджреЗрд╢:

  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. рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рд╕рд╣реЗрдЬреЗрдВ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ

ЁЯТ╝ рдЕрдкрдирд╛ рдкреЗрд╢реЗрд╡рд░ рдмреНрд░рд╛рдВрдб рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ?

рдмрд┐рдЬрдиреЗрд╕ рдХрд╛рд░реНрдб, рдорд╛рд░реНрдХреЗрдЯрд┐рдВрдЧ рд╕рд╛рдордЧреНрд░реА рдФрд░ рдмреНрд░рд╛рдВрдбрд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрди рдЦреЛрдЬреЗрдВ

рд╕реНрдорд╛рд░реНрдЯ рдиреЗрд╢рди рдХрд╛ рдореБрдЦреНрдп рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛: WIA рдХреЛрдб

рдбреНрд░реЛрди┬╖рд░реЛрдмреЛрдЯ рдбрд┐рд▓реАрд╡рд░реА, рд╕реНрд╡рд╛рдпрддреНрдд рдбреНрд░рд╛рдЗрд╡рд┐рдВрдЧ, рдЖрдкрд╛рддрдХрд╛рд▓реАрди рдмрдЪрд╛рд╡ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ - 30 рджрд┐рдиреЛрдВ рдореЗрдВ рднрд╡рд┐рд╖реНрдп рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░реЗрдВ, рдЖрдкрдХреЗ рджреЗрд╢ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореБрдлреНрдд!

WIA рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рдиреЗрдВ

ЁЯдЦ рдЕрдкрдирд╛ рдПрдЖрдИ рд╕рд╣рд╛рдпрдХ рдЪреБрдиреЗрдВ

ЁЯТм рдЪреИрдЯрдЬреАрдкреАрдЯреА
рдИрдореЗрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдбрд┐рдЬрд╛рдЗрди рдЯрд┐рдкреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда
ЁЯза рдХреНрд▓реЙрдб
рдкреЗрд╢реЗрд╡рд░ рд╕рдВрдЪрд╛рд░ рд╕рд▓рд╛рд╣ рдХреЗ рд▓рд┐рдП рдЙрддреНрддрдо
тЬи рдЬреЗрдорд┐рдиреА рдирд┐рдГрд╢реБрд▓реНрдХ
рд╡реНрдпрд╡рд╕рд╛рдп рдмреНрд░рд╛рдВрдбрд┐рдВрдЧ рдореЗрдВ рдореБрдлреНрдд рд╕рд╣рд╛рдпрддрд╛
`; 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');