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 = `