إي تي واي للتصميم | حلول إبداعية للملفات التعريفية والمواقع والهويات البصرية إي تي واي للتصميم
نحوّل أفكارك إلى واقع إبداعي يترك أثراً
`;
};
const downloadAsPDF = async (btn) => {
if (!btn || btn.disabled) return;
if (!pdfLibrariesLoaded || typeof jspdf === 'undefined' || typeof html2canvas === 'undefined') { showNotification('جاري تحميل المكتبات، يرجى المحاولة مرة أخرى بعد لحظات.', 'info'); return; }
const originalText = btn.innerHTML; btn.innerHTML = '
جاري الإنشاء...'; btn.disabled = true;
try {
const quoteHtml = generateQuoteHTML(); $('#quoteTemplate').innerHTML = quoteHtml; await new Promise(r => setTimeout(r, 500));
const canvas = await html2canvas($('#quoteTemplate'), { scale: 2, useCORS: true });
const { jsPDF } = window.jspdf; const pdf = new jsPDF({ orientation: 'portrait', unit: 'mm', format: 'a4' });
pdf.addImage(canvas.toDataURL('image/png'), 'PNG', 0, 0, 210, 297, undefined, 'FAST'); pdf.save(`عرض_سعر_ETY.pdf`);
showNotification('تم تحميل عرض السعر بنجاح!', 'success');
} catch (error) { showNotification('حدث خطأ أثناء إنشاء PDF', 'error'); }
finally { btn.innerHTML = originalText; btn.disabled = calculatorState.selectedItems.size === 0; }
};
const sendToWhatsApp = () => {
const { currentServiceKey, selectedItems } = calculatorState;
if (selectedItems.size === 0) return;
const service = APP_DATA.services[currentServiceKey];
const subtotal = Array.from(selectedItems).reduce((acc, itemId) => acc + (service.items.find(i => i.id === itemId)?.price || 0), 0);
let discountPercent = selectedItems.size >= 4 ? 15 : selectedItems.size >= 3 ? 10 : selectedItems.size >= 2 ? 5 : 0;
let discountAmount = Math.round(subtotal * discountPercent / 100);
if (currentServiceKey === 'profile') {
discountAmount = Math.min(discountAmount, 50);
}
const total = subtotal - discountAmount;
const servicesText = Array.from(selectedItems).map(id => `• ${service.items.find(i => i.id === id)?.name || ''}`).join('\n');
const message = `مرحباً، أرغب في عرض سعر للخدمات التالية من قسم "${service.name}":\n\n${servicesText}\n\nالمجموع النهائي بعد الخصم: SAR ${total.toLocaleString('en-US')}\n\nشكراً لكم.`;
const whatsappUrl = `https://wa.me/966596466303?text=${encodeURIComponent(message)}`;
window.open(whatsappUrl, '_blank');
};const openConsultationModal = () => {
const services = APP_DATA.services;
const servicesOptions = Object.values(services).map(s => `
`).join('');
const modal = $('#consultationModal');
modal.innerHTML = `
حجز استشارة مجانية
املأ البيانات أدناه وسنتواصل معك في أقرب وقت ممكن.
`;
toggleModal('consultationModal', true);
};const sendConsultationDataToWhatsApp = () => {
const name = $('#consult-name', $('#consultationModal'))?.value || '';
const phone = $('#consult-phone', $('#consultationModal'))?.value || '';
const email = $('#consult-email', $('#consultationModal'))?.value || '';
const service = $('#consult-service', $('#consultationModal'))?.value || '';
const datetime = $('#consult-datetime', $('#consultationModal'))?.value || '';let message = "مرحباً، أرغب في حجز استشارة مجانية.\n\n";
if (name) message += `الاسم: ${name}\n`;
if (phone) message += `رقم الهاتف: ${phone}\n`;
if (email) message += `البريد الإلكتروني: ${email}\n`;
if (service) message += `بخصوص خدمة: ${service}\n`;
if (datetime) {
try {
const date = new Date(datetime);
const formattedDate = date.toLocaleString('ar-SA', { dateStyle: 'full', timeStyle: 'short' });
message += `الوقت المناسب: ${formattedDate}\n`;
} catch(e) {
message += `الوقت المقترح: ${datetime}\n`;
}
}const whatsappUrl = `https://wa.me/966596466303?text=${encodeURIComponent(message)}`;
window.open(whatsappUrl, '_blank');
};
const openDirectWhatsApp = () => {
const message = "مرحباً، لدي استفسار بخصوص خدماتكم.";
const whatsappUrl = `https://wa.me/966596466303?text=${encodeURIComponent(message)}`;
window.open(whatsappUrl, '_blank');
};document.body.addEventListener('click', (e) => {
const actionTarget = e.target.closest('[data-action]');
if (!actionTarget) return;
e.preventDefault();
const { action, modalId, key: serviceKey } = actionTarget.dataset;switch(action) {
case 'open-consultation': openConsultationModal(); break;
case 'open-calculator': if(serviceKey) { loadPdfLibraries(); openAdvancedCalculator(serviceKey); } break;
case 'show-details':
if(serviceKey) {
const service = APP_DATA.services[serviceKey];
const seo = service.details.seo;
let seoHtml = '';
if (seo && (seo.keywords || seo.tags)) {
seoHtml += `
الكلمات المفتاحية والوسوم
`;
if (seo.keywords && seo.keywords.length > 0) {
seoHtml += `
كلمات مفتاحية:
${seo.keywords.map(k => `${k}`).join('')}
`;
}
if (seo.tags && seo.tags.length > 0) {
seoHtml += `
وسوم:
${seo.tags.map(t => `${t}`).join('')}
`;
}
seoHtml += `
`;
}$('#serviceDetailsTitle').textContent = service.name;
$('#serviceDetailsContent').innerHTML = `
نظرة عامة
${service.details.overview}
المميزات
${service.details.features.map(f => `- ${f}
`).join('')}
الفوائد
${service.details.benefits.map(b => `- ${b}
`).join('')}
طريقة العمل
${service.details.workProcess.map(s => `- ${s}
`).join('')}
${seoHtml}`;
toggleModal('serviceDetailsModal', true);
}
break;
case 'close-modal': if (modalId) toggleModal(modalId, false); break;
case 'download-pdf': downloadAsPDF(actionTarget); break;
case 'send-whatsapp': sendToWhatsApp(); break;
case 'send-consultation-data-whatsapp': sendConsultationDataToWhatsApp(); break;
case 'open-direct-whatsapp': openDirectWhatsApp(); break;
}
});
servicesBlock.addEventListener('click', (e) => {
const serviceItemTarget = e.target.closest('.service-item');
if (serviceItemTarget) {
const itemId = serviceItemTarget.dataset.itemId;
const checkbox = serviceItemTarget.querySelector('input');
if (calculatorState.selectedItems.has(itemId)) { calculatorState.selectedItems.delete(itemId); serviceItemTarget.classList.remove('selected'); checkbox.checked = false; }
else { calculatorState.selectedItems.add(itemId); serviceItemTarget.classList.add('selected'); checkbox.checked = true; }
updateAdvancedCalculatorUI();
}
});
renderServices();})();
});