- Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in element_gva_column->render_content() (line 462 of themes/gavias_kunco/gva_content_builder/gva_column.php).
element_gva_column->render_content(Array, '
ركن الإسلام الثالث
حاسبة الزكاة الذكيةأداء دقيق.. أثر كبير
حاسبة متكاملة لحساب زكاتك وفق أحدث الأسعار وأصح الأحكام الشرعية، مصممة لمساعدتك على أداء فريضتك بدقة وثقة.
نصاب الذهب اليوم
85 جرام
ما يعادل $6,502.50 حسب سعر الذهب الحالي
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
ركن الإسلام الثالث
حاسبة الزكاة الذكيةأداء دقيق.. أثر كبير
حاسبة متكاملة لحساب زكاتك وفق أحدث الأسعار وأصح الأحكام الشرعية، مصممة لمساعدتك على أداء فريضتك بدقة وثقة.
نصاب الذهب اليوم
85 جرام
ما يعادل $6,502.50 حسب سعر الذهب الحالي
') (Line: 58)
gavias_content_builder_render_el(Array) (Line: 22)
gavias_content_builder_frontend('[{"settings":{"element":"gva_row","bg_particles":"off","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","style_space":"remove_margin remove_padding remove_padding_col","padding_top":"0","padding_bottom":"0","margin_top":"0","margin_bottom":"0","layout":"container-fw","class":"aboutus"},"columns":[{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":" \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ركن الإسلام الثالث\r\n حاسبة الزكاة الذكيةأداء دقيق.. أثر كبير\r\n \r\n \r\n حاسبة متكاملة لحساب زكاتك وفق أحدث الأسعار وأصح الأحكام الشرعية، مصممة لمساعدتك على أداء فريضتك بدقة وثقة.\r\n \r\n \r\n \r\n \r\n \r\n نصاب الذهب اليوم\r\n 85 جرام\r\n \r\n \r\n \r\n \r\n ما يعادل $6,502.50 حسب سعر الذهب الحالي\r\n \r\n \r\n \r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","class":"zakatt"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n النقود والودائع\r\n \r\n \r\n \r\n الذهب والفضة\r\n \r\n \r\n \r\n الأسهم والتجارة\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n النقود والودائع البنكية\r\n \r\n \r\n \r\n \r\n النقود المتوفرة\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n الودائع والأرصدة البنكية\r\n \r\n \r\n \r\n \r\n \r\n \r\n ديون مستحقة لك\r\n \r\n \r\n \r\n \r\n الديون التي تتوقع استردادها\r\n \r\n \r\n الديون المستحقة عليك\r\n \r\n \r\n \r\n \r\n تخصم من إجمالي الأموال\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n الذهب والفضة والمجوهرات\r\n \r\n \r\n \r\n وزن الذهب (جرام)\r\n \r\n \r\n \r\n \r\n ما يزيد عن الاستخدام الشخصي\r\n \r\n \r\n عيار الذهب\r\n \r\n \r\n عَيار 24 (نقي)\r\n عَيار 22\r\n عَيار 21\r\n عَيار 18\r\n \r\n \r\n \r\n \r\n \r\n وزن الفضة (جرام)\r\n \r\n \r\n \r\n \r\n \r\n \r\n سعر الذهب اليوم\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n سعر الجرام بالدولار\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n حاسبة النصاب\r\n \r\n \r\n \r\n نصاب الذهب\r\n 85 جرام\r\n \r\n \r\n نصاب الفضة\r\n 595 جرام\r\n \r\n \r\n قيمته بالدولار\r\n $6,502.50\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n الأصول التجارية والاستثمارية\r\n \r\n \r\n \r\n قيمة الأسهم الحالية\r\n \r\n \r\n \r\n \r\n \r\n \r\n عروض التجارة\r\n \r\n \r\n \r\n \r\n البضائع المعدة للبيع\r\n \r\n \r\n العقارات الاستثمارية\r\n \r\n \r\n \r\n \r\n \r\n \r\n أصول أخرى\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n اختر مشاريعك الخيرية\r\n \r\n يمكنك توزيع زكاتك على عدة مشاريع خيرية حسب رغبتك\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n سلة التبرعات\r\n \r\n \r\n لم تقم بإضافة أي مشاريع بعد\r\n \r\n \r\n \r\n إجمالي المبلغ المحدد\r\n 0.00 $\r\n \r\n \r\n إتمام التبرع\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n شروط وجوب الزكاة\r\n \r\n <ul>\r\n <li>\r\n \r\n بلوغ النصاب (ما يعادل 85 جرام ذهب 24 قيراط)\r\n </li>\r\n <li>\r\n \r\n حولان الحول (مرور عام هجري على امتلاك المال)\r\n </li>\r\n <li>\r\n \r\n الملكية التامة للمال والقدرة على التصرف فيه\r\n </li>\r\n </ul>\r\n \r\n \r\n \r\n \r\n أمانة وجدان\r\n \r\n \r\n نلتزم في وجدان الخيرية بصرف الزكاة في مصارفها الشرعية الثمانية تحت إشراف لجان شرعية متخصصة، مع ضمان أعلى معايير الشفافية والتتبع.\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n ملخص الحساب\r\n \r\n\r\n \r\n \r\n إجمالي المال الخاضع للزكاة\r\n 0.00 $\r\n \r\n \r\n نصاب الزكاة الحالي\r\n 6,502.50 $\r\n \r\n \r\n\r\n \r\n الزكاة الواجبة (2.5%)\r\n 0.00 $\r\n \r\n \r\n أدخل المبلغ للتحقق\r\n \r\n \r\n\r\n \r\n <a>\r\n \r\n تواصل عبر واتساب للإستشارة والتبرع\r\n </a>\r\n \r\n\r\n \r\n جميع الحسابات مبنية على أسعار الذهب العالمية وأحدث الفتاوى الشرعية. نوصي باستشارة أهل العلم في المسائل الفقهية الدقيقة.\r\n \r\n \r\n \r\n \r\n \r\n إعادة تعيين\r\n \r\n \r\n حفظ الحساب\r\n \r\n \r\n \r\n \r\n \r\n \r\n ","animate_delay":"0","el_class":"zakatt"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":" \r\n // Initialize charity projects\r\n const charityProjects = [\r\n {\r\n id: 1,\r\n title: \"إفطار صائم\",\r\n description: \"توفير وجبات إفطار شهر رمضان للأسر المحتاجة\",\r\n icon: \"fa-utensils\",\r\n cost: 500,\r\n selected: false\r\n },\r\n {\r\n id: 2,\r\n title: \"كسوة الشتاء\",\r\n description: \"توزيع ملابس شتوية للأطفال والأسر المحتاجة\",\r\n icon: \"fa-shirt\",\r\n cost: 300,\r\n selected: false\r\n },\r\n {\r\n id: 3,\r\n title: \"سقيا الماء\",\r\n description: \"حفر آبار وتوفير مياه شرب نظيفة\",\r\n icon: \"fa-droplet\",\r\n cost: 1000,\r\n selected: false\r\n },\r\n {\r\n id: 4,\r\n title: \"تعليم الأيتام\",\r\n description: \"دعم تعليمي للأيتام ومستلزمات مدرسية\",\r\n icon: \"fa-graduation-cap\",\r\n cost: 400,\r\n selected: false\r\n },\r\n {\r\n id: 5,\r\n title: \"علاج المرضى\",\r\n description: \"تغطية نفقات علاج للأسر غير القادرة\",\r\n icon: \"fa-heart-pulse\",\r\n cost: 800,\r\n selected: false\r\n },\r\n {\r\n id: 6,\r\n title: \"رعاية الأرامل\",\r\n description: \"دعم شهري للأرامل وأطفالهن\",\r\n icon: \"fa-hand-holding-heart\",\r\n cost: 600,\r\n selected: false\r\n }\r\n ];\r\n\r\n // Donation basket\r\n let donationBasket = [];\r\n \r\n // Tab system\r\n function zakatSwitchTab(tab) {\r\n // Update tabs\r\n document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));\r\n document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));\r\n \r\n // Activate selected tab\r\n document.getElementById('zakat-tab-' + tab).classList.add('active');\r\n document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');\r\n \r\n // Load charity projects if on charity tab\r\n if (tab === 'charity') {\r\n loadCharityProjects();\r\n }\r\n \r\n // Add animation\r\n const activeSection = document.getElementById('zakat-section-' + tab);\r\n activeSection.classList.add('zakat-fade-in');\r\n }\r\n \r\n // Load charity projects\r\n function loadCharityProjects() {\r\n const container = document.getElementById('charity-projects-container');\r\n container.innerHTML = '';\r\n \r\n charityProjects.forEach(project => {\r\n const projectElement = document.createElement('div');\r\n projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;\r\n projectElement.innerHTML = `\r\n \r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n ${project.selected ? 'مضاف' : 'إضافة'}\r\n \r\n \r\n `;\r\n container.appendChild(projectElement);\r\n });\r\n \r\n updateBasketDisplay();\r\n }\r\n \r\n // Toggle charity project selection\r\n function toggleCharityProject(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n project.selected = !project.selected;\r\n \r\n if (project.selected) {\r\n donationBasket.push(project);\r\n } else {\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n }\r\n \r\n loadCharityProjects();\r\n updateBasketDisplay();\r\n }\r\n \r\n // Update donation basket display\r\n function updateBasketDisplay() {\r\n const container = document.getElementById('donation-basket-items');\r\n const totalElement = document.getElementById('basket-total');\r\n \r\n if (donationBasket.length === 0) {\r\n container.innerHTML = 'لم تقم بإضافة أي مشاريع بعد';\r\n totalElement.textContent = '0.00 $';\r\n return;\r\n }\r\n \r\n let total = 0;\r\n let itemsHTML = '';\r\n \r\n donationBasket.forEach(project => {\r\n total += project.cost;\r\n itemsHTML += `\r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n \r\n \r\n \r\n \r\n `;\r\n });\r\n \r\n container.innerHTML = itemsHTML;\r\n totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Remove from basket\r\n function removeFromBasket(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n if (project) {\r\n project.selected = false;\r\n }\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n loadCharityProjects();\r\n }\r\n \r\n // Enhanced Calculation\r\n function zakatCalculate() {\r\n // Money\r\n const cash = parseFloat(document.getElementById('zakat-cash-money').value) || 0;\r\n const bank = parseFloat(document.getElementById('zakat-bank-money').value) || 0;\r\n const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me').value) || 0;\r\n const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me').value) || 0;\r\n \r\n // Gold/Silver\r\n const goldW = parseFloat(document.getElementById('zakat-gold-weight').value) || 0;\r\n const carat = parseFloat(document.getElementById('zakat-gold-carat').value) || 0;\r\n const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;\r\n const silverW = parseFloat(document.getElementById('zakat-silver-weight').value) || 0;\r\n const silverRate = 0.95;\r\n \r\n // Stocks & Business\r\n const stocks = parseFloat(document.getElementById('zakat-stocks-value').value) || 0;\r\n const trade = parseFloat(document.getElementById('zakat-trade-goods').value) || 0;\r\n const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;\r\n const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;\r\n \r\n // Calculations\r\n const gold24Equivalent = goldW * (carat / 24);\r\n const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);\r\n const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);\r\n const businessAssets = stocks + trade + realEstate + otherAssets;\r\n const total = Math.max(0, moneyAssets + metalAssets + businessAssets);\r\n \r\n // UI Update - Total\r\n document.getElementById('zakat-total-assets').textContent = \r\n total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n // Nisab Logic (85g Gold 24k)\r\n const nisab = 85 * goldRate;\r\n document.getElementById('zakat-nisab-value').textContent = \r\n nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n // Update nisab displays\r\n document.getElementById('nisab-value-display').textContent = \r\n nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n document.getElementById('current-nisab').textContent = '85 جرام';\r\n document.getElementById('nisab-value').textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n // Update progress bar\r\n const nisabProgress = Math.min(100, (total / nisab) * 100);\r\n document.getElementById('nisab-progress').style.width = `${nisabProgress}%`;\r\n \r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const statusBadge = document.getElementById('zakat-status-badge');\r\n \r\n if (total >= nisab && total > 0) {\r\n const zakat = total * 0.025;\r\n zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n statusBadge.innerHTML = ' وجبت الزكاة (بلغت النصاب)';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4\";\r\n } else {\r\n zakatAmountEl.textContent = '0.00 $';\r\n \r\n if (total > 0) {\r\n statusBadge.innerHTML = ' لم تبلغ النصاب بعد';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4\";\r\n } else {\r\n statusBadge.innerHTML = ' أدخل المبلغ للتحقق';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4\";\r\n }\r\n }\r\n }\r\n \r\n // Fetch live rates\r\n async function zakatFetchRates() {\r\n const icon = document.getElementById('zakat-refresh-icon');\r\n icon.classList.add('fa-spin');\r\n \r\n // Simulate API call\r\n await new Promise(r => setTimeout(r, 1000));\r\n \r\n // Dynamic change for effect (simulated rate change)\r\n const current = parseFloat(document.getElementById('zakat-gold-rate').value);\r\n const newRate = current + (Math.random() - 0.5);\r\n document.getElementById('zakat-gold-rate').value = newRate.toFixed(2);\r\n \r\n icon.classList.remove('fa-spin');\r\n zakatCalculate();\r\n }\r\n \r\n // Reset form\r\n function zakatResetForm() {\r\n document.querySelectorAll('input[type=\"number\"]').forEach(input => input.value = '');\r\n donationBasket = [];\r\n charityProjects.forEach(p => p.selected = false);\r\n loadCharityProjects();\r\n zakatCalculate();\r\n }\r\n \r\n // Save calculation\r\n function zakatSaveCalculation() {\r\n const total = document.getElementById('zakat-total-assets').textContent;\r\n const zakat = document.getElementById('zakat-amount').textContent;\r\n \r\n alert(`تم حفظ الحساب:\\nإجمالي المال: ${total}\\nالزكاة الواجبة: ${zakat}`);\r\n }\r\n \r\n // Checkout\r\n function zakatCheckout() {\r\n const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);\r\n if (total === 0) {\r\n alert('الرجاء إضافة مشاريع إلى سلة التبرعات أولاً');\r\n return;\r\n }\r\n \r\n alert(`سيتم توجيهك لصفحة الدفع لإكمال تبرعك بمبلغ ${total.toLocaleString()} $`);\r\n // In production: window.location.href = 'payment.html';\r\n }\r\n \r\n // Redirect to payment\r\n function zakatRedirectToPayment() {\r\n const zakatAmount = document.getElementById('zakat-amount').textContent;\r\n if (zakatAmount === '0.00 $') {\r\n alert('الرجاء إدخال المبلغ أولاً لحساب الزكاة');\r\n return;\r\n }\r\n \r\n alert(`سيتم توجيهك لصفحة الدفع لإتمام تبرعك بمبلغ ${zakatAmount}`);\r\n // In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);\r\n }\r\n \r\n // Intersection Observer for animations\r\n document.addEventListener('DOMContentLoaded', () => {\r\n // Initialize animations\r\n const reveals = document.querySelectorAll('.zakat-reveal');\r\n const obs = new IntersectionObserver((entries) => {\r\n entries.forEach(e => {\r\n if (e.isIntersecting) e.target.classList.add('active');\r\n });\r\n }, { threshold: 0.1 });\r\n reveals.forEach(r => obs.observe(r));\r\n \r\n // Initialize calculation\r\n zakatCalculate();\r\n \r\n // Load initial nisab value\r\n const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;\r\n const nisab = 85 * goldRate;\r\n document.getElementById('zakat-nisab-value').textContent = \r\n nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n });\r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'ar') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'ar') (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. Support for this callback implementation is deprecated in 8.8.0 and will be removed in Drupal 9.0.0. See https://www.drupal.org/node/2966725', 'silenced_deprecation', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in element_gva_column->render_content() (line 463 of themes/gavias_kunco/gva_content_builder/gva_column.php).
element_gva_column->render_content(Array, '
ركن الإسلام الثالث
حاسبة الزكاة الذكيةأداء دقيق.. أثر كبير
حاسبة متكاملة لحساب زكاتك وفق أحدث الأسعار وأصح الأحكام الشرعية، مصممة لمساعدتك على أداء فريضتك بدقة وثقة.
نصاب الذهب اليوم
85 جرام
ما يعادل $6,502.50 حسب سعر الذهب الحالي
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
ركن الإسلام الثالث
حاسبة الزكاة الذكيةأداء دقيق.. أثر كبير
حاسبة متكاملة لحساب زكاتك وفق أحدث الأسعار وأصح الأحكام الشرعية، مصممة لمساعدتك على أداء فريضتك بدقة وثقة.
نصاب الذهب اليوم
85 جرام
ما يعادل $6,502.50 حسب سعر الذهب الحالي
') (Line: 58)
gavias_content_builder_render_el(Array) (Line: 22)
gavias_content_builder_frontend('[{"settings":{"element":"gva_row","bg_particles":"off","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","style_space":"remove_margin remove_padding remove_padding_col","padding_top":"0","padding_bottom":"0","margin_top":"0","margin_bottom":"0","layout":"container-fw","class":"aboutus"},"columns":[{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":" \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ركن الإسلام الثالث\r\n حاسبة الزكاة الذكيةأداء دقيق.. أثر كبير\r\n \r\n \r\n حاسبة متكاملة لحساب زكاتك وفق أحدث الأسعار وأصح الأحكام الشرعية، مصممة لمساعدتك على أداء فريضتك بدقة وثقة.\r\n \r\n \r\n \r\n \r\n \r\n نصاب الذهب اليوم\r\n 85 جرام\r\n \r\n \r\n \r\n \r\n ما يعادل $6,502.50 حسب سعر الذهب الحالي\r\n \r\n \r\n \r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","class":"zakatt"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n النقود والودائع\r\n \r\n \r\n \r\n الذهب والفضة\r\n \r\n \r\n \r\n الأسهم والتجارة\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n النقود والودائع البنكية\r\n \r\n \r\n \r\n \r\n النقود المتوفرة\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n الودائع والأرصدة البنكية\r\n \r\n \r\n \r\n \r\n \r\n \r\n ديون مستحقة لك\r\n \r\n \r\n \r\n \r\n الديون التي تتوقع استردادها\r\n \r\n \r\n الديون المستحقة عليك\r\n \r\n \r\n \r\n \r\n تخصم من إجمالي الأموال\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n الذهب والفضة والمجوهرات\r\n \r\n \r\n \r\n وزن الذهب (جرام)\r\n \r\n \r\n \r\n \r\n ما يزيد عن الاستخدام الشخصي\r\n \r\n \r\n عيار الذهب\r\n \r\n \r\n عَيار 24 (نقي)\r\n عَيار 22\r\n عَيار 21\r\n عَيار 18\r\n \r\n \r\n \r\n \r\n \r\n وزن الفضة (جرام)\r\n \r\n \r\n \r\n \r\n \r\n \r\n سعر الذهب اليوم\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n سعر الجرام بالدولار\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n حاسبة النصاب\r\n \r\n \r\n \r\n نصاب الذهب\r\n 85 جرام\r\n \r\n \r\n نصاب الفضة\r\n 595 جرام\r\n \r\n \r\n قيمته بالدولار\r\n $6,502.50\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n الأصول التجارية والاستثمارية\r\n \r\n \r\n \r\n قيمة الأسهم الحالية\r\n \r\n \r\n \r\n \r\n \r\n \r\n عروض التجارة\r\n \r\n \r\n \r\n \r\n البضائع المعدة للبيع\r\n \r\n \r\n العقارات الاستثمارية\r\n \r\n \r\n \r\n \r\n \r\n \r\n أصول أخرى\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n اختر مشاريعك الخيرية\r\n \r\n يمكنك توزيع زكاتك على عدة مشاريع خيرية حسب رغبتك\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n سلة التبرعات\r\n \r\n \r\n لم تقم بإضافة أي مشاريع بعد\r\n \r\n \r\n \r\n إجمالي المبلغ المحدد\r\n 0.00 $\r\n \r\n \r\n إتمام التبرع\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n شروط وجوب الزكاة\r\n \r\n <ul>\r\n <li>\r\n \r\n بلوغ النصاب (ما يعادل 85 جرام ذهب 24 قيراط)\r\n </li>\r\n <li>\r\n \r\n حولان الحول (مرور عام هجري على امتلاك المال)\r\n </li>\r\n <li>\r\n \r\n الملكية التامة للمال والقدرة على التصرف فيه\r\n </li>\r\n </ul>\r\n \r\n \r\n \r\n \r\n أمانة وجدان\r\n \r\n \r\n نلتزم في وجدان الخيرية بصرف الزكاة في مصارفها الشرعية الثمانية تحت إشراف لجان شرعية متخصصة، مع ضمان أعلى معايير الشفافية والتتبع.\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n ملخص الحساب\r\n \r\n\r\n \r\n \r\n إجمالي المال الخاضع للزكاة\r\n 0.00 $\r\n \r\n \r\n نصاب الزكاة الحالي\r\n 6,502.50 $\r\n \r\n \r\n\r\n \r\n الزكاة الواجبة (2.5%)\r\n 0.00 $\r\n \r\n \r\n أدخل المبلغ للتحقق\r\n \r\n \r\n\r\n \r\n <a>\r\n \r\n تواصل عبر واتساب للإستشارة والتبرع\r\n </a>\r\n \r\n\r\n \r\n جميع الحسابات مبنية على أسعار الذهب العالمية وأحدث الفتاوى الشرعية. نوصي باستشارة أهل العلم في المسائل الفقهية الدقيقة.\r\n \r\n \r\n \r\n \r\n \r\n إعادة تعيين\r\n \r\n \r\n حفظ الحساب\r\n \r\n \r\n \r\n \r\n \r\n \r\n ","animate_delay":"0","el_class":"zakatt"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":" \r\n // Initialize charity projects\r\n const charityProjects = [\r\n {\r\n id: 1,\r\n title: \"إفطار صائم\",\r\n description: \"توفير وجبات إفطار شهر رمضان للأسر المحتاجة\",\r\n icon: \"fa-utensils\",\r\n cost: 500,\r\n selected: false\r\n },\r\n {\r\n id: 2,\r\n title: \"كسوة الشتاء\",\r\n description: \"توزيع ملابس شتوية للأطفال والأسر المحتاجة\",\r\n icon: \"fa-shirt\",\r\n cost: 300,\r\n selected: false\r\n },\r\n {\r\n id: 3,\r\n title: \"سقيا الماء\",\r\n description: \"حفر آبار وتوفير مياه شرب نظيفة\",\r\n icon: \"fa-droplet\",\r\n cost: 1000,\r\n selected: false\r\n },\r\n {\r\n id: 4,\r\n title: \"تعليم الأيتام\",\r\n description: \"دعم تعليمي للأيتام ومستلزمات مدرسية\",\r\n icon: \"fa-graduation-cap\",\r\n cost: 400,\r\n selected: false\r\n },\r\n {\r\n id: 5,\r\n title: \"علاج المرضى\",\r\n description: \"تغطية نفقات علاج للأسر غير القادرة\",\r\n icon: \"fa-heart-pulse\",\r\n cost: 800,\r\n selected: false\r\n },\r\n {\r\n id: 6,\r\n title: \"رعاية الأرامل\",\r\n description: \"دعم شهري للأرامل وأطفالهن\",\r\n icon: \"fa-hand-holding-heart\",\r\n cost: 600,\r\n selected: false\r\n }\r\n ];\r\n\r\n // Donation basket\r\n let donationBasket = [];\r\n \r\n // Tab system\r\n function zakatSwitchTab(tab) {\r\n // Update tabs\r\n document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));\r\n document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));\r\n \r\n // Activate selected tab\r\n document.getElementById('zakat-tab-' + tab).classList.add('active');\r\n document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');\r\n \r\n // Load charity projects if on charity tab\r\n if (tab === 'charity') {\r\n loadCharityProjects();\r\n }\r\n \r\n // Add animation\r\n const activeSection = document.getElementById('zakat-section-' + tab);\r\n activeSection.classList.add('zakat-fade-in');\r\n }\r\n \r\n // Load charity projects\r\n function loadCharityProjects() {\r\n const container = document.getElementById('charity-projects-container');\r\n container.innerHTML = '';\r\n \r\n charityProjects.forEach(project => {\r\n const projectElement = document.createElement('div');\r\n projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;\r\n projectElement.innerHTML = `\r\n \r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n ${project.selected ? 'مضاف' : 'إضافة'}\r\n \r\n \r\n `;\r\n container.appendChild(projectElement);\r\n });\r\n \r\n updateBasketDisplay();\r\n }\r\n \r\n // Toggle charity project selection\r\n function toggleCharityProject(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n project.selected = !project.selected;\r\n \r\n if (project.selected) {\r\n donationBasket.push(project);\r\n } else {\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n }\r\n \r\n loadCharityProjects();\r\n updateBasketDisplay();\r\n }\r\n \r\n // Update donation basket display\r\n function updateBasketDisplay() {\r\n const container = document.getElementById('donation-basket-items');\r\n const totalElement = document.getElementById('basket-total');\r\n \r\n if (donationBasket.length === 0) {\r\n container.innerHTML = 'لم تقم بإضافة أي مشاريع بعد';\r\n totalElement.textContent = '0.00 $';\r\n return;\r\n }\r\n \r\n let total = 0;\r\n let itemsHTML = '';\r\n \r\n donationBasket.forEach(project => {\r\n total += project.cost;\r\n itemsHTML += `\r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n \r\n \r\n \r\n \r\n `;\r\n });\r\n \r\n container.innerHTML = itemsHTML;\r\n totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Remove from basket\r\n function removeFromBasket(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n if (project) {\r\n project.selected = false;\r\n }\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n loadCharityProjects();\r\n }\r\n \r\n // Enhanced Calculation\r\n function zakatCalculate() {\r\n // Money\r\n const cash = parseFloat(document.getElementById('zakat-cash-money').value) || 0;\r\n const bank = parseFloat(document.getElementById('zakat-bank-money').value) || 0;\r\n const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me').value) || 0;\r\n const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me').value) || 0;\r\n \r\n // Gold/Silver\r\n const goldW = parseFloat(document.getElementById('zakat-gold-weight').value) || 0;\r\n const carat = parseFloat(document.getElementById('zakat-gold-carat').value) || 0;\r\n const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;\r\n const silverW = parseFloat(document.getElementById('zakat-silver-weight').value) || 0;\r\n const silverRate = 0.95;\r\n \r\n // Stocks & Business\r\n const stocks = parseFloat(document.getElementById('zakat-stocks-value').value) || 0;\r\n const trade = parseFloat(document.getElementById('zakat-trade-goods').value) || 0;\r\n const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;\r\n const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;\r\n \r\n // Calculations\r\n const gold24Equivalent = goldW * (carat / 24);\r\n const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);\r\n const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);\r\n const businessAssets = stocks + trade + realEstate + otherAssets;\r\n const total = Math.max(0, moneyAssets + metalAssets + businessAssets);\r\n \r\n // UI Update - Total\r\n document.getElementById('zakat-total-assets').textContent = \r\n total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n // Nisab Logic (85g Gold 24k)\r\n const nisab = 85 * goldRate;\r\n document.getElementById('zakat-nisab-value').textContent = \r\n nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n // Update nisab displays\r\n document.getElementById('nisab-value-display').textContent = \r\n nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n document.getElementById('current-nisab').textContent = '85 جرام';\r\n document.getElementById('nisab-value').textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n // Update progress bar\r\n const nisabProgress = Math.min(100, (total / nisab) * 100);\r\n document.getElementById('nisab-progress').style.width = `${nisabProgress}%`;\r\n \r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const statusBadge = document.getElementById('zakat-status-badge');\r\n \r\n if (total >= nisab && total > 0) {\r\n const zakat = total * 0.025;\r\n zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n statusBadge.innerHTML = ' وجبت الزكاة (بلغت النصاب)';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4\";\r\n } else {\r\n zakatAmountEl.textContent = '0.00 $';\r\n \r\n if (total > 0) {\r\n statusBadge.innerHTML = ' لم تبلغ النصاب بعد';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4\";\r\n } else {\r\n statusBadge.innerHTML = ' أدخل المبلغ للتحقق';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4\";\r\n }\r\n }\r\n }\r\n \r\n // Fetch live rates\r\n async function zakatFetchRates() {\r\n const icon = document.getElementById('zakat-refresh-icon');\r\n icon.classList.add('fa-spin');\r\n \r\n // Simulate API call\r\n await new Promise(r => setTimeout(r, 1000));\r\n \r\n // Dynamic change for effect (simulated rate change)\r\n const current = parseFloat(document.getElementById('zakat-gold-rate').value);\r\n const newRate = current + (Math.random() - 0.5);\r\n document.getElementById('zakat-gold-rate').value = newRate.toFixed(2);\r\n \r\n icon.classList.remove('fa-spin');\r\n zakatCalculate();\r\n }\r\n \r\n // Reset form\r\n function zakatResetForm() {\r\n document.querySelectorAll('input[type=\"number\"]').forEach(input => input.value = '');\r\n donationBasket = [];\r\n charityProjects.forEach(p => p.selected = false);\r\n loadCharityProjects();\r\n zakatCalculate();\r\n }\r\n \r\n // Save calculation\r\n function zakatSaveCalculation() {\r\n const total = document.getElementById('zakat-total-assets').textContent;\r\n const zakat = document.getElementById('zakat-amount').textContent;\r\n \r\n alert(`تم حفظ الحساب:\\nإجمالي المال: ${total}\\nالزكاة الواجبة: ${zakat}`);\r\n }\r\n \r\n // Checkout\r\n function zakatCheckout() {\r\n const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);\r\n if (total === 0) {\r\n alert('الرجاء إضافة مشاريع إلى سلة التبرعات أولاً');\r\n return;\r\n }\r\n \r\n alert(`سيتم توجيهك لصفحة الدفع لإكمال تبرعك بمبلغ ${total.toLocaleString()} $`);\r\n // In production: window.location.href = 'payment.html';\r\n }\r\n \r\n // Redirect to payment\r\n function zakatRedirectToPayment() {\r\n const zakatAmount = document.getElementById('zakat-amount').textContent;\r\n if (zakatAmount === '0.00 $') {\r\n alert('الرجاء إدخال المبلغ أولاً لحساب الزكاة');\r\n return;\r\n }\r\n \r\n alert(`سيتم توجيهك لصفحة الدفع لإتمام تبرعك بمبلغ ${zakatAmount}`);\r\n // In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);\r\n }\r\n \r\n // Intersection Observer for animations\r\n document.addEventListener('DOMContentLoaded', () => {\r\n // Initialize animations\r\n const reveals = document.querySelectorAll('.zakat-reveal');\r\n const obs = new IntersectionObserver((entries) => {\r\n entries.forEach(e => {\r\n if (e.isIntersecting) e.target.classList.add('active');\r\n });\r\n }, { threshold: 0.1 });\r\n reveals.forEach(r => obs.observe(r));\r\n \r\n // Initialize calculation\r\n zakatCalculate();\r\n \r\n // Load initial nisab value\r\n const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;\r\n const nisab = 85 * goldRate;\r\n document.getElementById('zakat-nisab-value').textContent = \r\n nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n });\r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'ar') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'ar') (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. Support for this callback implementation is deprecated in 8.8.0 and will be removed in Drupal 9.0.0. See https://www.drupal.org/node/2966725', 'silenced_deprecation', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in element_gva_column->render_content() (line 462 of themes/gavias_kunco/gva_content_builder/gva_column.php).
element_gva_column->render_content(Array, '
النقود والودائع
الذهب والفضة
الأسهم والتجارة
المشاريع الخيرية
-->
النقود والودائع البنكية
النقود المتوفرة
الودائع والأرصدة البنكية
ديون مستحقة لك
الديون التي تتوقع استردادها
الديون المستحقة عليك
تخصم من إجمالي الأموال
الذهب والفضة والمجوهرات
وزن الذهب (جرام)
ما يزيد عن الاستخدام الشخصي
عيار الذهب
عَيار 24 (نقي)
عَيار 22
عَيار 21
عَيار 18
وزن الفضة (جرام)
سعر الذهب اليوم
سعر الجرام بالدولار
حاسبة النصاب
نصاب الذهب
85 جرام
نصاب الفضة
595 جرام
قيمته بالدولار
$6,502.50
الأصول التجارية والاستثمارية
قيمة الأسهم الحالية
عروض التجارة
البضائع المعدة للبيع
العقارات الاستثمارية
أصول أخرى
اختر مشاريعك الخيرية
يمكنك توزيع زكاتك على عدة مشاريع خيرية حسب رغبتك
سلة التبرعات
لم تقم بإضافة أي مشاريع بعد
إجمالي المبلغ المحدد
0.00 $
إتمام التبرع
شروط وجوب الزكاة
<ul class="space-y-3 text-gray-600">
<li class="flex items-start gap-3">
بلوغ النصاب (ما يعادل 85 جرام ذهب 24 قيراط)
</li>
<li class="flex items-start gap-3">
حولان الحول (مرور عام هجري على امتلاك المال)
</li>
<li class="flex items-start gap-3">
الملكية التامة للمال والقدرة على التصرف فيه
</li>
</ul>
أمانة وجدان
نلتزم في وجدان الخيرية بصرف الزكاة في مصارفها الشرعية الثمانية تحت إشراف لجان شرعية متخصصة، مع ضمان أعلى معايير الشفافية والتتبع.
ملخص الحساب
إجمالي المال الخاضع للزكاة
0.00 $
نصاب الزكاة الحالي
6,502.50 $
الزكاة الواجبة (2.5%)
0.00 $
أدخل المبلغ للتحقق
<a href="https://wa.me/905057763103" class="sponsorships-btn-secondary sponsorships-btn-full mt-4" target="_blank">
تواصل عبر واتساب للإستشارة والتبرع
</a>
جميع الحسابات مبنية على أسعار الذهب العالمية وأحدث الفتاوى الشرعية. نوصي باستشارة أهل العلم في المسائل الفقهية الدقيقة.
إعادة تعيين
حفظ الحساب
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
النقود والودائع
الذهب والفضة
الأسهم والتجارة
المشاريع الخيرية
-->
النقود والودائع البنكية
النقود المتوفرة
الودائع والأرصدة البنكية
ديون مستحقة لك
الديون التي تتوقع استردادها
الديون المستحقة عليك
تخصم من إجمالي الأموال
الذهب والفضة والمجوهرات
وزن الذهب (جرام)
ما يزيد عن الاستخدام الشخصي
عيار الذهب
عَيار 24 (نقي)
عَيار 22
عَيار 21
عَيار 18
وزن الفضة (جرام)
سعر الذهب اليوم
سعر الجرام بالدولار
حاسبة النصاب
نصاب الذهب
85 جرام
نصاب الفضة
595 جرام
قيمته بالدولار
$6,502.50
الأصول التجارية والاستثمارية
قيمة الأسهم الحالية
عروض التجارة
البضائع المعدة للبيع
العقارات الاستثمارية
أصول أخرى
اختر مشاريعك الخيرية
يمكنك توزيع زكاتك على عدة مشاريع خيرية حسب رغبتك
سلة التبرعات
لم تقم بإضافة أي مشاريع بعد
إجمالي المبلغ المحدد
0.00 $
إتمام التبرع
شروط وجوب الزكاة
<ul class="space-y-3 text-gray-600">
<li class="flex items-start gap-3">
بلوغ النصاب (ما يعادل 85 جرام ذهب 24 قيراط)
</li>
<li class="flex items-start gap-3">
حولان الحول (مرور عام هجري على امتلاك المال)
</li>
<li class="flex items-start gap-3">
الملكية التامة للمال والقدرة على التصرف فيه
</li>
</ul>
أمانة وجدان
نلتزم في وجدان الخيرية بصرف الزكاة في مصارفها الشرعية الثمانية تحت إشراف لجان شرعية متخصصة، مع ضمان أعلى معايير الشفافية والتتبع.
ملخص الحساب
إجمالي المال الخاضع للزكاة
0.00 $
نصاب الزكاة الحالي
6,502.50 $
الزكاة الواجبة (2.5%)
0.00 $
أدخل المبلغ للتحقق
<a href="https://wa.me/905057763103" class="sponsorships-btn-secondary sponsorships-btn-full mt-4" target="_blank">
تواصل عبر واتساب للإستشارة والتبرع
</a>
جميع الحسابات مبنية على أسعار الذهب العالمية وأحدث الفتاوى الشرعية. نوصي باستشارة أهل العلم في المسائل الفقهية الدقيقة.
إعادة تعيين
حفظ الحساب
') (Line: 58)
gavias_content_builder_render_el(Array) (Line: 22)
gavias_content_builder_frontend('[{"settings":{"element":"gva_row","bg_particles":"off","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","style_space":"remove_margin remove_padding remove_padding_col","padding_top":"0","padding_bottom":"0","margin_top":"0","margin_bottom":"0","layout":"container-fw","class":"aboutus"},"columns":[{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":" \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ركن الإسلام الثالث\r\n حاسبة الزكاة الذكيةأداء دقيق.. أثر كبير\r\n \r\n \r\n حاسبة متكاملة لحساب زكاتك وفق أحدث الأسعار وأصح الأحكام الشرعية، مصممة لمساعدتك على أداء فريضتك بدقة وثقة.\r\n \r\n \r\n \r\n \r\n \r\n نصاب الذهب اليوم\r\n 85 جرام\r\n \r\n \r\n \r\n \r\n ما يعادل $6,502.50 حسب سعر الذهب الحالي\r\n \r\n \r\n \r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","class":"zakatt"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n النقود والودائع\r\n \r\n \r\n \r\n الذهب والفضة\r\n \r\n \r\n \r\n الأسهم والتجارة\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n النقود والودائع البنكية\r\n \r\n \r\n \r\n \r\n النقود المتوفرة\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n الودائع والأرصدة البنكية\r\n \r\n \r\n \r\n \r\n \r\n \r\n ديون مستحقة لك\r\n \r\n \r\n \r\n \r\n الديون التي تتوقع استردادها\r\n \r\n \r\n الديون المستحقة عليك\r\n \r\n \r\n \r\n \r\n تخصم من إجمالي الأموال\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n الذهب والفضة والمجوهرات\r\n \r\n \r\n \r\n وزن الذهب (جرام)\r\n \r\n \r\n \r\n \r\n ما يزيد عن الاستخدام الشخصي\r\n \r\n \r\n عيار الذهب\r\n \r\n \r\n عَيار 24 (نقي)\r\n عَيار 22\r\n عَيار 21\r\n عَيار 18\r\n \r\n \r\n \r\n \r\n \r\n وزن الفضة (جرام)\r\n \r\n \r\n \r\n \r\n \r\n \r\n سعر الذهب اليوم\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n سعر الجرام بالدولار\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n حاسبة النصاب\r\n \r\n \r\n \r\n نصاب الذهب\r\n 85 جرام\r\n \r\n \r\n نصاب الفضة\r\n 595 جرام\r\n \r\n \r\n قيمته بالدولار\r\n $6,502.50\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n الأصول التجارية والاستثمارية\r\n \r\n \r\n \r\n قيمة الأسهم الحالية\r\n \r\n \r\n \r\n \r\n \r\n \r\n عروض التجارة\r\n \r\n \r\n \r\n \r\n البضائع المعدة للبيع\r\n \r\n \r\n العقارات الاستثمارية\r\n \r\n \r\n \r\n \r\n \r\n \r\n أصول أخرى\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n اختر مشاريعك الخيرية\r\n \r\n يمكنك توزيع زكاتك على عدة مشاريع خيرية حسب رغبتك\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n سلة التبرعات\r\n \r\n \r\n لم تقم بإضافة أي مشاريع بعد\r\n \r\n \r\n \r\n إجمالي المبلغ المحدد\r\n 0.00 $\r\n \r\n \r\n إتمام التبرع\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n شروط وجوب الزكاة\r\n \r\n <ul>\r\n <li>\r\n \r\n بلوغ النصاب (ما يعادل 85 جرام ذهب 24 قيراط)\r\n </li>\r\n <li>\r\n \r\n حولان الحول (مرور عام هجري على امتلاك المال)\r\n </li>\r\n <li>\r\n \r\n الملكية التامة للمال والقدرة على التصرف فيه\r\n </li>\r\n </ul>\r\n \r\n \r\n \r\n \r\n أمانة وجدان\r\n \r\n \r\n نلتزم في وجدان الخيرية بصرف الزكاة في مصارفها الشرعية الثمانية تحت إشراف لجان شرعية متخصصة، مع ضمان أعلى معايير الشفافية والتتبع.\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n ملخص الحساب\r\n \r\n\r\n \r\n \r\n إجمالي المال الخاضع للزكاة\r\n 0.00 $\r\n \r\n \r\n نصاب الزكاة الحالي\r\n 6,502.50 $\r\n \r\n \r\n\r\n \r\n الزكاة الواجبة (2.5%)\r\n 0.00 $\r\n \r\n \r\n أدخل المبلغ للتحقق\r\n \r\n \r\n\r\n \r\n <a>\r\n \r\n تواصل عبر واتساب للإستشارة والتبرع\r\n </a>\r\n \r\n\r\n \r\n جميع الحسابات مبنية على أسعار الذهب العالمية وأحدث الفتاوى الشرعية. نوصي باستشارة أهل العلم في المسائل الفقهية الدقيقة.\r\n \r\n \r\n \r\n \r\n \r\n إعادة تعيين\r\n \r\n \r\n حفظ الحساب\r\n \r\n \r\n \r\n \r\n \r\n \r\n ","animate_delay":"0","el_class":"zakatt"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":" \r\n // Initialize charity projects\r\n const charityProjects = [\r\n {\r\n id: 1,\r\n title: \"إفطار صائم\",\r\n description: \"توفير وجبات إفطار شهر رمضان للأسر المحتاجة\",\r\n icon: \"fa-utensils\",\r\n cost: 500,\r\n selected: false\r\n },\r\n {\r\n id: 2,\r\n title: \"كسوة الشتاء\",\r\n description: \"توزيع ملابس شتوية للأطفال والأسر المحتاجة\",\r\n icon: \"fa-shirt\",\r\n cost: 300,\r\n selected: false\r\n },\r\n {\r\n id: 3,\r\n title: \"سقيا الماء\",\r\n description: \"حفر آبار وتوفير مياه شرب نظيفة\",\r\n icon: \"fa-droplet\",\r\n cost: 1000,\r\n selected: false\r\n },\r\n {\r\n id: 4,\r\n title: \"تعليم الأيتام\",\r\n description: \"دعم تعليمي للأيتام ومستلزمات مدرسية\",\r\n icon: \"fa-graduation-cap\",\r\n cost: 400,\r\n selected: false\r\n },\r\n {\r\n id: 5,\r\n title: \"علاج المرضى\",\r\n description: \"تغطية نفقات علاج للأسر غير القادرة\",\r\n icon: \"fa-heart-pulse\",\r\n cost: 800,\r\n selected: false\r\n },\r\n {\r\n id: 6,\r\n title: \"رعاية الأرامل\",\r\n description: \"دعم شهري للأرامل وأطفالهن\",\r\n icon: \"fa-hand-holding-heart\",\r\n cost: 600,\r\n selected: false\r\n }\r\n ];\r\n\r\n // Donation basket\r\n let donationBasket = [];\r\n \r\n // Tab system\r\n function zakatSwitchTab(tab) {\r\n // Update tabs\r\n document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));\r\n document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));\r\n \r\n // Activate selected tab\r\n document.getElementById('zakat-tab-' + tab).classList.add('active');\r\n document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');\r\n \r\n // Load charity projects if on charity tab\r\n if (tab === 'charity') {\r\n loadCharityProjects();\r\n }\r\n \r\n // Add animation\r\n const activeSection = document.getElementById('zakat-section-' + tab);\r\n activeSection.classList.add('zakat-fade-in');\r\n }\r\n \r\n // Load charity projects\r\n function loadCharityProjects() {\r\n const container = document.getElementById('charity-projects-container');\r\n container.innerHTML = '';\r\n \r\n charityProjects.forEach(project => {\r\n const projectElement = document.createElement('div');\r\n projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;\r\n projectElement.innerHTML = `\r\n \r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n ${project.selected ? 'مضاف' : 'إضافة'}\r\n \r\n \r\n `;\r\n container.appendChild(projectElement);\r\n });\r\n \r\n updateBasketDisplay();\r\n }\r\n \r\n // Toggle charity project selection\r\n function toggleCharityProject(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n project.selected = !project.selected;\r\n \r\n if (project.selected) {\r\n donationBasket.push(project);\r\n } else {\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n }\r\n \r\n loadCharityProjects();\r\n updateBasketDisplay();\r\n }\r\n \r\n // Update donation basket display\r\n function updateBasketDisplay() {\r\n const container = document.getElementById('donation-basket-items');\r\n const totalElement = document.getElementById('basket-total');\r\n \r\n if (donationBasket.length === 0) {\r\n container.innerHTML = 'لم تقم بإضافة أي مشاريع بعد';\r\n totalElement.textContent = '0.00 $';\r\n return;\r\n }\r\n \r\n let total = 0;\r\n let itemsHTML = '';\r\n \r\n donationBasket.forEach(project => {\r\n total += project.cost;\r\n itemsHTML += `\r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n \r\n \r\n \r\n \r\n `;\r\n });\r\n \r\n container.innerHTML = itemsHTML;\r\n totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Remove from basket\r\n function removeFromBasket(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n if (project) {\r\n project.selected = false;\r\n }\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n loadCharityProjects();\r\n }\r\n \r\n // Enhanced Calculation\r\n function zakatCalculate() {\r\n // Money\r\n const cash = parseFloat(document.getElementById('zakat-cash-money').value) || 0;\r\n const bank = parseFloat(document.getElementById('zakat-bank-money').value) || 0;\r\n const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me').value) || 0;\r\n const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me').value) || 0;\r\n \r\n // Gold/Silver\r\n const goldW = parseFloat(document.getElementById('zakat-gold-weight').value) || 0;\r\n const carat = parseFloat(document.getElementById('zakat-gold-carat').value) || 0;\r\n const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;\r\n const silverW = parseFloat(document.getElementById('zakat-silver-weight').value) || 0;\r\n const silverRate = 0.95;\r\n \r\n // Stocks & Business\r\n const stocks = parseFloat(document.getElementById('zakat-stocks-value').value) || 0;\r\n const trade = parseFloat(document.getElementById('zakat-trade-goods').value) || 0;\r\n const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;\r\n const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;\r\n \r\n // Calculations\r\n const gold24Equivalent = goldW * (carat / 24);\r\n const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);\r\n const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);\r\n const businessAssets = stocks + trade + realEstate + otherAssets;\r\n const total = Math.max(0, moneyAssets + metalAssets + businessAssets);\r\n \r\n // UI Update - Total\r\n document.getElementById('zakat-total-assets').textContent = \r\n total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n // Nisab Logic (85g Gold 24k)\r\n const nisab = 85 * goldRate;\r\n document.getElementById('zakat-nisab-value').textContent = \r\n nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n // Update nisab displays\r\n document.getElementById('nisab-value-display').textContent = \r\n nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n document.getElementById('current-nisab').textContent = '85 جرام';\r\n document.getElementById('nisab-value').textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n // Update progress bar\r\n const nisabProgress = Math.min(100, (total / nisab) * 100);\r\n document.getElementById('nisab-progress').style.width = `${nisabProgress}%`;\r\n \r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const statusBadge = document.getElementById('zakat-status-badge');\r\n \r\n if (total >= nisab && total > 0) {\r\n const zakat = total * 0.025;\r\n zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n statusBadge.innerHTML = ' وجبت الزكاة (بلغت النصاب)';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4\";\r\n } else {\r\n zakatAmountEl.textContent = '0.00 $';\r\n \r\n if (total > 0) {\r\n statusBadge.innerHTML = ' لم تبلغ النصاب بعد';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4\";\r\n } else {\r\n statusBadge.innerHTML = ' أدخل المبلغ للتحقق';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4\";\r\n }\r\n }\r\n }\r\n \r\n // Fetch live rates\r\n async function zakatFetchRates() {\r\n const icon = document.getElementById('zakat-refresh-icon');\r\n icon.classList.add('fa-spin');\r\n \r\n // Simulate API call\r\n await new Promise(r => setTimeout(r, 1000));\r\n \r\n // Dynamic change for effect (simulated rate change)\r\n const current = parseFloat(document.getElementById('zakat-gold-rate').value);\r\n const newRate = current + (Math.random() - 0.5);\r\n document.getElementById('zakat-gold-rate').value = newRate.toFixed(2);\r\n \r\n icon.classList.remove('fa-spin');\r\n zakatCalculate();\r\n }\r\n \r\n // Reset form\r\n function zakatResetForm() {\r\n document.querySelectorAll('input[type=\"number\"]').forEach(input => input.value = '');\r\n donationBasket = [];\r\n charityProjects.forEach(p => p.selected = false);\r\n loadCharityProjects();\r\n zakatCalculate();\r\n }\r\n \r\n // Save calculation\r\n function zakatSaveCalculation() {\r\n const total = document.getElementById('zakat-total-assets').textContent;\r\n const zakat = document.getElementById('zakat-amount').textContent;\r\n \r\n alert(`تم حفظ الحساب:\\nإجمالي المال: ${total}\\nالزكاة الواجبة: ${zakat}`);\r\n }\r\n \r\n // Checkout\r\n function zakatCheckout() {\r\n const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);\r\n if (total === 0) {\r\n alert('الرجاء إضافة مشاريع إلى سلة التبرعات أولاً');\r\n return;\r\n }\r\n \r\n alert(`سيتم توجيهك لصفحة الدفع لإكمال تبرعك بمبلغ ${total.toLocaleString()} $`);\r\n // In production: window.location.href = 'payment.html';\r\n }\r\n \r\n // Redirect to payment\r\n function zakatRedirectToPayment() {\r\n const zakatAmount = document.getElementById('zakat-amount').textContent;\r\n if (zakatAmount === '0.00 $') {\r\n alert('الرجاء إدخال المبلغ أولاً لحساب الزكاة');\r\n return;\r\n }\r\n \r\n alert(`سيتم توجيهك لصفحة الدفع لإتمام تبرعك بمبلغ ${zakatAmount}`);\r\n // In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);\r\n }\r\n \r\n // Intersection Observer for animations\r\n document.addEventListener('DOMContentLoaded', () => {\r\n // Initialize animations\r\n const reveals = document.querySelectorAll('.zakat-reveal');\r\n const obs = new IntersectionObserver((entries) => {\r\n entries.forEach(e => {\r\n if (e.isIntersecting) e.target.classList.add('active');\r\n });\r\n }, { threshold: 0.1 });\r\n reveals.forEach(r => obs.observe(r));\r\n \r\n // Initialize calculation\r\n zakatCalculate();\r\n \r\n // Load initial nisab value\r\n const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;\r\n const nisab = 85 * goldRate;\r\n document.getElementById('zakat-nisab-value').textContent = \r\n nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n });\r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'ar') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'ar') (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. Support for this callback implementation is deprecated in 8.8.0 and will be removed in Drupal 9.0.0. See https://www.drupal.org/node/2966725', 'silenced_deprecation', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in element_gva_column->render_content() (line 463 of themes/gavias_kunco/gva_content_builder/gva_column.php).
element_gva_column->render_content(Array, '
النقود والودائع
الذهب والفضة
الأسهم والتجارة
المشاريع الخيرية
-->
النقود والودائع البنكية
النقود المتوفرة
الودائع والأرصدة البنكية
ديون مستحقة لك
الديون التي تتوقع استردادها
الديون المستحقة عليك
تخصم من إجمالي الأموال
الذهب والفضة والمجوهرات
وزن الذهب (جرام)
ما يزيد عن الاستخدام الشخصي
عيار الذهب
عَيار 24 (نقي)
عَيار 22
عَيار 21
عَيار 18
وزن الفضة (جرام)
سعر الذهب اليوم
سعر الجرام بالدولار
حاسبة النصاب
نصاب الذهب
85 جرام
نصاب الفضة
595 جرام
قيمته بالدولار
$6,502.50
الأصول التجارية والاستثمارية
قيمة الأسهم الحالية
عروض التجارة
البضائع المعدة للبيع
العقارات الاستثمارية
أصول أخرى
اختر مشاريعك الخيرية
يمكنك توزيع زكاتك على عدة مشاريع خيرية حسب رغبتك
سلة التبرعات
لم تقم بإضافة أي مشاريع بعد
إجمالي المبلغ المحدد
0.00 $
إتمام التبرع
شروط وجوب الزكاة
<ul class="space-y-3 text-gray-600">
<li class="flex items-start gap-3">
بلوغ النصاب (ما يعادل 85 جرام ذهب 24 قيراط)
</li>
<li class="flex items-start gap-3">
حولان الحول (مرور عام هجري على امتلاك المال)
</li>
<li class="flex items-start gap-3">
الملكية التامة للمال والقدرة على التصرف فيه
</li>
</ul>
أمانة وجدان
نلتزم في وجدان الخيرية بصرف الزكاة في مصارفها الشرعية الثمانية تحت إشراف لجان شرعية متخصصة، مع ضمان أعلى معايير الشفافية والتتبع.
ملخص الحساب
إجمالي المال الخاضع للزكاة
0.00 $
نصاب الزكاة الحالي
6,502.50 $
الزكاة الواجبة (2.5%)
0.00 $
أدخل المبلغ للتحقق
<a href="https://wa.me/905057763103" class="sponsorships-btn-secondary sponsorships-btn-full mt-4" target="_blank">
تواصل عبر واتساب للإستشارة والتبرع
</a>
جميع الحسابات مبنية على أسعار الذهب العالمية وأحدث الفتاوى الشرعية. نوصي باستشارة أهل العلم في المسائل الفقهية الدقيقة.
إعادة تعيين
حفظ الحساب
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
النقود والودائع
الذهب والفضة
الأسهم والتجارة
المشاريع الخيرية
-->
النقود والودائع البنكية
النقود المتوفرة
الودائع والأرصدة البنكية
ديون مستحقة لك
الديون التي تتوقع استردادها
الديون المستحقة عليك
تخصم من إجمالي الأموال
الذهب والفضة والمجوهرات
وزن الذهب (جرام)
ما يزيد عن الاستخدام الشخصي
عيار الذهب
عَيار 24 (نقي)
عَيار 22
عَيار 21
عَيار 18
وزن الفضة (جرام)
سعر الذهب اليوم
سعر الجرام بالدولار
حاسبة النصاب
نصاب الذهب
85 جرام
نصاب الفضة
595 جرام
قيمته بالدولار
$6,502.50
الأصول التجارية والاستثمارية
قيمة الأسهم الحالية
عروض التجارة
البضائع المعدة للبيع
العقارات الاستثمارية
أصول أخرى
اختر مشاريعك الخيرية
يمكنك توزيع زكاتك على عدة مشاريع خيرية حسب رغبتك
سلة التبرعات
لم تقم بإضافة أي مشاريع بعد
إجمالي المبلغ المحدد
0.00 $
إتمام التبرع
شروط وجوب الزكاة
<ul class="space-y-3 text-gray-600">
<li class="flex items-start gap-3">
بلوغ النصاب (ما يعادل 85 جرام ذهب 24 قيراط)
</li>
<li class="flex items-start gap-3">
حولان الحول (مرور عام هجري على امتلاك المال)
</li>
<li class="flex items-start gap-3">
الملكية التامة للمال والقدرة على التصرف فيه
</li>
</ul>
أمانة وجدان
نلتزم في وجدان الخيرية بصرف الزكاة في مصارفها الشرعية الثمانية تحت إشراف لجان شرعية متخصصة، مع ضمان أعلى معايير الشفافية والتتبع.
ملخص الحساب
إجمالي المال الخاضع للزكاة
0.00 $
نصاب الزكاة الحالي
6,502.50 $
الزكاة الواجبة (2.5%)
0.00 $
أدخل المبلغ للتحقق
<a href="https://wa.me/905057763103" class="sponsorships-btn-secondary sponsorships-btn-full mt-4" target="_blank">
تواصل عبر واتساب للإستشارة والتبرع
</a>
جميع الحسابات مبنية على أسعار الذهب العالمية وأحدث الفتاوى الشرعية. نوصي باستشارة أهل العلم في المسائل الفقهية الدقيقة.
إعادة تعيين
حفظ الحساب
') (Line: 58)
gavias_content_builder_render_el(Array) (Line: 22)
gavias_content_builder_frontend('[{"settings":{"element":"gva_row","bg_particles":"off","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","style_space":"remove_margin remove_padding remove_padding_col","padding_top":"0","padding_bottom":"0","margin_top":"0","margin_bottom":"0","layout":"container-fw","class":"aboutus"},"columns":[{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":" \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ركن الإسلام الثالث\r\n حاسبة الزكاة الذكيةأداء دقيق.. أثر كبير\r\n \r\n \r\n حاسبة متكاملة لحساب زكاتك وفق أحدث الأسعار وأصح الأحكام الشرعية، مصممة لمساعدتك على أداء فريضتك بدقة وثقة.\r\n \r\n \r\n \r\n \r\n \r\n نصاب الذهب اليوم\r\n 85 جرام\r\n \r\n \r\n \r\n \r\n ما يعادل $6,502.50 حسب سعر الذهب الحالي\r\n \r\n \r\n \r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","class":"zakatt"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n النقود والودائع\r\n \r\n \r\n \r\n الذهب والفضة\r\n \r\n \r\n \r\n الأسهم والتجارة\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n النقود والودائع البنكية\r\n \r\n \r\n \r\n \r\n النقود المتوفرة\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n الودائع والأرصدة البنكية\r\n \r\n \r\n \r\n \r\n \r\n \r\n ديون مستحقة لك\r\n \r\n \r\n \r\n \r\n الديون التي تتوقع استردادها\r\n \r\n \r\n الديون المستحقة عليك\r\n \r\n \r\n \r\n \r\n تخصم من إجمالي الأموال\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n الذهب والفضة والمجوهرات\r\n \r\n \r\n \r\n وزن الذهب (جرام)\r\n \r\n \r\n \r\n \r\n ما يزيد عن الاستخدام الشخصي\r\n \r\n \r\n عيار الذهب\r\n \r\n \r\n عَيار 24 (نقي)\r\n عَيار 22\r\n عَيار 21\r\n عَيار 18\r\n \r\n \r\n \r\n \r\n \r\n وزن الفضة (جرام)\r\n \r\n \r\n \r\n \r\n \r\n \r\n سعر الذهب اليوم\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n سعر الجرام بالدولار\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n حاسبة النصاب\r\n \r\n \r\n \r\n نصاب الذهب\r\n 85 جرام\r\n \r\n \r\n نصاب الفضة\r\n 595 جرام\r\n \r\n \r\n قيمته بالدولار\r\n $6,502.50\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n الأصول التجارية والاستثمارية\r\n \r\n \r\n \r\n قيمة الأسهم الحالية\r\n \r\n \r\n \r\n \r\n \r\n \r\n عروض التجارة\r\n \r\n \r\n \r\n \r\n البضائع المعدة للبيع\r\n \r\n \r\n العقارات الاستثمارية\r\n \r\n \r\n \r\n \r\n \r\n \r\n أصول أخرى\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n اختر مشاريعك الخيرية\r\n \r\n يمكنك توزيع زكاتك على عدة مشاريع خيرية حسب رغبتك\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n سلة التبرعات\r\n \r\n \r\n لم تقم بإضافة أي مشاريع بعد\r\n \r\n \r\n \r\n إجمالي المبلغ المحدد\r\n 0.00 $\r\n \r\n \r\n إتمام التبرع\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n شروط وجوب الزكاة\r\n \r\n <ul>\r\n <li>\r\n \r\n بلوغ النصاب (ما يعادل 85 جرام ذهب 24 قيراط)\r\n </li>\r\n <li>\r\n \r\n حولان الحول (مرور عام هجري على امتلاك المال)\r\n </li>\r\n <li>\r\n \r\n الملكية التامة للمال والقدرة على التصرف فيه\r\n </li>\r\n </ul>\r\n \r\n \r\n \r\n \r\n أمانة وجدان\r\n \r\n \r\n نلتزم في وجدان الخيرية بصرف الزكاة في مصارفها الشرعية الثمانية تحت إشراف لجان شرعية متخصصة، مع ضمان أعلى معايير الشفافية والتتبع.\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n ملخص الحساب\r\n \r\n\r\n \r\n \r\n إجمالي المال الخاضع للزكاة\r\n 0.00 $\r\n \r\n \r\n نصاب الزكاة الحالي\r\n 6,502.50 $\r\n \r\n \r\n\r\n \r\n الزكاة الواجبة (2.5%)\r\n 0.00 $\r\n \r\n \r\n أدخل المبلغ للتحقق\r\n \r\n \r\n\r\n \r\n <a>\r\n \r\n تواصل عبر واتساب للإستشارة والتبرع\r\n </a>\r\n \r\n\r\n \r\n جميع الحسابات مبنية على أسعار الذهب العالمية وأحدث الفتاوى الشرعية. نوصي باستشارة أهل العلم في المسائل الفقهية الدقيقة.\r\n \r\n \r\n \r\n \r\n \r\n إعادة تعيين\r\n \r\n \r\n حفظ الحساب\r\n \r\n \r\n \r\n \r\n \r\n \r\n ","animate_delay":"0","el_class":"zakatt"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":" \r\n // Initialize charity projects\r\n const charityProjects = [\r\n {\r\n id: 1,\r\n title: \"إفطار صائم\",\r\n description: \"توفير وجبات إفطار شهر رمضان للأسر المحتاجة\",\r\n icon: \"fa-utensils\",\r\n cost: 500,\r\n selected: false\r\n },\r\n {\r\n id: 2,\r\n title: \"كسوة الشتاء\",\r\n description: \"توزيع ملابس شتوية للأطفال والأسر المحتاجة\",\r\n icon: \"fa-shirt\",\r\n cost: 300,\r\n selected: false\r\n },\r\n {\r\n id: 3,\r\n title: \"سقيا الماء\",\r\n description: \"حفر آبار وتوفير مياه شرب نظيفة\",\r\n icon: \"fa-droplet\",\r\n cost: 1000,\r\n selected: false\r\n },\r\n {\r\n id: 4,\r\n title: \"تعليم الأيتام\",\r\n description: \"دعم تعليمي للأيتام ومستلزمات مدرسية\",\r\n icon: \"fa-graduation-cap\",\r\n cost: 400,\r\n selected: false\r\n },\r\n {\r\n id: 5,\r\n title: \"علاج المرضى\",\r\n description: \"تغطية نفقات علاج للأسر غير القادرة\",\r\n icon: \"fa-heart-pulse\",\r\n cost: 800,\r\n selected: false\r\n },\r\n {\r\n id: 6,\r\n title: \"رعاية الأرامل\",\r\n description: \"دعم شهري للأرامل وأطفالهن\",\r\n icon: \"fa-hand-holding-heart\",\r\n cost: 600,\r\n selected: false\r\n }\r\n ];\r\n\r\n // Donation basket\r\n let donationBasket = [];\r\n \r\n // Tab system\r\n function zakatSwitchTab(tab) {\r\n // Update tabs\r\n document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));\r\n document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));\r\n \r\n // Activate selected tab\r\n document.getElementById('zakat-tab-' + tab).classList.add('active');\r\n document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');\r\n \r\n // Load charity projects if on charity tab\r\n if (tab === 'charity') {\r\n loadCharityProjects();\r\n }\r\n \r\n // Add animation\r\n const activeSection = document.getElementById('zakat-section-' + tab);\r\n activeSection.classList.add('zakat-fade-in');\r\n }\r\n \r\n // Load charity projects\r\n function loadCharityProjects() {\r\n const container = document.getElementById('charity-projects-container');\r\n container.innerHTML = '';\r\n \r\n charityProjects.forEach(project => {\r\n const projectElement = document.createElement('div');\r\n projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;\r\n projectElement.innerHTML = `\r\n \r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n ${project.selected ? 'مضاف' : 'إضافة'}\r\n \r\n \r\n `;\r\n container.appendChild(projectElement);\r\n });\r\n \r\n updateBasketDisplay();\r\n }\r\n \r\n // Toggle charity project selection\r\n function toggleCharityProject(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n project.selected = !project.selected;\r\n \r\n if (project.selected) {\r\n donationBasket.push(project);\r\n } else {\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n }\r\n \r\n loadCharityProjects();\r\n updateBasketDisplay();\r\n }\r\n \r\n // Update donation basket display\r\n function updateBasketDisplay() {\r\n const container = document.getElementById('donation-basket-items');\r\n const totalElement = document.getElementById('basket-total');\r\n \r\n if (donationBasket.length === 0) {\r\n container.innerHTML = 'لم تقم بإضافة أي مشاريع بعد';\r\n totalElement.textContent = '0.00 $';\r\n return;\r\n }\r\n \r\n let total = 0;\r\n let itemsHTML = '';\r\n \r\n donationBasket.forEach(project => {\r\n total += project.cost;\r\n itemsHTML += `\r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n \r\n \r\n \r\n \r\n `;\r\n });\r\n \r\n container.innerHTML = itemsHTML;\r\n totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Remove from basket\r\n function removeFromBasket(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n if (project) {\r\n project.selected = false;\r\n }\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n loadCharityProjects();\r\n }\r\n \r\n // Enhanced Calculation\r\n function zakatCalculate() {\r\n // Money\r\n const cash = parseFloat(document.getElementById('zakat-cash-money').value) || 0;\r\n const bank = parseFloat(document.getElementById('zakat-bank-money').value) || 0;\r\n const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me').value) || 0;\r\n const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me').value) || 0;\r\n \r\n // Gold/Silver\r\n const goldW = parseFloat(document.getElementById('zakat-gold-weight').value) || 0;\r\n const carat = parseFloat(document.getElementById('zakat-gold-carat').value) || 0;\r\n const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;\r\n const silverW = parseFloat(document.getElementById('zakat-silver-weight').value) || 0;\r\n const silverRate = 0.95;\r\n \r\n // Stocks & Business\r\n const stocks = parseFloat(document.getElementById('zakat-stocks-value').value) || 0;\r\n const trade = parseFloat(document.getElementById('zakat-trade-goods').value) || 0;\r\n const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;\r\n const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;\r\n \r\n // Calculations\r\n const gold24Equivalent = goldW * (carat / 24);\r\n const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);\r\n const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);\r\n const businessAssets = stocks + trade + realEstate + otherAssets;\r\n const total = Math.max(0, moneyAssets + metalAssets + businessAssets);\r\n \r\n // UI Update - Total\r\n document.getElementById('zakat-total-assets').textContent = \r\n total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n // Nisab Logic (85g Gold 24k)\r\n const nisab = 85 * goldRate;\r\n document.getElementById('zakat-nisab-value').textContent = \r\n nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n // Update nisab displays\r\n document.getElementById('nisab-value-display').textContent = \r\n nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n document.getElementById('current-nisab').textContent = '85 جرام';\r\n document.getElementById('nisab-value').textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n // Update progress bar\r\n const nisabProgress = Math.min(100, (total / nisab) * 100);\r\n document.getElementById('nisab-progress').style.width = `${nisabProgress}%`;\r\n \r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const statusBadge = document.getElementById('zakat-status-badge');\r\n \r\n if (total >= nisab && total > 0) {\r\n const zakat = total * 0.025;\r\n zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n statusBadge.innerHTML = ' وجبت الزكاة (بلغت النصاب)';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4\";\r\n } else {\r\n zakatAmountEl.textContent = '0.00 $';\r\n \r\n if (total > 0) {\r\n statusBadge.innerHTML = ' لم تبلغ النصاب بعد';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4\";\r\n } else {\r\n statusBadge.innerHTML = ' أدخل المبلغ للتحقق';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4\";\r\n }\r\n }\r\n }\r\n \r\n // Fetch live rates\r\n async function zakatFetchRates() {\r\n const icon = document.getElementById('zakat-refresh-icon');\r\n icon.classList.add('fa-spin');\r\n \r\n // Simulate API call\r\n await new Promise(r => setTimeout(r, 1000));\r\n \r\n // Dynamic change for effect (simulated rate change)\r\n const current = parseFloat(document.getElementById('zakat-gold-rate').value);\r\n const newRate = current + (Math.random() - 0.5);\r\n document.getElementById('zakat-gold-rate').value = newRate.toFixed(2);\r\n \r\n icon.classList.remove('fa-spin');\r\n zakatCalculate();\r\n }\r\n \r\n // Reset form\r\n function zakatResetForm() {\r\n document.querySelectorAll('input[type=\"number\"]').forEach(input => input.value = '');\r\n donationBasket = [];\r\n charityProjects.forEach(p => p.selected = false);\r\n loadCharityProjects();\r\n zakatCalculate();\r\n }\r\n \r\n // Save calculation\r\n function zakatSaveCalculation() {\r\n const total = document.getElementById('zakat-total-assets').textContent;\r\n const zakat = document.getElementById('zakat-amount').textContent;\r\n \r\n alert(`تم حفظ الحساب:\\nإجمالي المال: ${total}\\nالزكاة الواجبة: ${zakat}`);\r\n }\r\n \r\n // Checkout\r\n function zakatCheckout() {\r\n const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);\r\n if (total === 0) {\r\n alert('الرجاء إضافة مشاريع إلى سلة التبرعات أولاً');\r\n return;\r\n }\r\n \r\n alert(`سيتم توجيهك لصفحة الدفع لإكمال تبرعك بمبلغ ${total.toLocaleString()} $`);\r\n // In production: window.location.href = 'payment.html';\r\n }\r\n \r\n // Redirect to payment\r\n function zakatRedirectToPayment() {\r\n const zakatAmount = document.getElementById('zakat-amount').textContent;\r\n if (zakatAmount === '0.00 $') {\r\n alert('الرجاء إدخال المبلغ أولاً لحساب الزكاة');\r\n return;\r\n }\r\n \r\n alert(`سيتم توجيهك لصفحة الدفع لإتمام تبرعك بمبلغ ${zakatAmount}`);\r\n // In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);\r\n }\r\n \r\n // Intersection Observer for animations\r\n document.addEventListener('DOMContentLoaded', () => {\r\n // Initialize animations\r\n const reveals = document.querySelectorAll('.zakat-reveal');\r\n const obs = new IntersectionObserver((entries) => {\r\n entries.forEach(e => {\r\n if (e.isIntersecting) e.target.classList.add('active');\r\n });\r\n }, { threshold: 0.1 });\r\n reveals.forEach(r => obs.observe(r));\r\n \r\n // Initialize calculation\r\n zakatCalculate();\r\n \r\n // Load initial nisab value\r\n const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;\r\n const nisab = 85 * goldRate;\r\n document.getElementById('zakat-nisab-value').textContent = \r\n nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n });\r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'ar') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'ar') (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. Support for this callback implementation is deprecated in 8.8.0 and will be removed in Drupal 9.0.0. See https://www.drupal.org/node/2966725', 'silenced_deprecation', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in element_gva_column->render_content() (line 462 of themes/gavias_kunco/gva_content_builder/gva_column.php).
element_gva_column->render_content(Array, '
// Initialize charity projects
const charityProjects = [
{
id: 1,
title: "إفطار صائم",
description: "توفير وجبات إفطار شهر رمضان للأسر المحتاجة",
icon: "fa-utensils",
cost: 500,
selected: false
},
{
id: 2,
title: "كسوة الشتاء",
description: "توزيع ملابس شتوية للأطفال والأسر المحتاجة",
icon: "fa-shirt",
cost: 300,
selected: false
},
{
id: 3,
title: "سقيا الماء",
description: "حفر آبار وتوفير مياه شرب نظيفة",
icon: "fa-droplet",
cost: 1000,
selected: false
},
{
id: 4,
title: "تعليم الأيتام",
description: "دعم تعليمي للأيتام ومستلزمات مدرسية",
icon: "fa-graduation-cap",
cost: 400,
selected: false
},
{
id: 5,
title: "علاج المرضى",
description: "تغطية نفقات علاج للأسر غير القادرة",
icon: "fa-heart-pulse",
cost: 800,
selected: false
},
{
id: 6,
title: "رعاية الأرامل",
description: "دعم شهري للأرامل وأطفالهن",
icon: "fa-hand-holding-heart",
cost: 600,
selected: false
}
];
// Donation basket
let donationBasket = [];
// Tab system
function zakatSwitchTab(tab) {
// Update tabs
document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));
document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));
// Activate selected tab
document.getElementById('zakat-tab-' + tab).classList.add('active');
document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');
// Load charity projects if on charity tab
if (tab === 'charity') {
loadCharityProjects();
}
// Add animation
const activeSection = document.getElementById('zakat-section-' + tab);
activeSection.classList.add('zakat-fade-in');
}
// Load charity projects
function loadCharityProjects() {
const container = document.getElementById('charity-projects-container');
container.innerHTML = '';
charityProjects.forEach(project => {
const projectElement = document.createElement('div');
projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;
projectElement.innerHTML = `
${project.title}
${project.description}
${project.cost.toLocaleString()} $
${project.selected ? 'مضاف' : 'إضافة'}
`;
container.appendChild(projectElement);
});
updateBasketDisplay();
}
// Toggle charity project selection
function toggleCharityProject(projectId) {
const project = charityProjects.find(p => p.id === projectId);
project.selected = !project.selected;
if (project.selected) {
donationBasket.push(project);
} else {
donationBasket = donationBasket.filter(p => p.id !== projectId);
}
loadCharityProjects();
updateBasketDisplay();
}
// Update donation basket display
function updateBasketDisplay() {
const container = document.getElementById('donation-basket-items');
const totalElement = document.getElementById('basket-total');
if (donationBasket.length === 0) {
container.innerHTML = 'لم تقم بإضافة أي مشاريع بعد';
totalElement.textContent = '0.00 $';
return;
}
let total = 0;
let itemsHTML = '';
donationBasket.forEach(project => {
total += project.cost;
itemsHTML += `
${project.title}
${project.description}
${project.cost.toLocaleString()} $
`;
});
container.innerHTML = itemsHTML;
totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Remove from basket
function removeFromBasket(projectId) {
const project = charityProjects.find(p => p.id === projectId);
if (project) {
project.selected = false;
}
donationBasket = donationBasket.filter(p => p.id !== projectId);
loadCharityProjects();
}
// Enhanced Calculation
function zakatCalculate() {
// Money
const cash = parseFloat(document.getElementById('zakat-cash-money').value) || 0;
const bank = parseFloat(document.getElementById('zakat-bank-money').value) || 0;
const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me').value) || 0;
const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me').value) || 0;
// Gold/Silver
const goldW = parseFloat(document.getElementById('zakat-gold-weight').value) || 0;
const carat = parseFloat(document.getElementById('zakat-gold-carat').value) || 0;
const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;
const silverW = parseFloat(document.getElementById('zakat-silver-weight').value) || 0;
const silverRate = 0.95;
// Stocks & Business
const stocks = parseFloat(document.getElementById('zakat-stocks-value').value) || 0;
const trade = parseFloat(document.getElementById('zakat-trade-goods').value) || 0;
const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;
const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;
// Calculations
const gold24Equivalent = goldW * (carat / 24);
const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);
const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);
const businessAssets = stocks + trade + realEstate + otherAssets;
const total = Math.max(0, moneyAssets + metalAssets + businessAssets);
// UI Update - Total
document.getElementById('zakat-total-assets').textContent =
total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
// Nisab Logic (85g Gold 24k)
const nisab = 85 * goldRate;
document.getElementById('zakat-nisab-value').textContent =
nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
// Update nisab displays
document.getElementById('nisab-value-display').textContent =
nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
document.getElementById('current-nisab').textContent = '85 جرام';
document.getElementById('nisab-value').textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
// Update progress bar
const nisabProgress = Math.min(100, (total / nisab) * 100);
document.getElementById('nisab-progress').style.width = `${nisabProgress}%`;
const zakatAmountEl = document.getElementById('zakat-amount');
const statusBadge = document.getElementById('zakat-status-badge');
if (total >= nisab && total > 0) {
const zakat = total * 0.025;
zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
statusBadge.innerHTML = ' وجبت الزكاة (بلغت النصاب)';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4";
} else {
zakatAmountEl.textContent = '0.00 $';
if (total > 0) {
statusBadge.innerHTML = ' لم تبلغ النصاب بعد';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4";
} else {
statusBadge.innerHTML = ' أدخل المبلغ للتحقق';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4";
}
}
}
// Fetch live rates
async function zakatFetchRates() {
const icon = document.getElementById('zakat-refresh-icon');
icon.classList.add('fa-spin');
// Simulate API call
await new Promise(r => setTimeout(r, 1000));
// Dynamic change for effect (simulated rate change)
const current = parseFloat(document.getElementById('zakat-gold-rate').value);
const newRate = current + (Math.random() - 0.5);
document.getElementById('zakat-gold-rate').value = newRate.toFixed(2);
icon.classList.remove('fa-spin');
zakatCalculate();
}
// Reset form
function zakatResetForm() {
document.querySelectorAll('input[type="number"]').forEach(input => input.value = '');
donationBasket = [];
charityProjects.forEach(p => p.selected = false);
loadCharityProjects();
zakatCalculate();
}
// Save calculation
function zakatSaveCalculation() {
const total = document.getElementById('zakat-total-assets').textContent;
const zakat = document.getElementById('zakat-amount').textContent;
alert(`تم حفظ الحساب:\nإجمالي المال: ${total}\nالزكاة الواجبة: ${zakat}`);
}
// Checkout
function zakatCheckout() {
const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);
if (total === 0) {
alert('الرجاء إضافة مشاريع إلى سلة التبرعات أولاً');
return;
}
alert(`سيتم توجيهك لصفحة الدفع لإكمال تبرعك بمبلغ ${total.toLocaleString()} $`);
// In production: window.location.href = 'payment.html';
}
// Redirect to payment
function zakatRedirectToPayment() {
const zakatAmount = document.getElementById('zakat-amount').textContent;
if (zakatAmount === '0.00 $') {
alert('الرجاء إدخال المبلغ أولاً لحساب الزكاة');
return;
}
alert(`سيتم توجيهك لصفحة الدفع لإتمام تبرعك بمبلغ ${zakatAmount}`);
// In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);
}
// Intersection Observer for animations
document.addEventListener('DOMContentLoaded', () => {
// Initialize animations
const reveals = document.querySelectorAll('.zakat-reveal');
const obs = new IntersectionObserver((entries) => {
entries.forEach(e => {
if (e.isIntersecting) e.target.classList.add('active');
});
}, { threshold: 0.1 });
reveals.forEach(r => obs.observe(r));
// Initialize calculation
zakatCalculate();
// Load initial nisab value
const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;
const nisab = 85 * goldRate;
document.getElementById('zakat-nisab-value').textContent =
nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
});
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
// Initialize charity projects
const charityProjects = [
{
id: 1,
title: "إفطار صائم",
description: "توفير وجبات إفطار شهر رمضان للأسر المحتاجة",
icon: "fa-utensils",
cost: 500,
selected: false
},
{
id: 2,
title: "كسوة الشتاء",
description: "توزيع ملابس شتوية للأطفال والأسر المحتاجة",
icon: "fa-shirt",
cost: 300,
selected: false
},
{
id: 3,
title: "سقيا الماء",
description: "حفر آبار وتوفير مياه شرب نظيفة",
icon: "fa-droplet",
cost: 1000,
selected: false
},
{
id: 4,
title: "تعليم الأيتام",
description: "دعم تعليمي للأيتام ومستلزمات مدرسية",
icon: "fa-graduation-cap",
cost: 400,
selected: false
},
{
id: 5,
title: "علاج المرضى",
description: "تغطية نفقات علاج للأسر غير القادرة",
icon: "fa-heart-pulse",
cost: 800,
selected: false
},
{
id: 6,
title: "رعاية الأرامل",
description: "دعم شهري للأرامل وأطفالهن",
icon: "fa-hand-holding-heart",
cost: 600,
selected: false
}
];
// Donation basket
let donationBasket = [];
// Tab system
function zakatSwitchTab(tab) {
// Update tabs
document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));
document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));
// Activate selected tab
document.getElementById('zakat-tab-' + tab).classList.add('active');
document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');
// Load charity projects if on charity tab
if (tab === 'charity') {
loadCharityProjects();
}
// Add animation
const activeSection = document.getElementById('zakat-section-' + tab);
activeSection.classList.add('zakat-fade-in');
}
// Load charity projects
function loadCharityProjects() {
const container = document.getElementById('charity-projects-container');
container.innerHTML = '';
charityProjects.forEach(project => {
const projectElement = document.createElement('div');
projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;
projectElement.innerHTML = `
${project.title}
${project.description}
${project.cost.toLocaleString()} $
${project.selected ? 'مضاف' : 'إضافة'}
`;
container.appendChild(projectElement);
});
updateBasketDisplay();
}
// Toggle charity project selection
function toggleCharityProject(projectId) {
const project = charityProjects.find(p => p.id === projectId);
project.selected = !project.selected;
if (project.selected) {
donationBasket.push(project);
} else {
donationBasket = donationBasket.filter(p => p.id !== projectId);
}
loadCharityProjects();
updateBasketDisplay();
}
// Update donation basket display
function updateBasketDisplay() {
const container = document.getElementById('donation-basket-items');
const totalElement = document.getElementById('basket-total');
if (donationBasket.length === 0) {
container.innerHTML = 'لم تقم بإضافة أي مشاريع بعد';
totalElement.textContent = '0.00 $';
return;
}
let total = 0;
let itemsHTML = '';
donationBasket.forEach(project => {
total += project.cost;
itemsHTML += `
${project.title}
${project.description}
${project.cost.toLocaleString()} $
`;
});
container.innerHTML = itemsHTML;
totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Remove from basket
function removeFromBasket(projectId) {
const project = charityProjects.find(p => p.id === projectId);
if (project) {
project.selected = false;
}
donationBasket = donationBasket.filter(p => p.id !== projectId);
loadCharityProjects();
}
// Enhanced Calculation
function zakatCalculate() {
// Money
const cash = parseFloat(document.getElementById('zakat-cash-money').value) || 0;
const bank = parseFloat(document.getElementById('zakat-bank-money').value) || 0;
const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me').value) || 0;
const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me').value) || 0;
// Gold/Silver
const goldW = parseFloat(document.getElementById('zakat-gold-weight').value) || 0;
const carat = parseFloat(document.getElementById('zakat-gold-carat').value) || 0;
const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;
const silverW = parseFloat(document.getElementById('zakat-silver-weight').value) || 0;
const silverRate = 0.95;
// Stocks & Business
const stocks = parseFloat(document.getElementById('zakat-stocks-value').value) || 0;
const trade = parseFloat(document.getElementById('zakat-trade-goods').value) || 0;
const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;
const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;
// Calculations
const gold24Equivalent = goldW * (carat / 24);
const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);
const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);
const businessAssets = stocks + trade + realEstate + otherAssets;
const total = Math.max(0, moneyAssets + metalAssets + businessAssets);
// UI Update - Total
document.getElementById('zakat-total-assets').textContent =
total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
// Nisab Logic (85g Gold 24k)
const nisab = 85 * goldRate;
document.getElementById('zakat-nisab-value').textContent =
nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
// Update nisab displays
document.getElementById('nisab-value-display').textContent =
nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
document.getElementById('current-nisab').textContent = '85 جرام';
document.getElementById('nisab-value').textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
// Update progress bar
const nisabProgress = Math.min(100, (total / nisab) * 100);
document.getElementById('nisab-progress').style.width = `${nisabProgress}%`;
const zakatAmountEl = document.getElementById('zakat-amount');
const statusBadge = document.getElementById('zakat-status-badge');
if (total >= nisab && total > 0) {
const zakat = total * 0.025;
zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
statusBadge.innerHTML = ' وجبت الزكاة (بلغت النصاب)';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4";
} else {
zakatAmountEl.textContent = '0.00 $';
if (total > 0) {
statusBadge.innerHTML = ' لم تبلغ النصاب بعد';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4";
} else {
statusBadge.innerHTML = ' أدخل المبلغ للتحقق';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4";
}
}
}
// Fetch live rates
async function zakatFetchRates() {
const icon = document.getElementById('zakat-refresh-icon');
icon.classList.add('fa-spin');
// Simulate API call
await new Promise(r => setTimeout(r, 1000));
// Dynamic change for effect (simulated rate change)
const current = parseFloat(document.getElementById('zakat-gold-rate').value);
const newRate = current + (Math.random() - 0.5);
document.getElementById('zakat-gold-rate').value = newRate.toFixed(2);
icon.classList.remove('fa-spin');
zakatCalculate();
}
// Reset form
function zakatResetForm() {
document.querySelectorAll('input[type="number"]').forEach(input => input.value = '');
donationBasket = [];
charityProjects.forEach(p => p.selected = false);
loadCharityProjects();
zakatCalculate();
}
// Save calculation
function zakatSaveCalculation() {
const total = document.getElementById('zakat-total-assets').textContent;
const zakat = document.getElementById('zakat-amount').textContent;
alert(`تم حفظ الحساب:\nإجمالي المال: ${total}\nالزكاة الواجبة: ${zakat}`);
}
// Checkout
function zakatCheckout() {
const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);
if (total === 0) {
alert('الرجاء إضافة مشاريع إلى سلة التبرعات أولاً');
return;
}
alert(`سيتم توجيهك لصفحة الدفع لإكمال تبرعك بمبلغ ${total.toLocaleString()} $`);
// In production: window.location.href = 'payment.html';
}
// Redirect to payment
function zakatRedirectToPayment() {
const zakatAmount = document.getElementById('zakat-amount').textContent;
if (zakatAmount === '0.00 $') {
alert('الرجاء إدخال المبلغ أولاً لحساب الزكاة');
return;
}
alert(`سيتم توجيهك لصفحة الدفع لإتمام تبرعك بمبلغ ${zakatAmount}`);
// In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);
}
// Intersection Observer for animations
document.addEventListener('DOMContentLoaded', () => {
// Initialize animations
const reveals = document.querySelectorAll('.zakat-reveal');
const obs = new IntersectionObserver((entries) => {
entries.forEach(e => {
if (e.isIntersecting) e.target.classList.add('active');
});
}, { threshold: 0.1 });
reveals.forEach(r => obs.observe(r));
// Initialize calculation
zakatCalculate();
// Load initial nisab value
const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;
const nisab = 85 * goldRate;
document.getElementById('zakat-nisab-value').textContent =
nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
});
') (Line: 58)
gavias_content_builder_render_el(Array) (Line: 22)
gavias_content_builder_frontend('[{"settings":{"element":"gva_row","bg_particles":"off","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","style_space":"remove_margin remove_padding remove_padding_col","padding_top":"0","padding_bottom":"0","margin_top":"0","margin_bottom":"0","layout":"container-fw","class":"aboutus"},"columns":[{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":" \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ركن الإسلام الثالث\r\n حاسبة الزكاة الذكيةأداء دقيق.. أثر كبير\r\n \r\n \r\n حاسبة متكاملة لحساب زكاتك وفق أحدث الأسعار وأصح الأحكام الشرعية، مصممة لمساعدتك على أداء فريضتك بدقة وثقة.\r\n \r\n \r\n \r\n \r\n \r\n نصاب الذهب اليوم\r\n 85 جرام\r\n \r\n \r\n \r\n \r\n ما يعادل $6,502.50 حسب سعر الذهب الحالي\r\n \r\n \r\n \r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","class":"zakatt"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n النقود والودائع\r\n \r\n \r\n \r\n الذهب والفضة\r\n \r\n \r\n \r\n الأسهم والتجارة\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n النقود والودائع البنكية\r\n \r\n \r\n \r\n \r\n النقود المتوفرة\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n الودائع والأرصدة البنكية\r\n \r\n \r\n \r\n \r\n \r\n \r\n ديون مستحقة لك\r\n \r\n \r\n \r\n \r\n الديون التي تتوقع استردادها\r\n \r\n \r\n الديون المستحقة عليك\r\n \r\n \r\n \r\n \r\n تخصم من إجمالي الأموال\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n الذهب والفضة والمجوهرات\r\n \r\n \r\n \r\n وزن الذهب (جرام)\r\n \r\n \r\n \r\n \r\n ما يزيد عن الاستخدام الشخصي\r\n \r\n \r\n عيار الذهب\r\n \r\n \r\n عَيار 24 (نقي)\r\n عَيار 22\r\n عَيار 21\r\n عَيار 18\r\n \r\n \r\n \r\n \r\n \r\n وزن الفضة (جرام)\r\n \r\n \r\n \r\n \r\n \r\n \r\n سعر الذهب اليوم\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n سعر الجرام بالدولار\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n حاسبة النصاب\r\n \r\n \r\n \r\n نصاب الذهب\r\n 85 جرام\r\n \r\n \r\n نصاب الفضة\r\n 595 جرام\r\n \r\n \r\n قيمته بالدولار\r\n $6,502.50\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n الأصول التجارية والاستثمارية\r\n \r\n \r\n \r\n قيمة الأسهم الحالية\r\n \r\n \r\n \r\n \r\n \r\n \r\n عروض التجارة\r\n \r\n \r\n \r\n \r\n البضائع المعدة للبيع\r\n \r\n \r\n العقارات الاستثمارية\r\n \r\n \r\n \r\n \r\n \r\n \r\n أصول أخرى\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n اختر مشاريعك الخيرية\r\n \r\n يمكنك توزيع زكاتك على عدة مشاريع خيرية حسب رغبتك\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n سلة التبرعات\r\n \r\n \r\n لم تقم بإضافة أي مشاريع بعد\r\n \r\n \r\n \r\n إجمالي المبلغ المحدد\r\n 0.00 $\r\n \r\n \r\n إتمام التبرع\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n شروط وجوب الزكاة\r\n \r\n <ul>\r\n <li>\r\n \r\n بلوغ النصاب (ما يعادل 85 جرام ذهب 24 قيراط)\r\n </li>\r\n <li>\r\n \r\n حولان الحول (مرور عام هجري على امتلاك المال)\r\n </li>\r\n <li>\r\n \r\n الملكية التامة للمال والقدرة على التصرف فيه\r\n </li>\r\n </ul>\r\n \r\n \r\n \r\n \r\n أمانة وجدان\r\n \r\n \r\n نلتزم في وجدان الخيرية بصرف الزكاة في مصارفها الشرعية الثمانية تحت إشراف لجان شرعية متخصصة، مع ضمان أعلى معايير الشفافية والتتبع.\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n ملخص الحساب\r\n \r\n\r\n \r\n \r\n إجمالي المال الخاضع للزكاة\r\n 0.00 $\r\n \r\n \r\n نصاب الزكاة الحالي\r\n 6,502.50 $\r\n \r\n \r\n\r\n \r\n الزكاة الواجبة (2.5%)\r\n 0.00 $\r\n \r\n \r\n أدخل المبلغ للتحقق\r\n \r\n \r\n\r\n \r\n <a>\r\n \r\n تواصل عبر واتساب للإستشارة والتبرع\r\n </a>\r\n \r\n\r\n \r\n جميع الحسابات مبنية على أسعار الذهب العالمية وأحدث الفتاوى الشرعية. نوصي باستشارة أهل العلم في المسائل الفقهية الدقيقة.\r\n \r\n \r\n \r\n \r\n \r\n إعادة تعيين\r\n \r\n \r\n حفظ الحساب\r\n \r\n \r\n \r\n \r\n \r\n \r\n ","animate_delay":"0","el_class":"zakatt"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":" \r\n // Initialize charity projects\r\n const charityProjects = [\r\n {\r\n id: 1,\r\n title: \"إفطار صائم\",\r\n description: \"توفير وجبات إفطار شهر رمضان للأسر المحتاجة\",\r\n icon: \"fa-utensils\",\r\n cost: 500,\r\n selected: false\r\n },\r\n {\r\n id: 2,\r\n title: \"كسوة الشتاء\",\r\n description: \"توزيع ملابس شتوية للأطفال والأسر المحتاجة\",\r\n icon: \"fa-shirt\",\r\n cost: 300,\r\n selected: false\r\n },\r\n {\r\n id: 3,\r\n title: \"سقيا الماء\",\r\n description: \"حفر آبار وتوفير مياه شرب نظيفة\",\r\n icon: \"fa-droplet\",\r\n cost: 1000,\r\n selected: false\r\n },\r\n {\r\n id: 4,\r\n title: \"تعليم الأيتام\",\r\n description: \"دعم تعليمي للأيتام ومستلزمات مدرسية\",\r\n icon: \"fa-graduation-cap\",\r\n cost: 400,\r\n selected: false\r\n },\r\n {\r\n id: 5,\r\n title: \"علاج المرضى\",\r\n description: \"تغطية نفقات علاج للأسر غير القادرة\",\r\n icon: \"fa-heart-pulse\",\r\n cost: 800,\r\n selected: false\r\n },\r\n {\r\n id: 6,\r\n title: \"رعاية الأرامل\",\r\n description: \"دعم شهري للأرامل وأطفالهن\",\r\n icon: \"fa-hand-holding-heart\",\r\n cost: 600,\r\n selected: false\r\n }\r\n ];\r\n\r\n // Donation basket\r\n let donationBasket = [];\r\n \r\n // Tab system\r\n function zakatSwitchTab(tab) {\r\n // Update tabs\r\n document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));\r\n document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));\r\n \r\n // Activate selected tab\r\n document.getElementById('zakat-tab-' + tab).classList.add('active');\r\n document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');\r\n \r\n // Load charity projects if on charity tab\r\n if (tab === 'charity') {\r\n loadCharityProjects();\r\n }\r\n \r\n // Add animation\r\n const activeSection = document.getElementById('zakat-section-' + tab);\r\n activeSection.classList.add('zakat-fade-in');\r\n }\r\n \r\n // Load charity projects\r\n function loadCharityProjects() {\r\n const container = document.getElementById('charity-projects-container');\r\n container.innerHTML = '';\r\n \r\n charityProjects.forEach(project => {\r\n const projectElement = document.createElement('div');\r\n projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;\r\n projectElement.innerHTML = `\r\n \r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n ${project.selected ? 'مضاف' : 'إضافة'}\r\n \r\n \r\n `;\r\n container.appendChild(projectElement);\r\n });\r\n \r\n updateBasketDisplay();\r\n }\r\n \r\n // Toggle charity project selection\r\n function toggleCharityProject(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n project.selected = !project.selected;\r\n \r\n if (project.selected) {\r\n donationBasket.push(project);\r\n } else {\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n }\r\n \r\n loadCharityProjects();\r\n updateBasketDisplay();\r\n }\r\n \r\n // Update donation basket display\r\n function updateBasketDisplay() {\r\n const container = document.getElementById('donation-basket-items');\r\n const totalElement = document.getElementById('basket-total');\r\n \r\n if (donationBasket.length === 0) {\r\n container.innerHTML = 'لم تقم بإضافة أي مشاريع بعد';\r\n totalElement.textContent = '0.00 $';\r\n return;\r\n }\r\n \r\n let total = 0;\r\n let itemsHTML = '';\r\n \r\n donationBasket.forEach(project => {\r\n total += project.cost;\r\n itemsHTML += `\r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n \r\n \r\n \r\n \r\n `;\r\n });\r\n \r\n container.innerHTML = itemsHTML;\r\n totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Remove from basket\r\n function removeFromBasket(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n if (project) {\r\n project.selected = false;\r\n }\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n loadCharityProjects();\r\n }\r\n \r\n // Enhanced Calculation\r\n function zakatCalculate() {\r\n // Money\r\n const cash = parseFloat(document.getElementById('zakat-cash-money').value) || 0;\r\n const bank = parseFloat(document.getElementById('zakat-bank-money').value) || 0;\r\n const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me').value) || 0;\r\n const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me').value) || 0;\r\n \r\n // Gold/Silver\r\n const goldW = parseFloat(document.getElementById('zakat-gold-weight').value) || 0;\r\n const carat = parseFloat(document.getElementById('zakat-gold-carat').value) || 0;\r\n const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;\r\n const silverW = parseFloat(document.getElementById('zakat-silver-weight').value) || 0;\r\n const silverRate = 0.95;\r\n \r\n // Stocks & Business\r\n const stocks = parseFloat(document.getElementById('zakat-stocks-value').value) || 0;\r\n const trade = parseFloat(document.getElementById('zakat-trade-goods').value) || 0;\r\n const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;\r\n const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;\r\n \r\n // Calculations\r\n const gold24Equivalent = goldW * (carat / 24);\r\n const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);\r\n const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);\r\n const businessAssets = stocks + trade + realEstate + otherAssets;\r\n const total = Math.max(0, moneyAssets + metalAssets + businessAssets);\r\n \r\n // UI Update - Total\r\n document.getElementById('zakat-total-assets').textContent = \r\n total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n // Nisab Logic (85g Gold 24k)\r\n const nisab = 85 * goldRate;\r\n document.getElementById('zakat-nisab-value').textContent = \r\n nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n // Update nisab displays\r\n document.getElementById('nisab-value-display').textContent = \r\n nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n document.getElementById('current-nisab').textContent = '85 جرام';\r\n document.getElementById('nisab-value').textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n // Update progress bar\r\n const nisabProgress = Math.min(100, (total / nisab) * 100);\r\n document.getElementById('nisab-progress').style.width = `${nisabProgress}%`;\r\n \r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const statusBadge = document.getElementById('zakat-status-badge');\r\n \r\n if (total >= nisab && total > 0) {\r\n const zakat = total * 0.025;\r\n zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n statusBadge.innerHTML = ' وجبت الزكاة (بلغت النصاب)';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4\";\r\n } else {\r\n zakatAmountEl.textContent = '0.00 $';\r\n \r\n if (total > 0) {\r\n statusBadge.innerHTML = ' لم تبلغ النصاب بعد';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4\";\r\n } else {\r\n statusBadge.innerHTML = ' أدخل المبلغ للتحقق';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4\";\r\n }\r\n }\r\n }\r\n \r\n // Fetch live rates\r\n async function zakatFetchRates() {\r\n const icon = document.getElementById('zakat-refresh-icon');\r\n icon.classList.add('fa-spin');\r\n \r\n // Simulate API call\r\n await new Promise(r => setTimeout(r, 1000));\r\n \r\n // Dynamic change for effect (simulated rate change)\r\n const current = parseFloat(document.getElementById('zakat-gold-rate').value);\r\n const newRate = current + (Math.random() - 0.5);\r\n document.getElementById('zakat-gold-rate').value = newRate.toFixed(2);\r\n \r\n icon.classList.remove('fa-spin');\r\n zakatCalculate();\r\n }\r\n \r\n // Reset form\r\n function zakatResetForm() {\r\n document.querySelectorAll('input[type=\"number\"]').forEach(input => input.value = '');\r\n donationBasket = [];\r\n charityProjects.forEach(p => p.selected = false);\r\n loadCharityProjects();\r\n zakatCalculate();\r\n }\r\n \r\n // Save calculation\r\n function zakatSaveCalculation() {\r\n const total = document.getElementById('zakat-total-assets').textContent;\r\n const zakat = document.getElementById('zakat-amount').textContent;\r\n \r\n alert(`تم حفظ الحساب:\\nإجمالي المال: ${total}\\nالزكاة الواجبة: ${zakat}`);\r\n }\r\n \r\n // Checkout\r\n function zakatCheckout() {\r\n const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);\r\n if (total === 0) {\r\n alert('الرجاء إضافة مشاريع إلى سلة التبرعات أولاً');\r\n return;\r\n }\r\n \r\n alert(`سيتم توجيهك لصفحة الدفع لإكمال تبرعك بمبلغ ${total.toLocaleString()} $`);\r\n // In production: window.location.href = 'payment.html';\r\n }\r\n \r\n // Redirect to payment\r\n function zakatRedirectToPayment() {\r\n const zakatAmount = document.getElementById('zakat-amount').textContent;\r\n if (zakatAmount === '0.00 $') {\r\n alert('الرجاء إدخال المبلغ أولاً لحساب الزكاة');\r\n return;\r\n }\r\n \r\n alert(`سيتم توجيهك لصفحة الدفع لإتمام تبرعك بمبلغ ${zakatAmount}`);\r\n // In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);\r\n }\r\n \r\n // Intersection Observer for animations\r\n document.addEventListener('DOMContentLoaded', () => {\r\n // Initialize animations\r\n const reveals = document.querySelectorAll('.zakat-reveal');\r\n const obs = new IntersectionObserver((entries) => {\r\n entries.forEach(e => {\r\n if (e.isIntersecting) e.target.classList.add('active');\r\n });\r\n }, { threshold: 0.1 });\r\n reveals.forEach(r => obs.observe(r));\r\n \r\n // Initialize calculation\r\n zakatCalculate();\r\n \r\n // Load initial nisab value\r\n const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;\r\n const nisab = 85 * goldRate;\r\n document.getElementById('zakat-nisab-value').textContent = \r\n nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n });\r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'ar') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'ar') (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. Support for this callback implementation is deprecated in 8.8.0 and will be removed in Drupal 9.0.0. See https://www.drupal.org/node/2966725', 'silenced_deprecation', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in element_gva_column->render_content() (line 463 of themes/gavias_kunco/gva_content_builder/gva_column.php).
element_gva_column->render_content(Array, '
// Initialize charity projects
const charityProjects = [
{
id: 1,
title: "إفطار صائم",
description: "توفير وجبات إفطار شهر رمضان للأسر المحتاجة",
icon: "fa-utensils",
cost: 500,
selected: false
},
{
id: 2,
title: "كسوة الشتاء",
description: "توزيع ملابس شتوية للأطفال والأسر المحتاجة",
icon: "fa-shirt",
cost: 300,
selected: false
},
{
id: 3,
title: "سقيا الماء",
description: "حفر آبار وتوفير مياه شرب نظيفة",
icon: "fa-droplet",
cost: 1000,
selected: false
},
{
id: 4,
title: "تعليم الأيتام",
description: "دعم تعليمي للأيتام ومستلزمات مدرسية",
icon: "fa-graduation-cap",
cost: 400,
selected: false
},
{
id: 5,
title: "علاج المرضى",
description: "تغطية نفقات علاج للأسر غير القادرة",
icon: "fa-heart-pulse",
cost: 800,
selected: false
},
{
id: 6,
title: "رعاية الأرامل",
description: "دعم شهري للأرامل وأطفالهن",
icon: "fa-hand-holding-heart",
cost: 600,
selected: false
}
];
// Donation basket
let donationBasket = [];
// Tab system
function zakatSwitchTab(tab) {
// Update tabs
document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));
document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));
// Activate selected tab
document.getElementById('zakat-tab-' + tab).classList.add('active');
document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');
// Load charity projects if on charity tab
if (tab === 'charity') {
loadCharityProjects();
}
// Add animation
const activeSection = document.getElementById('zakat-section-' + tab);
activeSection.classList.add('zakat-fade-in');
}
// Load charity projects
function loadCharityProjects() {
const container = document.getElementById('charity-projects-container');
container.innerHTML = '';
charityProjects.forEach(project => {
const projectElement = document.createElement('div');
projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;
projectElement.innerHTML = `
${project.title}
${project.description}
${project.cost.toLocaleString()} $
${project.selected ? 'مضاف' : 'إضافة'}
`;
container.appendChild(projectElement);
});
updateBasketDisplay();
}
// Toggle charity project selection
function toggleCharityProject(projectId) {
const project = charityProjects.find(p => p.id === projectId);
project.selected = !project.selected;
if (project.selected) {
donationBasket.push(project);
} else {
donationBasket = donationBasket.filter(p => p.id !== projectId);
}
loadCharityProjects();
updateBasketDisplay();
}
// Update donation basket display
function updateBasketDisplay() {
const container = document.getElementById('donation-basket-items');
const totalElement = document.getElementById('basket-total');
if (donationBasket.length === 0) {
container.innerHTML = 'لم تقم بإضافة أي مشاريع بعد';
totalElement.textContent = '0.00 $';
return;
}
let total = 0;
let itemsHTML = '';
donationBasket.forEach(project => {
total += project.cost;
itemsHTML += `
${project.title}
${project.description}
${project.cost.toLocaleString()} $
`;
});
container.innerHTML = itemsHTML;
totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Remove from basket
function removeFromBasket(projectId) {
const project = charityProjects.find(p => p.id === projectId);
if (project) {
project.selected = false;
}
donationBasket = donationBasket.filter(p => p.id !== projectId);
loadCharityProjects();
}
// Enhanced Calculation
function zakatCalculate() {
// Money
const cash = parseFloat(document.getElementById('zakat-cash-money').value) || 0;
const bank = parseFloat(document.getElementById('zakat-bank-money').value) || 0;
const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me').value) || 0;
const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me').value) || 0;
// Gold/Silver
const goldW = parseFloat(document.getElementById('zakat-gold-weight').value) || 0;
const carat = parseFloat(document.getElementById('zakat-gold-carat').value) || 0;
const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;
const silverW = parseFloat(document.getElementById('zakat-silver-weight').value) || 0;
const silverRate = 0.95;
// Stocks & Business
const stocks = parseFloat(document.getElementById('zakat-stocks-value').value) || 0;
const trade = parseFloat(document.getElementById('zakat-trade-goods').value) || 0;
const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;
const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;
// Calculations
const gold24Equivalent = goldW * (carat / 24);
const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);
const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);
const businessAssets = stocks + trade + realEstate + otherAssets;
const total = Math.max(0, moneyAssets + metalAssets + businessAssets);
// UI Update - Total
document.getElementById('zakat-total-assets').textContent =
total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
// Nisab Logic (85g Gold 24k)
const nisab = 85 * goldRate;
document.getElementById('zakat-nisab-value').textContent =
nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
// Update nisab displays
document.getElementById('nisab-value-display').textContent =
nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
document.getElementById('current-nisab').textContent = '85 جرام';
document.getElementById('nisab-value').textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
// Update progress bar
const nisabProgress = Math.min(100, (total / nisab) * 100);
document.getElementById('nisab-progress').style.width = `${nisabProgress}%`;
const zakatAmountEl = document.getElementById('zakat-amount');
const statusBadge = document.getElementById('zakat-status-badge');
if (total >= nisab && total > 0) {
const zakat = total * 0.025;
zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
statusBadge.innerHTML = ' وجبت الزكاة (بلغت النصاب)';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4";
} else {
zakatAmountEl.textContent = '0.00 $';
if (total > 0) {
statusBadge.innerHTML = ' لم تبلغ النصاب بعد';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4";
} else {
statusBadge.innerHTML = ' أدخل المبلغ للتحقق';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4";
}
}
}
// Fetch live rates
async function zakatFetchRates() {
const icon = document.getElementById('zakat-refresh-icon');
icon.classList.add('fa-spin');
// Simulate API call
await new Promise(r => setTimeout(r, 1000));
// Dynamic change for effect (simulated rate change)
const current = parseFloat(document.getElementById('zakat-gold-rate').value);
const newRate = current + (Math.random() - 0.5);
document.getElementById('zakat-gold-rate').value = newRate.toFixed(2);
icon.classList.remove('fa-spin');
zakatCalculate();
}
// Reset form
function zakatResetForm() {
document.querySelectorAll('input[type="number"]').forEach(input => input.value = '');
donationBasket = [];
charityProjects.forEach(p => p.selected = false);
loadCharityProjects();
zakatCalculate();
}
// Save calculation
function zakatSaveCalculation() {
const total = document.getElementById('zakat-total-assets').textContent;
const zakat = document.getElementById('zakat-amount').textContent;
alert(`تم حفظ الحساب:\nإجمالي المال: ${total}\nالزكاة الواجبة: ${zakat}`);
}
// Checkout
function zakatCheckout() {
const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);
if (total === 0) {
alert('الرجاء إضافة مشاريع إلى سلة التبرعات أولاً');
return;
}
alert(`سيتم توجيهك لصفحة الدفع لإكمال تبرعك بمبلغ ${total.toLocaleString()} $`);
// In production: window.location.href = 'payment.html';
}
// Redirect to payment
function zakatRedirectToPayment() {
const zakatAmount = document.getElementById('zakat-amount').textContent;
if (zakatAmount === '0.00 $') {
alert('الرجاء إدخال المبلغ أولاً لحساب الزكاة');
return;
}
alert(`سيتم توجيهك لصفحة الدفع لإتمام تبرعك بمبلغ ${zakatAmount}`);
// In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);
}
// Intersection Observer for animations
document.addEventListener('DOMContentLoaded', () => {
// Initialize animations
const reveals = document.querySelectorAll('.zakat-reveal');
const obs = new IntersectionObserver((entries) => {
entries.forEach(e => {
if (e.isIntersecting) e.target.classList.add('active');
});
}, { threshold: 0.1 });
reveals.forEach(r => obs.observe(r));
// Initialize calculation
zakatCalculate();
// Load initial nisab value
const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;
const nisab = 85 * goldRate;
document.getElementById('zakat-nisab-value').textContent =
nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
});
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
// Initialize charity projects
const charityProjects = [
{
id: 1,
title: "إفطار صائم",
description: "توفير وجبات إفطار شهر رمضان للأسر المحتاجة",
icon: "fa-utensils",
cost: 500,
selected: false
},
{
id: 2,
title: "كسوة الشتاء",
description: "توزيع ملابس شتوية للأطفال والأسر المحتاجة",
icon: "fa-shirt",
cost: 300,
selected: false
},
{
id: 3,
title: "سقيا الماء",
description: "حفر آبار وتوفير مياه شرب نظيفة",
icon: "fa-droplet",
cost: 1000,
selected: false
},
{
id: 4,
title: "تعليم الأيتام",
description: "دعم تعليمي للأيتام ومستلزمات مدرسية",
icon: "fa-graduation-cap",
cost: 400,
selected: false
},
{
id: 5,
title: "علاج المرضى",
description: "تغطية نفقات علاج للأسر غير القادرة",
icon: "fa-heart-pulse",
cost: 800,
selected: false
},
{
id: 6,
title: "رعاية الأرامل",
description: "دعم شهري للأرامل وأطفالهن",
icon: "fa-hand-holding-heart",
cost: 600,
selected: false
}
];
// Donation basket
let donationBasket = [];
// Tab system
function zakatSwitchTab(tab) {
// Update tabs
document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));
document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));
// Activate selected tab
document.getElementById('zakat-tab-' + tab).classList.add('active');
document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');
// Load charity projects if on charity tab
if (tab === 'charity') {
loadCharityProjects();
}
// Add animation
const activeSection = document.getElementById('zakat-section-' + tab);
activeSection.classList.add('zakat-fade-in');
}
// Load charity projects
function loadCharityProjects() {
const container = document.getElementById('charity-projects-container');
container.innerHTML = '';
charityProjects.forEach(project => {
const projectElement = document.createElement('div');
projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;
projectElement.innerHTML = `
${project.title}
${project.description}
${project.cost.toLocaleString()} $
${project.selected ? 'مضاف' : 'إضافة'}
`;
container.appendChild(projectElement);
});
updateBasketDisplay();
}
// Toggle charity project selection
function toggleCharityProject(projectId) {
const project = charityProjects.find(p => p.id === projectId);
project.selected = !project.selected;
if (project.selected) {
donationBasket.push(project);
} else {
donationBasket = donationBasket.filter(p => p.id !== projectId);
}
loadCharityProjects();
updateBasketDisplay();
}
// Update donation basket display
function updateBasketDisplay() {
const container = document.getElementById('donation-basket-items');
const totalElement = document.getElementById('basket-total');
if (donationBasket.length === 0) {
container.innerHTML = 'لم تقم بإضافة أي مشاريع بعد';
totalElement.textContent = '0.00 $';
return;
}
let total = 0;
let itemsHTML = '';
donationBasket.forEach(project => {
total += project.cost;
itemsHTML += `
${project.title}
${project.description}
${project.cost.toLocaleString()} $
`;
});
container.innerHTML = itemsHTML;
totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Remove from basket
function removeFromBasket(projectId) {
const project = charityProjects.find(p => p.id === projectId);
if (project) {
project.selected = false;
}
donationBasket = donationBasket.filter(p => p.id !== projectId);
loadCharityProjects();
}
// Enhanced Calculation
function zakatCalculate() {
// Money
const cash = parseFloat(document.getElementById('zakat-cash-money').value) || 0;
const bank = parseFloat(document.getElementById('zakat-bank-money').value) || 0;
const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me').value) || 0;
const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me').value) || 0;
// Gold/Silver
const goldW = parseFloat(document.getElementById('zakat-gold-weight').value) || 0;
const carat = parseFloat(document.getElementById('zakat-gold-carat').value) || 0;
const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;
const silverW = parseFloat(document.getElementById('zakat-silver-weight').value) || 0;
const silverRate = 0.95;
// Stocks & Business
const stocks = parseFloat(document.getElementById('zakat-stocks-value').value) || 0;
const trade = parseFloat(document.getElementById('zakat-trade-goods').value) || 0;
const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;
const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;
// Calculations
const gold24Equivalent = goldW * (carat / 24);
const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);
const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);
const businessAssets = stocks + trade + realEstate + otherAssets;
const total = Math.max(0, moneyAssets + metalAssets + businessAssets);
// UI Update - Total
document.getElementById('zakat-total-assets').textContent =
total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
// Nisab Logic (85g Gold 24k)
const nisab = 85 * goldRate;
document.getElementById('zakat-nisab-value').textContent =
nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
// Update nisab displays
document.getElementById('nisab-value-display').textContent =
nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
document.getElementById('current-nisab').textContent = '85 جرام';
document.getElementById('nisab-value').textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
// Update progress bar
const nisabProgress = Math.min(100, (total / nisab) * 100);
document.getElementById('nisab-progress').style.width = `${nisabProgress}%`;
const zakatAmountEl = document.getElementById('zakat-amount');
const statusBadge = document.getElementById('zakat-status-badge');
if (total >= nisab && total > 0) {
const zakat = total * 0.025;
zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
statusBadge.innerHTML = ' وجبت الزكاة (بلغت النصاب)';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4";
} else {
zakatAmountEl.textContent = '0.00 $';
if (total > 0) {
statusBadge.innerHTML = ' لم تبلغ النصاب بعد';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4";
} else {
statusBadge.innerHTML = ' أدخل المبلغ للتحقق';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4";
}
}
}
// Fetch live rates
async function zakatFetchRates() {
const icon = document.getElementById('zakat-refresh-icon');
icon.classList.add('fa-spin');
// Simulate API call
await new Promise(r => setTimeout(r, 1000));
// Dynamic change for effect (simulated rate change)
const current = parseFloat(document.getElementById('zakat-gold-rate').value);
const newRate = current + (Math.random() - 0.5);
document.getElementById('zakat-gold-rate').value = newRate.toFixed(2);
icon.classList.remove('fa-spin');
zakatCalculate();
}
// Reset form
function zakatResetForm() {
document.querySelectorAll('input[type="number"]').forEach(input => input.value = '');
donationBasket = [];
charityProjects.forEach(p => p.selected = false);
loadCharityProjects();
zakatCalculate();
}
// Save calculation
function zakatSaveCalculation() {
const total = document.getElementById('zakat-total-assets').textContent;
const zakat = document.getElementById('zakat-amount').textContent;
alert(`تم حفظ الحساب:\nإجمالي المال: ${total}\nالزكاة الواجبة: ${zakat}`);
}
// Checkout
function zakatCheckout() {
const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);
if (total === 0) {
alert('الرجاء إضافة مشاريع إلى سلة التبرعات أولاً');
return;
}
alert(`سيتم توجيهك لصفحة الدفع لإكمال تبرعك بمبلغ ${total.toLocaleString()} $`);
// In production: window.location.href = 'payment.html';
}
// Redirect to payment
function zakatRedirectToPayment() {
const zakatAmount = document.getElementById('zakat-amount').textContent;
if (zakatAmount === '0.00 $') {
alert('الرجاء إدخال المبلغ أولاً لحساب الزكاة');
return;
}
alert(`سيتم توجيهك لصفحة الدفع لإتمام تبرعك بمبلغ ${zakatAmount}`);
// In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);
}
// Intersection Observer for animations
document.addEventListener('DOMContentLoaded', () => {
// Initialize animations
const reveals = document.querySelectorAll('.zakat-reveal');
const obs = new IntersectionObserver((entries) => {
entries.forEach(e => {
if (e.isIntersecting) e.target.classList.add('active');
});
}, { threshold: 0.1 });
reveals.forEach(r => obs.observe(r));
// Initialize calculation
zakatCalculate();
// Load initial nisab value
const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;
const nisab = 85 * goldRate;
document.getElementById('zakat-nisab-value').textContent =
nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
});
') (Line: 58)
gavias_content_builder_render_el(Array) (Line: 22)
gavias_content_builder_frontend('[{"settings":{"element":"gva_row","bg_particles":"off","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","style_space":"remove_margin remove_padding remove_padding_col","padding_top":"0","padding_bottom":"0","margin_top":"0","margin_bottom":"0","layout":"container-fw","class":"aboutus"},"columns":[{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":" \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ركن الإسلام الثالث\r\n حاسبة الزكاة الذكيةأداء دقيق.. أثر كبير\r\n \r\n \r\n حاسبة متكاملة لحساب زكاتك وفق أحدث الأسعار وأصح الأحكام الشرعية، مصممة لمساعدتك على أداء فريضتك بدقة وثقة.\r\n \r\n \r\n \r\n \r\n \r\n نصاب الذهب اليوم\r\n 85 جرام\r\n \r\n \r\n \r\n \r\n ما يعادل $6,502.50 حسب سعر الذهب الحالي\r\n \r\n \r\n \r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","class":"zakatt"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n النقود والودائع\r\n \r\n \r\n \r\n الذهب والفضة\r\n \r\n \r\n \r\n الأسهم والتجارة\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n النقود والودائع البنكية\r\n \r\n \r\n \r\n \r\n النقود المتوفرة\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n الودائع والأرصدة البنكية\r\n \r\n \r\n \r\n \r\n \r\n \r\n ديون مستحقة لك\r\n \r\n \r\n \r\n \r\n الديون التي تتوقع استردادها\r\n \r\n \r\n الديون المستحقة عليك\r\n \r\n \r\n \r\n \r\n تخصم من إجمالي الأموال\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n الذهب والفضة والمجوهرات\r\n \r\n \r\n \r\n وزن الذهب (جرام)\r\n \r\n \r\n \r\n \r\n ما يزيد عن الاستخدام الشخصي\r\n \r\n \r\n عيار الذهب\r\n \r\n \r\n عَيار 24 (نقي)\r\n عَيار 22\r\n عَيار 21\r\n عَيار 18\r\n \r\n \r\n \r\n \r\n \r\n وزن الفضة (جرام)\r\n \r\n \r\n \r\n \r\n \r\n \r\n سعر الذهب اليوم\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n سعر الجرام بالدولار\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n حاسبة النصاب\r\n \r\n \r\n \r\n نصاب الذهب\r\n 85 جرام\r\n \r\n \r\n نصاب الفضة\r\n 595 جرام\r\n \r\n \r\n قيمته بالدولار\r\n $6,502.50\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n الأصول التجارية والاستثمارية\r\n \r\n \r\n \r\n قيمة الأسهم الحالية\r\n \r\n \r\n \r\n \r\n \r\n \r\n عروض التجارة\r\n \r\n \r\n \r\n \r\n البضائع المعدة للبيع\r\n \r\n \r\n العقارات الاستثمارية\r\n \r\n \r\n \r\n \r\n \r\n \r\n أصول أخرى\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n اختر مشاريعك الخيرية\r\n \r\n يمكنك توزيع زكاتك على عدة مشاريع خيرية حسب رغبتك\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n سلة التبرعات\r\n \r\n \r\n لم تقم بإضافة أي مشاريع بعد\r\n \r\n \r\n \r\n إجمالي المبلغ المحدد\r\n 0.00 $\r\n \r\n \r\n إتمام التبرع\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n شروط وجوب الزكاة\r\n \r\n <ul>\r\n <li>\r\n \r\n بلوغ النصاب (ما يعادل 85 جرام ذهب 24 قيراط)\r\n </li>\r\n <li>\r\n \r\n حولان الحول (مرور عام هجري على امتلاك المال)\r\n </li>\r\n <li>\r\n \r\n الملكية التامة للمال والقدرة على التصرف فيه\r\n </li>\r\n </ul>\r\n \r\n \r\n \r\n \r\n أمانة وجدان\r\n \r\n \r\n نلتزم في وجدان الخيرية بصرف الزكاة في مصارفها الشرعية الثمانية تحت إشراف لجان شرعية متخصصة، مع ضمان أعلى معايير الشفافية والتتبع.\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n ملخص الحساب\r\n \r\n\r\n \r\n \r\n إجمالي المال الخاضع للزكاة\r\n 0.00 $\r\n \r\n \r\n نصاب الزكاة الحالي\r\n 6,502.50 $\r\n \r\n \r\n\r\n \r\n الزكاة الواجبة (2.5%)\r\n 0.00 $\r\n \r\n \r\n أدخل المبلغ للتحقق\r\n \r\n \r\n\r\n \r\n <a>\r\n \r\n تواصل عبر واتساب للإستشارة والتبرع\r\n </a>\r\n \r\n\r\n \r\n جميع الحسابات مبنية على أسعار الذهب العالمية وأحدث الفتاوى الشرعية. نوصي باستشارة أهل العلم في المسائل الفقهية الدقيقة.\r\n \r\n \r\n \r\n \r\n \r\n إعادة تعيين\r\n \r\n \r\n حفظ الحساب\r\n \r\n \r\n \r\n \r\n \r\n \r\n ","animate_delay":"0","el_class":"zakatt"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":" \r\n // Initialize charity projects\r\n const charityProjects = [\r\n {\r\n id: 1,\r\n title: \"إفطار صائم\",\r\n description: \"توفير وجبات إفطار شهر رمضان للأسر المحتاجة\",\r\n icon: \"fa-utensils\",\r\n cost: 500,\r\n selected: false\r\n },\r\n {\r\n id: 2,\r\n title: \"كسوة الشتاء\",\r\n description: \"توزيع ملابس شتوية للأطفال والأسر المحتاجة\",\r\n icon: \"fa-shirt\",\r\n cost: 300,\r\n selected: false\r\n },\r\n {\r\n id: 3,\r\n title: \"سقيا الماء\",\r\n description: \"حفر آبار وتوفير مياه شرب نظيفة\",\r\n icon: \"fa-droplet\",\r\n cost: 1000,\r\n selected: false\r\n },\r\n {\r\n id: 4,\r\n title: \"تعليم الأيتام\",\r\n description: \"دعم تعليمي للأيتام ومستلزمات مدرسية\",\r\n icon: \"fa-graduation-cap\",\r\n cost: 400,\r\n selected: false\r\n },\r\n {\r\n id: 5,\r\n title: \"علاج المرضى\",\r\n description: \"تغطية نفقات علاج للأسر غير القادرة\",\r\n icon: \"fa-heart-pulse\",\r\n cost: 800,\r\n selected: false\r\n },\r\n {\r\n id: 6,\r\n title: \"رعاية الأرامل\",\r\n description: \"دعم شهري للأرامل وأطفالهن\",\r\n icon: \"fa-hand-holding-heart\",\r\n cost: 600,\r\n selected: false\r\n }\r\n ];\r\n\r\n // Donation basket\r\n let donationBasket = [];\r\n \r\n // Tab system\r\n function zakatSwitchTab(tab) {\r\n // Update tabs\r\n document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));\r\n document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));\r\n \r\n // Activate selected tab\r\n document.getElementById('zakat-tab-' + tab).classList.add('active');\r\n document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');\r\n \r\n // Load charity projects if on charity tab\r\n if (tab === 'charity') {\r\n loadCharityProjects();\r\n }\r\n \r\n // Add animation\r\n const activeSection = document.getElementById('zakat-section-' + tab);\r\n activeSection.classList.add('zakat-fade-in');\r\n }\r\n \r\n // Load charity projects\r\n function loadCharityProjects() {\r\n const container = document.getElementById('charity-projects-container');\r\n container.innerHTML = '';\r\n \r\n charityProjects.forEach(project => {\r\n const projectElement = document.createElement('div');\r\n projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;\r\n projectElement.innerHTML = `\r\n \r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n ${project.selected ? 'مضاف' : 'إضافة'}\r\n \r\n \r\n `;\r\n container.appendChild(projectElement);\r\n });\r\n \r\n updateBasketDisplay();\r\n }\r\n \r\n // Toggle charity project selection\r\n function toggleCharityProject(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n project.selected = !project.selected;\r\n \r\n if (project.selected) {\r\n donationBasket.push(project);\r\n } else {\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n }\r\n \r\n loadCharityProjects();\r\n updateBasketDisplay();\r\n }\r\n \r\n // Update donation basket display\r\n function updateBasketDisplay() {\r\n const container = document.getElementById('donation-basket-items');\r\n const totalElement = document.getElementById('basket-total');\r\n \r\n if (donationBasket.length === 0) {\r\n container.innerHTML = 'لم تقم بإضافة أي مشاريع بعد';\r\n totalElement.textContent = '0.00 $';\r\n return;\r\n }\r\n \r\n let total = 0;\r\n let itemsHTML = '';\r\n \r\n donationBasket.forEach(project => {\r\n total += project.cost;\r\n itemsHTML += `\r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n \r\n \r\n \r\n \r\n `;\r\n });\r\n \r\n container.innerHTML = itemsHTML;\r\n totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Remove from basket\r\n function removeFromBasket(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n if (project) {\r\n project.selected = false;\r\n }\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n loadCharityProjects();\r\n }\r\n \r\n // Enhanced Calculation\r\n function zakatCalculate() {\r\n // Money\r\n const cash = parseFloat(document.getElementById('zakat-cash-money').value) || 0;\r\n const bank = parseFloat(document.getElementById('zakat-bank-money').value) || 0;\r\n const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me').value) || 0;\r\n const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me').value) || 0;\r\n \r\n // Gold/Silver\r\n const goldW = parseFloat(document.getElementById('zakat-gold-weight').value) || 0;\r\n const carat = parseFloat(document.getElementById('zakat-gold-carat').value) || 0;\r\n const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;\r\n const silverW = parseFloat(document.getElementById('zakat-silver-weight').value) || 0;\r\n const silverRate = 0.95;\r\n \r\n // Stocks & Business\r\n const stocks = parseFloat(document.getElementById('zakat-stocks-value').value) || 0;\r\n const trade = parseFloat(document.getElementById('zakat-trade-goods').value) || 0;\r\n const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;\r\n const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;\r\n \r\n // Calculations\r\n const gold24Equivalent = goldW * (carat / 24);\r\n const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);\r\n const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);\r\n const businessAssets = stocks + trade + realEstate + otherAssets;\r\n const total = Math.max(0, moneyAssets + metalAssets + businessAssets);\r\n \r\n // UI Update - Total\r\n document.getElementById('zakat-total-assets').textContent = \r\n total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n // Nisab Logic (85g Gold 24k)\r\n const nisab = 85 * goldRate;\r\n document.getElementById('zakat-nisab-value').textContent = \r\n nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n // Update nisab displays\r\n document.getElementById('nisab-value-display').textContent = \r\n nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n document.getElementById('current-nisab').textContent = '85 جرام';\r\n document.getElementById('nisab-value').textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n // Update progress bar\r\n const nisabProgress = Math.min(100, (total / nisab) * 100);\r\n document.getElementById('nisab-progress').style.width = `${nisabProgress}%`;\r\n \r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const statusBadge = document.getElementById('zakat-status-badge');\r\n \r\n if (total >= nisab && total > 0) {\r\n const zakat = total * 0.025;\r\n zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n statusBadge.innerHTML = ' وجبت الزكاة (بلغت النصاب)';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4\";\r\n } else {\r\n zakatAmountEl.textContent = '0.00 $';\r\n \r\n if (total > 0) {\r\n statusBadge.innerHTML = ' لم تبلغ النصاب بعد';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4\";\r\n } else {\r\n statusBadge.innerHTML = ' أدخل المبلغ للتحقق';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4\";\r\n }\r\n }\r\n }\r\n \r\n // Fetch live rates\r\n async function zakatFetchRates() {\r\n const icon = document.getElementById('zakat-refresh-icon');\r\n icon.classList.add('fa-spin');\r\n \r\n // Simulate API call\r\n await new Promise(r => setTimeout(r, 1000));\r\n \r\n // Dynamic change for effect (simulated rate change)\r\n const current = parseFloat(document.getElementById('zakat-gold-rate').value);\r\n const newRate = current + (Math.random() - 0.5);\r\n document.getElementById('zakat-gold-rate').value = newRate.toFixed(2);\r\n \r\n icon.classList.remove('fa-spin');\r\n zakatCalculate();\r\n }\r\n \r\n // Reset form\r\n function zakatResetForm() {\r\n document.querySelectorAll('input[type=\"number\"]').forEach(input => input.value = '');\r\n donationBasket = [];\r\n charityProjects.forEach(p => p.selected = false);\r\n loadCharityProjects();\r\n zakatCalculate();\r\n }\r\n \r\n // Save calculation\r\n function zakatSaveCalculation() {\r\n const total = document.getElementById('zakat-total-assets').textContent;\r\n const zakat = document.getElementById('zakat-amount').textContent;\r\n \r\n alert(`تم حفظ الحساب:\\nإجمالي المال: ${total}\\nالزكاة الواجبة: ${zakat}`);\r\n }\r\n \r\n // Checkout\r\n function zakatCheckout() {\r\n const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);\r\n if (total === 0) {\r\n alert('الرجاء إضافة مشاريع إلى سلة التبرعات أولاً');\r\n return;\r\n }\r\n \r\n alert(`سيتم توجيهك لصفحة الدفع لإكمال تبرعك بمبلغ ${total.toLocaleString()} $`);\r\n // In production: window.location.href = 'payment.html';\r\n }\r\n \r\n // Redirect to payment\r\n function zakatRedirectToPayment() {\r\n const zakatAmount = document.getElementById('zakat-amount').textContent;\r\n if (zakatAmount === '0.00 $') {\r\n alert('الرجاء إدخال المبلغ أولاً لحساب الزكاة');\r\n return;\r\n }\r\n \r\n alert(`سيتم توجيهك لصفحة الدفع لإتمام تبرعك بمبلغ ${zakatAmount}`);\r\n // In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);\r\n }\r\n \r\n // Intersection Observer for animations\r\n document.addEventListener('DOMContentLoaded', () => {\r\n // Initialize animations\r\n const reveals = document.querySelectorAll('.zakat-reveal');\r\n const obs = new IntersectionObserver((entries) => {\r\n entries.forEach(e => {\r\n if (e.isIntersecting) e.target.classList.add('active');\r\n });\r\n }, { threshold: 0.1 });\r\n reveals.forEach(r => obs.observe(r));\r\n \r\n // Initialize calculation\r\n zakatCalculate();\r\n \r\n // Load initial nisab value\r\n const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;\r\n const nisab = 85 * goldRate;\r\n document.getElementById('zakat-nisab-value').textContent = \r\n nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n });\r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'ar') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'ar') (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. Support for this callback implementation is deprecated in 8.8.0 and will be removed in Drupal 9.0.0. See https://www.drupal.org/node/2966725', 'silenced_deprecation', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in element_gva_row->render_content() (line 317 of themes/gavias_kunco/gva_content_builder/gva_row.php).
element_gva_row->render_content(Array, '
ركن الإسلام الثالث
حاسبة الزكاة الذكيةأداء دقيق.. أثر كبير
حاسبة متكاملة لحساب زكاتك وفق أحدث الأسعار وأصح الأحكام الشرعية، مصممة لمساعدتك على أداء فريضتك بدقة وثقة.
نصاب الذهب اليوم
85 جرام
ما يعادل $6,502.50 حسب سعر الذهب الحالي
النقود والودائع
الذهب والفضة
الأسهم والتجارة
المشاريع الخيرية
-->
النقود والودائع البنكية
النقود المتوفرة
الودائع والأرصدة البنكية
ديون مستحقة لك
الديون التي تتوقع استردادها
الديون المستحقة عليك
تخصم من إجمالي الأموال
الذهب والفضة والمجوهرات
وزن الذهب (جرام)
ما يزيد عن الاستخدام الشخصي
عيار الذهب
عَيار 24 (نقي)
عَيار 22
عَيار 21
عَيار 18
وزن الفضة (جرام)
سعر الذهب اليوم
سعر الجرام بالدولار
حاسبة النصاب
نصاب الذهب
85 جرام
نصاب الفضة
595 جرام
قيمته بالدولار
$6,502.50
الأصول التجارية والاستثمارية
قيمة الأسهم الحالية
عروض التجارة
البضائع المعدة للبيع
العقارات الاستثمارية
أصول أخرى
اختر مشاريعك الخيرية
يمكنك توزيع زكاتك على عدة مشاريع خيرية حسب رغبتك
سلة التبرعات
لم تقم بإضافة أي مشاريع بعد
إجمالي المبلغ المحدد
0.00 $
إتمام التبرع
شروط وجوب الزكاة
<ul class="space-y-3 text-gray-600">
<li class="flex items-start gap-3">
بلوغ النصاب (ما يعادل 85 جرام ذهب 24 قيراط)
</li>
<li class="flex items-start gap-3">
حولان الحول (مرور عام هجري على امتلاك المال)
</li>
<li class="flex items-start gap-3">
الملكية التامة للمال والقدرة على التصرف فيه
</li>
</ul>
أمانة وجدان
نلتزم في وجدان الخيرية بصرف الزكاة في مصارفها الشرعية الثمانية تحت إشراف لجان شرعية متخصصة، مع ضمان أعلى معايير الشفافية والتتبع.
ملخص الحساب
إجمالي المال الخاضع للزكاة
0.00 $
نصاب الزكاة الحالي
6,502.50 $
الزكاة الواجبة (2.5%)
0.00 $
أدخل المبلغ للتحقق
<a href="https://wa.me/905057763103" class="sponsorships-btn-secondary sponsorships-btn-full mt-4" target="_blank">
تواصل عبر واتساب للإستشارة والتبرع
</a>
جميع الحسابات مبنية على أسعار الذهب العالمية وأحدث الفتاوى الشرعية. نوصي باستشارة أهل العلم في المسائل الفقهية الدقيقة.
إعادة تعيين
حفظ الحساب
// Initialize charity projects
const charityProjects = [
{
id: 1,
title: "إفطار صائم",
description: "توفير وجبات إفطار شهر رمضان للأسر المحتاجة",
icon: "fa-utensils",
cost: 500,
selected: false
},
{
id: 2,
title: "كسوة الشتاء",
description: "توزيع ملابس شتوية للأطفال والأسر المحتاجة",
icon: "fa-shirt",
cost: 300,
selected: false
},
{
id: 3,
title: "سقيا الماء",
description: "حفر آبار وتوفير مياه شرب نظيفة",
icon: "fa-droplet",
cost: 1000,
selected: false
},
{
id: 4,
title: "تعليم الأيتام",
description: "دعم تعليمي للأيتام ومستلزمات مدرسية",
icon: "fa-graduation-cap",
cost: 400,
selected: false
},
{
id: 5,
title: "علاج المرضى",
description: "تغطية نفقات علاج للأسر غير القادرة",
icon: "fa-heart-pulse",
cost: 800,
selected: false
},
{
id: 6,
title: "رعاية الأرامل",
description: "دعم شهري للأرامل وأطفالهن",
icon: "fa-hand-holding-heart",
cost: 600,
selected: false
}
];
// Donation basket
let donationBasket = [];
// Tab system
function zakatSwitchTab(tab) {
// Update tabs
document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));
document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));
// Activate selected tab
document.getElementById('zakat-tab-' + tab).classList.add('active');
document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');
// Load charity projects if on charity tab
if (tab === 'charity') {
loadCharityProjects();
}
// Add animation
const activeSection = document.getElementById('zakat-section-' + tab);
activeSection.classList.add('zakat-fade-in');
}
// Load charity projects
function loadCharityProjects() {
const container = document.getElementById('charity-projects-container');
container.innerHTML = '';
charityProjects.forEach(project => {
const projectElement = document.createElement('div');
projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;
projectElement.innerHTML = `
${project.title}
${project.description}
${project.cost.toLocaleString()} $
${project.selected ? 'مضاف' : 'إضافة'}
`;
container.appendChild(projectElement);
});
updateBasketDisplay();
}
// Toggle charity project selection
function toggleCharityProject(projectId) {
const project = charityProjects.find(p => p.id === projectId);
project.selected = !project.selected;
if (project.selected) {
donationBasket.push(project);
} else {
donationBasket = donationBasket.filter(p => p.id !== projectId);
}
loadCharityProjects();
updateBasketDisplay();
}
// Update donation basket display
function updateBasketDisplay() {
const container = document.getElementById('donation-basket-items');
const totalElement = document.getElementById('basket-total');
if (donationBasket.length === 0) {
container.innerHTML = 'لم تقم بإضافة أي مشاريع بعد';
totalElement.textContent = '0.00 $';
return;
}
let total = 0;
let itemsHTML = '';
donationBasket.forEach(project => {
total += project.cost;
itemsHTML += `
${project.title}
${project.description}
${project.cost.toLocaleString()} $
`;
});
container.innerHTML = itemsHTML;
totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Remove from basket
function removeFromBasket(projectId) {
const project = charityProjects.find(p => p.id === projectId);
if (project) {
project.selected = false;
}
donationBasket = donationBasket.filter(p => p.id !== projectId);
loadCharityProjects();
}
// Enhanced Calculation
function zakatCalculate() {
// Money
const cash = parseFloat(document.getElementById('zakat-cash-money').value) || 0;
const bank = parseFloat(document.getElementById('zakat-bank-money').value) || 0;
const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me').value) || 0;
const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me').value) || 0;
// Gold/Silver
const goldW = parseFloat(document.getElementById('zakat-gold-weight').value) || 0;
const carat = parseFloat(document.getElementById('zakat-gold-carat').value) || 0;
const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;
const silverW = parseFloat(document.getElementById('zakat-silver-weight').value) || 0;
const silverRate = 0.95;
// Stocks & Business
const stocks = parseFloat(document.getElementById('zakat-stocks-value').value) || 0;
const trade = parseFloat(document.getElementById('zakat-trade-goods').value) || 0;
const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;
const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;
// Calculations
const gold24Equivalent = goldW * (carat / 24);
const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);
const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);
const businessAssets = stocks + trade + realEstate + otherAssets;
const total = Math.max(0, moneyAssets + metalAssets + businessAssets);
// UI Update - Total
document.getElementById('zakat-total-assets').textContent =
total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
// Nisab Logic (85g Gold 24k)
const nisab = 85 * goldRate;
document.getElementById('zakat-nisab-value').textContent =
nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
// Update nisab displays
document.getElementById('nisab-value-display').textContent =
nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
document.getElementById('current-nisab').textContent = '85 جرام';
document.getElementById('nisab-value').textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
// Update progress bar
const nisabProgress = Math.min(100, (total / nisab) * 100);
document.getElementById('nisab-progress').style.width = `${nisabProgress}%`;
const zakatAmountEl = document.getElementById('zakat-amount');
const statusBadge = document.getElementById('zakat-status-badge');
if (total >= nisab && total > 0) {
const zakat = total * 0.025;
zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
statusBadge.innerHTML = ' وجبت الزكاة (بلغت النصاب)';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4";
} else {
zakatAmountEl.textContent = '0.00 $';
if (total > 0) {
statusBadge.innerHTML = ' لم تبلغ النصاب بعد';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4";
} else {
statusBadge.innerHTML = ' أدخل المبلغ للتحقق';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4";
}
}
}
// Fetch live rates
async function zakatFetchRates() {
const icon = document.getElementById('zakat-refresh-icon');
icon.classList.add('fa-spin');
// Simulate API call
await new Promise(r => setTimeout(r, 1000));
// Dynamic change for effect (simulated rate change)
const current = parseFloat(document.getElementById('zakat-gold-rate').value);
const newRate = current + (Math.random() - 0.5);
document.getElementById('zakat-gold-rate').value = newRate.toFixed(2);
icon.classList.remove('fa-spin');
zakatCalculate();
}
// Reset form
function zakatResetForm() {
document.querySelectorAll('input[type="number"]').forEach(input => input.value = '');
donationBasket = [];
charityProjects.forEach(p => p.selected = false);
loadCharityProjects();
zakatCalculate();
}
// Save calculation
function zakatSaveCalculation() {
const total = document.getElementById('zakat-total-assets').textContent;
const zakat = document.getElementById('zakat-amount').textContent;
alert(`تم حفظ الحساب:\nإجمالي المال: ${total}\nالزكاة الواجبة: ${zakat}`);
}
// Checkout
function zakatCheckout() {
const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);
if (total === 0) {
alert('الرجاء إضافة مشاريع إلى سلة التبرعات أولاً');
return;
}
alert(`سيتم توجيهك لصفحة الدفع لإكمال تبرعك بمبلغ ${total.toLocaleString()} $`);
// In production: window.location.href = 'payment.html';
}
// Redirect to payment
function zakatRedirectToPayment() {
const zakatAmount = document.getElementById('zakat-amount').textContent;
if (zakatAmount === '0.00 $') {
alert('الرجاء إدخال المبلغ أولاً لحساب الزكاة');
return;
}
alert(`سيتم توجيهك لصفحة الدفع لإتمام تبرعك بمبلغ ${zakatAmount}`);
// In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);
}
// Intersection Observer for animations
document.addEventListener('DOMContentLoaded', () => {
// Initialize animations
const reveals = document.querySelectorAll('.zakat-reveal');
const obs = new IntersectionObserver((entries) => {
entries.forEach(e => {
if (e.isIntersecting) e.target.classList.add('active');
});
}, { threshold: 0.1 });
reveals.forEach(r => obs.observe(r));
// Initialize calculation
zakatCalculate();
// Load initial nisab value
const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;
const nisab = 85 * goldRate;
document.getElementById('zakat-nisab-value').textContent =
nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
});
') (Line: 110)
gavias_content_builder_render_element('gva_row', Array, '
ركن الإسلام الثالث
حاسبة الزكاة الذكيةأداء دقيق.. أثر كبير
حاسبة متكاملة لحساب زكاتك وفق أحدث الأسعار وأصح الأحكام الشرعية، مصممة لمساعدتك على أداء فريضتك بدقة وثقة.
نصاب الذهب اليوم
85 جرام
ما يعادل $6,502.50 حسب سعر الذهب الحالي
النقود والودائع
الذهب والفضة
الأسهم والتجارة
المشاريع الخيرية
-->
النقود والودائع البنكية
النقود المتوفرة
الودائع والأرصدة البنكية
ديون مستحقة لك
الديون التي تتوقع استردادها
الديون المستحقة عليك
تخصم من إجمالي الأموال
الذهب والفضة والمجوهرات
وزن الذهب (جرام)
ما يزيد عن الاستخدام الشخصي
عيار الذهب
عَيار 24 (نقي)
عَيار 22
عَيار 21
عَيار 18
وزن الفضة (جرام)
سعر الذهب اليوم
سعر الجرام بالدولار
حاسبة النصاب
نصاب الذهب
85 جرام
نصاب الفضة
595 جرام
قيمته بالدولار
$6,502.50
الأصول التجارية والاستثمارية
قيمة الأسهم الحالية
عروض التجارة
البضائع المعدة للبيع
العقارات الاستثمارية
أصول أخرى
اختر مشاريعك الخيرية
يمكنك توزيع زكاتك على عدة مشاريع خيرية حسب رغبتك
سلة التبرعات
لم تقم بإضافة أي مشاريع بعد
إجمالي المبلغ المحدد
0.00 $
إتمام التبرع
شروط وجوب الزكاة
<ul class="space-y-3 text-gray-600">
<li class="flex items-start gap-3">
بلوغ النصاب (ما يعادل 85 جرام ذهب 24 قيراط)
</li>
<li class="flex items-start gap-3">
حولان الحول (مرور عام هجري على امتلاك المال)
</li>
<li class="flex items-start gap-3">
الملكية التامة للمال والقدرة على التصرف فيه
</li>
</ul>
أمانة وجدان
نلتزم في وجدان الخيرية بصرف الزكاة في مصارفها الشرعية الثمانية تحت إشراف لجان شرعية متخصصة، مع ضمان أعلى معايير الشفافية والتتبع.
ملخص الحساب
إجمالي المال الخاضع للزكاة
0.00 $
نصاب الزكاة الحالي
6,502.50 $
الزكاة الواجبة (2.5%)
0.00 $
أدخل المبلغ للتحقق
<a href="https://wa.me/905057763103" class="sponsorships-btn-secondary sponsorships-btn-full mt-4" target="_blank">
تواصل عبر واتساب للإستشارة والتبرع
</a>
جميع الحسابات مبنية على أسعار الذهب العالمية وأحدث الفتاوى الشرعية. نوصي باستشارة أهل العلم في المسائل الفقهية الدقيقة.
إعادة تعيين
حفظ الحساب
// Initialize charity projects
const charityProjects = [
{
id: 1,
title: "إفطار صائم",
description: "توفير وجبات إفطار شهر رمضان للأسر المحتاجة",
icon: "fa-utensils",
cost: 500,
selected: false
},
{
id: 2,
title: "كسوة الشتاء",
description: "توزيع ملابس شتوية للأطفال والأسر المحتاجة",
icon: "fa-shirt",
cost: 300,
selected: false
},
{
id: 3,
title: "سقيا الماء",
description: "حفر آبار وتوفير مياه شرب نظيفة",
icon: "fa-droplet",
cost: 1000,
selected: false
},
{
id: 4,
title: "تعليم الأيتام",
description: "دعم تعليمي للأيتام ومستلزمات مدرسية",
icon: "fa-graduation-cap",
cost: 400,
selected: false
},
{
id: 5,
title: "علاج المرضى",
description: "تغطية نفقات علاج للأسر غير القادرة",
icon: "fa-heart-pulse",
cost: 800,
selected: false
},
{
id: 6,
title: "رعاية الأرامل",
description: "دعم شهري للأرامل وأطفالهن",
icon: "fa-hand-holding-heart",
cost: 600,
selected: false
}
];
// Donation basket
let donationBasket = [];
// Tab system
function zakatSwitchTab(tab) {
// Update tabs
document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));
document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));
// Activate selected tab
document.getElementById('zakat-tab-' + tab).classList.add('active');
document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');
// Load charity projects if on charity tab
if (tab === 'charity') {
loadCharityProjects();
}
// Add animation
const activeSection = document.getElementById('zakat-section-' + tab);
activeSection.classList.add('zakat-fade-in');
}
// Load charity projects
function loadCharityProjects() {
const container = document.getElementById('charity-projects-container');
container.innerHTML = '';
charityProjects.forEach(project => {
const projectElement = document.createElement('div');
projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;
projectElement.innerHTML = `
${project.title}
${project.description}
${project.cost.toLocaleString()} $
${project.selected ? 'مضاف' : 'إضافة'}
`;
container.appendChild(projectElement);
});
updateBasketDisplay();
}
// Toggle charity project selection
function toggleCharityProject(projectId) {
const project = charityProjects.find(p => p.id === projectId);
project.selected = !project.selected;
if (project.selected) {
donationBasket.push(project);
} else {
donationBasket = donationBasket.filter(p => p.id !== projectId);
}
loadCharityProjects();
updateBasketDisplay();
}
// Update donation basket display
function updateBasketDisplay() {
const container = document.getElementById('donation-basket-items');
const totalElement = document.getElementById('basket-total');
if (donationBasket.length === 0) {
container.innerHTML = 'لم تقم بإضافة أي مشاريع بعد';
totalElement.textContent = '0.00 $';
return;
}
let total = 0;
let itemsHTML = '';
donationBasket.forEach(project => {
total += project.cost;
itemsHTML += `
${project.title}
${project.description}
${project.cost.toLocaleString()} $
`;
});
container.innerHTML = itemsHTML;
totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Remove from basket
function removeFromBasket(projectId) {
const project = charityProjects.find(p => p.id === projectId);
if (project) {
project.selected = false;
}
donationBasket = donationBasket.filter(p => p.id !== projectId);
loadCharityProjects();
}
// Enhanced Calculation
function zakatCalculate() {
// Money
const cash = parseFloat(document.getElementById('zakat-cash-money').value) || 0;
const bank = parseFloat(document.getElementById('zakat-bank-money').value) || 0;
const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me').value) || 0;
const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me').value) || 0;
// Gold/Silver
const goldW = parseFloat(document.getElementById('zakat-gold-weight').value) || 0;
const carat = parseFloat(document.getElementById('zakat-gold-carat').value) || 0;
const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;
const silverW = parseFloat(document.getElementById('zakat-silver-weight').value) || 0;
const silverRate = 0.95;
// Stocks & Business
const stocks = parseFloat(document.getElementById('zakat-stocks-value').value) || 0;
const trade = parseFloat(document.getElementById('zakat-trade-goods').value) || 0;
const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;
const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;
// Calculations
const gold24Equivalent = goldW * (carat / 24);
const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);
const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);
const businessAssets = stocks + trade + realEstate + otherAssets;
const total = Math.max(0, moneyAssets + metalAssets + businessAssets);
// UI Update - Total
document.getElementById('zakat-total-assets').textContent =
total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
// Nisab Logic (85g Gold 24k)
const nisab = 85 * goldRate;
document.getElementById('zakat-nisab-value').textContent =
nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
// Update nisab displays
document.getElementById('nisab-value-display').textContent =
nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
document.getElementById('current-nisab').textContent = '85 جرام';
document.getElementById('nisab-value').textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
// Update progress bar
const nisabProgress = Math.min(100, (total / nisab) * 100);
document.getElementById('nisab-progress').style.width = `${nisabProgress}%`;
const zakatAmountEl = document.getElementById('zakat-amount');
const statusBadge = document.getElementById('zakat-status-badge');
if (total >= nisab && total > 0) {
const zakat = total * 0.025;
zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
statusBadge.innerHTML = ' وجبت الزكاة (بلغت النصاب)';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4";
} else {
zakatAmountEl.textContent = '0.00 $';
if (total > 0) {
statusBadge.innerHTML = ' لم تبلغ النصاب بعد';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4";
} else {
statusBadge.innerHTML = ' أدخل المبلغ للتحقق';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4";
}
}
}
// Fetch live rates
async function zakatFetchRates() {
const icon = document.getElementById('zakat-refresh-icon');
icon.classList.add('fa-spin');
// Simulate API call
await new Promise(r => setTimeout(r, 1000));
// Dynamic change for effect (simulated rate change)
const current = parseFloat(document.getElementById('zakat-gold-rate').value);
const newRate = current + (Math.random() - 0.5);
document.getElementById('zakat-gold-rate').value = newRate.toFixed(2);
icon.classList.remove('fa-spin');
zakatCalculate();
}
// Reset form
function zakatResetForm() {
document.querySelectorAll('input[type="number"]').forEach(input => input.value = '');
donationBasket = [];
charityProjects.forEach(p => p.selected = false);
loadCharityProjects();
zakatCalculate();
}
// Save calculation
function zakatSaveCalculation() {
const total = document.getElementById('zakat-total-assets').textContent;
const zakat = document.getElementById('zakat-amount').textContent;
alert(`تم حفظ الحساب:\nإجمالي المال: ${total}\nالزكاة الواجبة: ${zakat}`);
}
// Checkout
function zakatCheckout() {
const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);
if (total === 0) {
alert('الرجاء إضافة مشاريع إلى سلة التبرعات أولاً');
return;
}
alert(`سيتم توجيهك لصفحة الدفع لإكمال تبرعك بمبلغ ${total.toLocaleString()} $`);
// In production: window.location.href = 'payment.html';
}
// Redirect to payment
function zakatRedirectToPayment() {
const zakatAmount = document.getElementById('zakat-amount').textContent;
if (zakatAmount === '0.00 $') {
alert('الرجاء إدخال المبلغ أولاً لحساب الزكاة');
return;
}
alert(`سيتم توجيهك لصفحة الدفع لإتمام تبرعك بمبلغ ${zakatAmount}`);
// In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);
}
// Intersection Observer for animations
document.addEventListener('DOMContentLoaded', () => {
// Initialize animations
const reveals = document.querySelectorAll('.zakat-reveal');
const obs = new IntersectionObserver((entries) => {
entries.forEach(e => {
if (e.isIntersecting) e.target.classList.add('active');
});
}, { threshold: 0.1 });
reveals.forEach(r => obs.observe(r));
// Initialize calculation
zakatCalculate();
// Load initial nisab value
const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;
const nisab = 85 * goldRate;
document.getElementById('zakat-nisab-value').textContent =
nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
});
') (Line: 62)
gavias_content_builder_render_el(Array) (Line: 22)
gavias_content_builder_frontend('[{"settings":{"element":"gva_row","bg_particles":"off","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","style_space":"remove_margin remove_padding remove_padding_col","padding_top":"0","padding_bottom":"0","margin_top":"0","margin_bottom":"0","layout":"container-fw","class":"aboutus"},"columns":[{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":" \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ركن الإسلام الثالث\r\n حاسبة الزكاة الذكيةأداء دقيق.. أثر كبير\r\n \r\n \r\n حاسبة متكاملة لحساب زكاتك وفق أحدث الأسعار وأصح الأحكام الشرعية، مصممة لمساعدتك على أداء فريضتك بدقة وثقة.\r\n \r\n \r\n \r\n \r\n \r\n نصاب الذهب اليوم\r\n 85 جرام\r\n \r\n \r\n \r\n \r\n ما يعادل $6,502.50 حسب سعر الذهب الحالي\r\n \r\n \r\n \r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","class":"zakatt"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n النقود والودائع\r\n \r\n \r\n \r\n الذهب والفضة\r\n \r\n \r\n \r\n الأسهم والتجارة\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n النقود والودائع البنكية\r\n \r\n \r\n \r\n \r\n النقود المتوفرة\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n الودائع والأرصدة البنكية\r\n \r\n \r\n \r\n \r\n \r\n \r\n ديون مستحقة لك\r\n \r\n \r\n \r\n \r\n الديون التي تتوقع استردادها\r\n \r\n \r\n الديون المستحقة عليك\r\n \r\n \r\n \r\n \r\n تخصم من إجمالي الأموال\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n الذهب والفضة والمجوهرات\r\n \r\n \r\n \r\n وزن الذهب (جرام)\r\n \r\n \r\n \r\n \r\n ما يزيد عن الاستخدام الشخصي\r\n \r\n \r\n عيار الذهب\r\n \r\n \r\n عَيار 24 (نقي)\r\n عَيار 22\r\n عَيار 21\r\n عَيار 18\r\n \r\n \r\n \r\n \r\n \r\n وزن الفضة (جرام)\r\n \r\n \r\n \r\n \r\n \r\n \r\n سعر الذهب اليوم\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n سعر الجرام بالدولار\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n حاسبة النصاب\r\n \r\n \r\n \r\n نصاب الذهب\r\n 85 جرام\r\n \r\n \r\n نصاب الفضة\r\n 595 جرام\r\n \r\n \r\n قيمته بالدولار\r\n $6,502.50\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n الأصول التجارية والاستثمارية\r\n \r\n \r\n \r\n قيمة الأسهم الحالية\r\n \r\n \r\n \r\n \r\n \r\n \r\n عروض التجارة\r\n \r\n \r\n \r\n \r\n البضائع المعدة للبيع\r\n \r\n \r\n العقارات الاستثمارية\r\n \r\n \r\n \r\n \r\n \r\n \r\n أصول أخرى\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n اختر مشاريعك الخيرية\r\n \r\n يمكنك توزيع زكاتك على عدة مشاريع خيرية حسب رغبتك\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n سلة التبرعات\r\n \r\n \r\n لم تقم بإضافة أي مشاريع بعد\r\n \r\n \r\n \r\n إجمالي المبلغ المحدد\r\n 0.00 $\r\n \r\n \r\n إتمام التبرع\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n شروط وجوب الزكاة\r\n \r\n <ul>\r\n <li>\r\n \r\n بلوغ النصاب (ما يعادل 85 جرام ذهب 24 قيراط)\r\n </li>\r\n <li>\r\n \r\n حولان الحول (مرور عام هجري على امتلاك المال)\r\n </li>\r\n <li>\r\n \r\n الملكية التامة للمال والقدرة على التصرف فيه\r\n </li>\r\n </ul>\r\n \r\n \r\n \r\n \r\n أمانة وجدان\r\n \r\n \r\n نلتزم في وجدان الخيرية بصرف الزكاة في مصارفها الشرعية الثمانية تحت إشراف لجان شرعية متخصصة، مع ضمان أعلى معايير الشفافية والتتبع.\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n ملخص الحساب\r\n \r\n\r\n \r\n \r\n إجمالي المال الخاضع للزكاة\r\n 0.00 $\r\n \r\n \r\n نصاب الزكاة الحالي\r\n 6,502.50 $\r\n \r\n \r\n\r\n \r\n الزكاة الواجبة (2.5%)\r\n 0.00 $\r\n \r\n \r\n أدخل المبلغ للتحقق\r\n \r\n \r\n\r\n \r\n <a>\r\n \r\n تواصل عبر واتساب للإستشارة والتبرع\r\n </a>\r\n \r\n\r\n \r\n جميع الحسابات مبنية على أسعار الذهب العالمية وأحدث الفتاوى الشرعية. نوصي باستشارة أهل العلم في المسائل الفقهية الدقيقة.\r\n \r\n \r\n \r\n \r\n \r\n إعادة تعيين\r\n \r\n \r\n حفظ الحساب\r\n \r\n \r\n \r\n \r\n \r\n \r\n ","animate_delay":"0","el_class":"zakatt"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":" \r\n // Initialize charity projects\r\n const charityProjects = [\r\n {\r\n id: 1,\r\n title: \"إفطار صائم\",\r\n description: \"توفير وجبات إفطار شهر رمضان للأسر المحتاجة\",\r\n icon: \"fa-utensils\",\r\n cost: 500,\r\n selected: false\r\n },\r\n {\r\n id: 2,\r\n title: \"كسوة الشتاء\",\r\n description: \"توزيع ملابس شتوية للأطفال والأسر المحتاجة\",\r\n icon: \"fa-shirt\",\r\n cost: 300,\r\n selected: false\r\n },\r\n {\r\n id: 3,\r\n title: \"سقيا الماء\",\r\n description: \"حفر آبار وتوفير مياه شرب نظيفة\",\r\n icon: \"fa-droplet\",\r\n cost: 1000,\r\n selected: false\r\n },\r\n {\r\n id: 4,\r\n title: \"تعليم الأيتام\",\r\n description: \"دعم تعليمي للأيتام ومستلزمات مدرسية\",\r\n icon: \"fa-graduation-cap\",\r\n cost: 400,\r\n selected: false\r\n },\r\n {\r\n id: 5,\r\n title: \"علاج المرضى\",\r\n description: \"تغطية نفقات علاج للأسر غير القادرة\",\r\n icon: \"fa-heart-pulse\",\r\n cost: 800,\r\n selected: false\r\n },\r\n {\r\n id: 6,\r\n title: \"رعاية الأرامل\",\r\n description: \"دعم شهري للأرامل وأطفالهن\",\r\n icon: \"fa-hand-holding-heart\",\r\n cost: 600,\r\n selected: false\r\n }\r\n ];\r\n\r\n // Donation basket\r\n let donationBasket = [];\r\n \r\n // Tab system\r\n function zakatSwitchTab(tab) {\r\n // Update tabs\r\n document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));\r\n document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));\r\n \r\n // Activate selected tab\r\n document.getElementById('zakat-tab-' + tab).classList.add('active');\r\n document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');\r\n \r\n // Load charity projects if on charity tab\r\n if (tab === 'charity') {\r\n loadCharityProjects();\r\n }\r\n \r\n // Add animation\r\n const activeSection = document.getElementById('zakat-section-' + tab);\r\n activeSection.classList.add('zakat-fade-in');\r\n }\r\n \r\n // Load charity projects\r\n function loadCharityProjects() {\r\n const container = document.getElementById('charity-projects-container');\r\n container.innerHTML = '';\r\n \r\n charityProjects.forEach(project => {\r\n const projectElement = document.createElement('div');\r\n projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;\r\n projectElement.innerHTML = `\r\n \r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n ${project.selected ? 'مضاف' : 'إضافة'}\r\n \r\n \r\n `;\r\n container.appendChild(projectElement);\r\n });\r\n \r\n updateBasketDisplay();\r\n }\r\n \r\n // Toggle charity project selection\r\n function toggleCharityProject(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n project.selected = !project.selected;\r\n \r\n if (project.selected) {\r\n donationBasket.push(project);\r\n } else {\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n }\r\n \r\n loadCharityProjects();\r\n updateBasketDisplay();\r\n }\r\n \r\n // Update donation basket display\r\n function updateBasketDisplay() {\r\n const container = document.getElementById('donation-basket-items');\r\n const totalElement = document.getElementById('basket-total');\r\n \r\n if (donationBasket.length === 0) {\r\n container.innerHTML = 'لم تقم بإضافة أي مشاريع بعد';\r\n totalElement.textContent = '0.00 $';\r\n return;\r\n }\r\n \r\n let total = 0;\r\n let itemsHTML = '';\r\n \r\n donationBasket.forEach(project => {\r\n total += project.cost;\r\n itemsHTML += `\r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n \r\n \r\n \r\n \r\n `;\r\n });\r\n \r\n container.innerHTML = itemsHTML;\r\n totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Remove from basket\r\n function removeFromBasket(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n if (project) {\r\n project.selected = false;\r\n }\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n loadCharityProjects();\r\n }\r\n \r\n // Enhanced Calculation\r\n function zakatCalculate() {\r\n // Money\r\n const cash = parseFloat(document.getElementById('zakat-cash-money').value) || 0;\r\n const bank = parseFloat(document.getElementById('zakat-bank-money').value) || 0;\r\n const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me').value) || 0;\r\n const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me').value) || 0;\r\n \r\n // Gold/Silver\r\n const goldW = parseFloat(document.getElementById('zakat-gold-weight').value) || 0;\r\n const carat = parseFloat(document.getElementById('zakat-gold-carat').value) || 0;\r\n const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;\r\n const silverW = parseFloat(document.getElementById('zakat-silver-weight').value) || 0;\r\n const silverRate = 0.95;\r\n \r\n // Stocks & Business\r\n const stocks = parseFloat(document.getElementById('zakat-stocks-value').value) || 0;\r\n const trade = parseFloat(document.getElementById('zakat-trade-goods').value) || 0;\r\n const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;\r\n const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;\r\n \r\n // Calculations\r\n const gold24Equivalent = goldW * (carat / 24);\r\n const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);\r\n const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);\r\n const businessAssets = stocks + trade + realEstate + otherAssets;\r\n const total = Math.max(0, moneyAssets + metalAssets + businessAssets);\r\n \r\n // UI Update - Total\r\n document.getElementById('zakat-total-assets').textContent = \r\n total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n // Nisab Logic (85g Gold 24k)\r\n const nisab = 85 * goldRate;\r\n document.getElementById('zakat-nisab-value').textContent = \r\n nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n // Update nisab displays\r\n document.getElementById('nisab-value-display').textContent = \r\n nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n document.getElementById('current-nisab').textContent = '85 جرام';\r\n document.getElementById('nisab-value').textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n // Update progress bar\r\n const nisabProgress = Math.min(100, (total / nisab) * 100);\r\n document.getElementById('nisab-progress').style.width = `${nisabProgress}%`;\r\n \r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const statusBadge = document.getElementById('zakat-status-badge');\r\n \r\n if (total >= nisab && total > 0) {\r\n const zakat = total * 0.025;\r\n zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n statusBadge.innerHTML = ' وجبت الزكاة (بلغت النصاب)';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4\";\r\n } else {\r\n zakatAmountEl.textContent = '0.00 $';\r\n \r\n if (total > 0) {\r\n statusBadge.innerHTML = ' لم تبلغ النصاب بعد';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4\";\r\n } else {\r\n statusBadge.innerHTML = ' أدخل المبلغ للتحقق';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4\";\r\n }\r\n }\r\n }\r\n \r\n // Fetch live rates\r\n async function zakatFetchRates() {\r\n const icon = document.getElementById('zakat-refresh-icon');\r\n icon.classList.add('fa-spin');\r\n \r\n // Simulate API call\r\n await new Promise(r => setTimeout(r, 1000));\r\n \r\n // Dynamic change for effect (simulated rate change)\r\n const current = parseFloat(document.getElementById('zakat-gold-rate').value);\r\n const newRate = current + (Math.random() - 0.5);\r\n document.getElementById('zakat-gold-rate').value = newRate.toFixed(2);\r\n \r\n icon.classList.remove('fa-spin');\r\n zakatCalculate();\r\n }\r\n \r\n // Reset form\r\n function zakatResetForm() {\r\n document.querySelectorAll('input[type=\"number\"]').forEach(input => input.value = '');\r\n donationBasket = [];\r\n charityProjects.forEach(p => p.selected = false);\r\n loadCharityProjects();\r\n zakatCalculate();\r\n }\r\n \r\n // Save calculation\r\n function zakatSaveCalculation() {\r\n const total = document.getElementById('zakat-total-assets').textContent;\r\n const zakat = document.getElementById('zakat-amount').textContent;\r\n \r\n alert(`تم حفظ الحساب:\\nإجمالي المال: ${total}\\nالزكاة الواجبة: ${zakat}`);\r\n }\r\n \r\n // Checkout\r\n function zakatCheckout() {\r\n const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);\r\n if (total === 0) {\r\n alert('الرجاء إضافة مشاريع إلى سلة التبرعات أولاً');\r\n return;\r\n }\r\n \r\n alert(`سيتم توجيهك لصفحة الدفع لإكمال تبرعك بمبلغ ${total.toLocaleString()} $`);\r\n // In production: window.location.href = 'payment.html';\r\n }\r\n \r\n // Redirect to payment\r\n function zakatRedirectToPayment() {\r\n const zakatAmount = document.getElementById('zakat-amount').textContent;\r\n if (zakatAmount === '0.00 $') {\r\n alert('الرجاء إدخال المبلغ أولاً لحساب الزكاة');\r\n return;\r\n }\r\n \r\n alert(`سيتم توجيهك لصفحة الدفع لإتمام تبرعك بمبلغ ${zakatAmount}`);\r\n // In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);\r\n }\r\n \r\n // Intersection Observer for animations\r\n document.addEventListener('DOMContentLoaded', () => {\r\n // Initialize animations\r\n const reveals = document.querySelectorAll('.zakat-reveal');\r\n const obs = new IntersectionObserver((entries) => {\r\n entries.forEach(e => {\r\n if (e.isIntersecting) e.target.classList.add('active');\r\n });\r\n }, { threshold: 0.1 });\r\n reveals.forEach(r => obs.observe(r));\r\n \r\n // Initialize calculation\r\n zakatCalculate();\r\n \r\n // Load initial nisab value\r\n const goldRate = parseFloat(document.getElementById('zakat-gold-rate').value) || 0;\r\n const nisab = 85 * goldRate;\r\n document.getElementById('zakat-nisab-value').textContent = \r\n nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n });\r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'ar') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'ar') (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. Support for this callback implementation is deprecated in 8.8.0 and will be removed in Drupal 9.0.0. See https://www.drupal.org/node/2966725', 'silenced_deprecation', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)