jQuery(document).ready(function($) { // Modal functionality var modal = $('#cups-modal'); var modalContainer = $('.cups-modal-container'); var modalOverlay = $('.cups-modal-overlay'); var openBtn = $('.cups-open-modal'); var closeBtn = $('.cups-close'); var formScroll = $('.cups-form-scroll'); var modalFooter = $('.cups-modal-footer'); // Store form values to prevent loss var formValues = { post_title: '', post_content: '', email: '', mobile_number: '', captcha_answer: '' }; // Save form values function saveFormValues() { formValues = { post_title: $('#cups-post-title').val(), post_content: $('#cups-post-content').val(), email: $('#cups-email').val(), mobile_number: $('#cups-mobile').val(), captcha_answer: $('#cups-captcha-answer').val() }; } // Restore form values function restoreFormValues() { $('#cups-post-title').val(formValues.post_title); $('#cups-post-content').val(formValues.post_content); $('#cups-email').val(formValues.email); $('#cups-mobile').val(formValues.mobile_number); $('#cups-captcha-answer').val(formValues.captcha_answer); } // Auto-save form values on input $('#cups-submission-form input, #cups-submission-form textarea').on('input', function() { saveFormValues(); }); // Open modal openBtn.on('click', function() { modal.css('display', 'block'); modalContainer.removeClass('cups-modal-slide-left'); loadCaptcha(); $('#cups-global-message').html('').hide(); restoreFormValues(); }); // Close modal function closeModal() { modalContainer.addClass('cups-modal-slide-left'); setTimeout(function() { modal.css('display', 'none'); }, 300); } closeBtn.on('click', function() { closeModal(); }); // Close modal only when clicking on overlay (not container) modalOverlay.on('click', function(e) { // Only close if clicking directly on overlay (not bubbling from container) if (e.target === this) { closeModal(); } }); // Make footer sticky when scrolling formScroll.on('scroll', function() { var scrollTop = $(this).scrollTop(); var scrollHeight = $(this)[0].scrollHeight; var clientHeight = $(this)[0].clientHeight; // If scrolled near bottom, remove sticky class if (scrollHeight - scrollTop - clientHeight < 10) { modalFooter.removeClass('cups-sticky-footer'); } else { modalFooter.addClass('cups-sticky-footer'); } }); // Load captcha function loadCaptcha() { $.ajax({ url: cups_ajax.ajax_url, type: 'POST', data: { action: 'get_captcha', nonce: cups_ajax.nonce }, success: function(response) { if (response.success) { $('#cups-captcha-question').text(response.data.question); $('#cups-captcha-value').val(response.data.answer); } } }); } // Form submission $('#cups-submission-form').on('submit', function(e) { e.preventDefault(); var submitBtn = $('#cups-submit-btn'); var originalText = submitBtn.text(); // Show loading state submitBtn.text('Submitting...').prop('disabled', true); // Clear previous messages $('#cups-global-message').html('').hide(); var formData = $(this).serializeArray(); formData.push({ name: 'action', value: 'submit_user_post' }); formData.push({ name: 'nonce', value: cups_ajax.nonce }); $.ajax({ url: cups_ajax.ajax_url, type: 'POST', data: formData, success: function(response) { if (response.success) { // Show success message in modal $('#cups-global-message') .html('