Current
Welcome to Cost Optimizer
Let’s Start Your Optimization Journey
First, tell us about your store
|
function initializeStep1() { jQuery(document).ready(function($) { console.log('Step 1 - Store Setup initialized');
// Initialize particles $('.sco-particle').each(function() { $(this).css({ '--tx': (Math.random() * 40 - 20) + 'px', '--ty': (Math.random() * 40 - 20) + 'px' }); });
// Handle platform card selection $('.sco-platform-card').on('click', function() { const card = $(this); const platform = card.data('platform');
// Remove selection from all cards $('.sco-platform-card').removeClass('selected'); $('.sco-platform-card input[type="radio"]').prop('checked', false);
// Add selection to clicked card card.addClass('selected'); card.find('input[type="radio"]').prop('checked', true);
// Animate selection card.css('transform', 'scale(0.98)'); setTimeout(() => { card.css('transform', 'translateY(-5px)'); }, 150);
// Validate form validateForm(); });
// Handle domain input validation const domainInput = $('#sco-domain-input'); const domainWrapper = domainInput.closest('.sco-domain-input-wrapper');
function validateDomain(domain) { // Remove protocol and www domain = domain.replace(/^(https?:\/\/)?(www\.)?/, '');
// Basic domain validation const domainRegex = /^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i; return domainRegex.test(domain); }
domainInput.on('input', function() { const domain = $(this).val().trim();
// Reset validation state domainWrapper.removeClass('valid error');
if (domain) { if (validateDomain(domain)) { domainWrapper.addClass('valid'); } else { domainWrapper.addClass('error'); } }
// Validate form validateForm(); });
// Handle example domain buttons $('.sco-example-btn').on('click', function() { const domain = $(this).data('domain'); domainInput.val(domain).trigger('input'); });
// Form validation function function validateForm() { const platformSelected = $('.sco-platform-card.selected').length > 0; const domainValue = domainInput.val().trim(); const domainValid = domainValue && domainWrapper.hasClass('valid');
const continueBtn = $('#sco-continue-setup');
if (platformSelected && domainValid) { continueBtn.prop('disabled', false); } else { continueBtn.prop('disabled', true); } }
// Handle form submission - SIMPLE VERSION (NO AJAX) $('#sco-store-setup-form').on('submit', function(e) { const submitBtn = $('#sco-continue-setup');
// Validate form if (submitBtn.prop('disabled')) { e.preventDefault(); showError('Please select a platform and enter a valid domain'); return false; }
// Show loading state submitBtn.prop('disabled', true); submitBtn.addClass('loading'); submitBtn.find('.sco-btn-label').text('Saving...');
// Form will submit normally to PHP handler at top of file return true; });
// Error display function
// Initialize form validation validateForm();
// Auto-focus domain input if platform is already selected if ($('.sco-platform-card.selected').length > 0) { domainInput.focus(); } }); }




