(function() { 'use strict'; // Business configuration - prices only, payment URLs are generated dynamically var BUSINESSES = { sarit: { name: 'שרית הספרית', lang: 'he', plans: { code: { price: '₪1,490', title: 'קוד האתר בלבד', package: 'code', features: [ 'קוד מקור מלא של האתר', 'עיצוב מותאם אישית', 'תמיכה טכנית בהעלאת האתר' ] }, full: { price: '₪2,390', title: 'חבילה מלאה', package: 'hosting', badge: 'החבילה המומלצת', features: [ 'קוד מקור מלא של האתר', 'אחסון לשנה', 'דומיין בהתאמה אישית', 'תיבת מייל עסקית' ] } } }, kobi: { name: 'מספרת קובי שריקי', lang: 'he', plans: { code: { price: '₪1,490', title: 'קוד האתר בלבד', package: 'code', features: [ 'קוד מקור מלא של האתר', 'עיצוב מותאם אישית', 'תמיכה טכנית בהעלאת האתר' ] }, full: { price: '₪2,390', title: 'חבילה מלאה', package: 'hosting', badge: 'החבילה המומלצת', features: [ 'קוד מקור מלא של האתר', 'אחסון לשנה', 'דומיין בהתאמה אישית', 'תיבת מייל עסקית' ] } } }, orly: { name: 'אורלי חן עיצוב שיער', lang: 'he', plans: { code: { price: '₪1,490', title: 'קוד האתר בלבד', package: 'code', features: [ 'קוד מקור מלא של האתר', 'עיצוב מותאם אישית', 'תמיכה טכנית בהעלאת האתר' ] }, full: { price: '₪2,390', title: 'חבילה מלאה', package: 'hosting', badge: 'החבילה המומלצת', features: [ 'קוד מקור מלא של האתר', 'אחסון לשנה', 'דומיין בהתאמה אישית', 'תיבת מייל עסקית' ] } } }, hairontop: { name: 'Hair On Top', lang: 'en', plans: { code: { price: '₪1,490', title: 'קוד האתר בלבד', package: 'code', features: [ 'קוד מקור מלא של האתר', 'עיצוב מותאם אישית', 'תמיכה טכנית בהעלאת האתר' ] }, full: { price: '₪2,390', title: 'חבילה מלאה', package: 'hosting', badge: 'החבילה המומלצת', features: [ 'קוד מקור מלא של האתר', 'אחסון לשנה', 'דומיין בהתאמה אישית', 'תיבת מייל עסקית' ] } } }, itzik: { name: 'איציק בכר - אינסטלטור', lang: 'he', plans: { code: { price: '₪1,490', title: 'קוד האתר בלבד', package: 'code', features: [ 'קוד מקור מלא של האתר', 'עיצוב מותאם אישית', 'תמיכה טכנית בהעלאת האתר' ] }, full: { price: '₪2,390', title: 'חבילה מלאה', package: 'hosting', badge: 'החבילה המומלצת', features: [ 'קוד מקור מלא של האתר', 'אחסון לשנה', 'דומיין בהתאמה אישית', 'תיבת מייל עסקית' ] } } } }; // Payment API endpoint - generates fresh SmartPay links var PAYMENT_API_BASE = '/api/pay/go'; // DOM elements var elements = { businessTitle: document.getElementById('businessTitle'), businessSubtitle: document.getElementById('businessSubtitle'), planSection: document.getElementById('planSection'), planBadge: document.getElementById('planBadge'), planTitle: document.getElementById('planTitle'), planPrice: document.getElementById('planPrice'), planFeatures: document.getElementById('planFeatures'), paymentAction: document.getElementById('paymentAction'), payButton: document.getElementById('payButton'), errorState: document.getElementById('errorState') }; // Current checkout state var currentCheckout = { bizKey: null, planKey: null, business: null, plan: null }; // Parse URL parameters function getUrlParams() { var params = new URLSearchParams(window.location.search); return { biz: params.get('biz'), plan: params.get('plan') }; } // Validate parameters function validateParams(biz, plan) { if (!biz || !plan) return false; if (!BUSINESSES[biz]) return false; if (!BUSINESSES[biz].plans[plan]) return false; return true; } // Show error state function showError() { elements.planSection.style.display = 'none'; elements.paymentAction.style.display = 'none'; elements.errorState.style.display = 'block'; elements.businessTitle.textContent = 'שגיאה'; elements.businessSubtitle.textContent = ''; document.title = 'שגיאה | Emaillion'; } // Escape HTML to prevent XSS function escapeHtml(text) { var div = document.createElement('div'); div.textContent = text; return div.innerHTML; } // Build payment URL function buildPaymentUrl(bizKey, plan) { var params = new URLSearchParams(); params.set('package', plan.package); params.set('biz', bizKey); return PAYMENT_API_BASE + '?' + params.toString(); } // Handle payment button click function handlePayment() { if (!currentCheckout.bizKey || !currentCheckout.plan) { showError(); return; } // Set button to loading state elements.payButton.disabled = true; elements.payButton.classList.add('loading'); elements.payButton.innerHTML = 'מעבר לתשלום...'; // Build the payment URL and navigate to it var paymentUrl = buildPaymentUrl(currentCheckout.bizKey, currentCheckout.plan); // Navigate the top window to the payment page // This ensures we break out of any iframe context if (window.top !== window.self) { window.top.location.href = paymentUrl; } else { window.location.href = paymentUrl; } } // Render checkout page function renderCheckout(bizKey, planKey) { var business = BUSINESSES[bizKey]; var plan = business.plans[planKey]; // Store current checkout state currentCheckout.bizKey = bizKey; currentCheckout.planKey = planKey; currentCheckout.business = business; currentCheckout.plan = plan; // Update header elements.businessTitle.textContent = 'רכישת אתר עבור:'; // Handle business name with proper lang attribute if (business.lang === 'en') { elements.businessSubtitle.innerHTML = '' + escapeHtml(business.name) + ''; } else { elements.businessSubtitle.textContent = business.name; } // Update plan section - only show badge for full plans if (plan.badge) { elements.planBadge.textContent = plan.badge; } else { elements.planBadge.textContent = ''; } elements.planTitle.textContent = plan.title; elements.planPrice.textContent = plan.price; // Render features elements.planFeatures.innerHTML = plan.features .map(function(feature) { return '
  • ' + escapeHtml(feature) + '
  • '; }) .join(''); // Setup payment button elements.payButton.addEventListener('click', handlePayment); // Update page title document.title = 'רכישת אתר - ' + business.name + ' | Emaillion'; } // Initialize function init() { var params = getUrlParams(); if (!validateParams(params.biz, params.plan)) { showError(); return; } renderCheckout(params.biz, params.plan); } // Run on DOM ready if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } })();