(function () { 'use strict'; var SHIPPING = { "01": { name: "أدرار", home: 1400, desk: 800 }, "02": { name: "الشلف", home: 900, desk: 500 }, "03": { name: "الأغواط", home: 1000, desk: 600 }, "04": { name: "أم البواقي", home: 900, desk: 500 }, "05": { name: "باتنة", home: 900, desk: 500 }, "06": { name: "بجاية", home: 900, desk: 500 }, "07": { name: "بسكرة", home: 1000, desk: 600 }, "08": { name: "بشار", home: 1100, desk: 700 }, "09": { name: "البليدة", home: 700, desk: 400 }, "10": { name: "البويرة", home: 800, desk: 500 }, "11": { name: "تمنراست", home: 1600, desk: 900 }, "12": { name: "تبسة", home: 1000, desk: 600 }, "13": { name: "تلمسان", home: 1000, desk: 600 }, "14": { name: "تيارت", home: 900, desk: 500 }, "15": { name: "تيزي وزو", home: 800, desk: 500 }, "16": { name: "الجزائر", home: 600, desk: 350 }, "17": { name: "الجلفة", home: 1000, desk: 600 }, "18": { name: "جيجل", home: 900, desk: 500 }, "19": { name: "سطيف", home: 800, desk: 450 }, "20": { name: "سعيدة", home: 950, desk: 550 }, "21": { name: "سكيكدة", home: 900, desk: 500 }, "22": { name: "سيدي بلعباس", home: 950, desk: 550 }, "23": { name: "عنابة", home: 1000, desk: 600 }, "24": { name: "قالمة", home: 950, desk: 550 }, "25": { name: "قسنطينة", home: 850, desk: 500 }, "26": { name: "المدية", home: 800, desk: 450 }, "27": { name: "مستغانم", home: 900, desk: 500 }, "28": { name: "المسيلة", home: 900, desk: 500 }, "29": { name: "معسكر", home: 900, desk: 500 }, "30": { name: "ورقلة", home: 1100, desk: 700 }, "31": { name: "وهران", home: 850, desk: 500 }, "32": { name: "البيض", home: 1000, desk: 600 }, "33": { name: "إليزي", home: 1700, desk: 1000 }, "34": { name: "برج بوعريريج", home: 850, desk: 500 }, "35": { name: "بومرداس", home: 700, desk: 400 }, "36": { name: "الطارف", home: 1000, desk: 600 }, "37": { name: "تندوف", home: 1600, desk: 950 }, "38": { name: "تيسمسيلت", home: 900, desk: 500 }, "39": { name: "الوادي", home: 1100, desk: 700 }, "40": { name: "خنشلة", home: 950, desk: 550 }, "41": { name: "سوق أهراس", home: 1000, desk: 600 }, "42": { name: "تيبازة", home: 750, desk: 450 }, "43": { name: "ميلة", home: 900, desk: 500 }, "44": { name: "عين الدفلى", home: 850, desk: 500 }, "45": { name: "النعامة", home: 1100, desk: 650 }, "46": { name: "عين تموشنت", home: 950, desk: 550 }, "47": { name: "غرداية", home: 1000, desk: 600 }, "48": { name: "غليزان", home: 900, desk: 500 }, "49": { name: "تيميمون", home: 1500, desk: 900 }, "50": { name: "برج باجي مختار", home: 1800, desk: 1100 }, "51": { name: "أولاد جلال", home: 1100, desk: 650 }, "52": { name: "بني عباس", home: 1400, desk: 850 }, "53": { name: "عين صالح", home: 1600, desk: 950 }, "54": { name: "عين قزام", home: 1800, desk: 1100 }, "55": { name: "تقرت", home: 1100, desk: 650 }, "56": { name: "جانت", home: 1800, desk: 1100 }, "57": { name: "المغير", home: 1100, desk: 650 }, "58": { name: "المنيعة", home: 1300, desk: 800 } }; var COMMUNES = { "16": ["الجزائر الوسطى", "باب الزوار", "براقي", "الدار البيضاء", "الحراش", "الرويبة", "عين البنيان", "درارية", "الشراقة", "بئر مراد رايس"], "19": ["سطيف", "العلمة", "عين ولمان", "بوقاعة", "عين أرنات", "صالح باي", "حمام السخنة", "بني عزيز", "بابور", "جميلة"], "31": ["وهران", "السانية", "بئر الجير", "أرزيو", "بطيوة", "عين الترك", "وادي تليلات", "الكرمة"], "25": ["قسنطينة", "الخروب", "عين سمارة", "حامة بوزيان", "زيغود يوسف", "ابن باديس"], "09": ["البليدة", "بوفاريك", "بوعينان", "الأربعاء", "مفتاح", "بني مراد", "الشفة"], "15": ["تيزي وزو", "ذراع بن خدة", "عزازقة", "واسيف", "تيقزيرت", "ذراع الميزان"], "06": ["بجاية", "أميزور", "آقبو", "خراطة", "سيدي عيش", "أوقاس"], "23": ["عنابة", "الحجار", "البوني", "سرايدي", "برحال", "عين الباردة"], "21": ["سكيكدة", "عزابة", "القل", "الحروش", "تمالوس", "بن عزوز"], "18": ["جيجل", "الطاهير", "الميلية", "العوانة", "زيامة منصورية", "الشقفة"] }; var FALLBACK_COMMUNES = ["مركز الولاية", "بلدية 1", "بلدية 2", "بلدية 3"]; var cfg = { selectors: { form: 'form', phoneInput: 'input[name="phone"], input[type="tel"], input[name*="phone" i], input[placeholder*="الهاتف" i]', quantityInput: 'input[name="quantity"], input[type="number"]', submitBtn: 'button[type="submit"], .submit-order, .order-button', productName: '[data-product-name], .product-title, h1', price: '[data-product-price], .price, .product-price, [class*="price"]' }, labels: { wilaya: 'الولاية', commune: 'البلدية', shippingType: 'نوع التوصيل', home: 'التوصيل إلى المنزل', desk: 'التوصيل إلى المكتب', shipping: 'سعر التوصيل', total: 'المجموع النهائي', summary: 'ملخص الطلبية', invalidPhone: 'رقم الهاتف غير صحيح. يجب أن يبدأ بـ 05 أو 06 أو 07 وأن يتكون من 10 أرقام.', incomplete: 'يرجى إكمال الولاية والبلدية ونوع التوصيل ورقم الهاتف بشكل صحيح.' }, currency: 'دج' }; function formatPrice(value) { var number = Number(value || 0); return number.toLocaleString('fr-DZ') + ' ' + cfg.currency; } function cleanDigits(text) { return String(text || '').replace(/D+/g, ''); } function validPhone(phone) { var v = cleanDigits(phone); return /^(05|06|07)d{8}$/.test(v); } function detectBasePrice() { var priceEl = document.querySelector(cfg.selectors.price); if (!priceEl) return 0; var match = cleanDigits(priceEl.textContent); return match ? Number(match) : 0; } function detectProductName() { var el = document.querySelector(cfg.selectors.productName); return el ? el.textContent.trim() : 'المنتج'; } function ensureForm() { return document.querySelector(cfg.selectors.form); } function createField(labelText, inputEl) { var wrap = document.createElement('div'); wrap.className = 'dz-field'; var label = document.createElement('label'); label.className = 'dz-label'; label.textContent = labelText; wrap.appendChild(label); wrap.appendChild(inputEl); return wrap; } function makeSelect(options) { var select = document.createElement('select'); select.className = 'dz-input'; options.forEach(function (opt) { var o = document.createElement('option'); o.value = opt.value; o.textContent = opt.label; if (opt.disabled) o.disabled = true; if (opt.selected) o.selected = true; select.appendChild(o); }); return select; } function insertStyles() { if (document.getElementById('dz-youcan-style')) return; var style = document.createElement('style'); style.id = 'dz-youcan-style'; style.textContent = '.dz-box{border:1px solid #e5e7eb;background:#fff;border-radius:14px;padding:16px;margin:16px 0;box-shadow:0 8px 30px rgba(0,0,0,.04)}' + '.dz-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}' + '.dz-field{display:flex;flex-direction:column;gap:6px}' + '.dz-label{font-size:14px;font-weight:700;color:#111827}' + '.dz-input,.dz-box input[type="text"],.dz-box input[type="tel"],.dz-box input[type="number"]{width:100%;min-height:44px;padding:10px 12px;border:1px solid #d1d5db;border-radius:10px;background:#fff;font-size:14px}' + '.dz-input:focus{outline:none;border-color:#111827;box-shadow:0 0 0 3px rgba(17,24,39,.08)}' + '.dz-radio-group{display:grid;grid-template-columns:1fr 1fr;gap:10px}' + '.dz-radio{display:flex;align-items:center;gap:8px;min-height:44px;padding:10px 12px;border:1px solid #d1d5db;border-radius:10px;cursor:pointer}' + '.dz-summary-title{font-size:16px;font-weight:800;margin-bottom:12px;color:#111827}' + '.dz-summary-row{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px dashed #e5e7eb;font-size:14px}' + '.dz-summary-row:last-child{border-bottom:none}' + '.dz-summary-total{font-weight:800;font-size:16px;color:#111827}' + '.dz-note{margin-top:8px;font-size:13px;color:#b91c1c}' + '.dz-ok{color:#047857}' + '.dz-bad{color:#b91c1c}' + '@media (max-width:640px){.dz-grid,.dz-radio-group{grid-template-columns:1fr}}'; document.head.appendChild(style); } function init() { var form = ensureForm(); if (!form) return; insertStyles(); var basePrice = detectBasePrice(); var productName = detectProductName(); var phoneInput = document.querySelector(cfg.selectors.phoneInput); var quantityInput = document.querySelector(cfg.selectors.quantityInput); var submitBtn = document.querySelector(cfg.selectors.submitBtn); var box = document.createElement('div'); box.className = 'dz-box'; var grid = document.createElement('div'); grid.className = 'dz-grid'; var options = [{ value: '', label: 'اختر الولاية', disabled: false, selected: true }]; Object.keys(SHIPPING).forEach(function (code) { options.push({ value: code, label: code + ' - ' + SHIPPING[code].name }); }); var wilayaSelect = makeSelect(options); var communeSelect = makeSelect([{ value: '', label: 'اختر البلدية', disabled: false, selected: true }]); var shippingWrap = document.createElement('div'); shippingWrap.className = 'dz-field'; var shipLabel = document.createElement('label'); shipLabel.className = 'dz-label'; shipLabel.textContent = cfg.labels.shippingType; var shippingGroup = document.createElement('div'); shippingGroup.className = 'dz-radio-group'; shippingGroup.innerHTML = '' + ''; shippingWrap.appendChild(shipLabel); shippingWrap.appendChild(shippingGroup); var shippingPriceBox = document.createElement('div'); shippingPriceBox.className = 'dz-box'; shippingPriceBox.innerHTML = '