/** * HVAC Community Events Main JavaScript * * Global JavaScript functionality for the HVAC Community Events plugin */ (function($) { 'use strict'; // WORDPRESS COMPATIBILITY: Ensure jQuery is available in noConflict mode if (typeof $ === 'undefined' && typeof jQuery !== 'undefined') { $ = jQuery; } // Wait for DOM ready $(document).ready(function() { // Initialize any global functionality here console.log('HVAC Community Events plugin loaded'); // Add active class to current menu item var currentPath = window.location.pathname; $('.hvac-dashboard-nav a, .hvac-toolbar a').each(function() { var linkPath = $(this).attr('href'); if (linkPath && currentPath.indexOf(linkPath.replace(window.location.origin, '')) !== -1) { $(this).addClass('active'); } }); // Handle any AJAX forms globally $(document).on('submit', '.hvac-ajax-form', function(e) { e.preventDefault(); var $form = $(this); var $submitBtn = $form.find('button[type="submit"], input[type="submit"]'); var originalText = $submitBtn.text(); // Disable submit button $submitBtn.prop('disabled', true).text('Processing...'); // Submit via AJAX $.ajax({ url: hvac_ajax.ajax_url, type: 'POST', data: $form.serialize() + '&nonce=' + hvac_ajax.nonce, success: function(response) { if (response.success) { // Handle success if (response.data.redirect) { window.location.href = response.data.redirect; } else if (response.data.message) { alert(response.data.message); } } else { // Handle error alert(response.data || 'An error occurred. Please try again.'); } }, error: function() { alert('An error occurred. Please try again.'); }, complete: function() { // Re-enable submit button $submitBtn.prop('disabled', false).text(originalText); } }); }); // Initialize advanced fields as hidden $('.advanced-field').hide(); }); // Global functions for form functionality window.hvacToggleAdvancedOptions = function() { // WORDPRESS COMPATIBILITY: Use jQuery instead of $ due to noConflict mode const button = jQuery('.toggle-advanced-options'); const icon = button.find('.toggle-icon'); const text = button.find('.toggle-text'); const advancedFields = jQuery('.advanced-field'); // Toggle visibility of advanced fields advancedFields.slideToggle(300); // Toggle button state if (advancedFields.is(':visible')) { icon.removeClass('dashicons-arrow-down-alt2').addClass('dashicons-arrow-up-alt2'); text.text('Hide Advanced Options'); button.addClass('expanded'); } else { icon.removeClass('dashicons-arrow-up-alt2').addClass('dashicons-arrow-down-alt2'); text.text('Show Advanced Options'); button.removeClass('expanded'); } }; })(jQuery);