function initContactModule(moduleId) { const moduleElement = document.getElementById(moduleId); if (!moduleElement || moduleElement.classList.contains('initialized')) return; const modal = moduleElement.querySelector('.contact-modal-local'); const closeBtn = modal.querySelector('.modal-close'); const overlay = modal.querySelector('.modal-overlay'); const form = modal.querySelector('form'); const formMessages = modal.querySelector('.form-message-area'); const openModal = (e) => { if (e) e.preventDefault(); modal.classList.add('is-active'); document.body.style.overflow = 'hidden'; }; const closeModal = () => { modal.classList.remove('is-active'); document.body.style.overflow = ''; }; // ๐Ÿ’ก [์ˆ˜์ •] document ๊ฐ์ฒด์— ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ ๋“ฑ๋ก (๋” ํ™•์‹คํ•œ ์œ„์ž„) document.addEventListener('click', function(e) { // ํด๋ฆญ๋œ ์š”์†Œ๊ฐ€ .btn-open-contact-modal ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ฑฐ๋‚˜, ๊ทธ ๋‚ด๋ถ€ ์š”์†Œ์ธ ๊ฒฝ์šฐ const targetBtn = e.target.matches('.btn-open-contact-modal') ? e.target : e.target.closest('.btn-open-contact-modal'); if (targetBtn) { openModal(e); } }); closeBtn.addEventListener('click', closeModal); overlay.addEventListener('click', closeModal); document.addEventListener('keydown', (e) => { if (e.key === 'Escape' && modal.classList.contains('is-active')) { closeModal(); } }); // universalMailer๋ฅผ ์‚ฌ์šฉํ•œ ํผ ์ œ์ถœ ๋กœ์ง form.addEventListener('submit', function(e) { e.preventDefault(); const submitBtn = this.querySelector('button[type="submit"]'); const originalBtnText = submitBtn.textContent; submitBtn.disabled = true; submitBtn.textContent = '์ „์†ก ์ค‘...'; formMessages.innerHTML = ''; // ์ด์ „ ๋ฉ”์‹œ์ง€ ์ดˆ๊ธฐํ™” const formData = new FormData(form); const variables = { contact_name: formData.get('contact_name'), contact_hp: formData.get('contact_hp'), contact_email: formData.get('contact_email'), contact_message: formData.get('contact_message').replace(/\n/g, '
') }; // universalMailer ๊ฐ์ฒด๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ if (window.universalMailer && typeof window.universalMailer.send === 'function') { window.universalMailer.send({ template_code: 'contact_inquiry', // ๊ด€๋ฆฌ์ž์—์„œ ์ƒ์„ฑํ•œ ํ…œํ”Œ๋ฆฟ ์ฝ”๋“œ // to_email: variables.contact_email, //์ˆ˜์‹ ์ž์ž„ ๋ฌธ์˜ ํ•˜๊ธฐ ๊ฐ™์€๊ฒฝ์šฐ ๊ด€๋ฆฌ์ž๊ฐ€ ๋ฐ›์•„์•ผ ํ•ด์„œ ๋น„์›Œ๋‘”๋‹ค variables: variables, onSuccess: function(response) { alert(response.message || '์ƒ๋‹ด ์‹ ์ฒญ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ ‘์ˆ˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.'); form.reset(); closeModal(); }, onError: function(errorMessage) { formMessages.innerHTML = `
${errorMessage || '์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.'}
`; }, onComplete: function() { submitBtn.disabled = false; submitBtn.textContent = originalBtnText; } }); } else { alert('๋ฉ”์ผ ๋ฐœ์†ก ๊ธฐ๋Šฅ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž์—๊ฒŒ ๋ฌธ์˜ํ•ด์ฃผ์„ธ์š”.'); submitBtn.disabled = false; submitBtn.textContent = originalBtnText; } }); moduleElement.classList.add('initialized'); } window.initContactModule = initContactModule;