// Blueprint form handling let blueprintForm = null; let formContainer = null; let successMessage = null; function handleFormSubmit(event) { event.preventDefault(); try { console.log('Form submitted - processing locally'); // Get form data const formData = new FormData(blueprintForm); const requirements = { fullName: formData.get('full_name'), email: formData.get('email'), companyName: formData.get('company_name'), apiUrlA: formData.get('api_url_system_a'), apiUrlB: formData.get('api_url_system_b'), useCase: formData.get('use_case_description') }; console.log('Requirements collected:', requirements); // Validate required fields const requiredFields = ['fullName', 'email', 'companyName', 'apiUrlA', 'apiUrlB', 'useCase']; const missingFields = requiredFields.filter(field => !requirements[field] || requirements[field].trim() === ''); if (missingFields.length > 0) { alert('Please fill in all required fields'); return; } // Show loading state const submitBtn = document.getElementById('submitBtn'); const originalText = submitBtn.textContent; submitBtn.textContent = 'Processing Requirements...'; submitBtn.disabled = true; // Phase 1: Show processing message setTimeout(() => { submitBtn.textContent = 'Preparing Payment...'; // Phase 2: Show success and prepare redirect setTimeout(() => { // Hide form container if (formContainer) { formContainer.classList.add('hidden'); } // Show success message if (successMessage) { successMessage.classList.remove('hidden'); // Populate customer name const customerNameSpan = document.getElementById('customerName'); if (customerNameSpan) { customerNameSpan.textContent = requirements.fullName; } // Populate requirements summary const summaryDiv = document.getElementById('requirementsSummary'); if (summaryDiv) { summaryDiv.innerHTML = `
Contact: ${requirements.fullName} (${requirements.email})
Company: ${requirements.companyName}
System A API: ${requirements.apiUrlA}
System B API: ${requirements.apiUrlB}
Use Case: ${requirements.useCase.substring(0, 200)}${requirements.useCase.length > 200 ? '...' : ''}
`; } // Scroll to success message successMessage.scrollIntoView({ behavior: 'smooth' }); console.log('Success message displayed'); } // Phase 3: Immediate redirect to Stripe console.log('Redirecting to Stripe payment...'); // Use the exact URL provided const stripeUrl = 'https://buy.stripe.com/9B69AU2l8bXS8yO9ci3Ru00'; // Try different redirect methods for maximum compatibility try { // Method 1: Direct window.location console.log('Attempting direct redirect to:', stripeUrl); window.location.href = stripeUrl; } catch (redirectError) { console.error('Direct redirect failed:', redirectError); // Method 2: Try window.open as fallback try { console.log('Attempting window.open as fallback'); window.open(stripeUrl, '_self'); } catch (openError) { console.error('Window.open failed:', openError); // Method 3: Show manual button as final fallback const paymentButton = successMessage.querySelector('a[href*="stripe.com"]'); if (paymentButton) { paymentButton.href = stripeUrl; paymentButton.target = '_blank'; paymentButton.innerHTML = ` Click Here for Payment `; paymentButton.classList.add('animate-bounce'); // Auto-click the button setTimeout(() => { paymentButton.click(); }, 100); } } } // Reset button (in case user goes back) submitBtn.textContent = originalText; submitBtn.disabled = false; }, 1000); }, 800); } catch (error) { console.error('Error processing form:', error); alert('There was an error processing your request. Please try again.'); // Reset button const submitBtn = document.getElementById('submitBtn'); if (submitBtn) { submitBtn.textContent = 'Submit Blueprint Requirements'; submitBtn.disabled = false; } } } function attachFormListener() { console.log('Attaching form listener...'); try { // Find form elements blueprintForm = document.getElementById('blueprintForm'); formContainer = document.getElementById('formContainer'); successMessage = document.getElementById('successMessage'); if (!blueprintForm) { console.error('Blueprint form not found'); return false; } if (!formContainer) { console.error('Form container not found'); return false; } if (!successMessage) { console.error('Success message not found'); return false; } console.log('All form elements found'); // Add form submit listener blueprintForm.addEventListener('submit', handleFormSubmit); console.log('Form listener attached successfully'); return true; } catch (error) { console.error('Error attaching form listener:', error); return false; } } function init() { console.log('Blueprint form init() called'); try { // Try immediately if (attachFormListener()) { return; } // If not ready, wait a bit and try again setTimeout(() => { console.log('Retrying form attachment after delay...'); attachFormListener(); }, 100); } catch (error) { console.error('Error in init():', error); } } function teardown() { console.log('Blueprint form teardown() called'); try { if (blueprintForm) { blueprintForm.removeEventListener('submit', handleFormSubmit); } console.log('Blueprint form teardown complete'); } catch (error) { console.error('Error in teardown():', error); } } // Export for module system export { init, teardown };