- 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, '
The Third Pillar of Islam
Smart Zakat CalculatorAccurate Payment.. Big Impact
A comprehensive calculator to calculate your zakat according to the most up-to-date prices and the most accurate Sharia rulings, enabling you to perform your worship with accuracy and confidence. It is designed to help.
Today's Gold Nisab
85 Grams
Equivalent according to current gold price id="nisab-value">$6,502.50
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
The Third Pillar of Islam
Smart Zakat CalculatorAccurate Payment.. Big Impact
A comprehensive calculator to calculate your zakat according to the most up-to-date prices and the most accurate Sharia rulings, enabling you to perform your worship with accuracy and confidence. It is designed to help.
Today's Gold Nisab
85 Grams
Equivalent according to current gold price id="nisab-value">$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\nThe Third Pillar of Islam\r\nSmart Zakat CalculatorAccurate Payment.. Big Impact\r\n\r\n\r\nA comprehensive calculator to calculate your zakat according to the most up-to-date prices and the most accurate Sharia rulings, enabling you to perform your worship with accuracy and confidence. It is designed to help. \r\n\r\n\r\n\r\n\r\nToday's Gold Nisab\r\n85 Grams\r\n\r\n\r\n\r\n\r\nEquivalent according to current gold price id=\"nisab-value\">$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 Cash & Savings\r\n \r\n \r\n \r\n Gold & Silver\r\n \r\n \r\n \r\n Stocks & Business Assets\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Cash & Bank Deposits\r\n \r\n \r\n \r\n \r\n Available Cash\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Bank Deposits & Account Balances\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Money Owed to You\r\n \r\n \r\n \r\n \r\n Debts you expect to collect\r\n \r\n\r\n \r\n Your Outstanding Debts\r\n \r\n \r\n \r\n \r\n Deducted from your total assets\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Gold, Silver & Jewelry\r\n \r\n\r\n \r\n \r\n Gold Weight (Grams)\r\n \r\n \r\n \r\n \r\n Excluding jewelry for personal use\r\n \r\n\r\n \r\n Gold Purity\r\n \r\n \r\n 24 Karat (Pure)\r\n 22 Karat\r\n 21 Karat\r\n 18 Karat\r\n \r\n \r\n \r\n \r\n\r\n \r\n Silver Weight (Grams)\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Today's Gold Price\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n Price per gram (USD)\r\n \r\n \r\n \r\n \r\n \r\n \r\n Nisab Calculator\r\n \r\n \r\n \r\n Gold Nisab\r\n 85 Grams\r\n \r\n \r\n Silver Nisab\r\n 595 Grams\r\n \r\n \r\n Value in USD\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 Business & Investment Assets\r\n \r\n \r\n \r\n Current Stock Value\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Trade Goods\r\n \r\n \r\n \r\n \r\n Goods intended for sale\r\n \r\n\r\n \r\n Investment Real Estate\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Other Assets\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n Choose Your Charity Projects\r\n \r\n\r\n \r\n You can distribute your Zakat among one or more charity projects as you wish.\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Donation Basket\r\n \r\n\r\n \r\n You have not added any projects yet.\r\n \r\n\r\n \r\n \r\n Total Allocated Amount\r\n 0.00 $\r\n \r\n\r\n \r\n Complete Donation\r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n Conditions for Zakat Obligation\r\n \r\n\r\n <ul>\r\n <li>\r\n \r\n Owning wealth equal to or exceeding the Nisab (the value of 85 grams of 24K gold).\r\n </li>\r\n\r\n <li>\r\n \r\n One Hijri year has passed while owning the wealth.\r\n </li>\r\n\r\n <li>\r\n \r\n Full ownership and complete control over the wealth.\r\n </li>\r\n </ul>\r\n \r\n\r\n \r\n \r\n \r\n Trust & Transparency\r\n \r\n\r\n \r\n At Vicdan Relief Association, we are committed to distributing your Zakat according to the eight eligible categories under the supervision of qualified Islamic scholars, while ensuring the highest standards of transparency, accountability, and traceability.\r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n Calculation Summary\r\n \r\n\r\n \r\n \r\n \r\n Total Zakatable Assets\r\n \r\n 0.00 $\r\n \r\n\r\n \r\n \r\n Current Nisab Threshold\r\n \r\n 6,502.50 $\r\n \r\n \r\n\r\n \r\n \r\n Zakat Due (2.5%)\r\n \r\n\r\n 0.00 $\r\n\r\n \r\n \r\n Enter your assets to calculate\r\n \r\n \r\n\r\n <a>\r\n Contact Us on WhatsApp for Consultation & Donations\r\n </a>\r\n\r\n \r\n All calculations are based on current global gold prices and the latest recognized Islamic rulings. For specific religious matters, we recommend consulting a qualified Islamic scholar.\r\n \r\n\r\n \r\n \r\n \r\n Reset\r\n \r\n\r\n \r\n Save Calculation\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: \"Oruç Açtırma\",\r\n description: \"Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması\",\r\n icon: \"fa-utensils\",\r\n cost: 500,\r\n selected: false\r\n },\r\n {\r\n id: 2,\r\n title: \"Kışlık Giysi\",\r\n description: \"İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı\",\r\n icon: \"fa-shirt\",\r\n cost: 300,\r\n selected: false\r\n },\r\n {\r\n id: 3,\r\n title: \"Su Kuyusu\",\r\n description: \"Kuyu açılması ve temiz içme suyu sağlanması\",\r\n icon: \"fa-droplet\",\r\n cost: 1000,\r\n selected: false\r\n },\r\n {\r\n id: 4,\r\n title: \"Yetim Eğitimi\",\r\n description: \"Yetimlere eğitim desteği ve okul malzemeleri\",\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: \"Hasta Tedavisi\",\r\n description: \"Gücü yetmeyen ailelerin tedavi masraflarının karşılanması\",\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: \"Dul Kadın Bakımı\",\r\n description: \"Dul kadınlara ve çocuklarına aylık destek\",\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 if (!container) return;\r\n \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 ? 'Eklendi' : 'Ekle'}\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 (!container || !totalElement) return;\r\n \r\n if (donationBasket.length === 0) {\r\n container.innerHTML = 'Henüz herhangi bir proje eklemediniz';\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 const totalAssetsEl = document.getElementById('zakat-total-assets');\r\n if (totalAssetsEl) {\r\n totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Nisab Logic (85g Gold 24k)\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update nisab displays\r\n const nisabValueDisplayEl = document.getElementById('nisab-value-display');\r\n if (nisabValueDisplayEl) {\r\n nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n const currentNisabEl = document.getElementById('current-nisab');\r\n if (currentNisabEl) {\r\n currentNisabEl.textContent = '85 Gram';\r\n }\r\n \r\n const nisabValueEl2 = document.getElementById('nisab-value');\r\n if (nisabValueEl2) {\r\n nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update progress bar\r\n const nisabProgress = Math.min(100, (total / nisab) * 100);\r\n const progressEl = document.getElementById('nisab-progress');\r\n if (progressEl) {\r\n progressEl.style.width = `${nisabProgress}%`;\r\n }\r\n \r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const statusBadge = document.getElementById('zakat-status-badge');\r\n \r\n if (zakatAmountEl && statusBadge) {\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 = ' Zekat farz oldu (Nisaba ulaştı)';\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 = ' Henüz nisaba ulaşmadı';\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 = ' Kontrol etmek için tutarı girin';\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 \r\n // Fetch live rates\r\n async function zakatFetchRates() {\r\n const icon = document.getElementById('zakat-refresh-icon');\r\n if (icon) 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 goldRateInput = document.getElementById('zakat-gold-rate');\r\n if (goldRateInput) {\r\n const current = parseFloat(goldRateInput.value);\r\n const newRate = current + (Math.random() - 0.5) * 2;\r\n goldRateInput.value = newRate.toFixed(2);\r\n }\r\n \r\n if (icon) 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 => {\r\n if (input) input.value = '';\r\n });\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 totalEl = document.getElementById('zakat-total-assets');\r\n const zakatEl = document.getElementById('zakat-amount');\r\n const total = totalEl ? totalEl.textContent : '0';\r\n const zakat = zakatEl ? zakatEl.textContent : '0';\r\n \r\n alert(`Hesaplama kaydedildi:\\nToplam Mal: ${total}\\nFarz Olan Zekat: ${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('Lütfen önce bağış sepetine projeler ekleyin');\r\n return;\r\n }\r\n \r\n alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);\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 zakatAmountEl = document.getElementById('zakat-amount');\r\n const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';\r\n if (zakatAmount === '0.00 $') {\r\n alert('Lütfen önce zekat hesaplamak için tutarı girin');\r\n return;\r\n }\r\n \r\n alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);\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 goldRateInput = document.getElementById('zakat-gold-rate');\r\n const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\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"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'en') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'en') (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, '
The Third Pillar of Islam
Smart Zakat CalculatorAccurate Payment.. Big Impact
A comprehensive calculator to calculate your zakat according to the most up-to-date prices and the most accurate Sharia rulings, enabling you to perform your worship with accuracy and confidence. It is designed to help.
Today's Gold Nisab
85 Grams
Equivalent according to current gold price id="nisab-value">$6,502.50
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
The Third Pillar of Islam
Smart Zakat CalculatorAccurate Payment.. Big Impact
A comprehensive calculator to calculate your zakat according to the most up-to-date prices and the most accurate Sharia rulings, enabling you to perform your worship with accuracy and confidence. It is designed to help.
Today's Gold Nisab
85 Grams
Equivalent according to current gold price id="nisab-value">$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\nThe Third Pillar of Islam\r\nSmart Zakat CalculatorAccurate Payment.. Big Impact\r\n\r\n\r\nA comprehensive calculator to calculate your zakat according to the most up-to-date prices and the most accurate Sharia rulings, enabling you to perform your worship with accuracy and confidence. It is designed to help. \r\n\r\n\r\n\r\n\r\nToday's Gold Nisab\r\n85 Grams\r\n\r\n\r\n\r\n\r\nEquivalent according to current gold price id=\"nisab-value\">$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 Cash & Savings\r\n \r\n \r\n \r\n Gold & Silver\r\n \r\n \r\n \r\n Stocks & Business Assets\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Cash & Bank Deposits\r\n \r\n \r\n \r\n \r\n Available Cash\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Bank Deposits & Account Balances\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Money Owed to You\r\n \r\n \r\n \r\n \r\n Debts you expect to collect\r\n \r\n\r\n \r\n Your Outstanding Debts\r\n \r\n \r\n \r\n \r\n Deducted from your total assets\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Gold, Silver & Jewelry\r\n \r\n\r\n \r\n \r\n Gold Weight (Grams)\r\n \r\n \r\n \r\n \r\n Excluding jewelry for personal use\r\n \r\n\r\n \r\n Gold Purity\r\n \r\n \r\n 24 Karat (Pure)\r\n 22 Karat\r\n 21 Karat\r\n 18 Karat\r\n \r\n \r\n \r\n \r\n\r\n \r\n Silver Weight (Grams)\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Today's Gold Price\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n Price per gram (USD)\r\n \r\n \r\n \r\n \r\n \r\n \r\n Nisab Calculator\r\n \r\n \r\n \r\n Gold Nisab\r\n 85 Grams\r\n \r\n \r\n Silver Nisab\r\n 595 Grams\r\n \r\n \r\n Value in USD\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 Business & Investment Assets\r\n \r\n \r\n \r\n Current Stock Value\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Trade Goods\r\n \r\n \r\n \r\n \r\n Goods intended for sale\r\n \r\n\r\n \r\n Investment Real Estate\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Other Assets\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n Choose Your Charity Projects\r\n \r\n\r\n \r\n You can distribute your Zakat among one or more charity projects as you wish.\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Donation Basket\r\n \r\n\r\n \r\n You have not added any projects yet.\r\n \r\n\r\n \r\n \r\n Total Allocated Amount\r\n 0.00 $\r\n \r\n\r\n \r\n Complete Donation\r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n Conditions for Zakat Obligation\r\n \r\n\r\n <ul>\r\n <li>\r\n \r\n Owning wealth equal to or exceeding the Nisab (the value of 85 grams of 24K gold).\r\n </li>\r\n\r\n <li>\r\n \r\n One Hijri year has passed while owning the wealth.\r\n </li>\r\n\r\n <li>\r\n \r\n Full ownership and complete control over the wealth.\r\n </li>\r\n </ul>\r\n \r\n\r\n \r\n \r\n \r\n Trust & Transparency\r\n \r\n\r\n \r\n At Vicdan Relief Association, we are committed to distributing your Zakat according to the eight eligible categories under the supervision of qualified Islamic scholars, while ensuring the highest standards of transparency, accountability, and traceability.\r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n Calculation Summary\r\n \r\n\r\n \r\n \r\n \r\n Total Zakatable Assets\r\n \r\n 0.00 $\r\n \r\n\r\n \r\n \r\n Current Nisab Threshold\r\n \r\n 6,502.50 $\r\n \r\n \r\n\r\n \r\n \r\n Zakat Due (2.5%)\r\n \r\n\r\n 0.00 $\r\n\r\n \r\n \r\n Enter your assets to calculate\r\n \r\n \r\n\r\n <a>\r\n Contact Us on WhatsApp for Consultation & Donations\r\n </a>\r\n\r\n \r\n All calculations are based on current global gold prices and the latest recognized Islamic rulings. For specific religious matters, we recommend consulting a qualified Islamic scholar.\r\n \r\n\r\n \r\n \r\n \r\n Reset\r\n \r\n\r\n \r\n Save Calculation\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: \"Oruç Açtırma\",\r\n description: \"Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması\",\r\n icon: \"fa-utensils\",\r\n cost: 500,\r\n selected: false\r\n },\r\n {\r\n id: 2,\r\n title: \"Kışlık Giysi\",\r\n description: \"İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı\",\r\n icon: \"fa-shirt\",\r\n cost: 300,\r\n selected: false\r\n },\r\n {\r\n id: 3,\r\n title: \"Su Kuyusu\",\r\n description: \"Kuyu açılması ve temiz içme suyu sağlanması\",\r\n icon: \"fa-droplet\",\r\n cost: 1000,\r\n selected: false\r\n },\r\n {\r\n id: 4,\r\n title: \"Yetim Eğitimi\",\r\n description: \"Yetimlere eğitim desteği ve okul malzemeleri\",\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: \"Hasta Tedavisi\",\r\n description: \"Gücü yetmeyen ailelerin tedavi masraflarının karşılanması\",\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: \"Dul Kadın Bakımı\",\r\n description: \"Dul kadınlara ve çocuklarına aylık destek\",\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 if (!container) return;\r\n \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 ? 'Eklendi' : 'Ekle'}\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 (!container || !totalElement) return;\r\n \r\n if (donationBasket.length === 0) {\r\n container.innerHTML = 'Henüz herhangi bir proje eklemediniz';\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 const totalAssetsEl = document.getElementById('zakat-total-assets');\r\n if (totalAssetsEl) {\r\n totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Nisab Logic (85g Gold 24k)\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update nisab displays\r\n const nisabValueDisplayEl = document.getElementById('nisab-value-display');\r\n if (nisabValueDisplayEl) {\r\n nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n const currentNisabEl = document.getElementById('current-nisab');\r\n if (currentNisabEl) {\r\n currentNisabEl.textContent = '85 Gram';\r\n }\r\n \r\n const nisabValueEl2 = document.getElementById('nisab-value');\r\n if (nisabValueEl2) {\r\n nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update progress bar\r\n const nisabProgress = Math.min(100, (total / nisab) * 100);\r\n const progressEl = document.getElementById('nisab-progress');\r\n if (progressEl) {\r\n progressEl.style.width = `${nisabProgress}%`;\r\n }\r\n \r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const statusBadge = document.getElementById('zakat-status-badge');\r\n \r\n if (zakatAmountEl && statusBadge) {\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 = ' Zekat farz oldu (Nisaba ulaştı)';\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 = ' Henüz nisaba ulaşmadı';\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 = ' Kontrol etmek için tutarı girin';\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 \r\n // Fetch live rates\r\n async function zakatFetchRates() {\r\n const icon = document.getElementById('zakat-refresh-icon');\r\n if (icon) 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 goldRateInput = document.getElementById('zakat-gold-rate');\r\n if (goldRateInput) {\r\n const current = parseFloat(goldRateInput.value);\r\n const newRate = current + (Math.random() - 0.5) * 2;\r\n goldRateInput.value = newRate.toFixed(2);\r\n }\r\n \r\n if (icon) 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 => {\r\n if (input) input.value = '';\r\n });\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 totalEl = document.getElementById('zakat-total-assets');\r\n const zakatEl = document.getElementById('zakat-amount');\r\n const total = totalEl ? totalEl.textContent : '0';\r\n const zakat = zakatEl ? zakatEl.textContent : '0';\r\n \r\n alert(`Hesaplama kaydedildi:\\nToplam Mal: ${total}\\nFarz Olan Zekat: ${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('Lütfen önce bağış sepetine projeler ekleyin');\r\n return;\r\n }\r\n \r\n alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);\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 zakatAmountEl = document.getElementById('zakat-amount');\r\n const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';\r\n if (zakatAmount === '0.00 $') {\r\n alert('Lütfen önce zekat hesaplamak için tutarı girin');\r\n return;\r\n }\r\n \r\n alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);\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 goldRateInput = document.getElementById('zakat-gold-rate');\r\n const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\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"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'en') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'en') (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, '
Cash & Savings
Gold & Silver
Stocks & Business Assets
Charity Projects
-->
Cash & Bank Deposits
Available Cash
Bank Deposits & Account Balances
Money Owed to You
Debts you expect to collect
Your Outstanding Debts
Deducted from your total assets
Gold, Silver & Jewelry
Gold Weight (Grams)
Excluding jewelry for personal use
Gold Purity
24 Karat (Pure)
22 Karat
21 Karat
18 Karat
Silver Weight (Grams)
Today's Gold Price
Price per gram (USD)
Nisab Calculator
Gold Nisab
85 Grams
Silver Nisab
595 Grams
Value in USD
$6,502.50
Business & Investment Assets
Current Stock Value
Trade Goods
Goods intended for sale
Investment Real Estate
Other Assets
Choose Your Charity Projects
You can distribute your Zakat among one or more charity projects as you wish.
Donation Basket
You have not added any projects yet.
Total Allocated Amount
0.00 $
Complete Donation
Conditions for Zakat Obligation
<ul class="space-y-3 text-gray-600">
<li class="flex items-start gap-3">
Owning wealth equal to or exceeding the Nisab (the value of 85 grams of 24K gold).
</li>
<li class="flex items-start gap-3">
One Hijri year has passed while owning the wealth.
</li>
<li class="flex items-start gap-3">
Full ownership and complete control over the wealth.
</li>
</ul>
Trust & Transparency
At Vicdan Relief Association, we are committed to distributing your Zakat according to the eight eligible categories under the supervision of qualified Islamic scholars, while ensuring the highest standards of transparency, accountability, and traceability.
Calculation Summary
Total Zakatable Assets
0.00 $
Current Nisab Threshold
6,502.50 $
Zakat Due (2.5%)
0.00 $
Enter your assets to calculate
<a href="https://wa.me/905057763103" class="sponsorships-btn-secondary sponsorships-btn-full mt-4" target="_blank">
Contact Us on WhatsApp for Consultation & Donations
</a>
All calculations are based on current global gold prices and the latest recognized Islamic rulings. For specific religious matters, we recommend consulting a qualified Islamic scholar.
Reset
Save Calculation
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
Cash & Savings
Gold & Silver
Stocks & Business Assets
Charity Projects
-->
Cash & Bank Deposits
Available Cash
Bank Deposits & Account Balances
Money Owed to You
Debts you expect to collect
Your Outstanding Debts
Deducted from your total assets
Gold, Silver & Jewelry
Gold Weight (Grams)
Excluding jewelry for personal use
Gold Purity
24 Karat (Pure)
22 Karat
21 Karat
18 Karat
Silver Weight (Grams)
Today's Gold Price
Price per gram (USD)
Nisab Calculator
Gold Nisab
85 Grams
Silver Nisab
595 Grams
Value in USD
$6,502.50
Business & Investment Assets
Current Stock Value
Trade Goods
Goods intended for sale
Investment Real Estate
Other Assets
Choose Your Charity Projects
You can distribute your Zakat among one or more charity projects as you wish.
Donation Basket
You have not added any projects yet.
Total Allocated Amount
0.00 $
Complete Donation
Conditions for Zakat Obligation
<ul class="space-y-3 text-gray-600">
<li class="flex items-start gap-3">
Owning wealth equal to or exceeding the Nisab (the value of 85 grams of 24K gold).
</li>
<li class="flex items-start gap-3">
One Hijri year has passed while owning the wealth.
</li>
<li class="flex items-start gap-3">
Full ownership and complete control over the wealth.
</li>
</ul>
Trust & Transparency
At Vicdan Relief Association, we are committed to distributing your Zakat according to the eight eligible categories under the supervision of qualified Islamic scholars, while ensuring the highest standards of transparency, accountability, and traceability.
Calculation Summary
Total Zakatable Assets
0.00 $
Current Nisab Threshold
6,502.50 $
Zakat Due (2.5%)
0.00 $
Enter your assets to calculate
<a href="https://wa.me/905057763103" class="sponsorships-btn-secondary sponsorships-btn-full mt-4" target="_blank">
Contact Us on WhatsApp for Consultation & Donations
</a>
All calculations are based on current global gold prices and the latest recognized Islamic rulings. For specific religious matters, we recommend consulting a qualified Islamic scholar.
Reset
Save Calculation
') (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\nThe Third Pillar of Islam\r\nSmart Zakat CalculatorAccurate Payment.. Big Impact\r\n\r\n\r\nA comprehensive calculator to calculate your zakat according to the most up-to-date prices and the most accurate Sharia rulings, enabling you to perform your worship with accuracy and confidence. It is designed to help. \r\n\r\n\r\n\r\n\r\nToday's Gold Nisab\r\n85 Grams\r\n\r\n\r\n\r\n\r\nEquivalent according to current gold price id=\"nisab-value\">$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 Cash & Savings\r\n \r\n \r\n \r\n Gold & Silver\r\n \r\n \r\n \r\n Stocks & Business Assets\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Cash & Bank Deposits\r\n \r\n \r\n \r\n \r\n Available Cash\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Bank Deposits & Account Balances\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Money Owed to You\r\n \r\n \r\n \r\n \r\n Debts you expect to collect\r\n \r\n\r\n \r\n Your Outstanding Debts\r\n \r\n \r\n \r\n \r\n Deducted from your total assets\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Gold, Silver & Jewelry\r\n \r\n\r\n \r\n \r\n Gold Weight (Grams)\r\n \r\n \r\n \r\n \r\n Excluding jewelry for personal use\r\n \r\n\r\n \r\n Gold Purity\r\n \r\n \r\n 24 Karat (Pure)\r\n 22 Karat\r\n 21 Karat\r\n 18 Karat\r\n \r\n \r\n \r\n \r\n\r\n \r\n Silver Weight (Grams)\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Today's Gold Price\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n Price per gram (USD)\r\n \r\n \r\n \r\n \r\n \r\n \r\n Nisab Calculator\r\n \r\n \r\n \r\n Gold Nisab\r\n 85 Grams\r\n \r\n \r\n Silver Nisab\r\n 595 Grams\r\n \r\n \r\n Value in USD\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 Business & Investment Assets\r\n \r\n \r\n \r\n Current Stock Value\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Trade Goods\r\n \r\n \r\n \r\n \r\n Goods intended for sale\r\n \r\n\r\n \r\n Investment Real Estate\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Other Assets\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n Choose Your Charity Projects\r\n \r\n\r\n \r\n You can distribute your Zakat among one or more charity projects as you wish.\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Donation Basket\r\n \r\n\r\n \r\n You have not added any projects yet.\r\n \r\n\r\n \r\n \r\n Total Allocated Amount\r\n 0.00 $\r\n \r\n\r\n \r\n Complete Donation\r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n Conditions for Zakat Obligation\r\n \r\n\r\n <ul>\r\n <li>\r\n \r\n Owning wealth equal to or exceeding the Nisab (the value of 85 grams of 24K gold).\r\n </li>\r\n\r\n <li>\r\n \r\n One Hijri year has passed while owning the wealth.\r\n </li>\r\n\r\n <li>\r\n \r\n Full ownership and complete control over the wealth.\r\n </li>\r\n </ul>\r\n \r\n\r\n \r\n \r\n \r\n Trust & Transparency\r\n \r\n\r\n \r\n At Vicdan Relief Association, we are committed to distributing your Zakat according to the eight eligible categories under the supervision of qualified Islamic scholars, while ensuring the highest standards of transparency, accountability, and traceability.\r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n Calculation Summary\r\n \r\n\r\n \r\n \r\n \r\n Total Zakatable Assets\r\n \r\n 0.00 $\r\n \r\n\r\n \r\n \r\n Current Nisab Threshold\r\n \r\n 6,502.50 $\r\n \r\n \r\n\r\n \r\n \r\n Zakat Due (2.5%)\r\n \r\n\r\n 0.00 $\r\n\r\n \r\n \r\n Enter your assets to calculate\r\n \r\n \r\n\r\n <a>\r\n Contact Us on WhatsApp for Consultation & Donations\r\n </a>\r\n\r\n \r\n All calculations are based on current global gold prices and the latest recognized Islamic rulings. For specific religious matters, we recommend consulting a qualified Islamic scholar.\r\n \r\n\r\n \r\n \r\n \r\n Reset\r\n \r\n\r\n \r\n Save Calculation\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: \"Oruç Açtırma\",\r\n description: \"Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması\",\r\n icon: \"fa-utensils\",\r\n cost: 500,\r\n selected: false\r\n },\r\n {\r\n id: 2,\r\n title: \"Kışlık Giysi\",\r\n description: \"İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı\",\r\n icon: \"fa-shirt\",\r\n cost: 300,\r\n selected: false\r\n },\r\n {\r\n id: 3,\r\n title: \"Su Kuyusu\",\r\n description: \"Kuyu açılması ve temiz içme suyu sağlanması\",\r\n icon: \"fa-droplet\",\r\n cost: 1000,\r\n selected: false\r\n },\r\n {\r\n id: 4,\r\n title: \"Yetim Eğitimi\",\r\n description: \"Yetimlere eğitim desteği ve okul malzemeleri\",\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: \"Hasta Tedavisi\",\r\n description: \"Gücü yetmeyen ailelerin tedavi masraflarının karşılanması\",\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: \"Dul Kadın Bakımı\",\r\n description: \"Dul kadınlara ve çocuklarına aylık destek\",\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 if (!container) return;\r\n \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 ? 'Eklendi' : 'Ekle'}\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 (!container || !totalElement) return;\r\n \r\n if (donationBasket.length === 0) {\r\n container.innerHTML = 'Henüz herhangi bir proje eklemediniz';\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 const totalAssetsEl = document.getElementById('zakat-total-assets');\r\n if (totalAssetsEl) {\r\n totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Nisab Logic (85g Gold 24k)\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update nisab displays\r\n const nisabValueDisplayEl = document.getElementById('nisab-value-display');\r\n if (nisabValueDisplayEl) {\r\n nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n const currentNisabEl = document.getElementById('current-nisab');\r\n if (currentNisabEl) {\r\n currentNisabEl.textContent = '85 Gram';\r\n }\r\n \r\n const nisabValueEl2 = document.getElementById('nisab-value');\r\n if (nisabValueEl2) {\r\n nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update progress bar\r\n const nisabProgress = Math.min(100, (total / nisab) * 100);\r\n const progressEl = document.getElementById('nisab-progress');\r\n if (progressEl) {\r\n progressEl.style.width = `${nisabProgress}%`;\r\n }\r\n \r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const statusBadge = document.getElementById('zakat-status-badge');\r\n \r\n if (zakatAmountEl && statusBadge) {\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 = ' Zekat farz oldu (Nisaba ulaştı)';\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 = ' Henüz nisaba ulaşmadı';\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 = ' Kontrol etmek için tutarı girin';\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 \r\n // Fetch live rates\r\n async function zakatFetchRates() {\r\n const icon = document.getElementById('zakat-refresh-icon');\r\n if (icon) 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 goldRateInput = document.getElementById('zakat-gold-rate');\r\n if (goldRateInput) {\r\n const current = parseFloat(goldRateInput.value);\r\n const newRate = current + (Math.random() - 0.5) * 2;\r\n goldRateInput.value = newRate.toFixed(2);\r\n }\r\n \r\n if (icon) 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 => {\r\n if (input) input.value = '';\r\n });\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 totalEl = document.getElementById('zakat-total-assets');\r\n const zakatEl = document.getElementById('zakat-amount');\r\n const total = totalEl ? totalEl.textContent : '0';\r\n const zakat = zakatEl ? zakatEl.textContent : '0';\r\n \r\n alert(`Hesaplama kaydedildi:\\nToplam Mal: ${total}\\nFarz Olan Zekat: ${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('Lütfen önce bağış sepetine projeler ekleyin');\r\n return;\r\n }\r\n \r\n alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);\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 zakatAmountEl = document.getElementById('zakat-amount');\r\n const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';\r\n if (zakatAmount === '0.00 $') {\r\n alert('Lütfen önce zekat hesaplamak için tutarı girin');\r\n return;\r\n }\r\n \r\n alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);\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 goldRateInput = document.getElementById('zakat-gold-rate');\r\n const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\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"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'en') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'en') (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, '
Cash & Savings
Gold & Silver
Stocks & Business Assets
Charity Projects
-->
Cash & Bank Deposits
Available Cash
Bank Deposits & Account Balances
Money Owed to You
Debts you expect to collect
Your Outstanding Debts
Deducted from your total assets
Gold, Silver & Jewelry
Gold Weight (Grams)
Excluding jewelry for personal use
Gold Purity
24 Karat (Pure)
22 Karat
21 Karat
18 Karat
Silver Weight (Grams)
Today's Gold Price
Price per gram (USD)
Nisab Calculator
Gold Nisab
85 Grams
Silver Nisab
595 Grams
Value in USD
$6,502.50
Business & Investment Assets
Current Stock Value
Trade Goods
Goods intended for sale
Investment Real Estate
Other Assets
Choose Your Charity Projects
You can distribute your Zakat among one or more charity projects as you wish.
Donation Basket
You have not added any projects yet.
Total Allocated Amount
0.00 $
Complete Donation
Conditions for Zakat Obligation
<ul class="space-y-3 text-gray-600">
<li class="flex items-start gap-3">
Owning wealth equal to or exceeding the Nisab (the value of 85 grams of 24K gold).
</li>
<li class="flex items-start gap-3">
One Hijri year has passed while owning the wealth.
</li>
<li class="flex items-start gap-3">
Full ownership and complete control over the wealth.
</li>
</ul>
Trust & Transparency
At Vicdan Relief Association, we are committed to distributing your Zakat according to the eight eligible categories under the supervision of qualified Islamic scholars, while ensuring the highest standards of transparency, accountability, and traceability.
Calculation Summary
Total Zakatable Assets
0.00 $
Current Nisab Threshold
6,502.50 $
Zakat Due (2.5%)
0.00 $
Enter your assets to calculate
<a href="https://wa.me/905057763103" class="sponsorships-btn-secondary sponsorships-btn-full mt-4" target="_blank">
Contact Us on WhatsApp for Consultation & Donations
</a>
All calculations are based on current global gold prices and the latest recognized Islamic rulings. For specific religious matters, we recommend consulting a qualified Islamic scholar.
Reset
Save Calculation
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
Cash & Savings
Gold & Silver
Stocks & Business Assets
Charity Projects
-->
Cash & Bank Deposits
Available Cash
Bank Deposits & Account Balances
Money Owed to You
Debts you expect to collect
Your Outstanding Debts
Deducted from your total assets
Gold, Silver & Jewelry
Gold Weight (Grams)
Excluding jewelry for personal use
Gold Purity
24 Karat (Pure)
22 Karat
21 Karat
18 Karat
Silver Weight (Grams)
Today's Gold Price
Price per gram (USD)
Nisab Calculator
Gold Nisab
85 Grams
Silver Nisab
595 Grams
Value in USD
$6,502.50
Business & Investment Assets
Current Stock Value
Trade Goods
Goods intended for sale
Investment Real Estate
Other Assets
Choose Your Charity Projects
You can distribute your Zakat among one or more charity projects as you wish.
Donation Basket
You have not added any projects yet.
Total Allocated Amount
0.00 $
Complete Donation
Conditions for Zakat Obligation
<ul class="space-y-3 text-gray-600">
<li class="flex items-start gap-3">
Owning wealth equal to or exceeding the Nisab (the value of 85 grams of 24K gold).
</li>
<li class="flex items-start gap-3">
One Hijri year has passed while owning the wealth.
</li>
<li class="flex items-start gap-3">
Full ownership and complete control over the wealth.
</li>
</ul>
Trust & Transparency
At Vicdan Relief Association, we are committed to distributing your Zakat according to the eight eligible categories under the supervision of qualified Islamic scholars, while ensuring the highest standards of transparency, accountability, and traceability.
Calculation Summary
Total Zakatable Assets
0.00 $
Current Nisab Threshold
6,502.50 $
Zakat Due (2.5%)
0.00 $
Enter your assets to calculate
<a href="https://wa.me/905057763103" class="sponsorships-btn-secondary sponsorships-btn-full mt-4" target="_blank">
Contact Us on WhatsApp for Consultation & Donations
</a>
All calculations are based on current global gold prices and the latest recognized Islamic rulings. For specific religious matters, we recommend consulting a qualified Islamic scholar.
Reset
Save Calculation
') (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\nThe Third Pillar of Islam\r\nSmart Zakat CalculatorAccurate Payment.. Big Impact\r\n\r\n\r\nA comprehensive calculator to calculate your zakat according to the most up-to-date prices and the most accurate Sharia rulings, enabling you to perform your worship with accuracy and confidence. It is designed to help. \r\n\r\n\r\n\r\n\r\nToday's Gold Nisab\r\n85 Grams\r\n\r\n\r\n\r\n\r\nEquivalent according to current gold price id=\"nisab-value\">$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 Cash & Savings\r\n \r\n \r\n \r\n Gold & Silver\r\n \r\n \r\n \r\n Stocks & Business Assets\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Cash & Bank Deposits\r\n \r\n \r\n \r\n \r\n Available Cash\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Bank Deposits & Account Balances\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Money Owed to You\r\n \r\n \r\n \r\n \r\n Debts you expect to collect\r\n \r\n\r\n \r\n Your Outstanding Debts\r\n \r\n \r\n \r\n \r\n Deducted from your total assets\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Gold, Silver & Jewelry\r\n \r\n\r\n \r\n \r\n Gold Weight (Grams)\r\n \r\n \r\n \r\n \r\n Excluding jewelry for personal use\r\n \r\n\r\n \r\n Gold Purity\r\n \r\n \r\n 24 Karat (Pure)\r\n 22 Karat\r\n 21 Karat\r\n 18 Karat\r\n \r\n \r\n \r\n \r\n\r\n \r\n Silver Weight (Grams)\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Today's Gold Price\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n Price per gram (USD)\r\n \r\n \r\n \r\n \r\n \r\n \r\n Nisab Calculator\r\n \r\n \r\n \r\n Gold Nisab\r\n 85 Grams\r\n \r\n \r\n Silver Nisab\r\n 595 Grams\r\n \r\n \r\n Value in USD\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 Business & Investment Assets\r\n \r\n \r\n \r\n Current Stock Value\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Trade Goods\r\n \r\n \r\n \r\n \r\n Goods intended for sale\r\n \r\n\r\n \r\n Investment Real Estate\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Other Assets\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n Choose Your Charity Projects\r\n \r\n\r\n \r\n You can distribute your Zakat among one or more charity projects as you wish.\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Donation Basket\r\n \r\n\r\n \r\n You have not added any projects yet.\r\n \r\n\r\n \r\n \r\n Total Allocated Amount\r\n 0.00 $\r\n \r\n\r\n \r\n Complete Donation\r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n Conditions for Zakat Obligation\r\n \r\n\r\n <ul>\r\n <li>\r\n \r\n Owning wealth equal to or exceeding the Nisab (the value of 85 grams of 24K gold).\r\n </li>\r\n\r\n <li>\r\n \r\n One Hijri year has passed while owning the wealth.\r\n </li>\r\n\r\n <li>\r\n \r\n Full ownership and complete control over the wealth.\r\n </li>\r\n </ul>\r\n \r\n\r\n \r\n \r\n \r\n Trust & Transparency\r\n \r\n\r\n \r\n At Vicdan Relief Association, we are committed to distributing your Zakat according to the eight eligible categories under the supervision of qualified Islamic scholars, while ensuring the highest standards of transparency, accountability, and traceability.\r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n Calculation Summary\r\n \r\n\r\n \r\n \r\n \r\n Total Zakatable Assets\r\n \r\n 0.00 $\r\n \r\n\r\n \r\n \r\n Current Nisab Threshold\r\n \r\n 6,502.50 $\r\n \r\n \r\n\r\n \r\n \r\n Zakat Due (2.5%)\r\n \r\n\r\n 0.00 $\r\n\r\n \r\n \r\n Enter your assets to calculate\r\n \r\n \r\n\r\n <a>\r\n Contact Us on WhatsApp for Consultation & Donations\r\n </a>\r\n\r\n \r\n All calculations are based on current global gold prices and the latest recognized Islamic rulings. For specific religious matters, we recommend consulting a qualified Islamic scholar.\r\n \r\n\r\n \r\n \r\n \r\n Reset\r\n \r\n\r\n \r\n Save Calculation\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: \"Oruç Açtırma\",\r\n description: \"Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması\",\r\n icon: \"fa-utensils\",\r\n cost: 500,\r\n selected: false\r\n },\r\n {\r\n id: 2,\r\n title: \"Kışlık Giysi\",\r\n description: \"İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı\",\r\n icon: \"fa-shirt\",\r\n cost: 300,\r\n selected: false\r\n },\r\n {\r\n id: 3,\r\n title: \"Su Kuyusu\",\r\n description: \"Kuyu açılması ve temiz içme suyu sağlanması\",\r\n icon: \"fa-droplet\",\r\n cost: 1000,\r\n selected: false\r\n },\r\n {\r\n id: 4,\r\n title: \"Yetim Eğitimi\",\r\n description: \"Yetimlere eğitim desteği ve okul malzemeleri\",\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: \"Hasta Tedavisi\",\r\n description: \"Gücü yetmeyen ailelerin tedavi masraflarının karşılanması\",\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: \"Dul Kadın Bakımı\",\r\n description: \"Dul kadınlara ve çocuklarına aylık destek\",\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 if (!container) return;\r\n \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 ? 'Eklendi' : 'Ekle'}\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 (!container || !totalElement) return;\r\n \r\n if (donationBasket.length === 0) {\r\n container.innerHTML = 'Henüz herhangi bir proje eklemediniz';\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 const totalAssetsEl = document.getElementById('zakat-total-assets');\r\n if (totalAssetsEl) {\r\n totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Nisab Logic (85g Gold 24k)\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update nisab displays\r\n const nisabValueDisplayEl = document.getElementById('nisab-value-display');\r\n if (nisabValueDisplayEl) {\r\n nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n const currentNisabEl = document.getElementById('current-nisab');\r\n if (currentNisabEl) {\r\n currentNisabEl.textContent = '85 Gram';\r\n }\r\n \r\n const nisabValueEl2 = document.getElementById('nisab-value');\r\n if (nisabValueEl2) {\r\n nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update progress bar\r\n const nisabProgress = Math.min(100, (total / nisab) * 100);\r\n const progressEl = document.getElementById('nisab-progress');\r\n if (progressEl) {\r\n progressEl.style.width = `${nisabProgress}%`;\r\n }\r\n \r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const statusBadge = document.getElementById('zakat-status-badge');\r\n \r\n if (zakatAmountEl && statusBadge) {\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 = ' Zekat farz oldu (Nisaba ulaştı)';\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 = ' Henüz nisaba ulaşmadı';\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 = ' Kontrol etmek için tutarı girin';\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 \r\n // Fetch live rates\r\n async function zakatFetchRates() {\r\n const icon = document.getElementById('zakat-refresh-icon');\r\n if (icon) 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 goldRateInput = document.getElementById('zakat-gold-rate');\r\n if (goldRateInput) {\r\n const current = parseFloat(goldRateInput.value);\r\n const newRate = current + (Math.random() - 0.5) * 2;\r\n goldRateInput.value = newRate.toFixed(2);\r\n }\r\n \r\n if (icon) 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 => {\r\n if (input) input.value = '';\r\n });\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 totalEl = document.getElementById('zakat-total-assets');\r\n const zakatEl = document.getElementById('zakat-amount');\r\n const total = totalEl ? totalEl.textContent : '0';\r\n const zakat = zakatEl ? zakatEl.textContent : '0';\r\n \r\n alert(`Hesaplama kaydedildi:\\nToplam Mal: ${total}\\nFarz Olan Zekat: ${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('Lütfen önce bağış sepetine projeler ekleyin');\r\n return;\r\n }\r\n \r\n alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);\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 zakatAmountEl = document.getElementById('zakat-amount');\r\n const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';\r\n if (zakatAmount === '0.00 $') {\r\n alert('Lütfen önce zekat hesaplamak için tutarı girin');\r\n return;\r\n }\r\n \r\n alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);\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 goldRateInput = document.getElementById('zakat-gold-rate');\r\n const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\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"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'en') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'en') (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: "Oruç Açtırma",
description: "Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması",
icon: "fa-utensils",
cost: 500,
selected: false
},
{
id: 2,
title: "Kışlık Giysi",
description: "İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı",
icon: "fa-shirt",
cost: 300,
selected: false
},
{
id: 3,
title: "Su Kuyusu",
description: "Kuyu açılması ve temiz içme suyu sağlanması",
icon: "fa-droplet",
cost: 1000,
selected: false
},
{
id: 4,
title: "Yetim Eğitimi",
description: "Yetimlere eğitim desteği ve okul malzemeleri",
icon: "fa-graduation-cap",
cost: 400,
selected: false
},
{
id: 5,
title: "Hasta Tedavisi",
description: "Gücü yetmeyen ailelerin tedavi masraflarının karşılanması",
icon: "fa-heart-pulse",
cost: 800,
selected: false
},
{
id: 6,
title: "Dul Kadın Bakımı",
description: "Dul kadınlara ve çocuklarına aylık destek",
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');
if (!container) return;
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 ? 'Eklendi' : 'Ekle'}
`;
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 (!container || !totalElement) return;
if (donationBasket.length === 0) {
container.innerHTML = 'Henüz herhangi bir proje eklemediniz';
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
const totalAssetsEl = document.getElementById('zakat-total-assets');
if (totalAssetsEl) {
totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Nisab Logic (85g Gold 24k)
const nisab = 85 * goldRate;
const nisabValueEl = document.getElementById('zakat-nisab-value');
if (nisabValueEl) {
nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Update nisab displays
const nisabValueDisplayEl = document.getElementById('nisab-value-display');
if (nisabValueDisplayEl) {
nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
const currentNisabEl = document.getElementById('current-nisab');
if (currentNisabEl) {
currentNisabEl.textContent = '85 Gram';
}
const nisabValueEl2 = document.getElementById('nisab-value');
if (nisabValueEl2) {
nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Update progress bar
const nisabProgress = Math.min(100, (total / nisab) * 100);
const progressEl = document.getElementById('nisab-progress');
if (progressEl) {
progressEl.style.width = `${nisabProgress}%`;
}
const zakatAmountEl = document.getElementById('zakat-amount');
const statusBadge = document.getElementById('zakat-status-badge');
if (zakatAmountEl && statusBadge) {
if (total >= nisab && total > 0) {
const zakat = total * 0.025;
zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
statusBadge.innerHTML = ' Zekat farz oldu (Nisaba ulaştı)';
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 = ' Henüz nisaba ulaşmadı';
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 = ' Kontrol etmek için tutarı girin';
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');
if (icon) icon.classList.add('fa-spin');
// Simulate API call
await new Promise(r => setTimeout(r, 1000));
// Dynamic change for effect (simulated rate change)
const goldRateInput = document.getElementById('zakat-gold-rate');
if (goldRateInput) {
const current = parseFloat(goldRateInput.value);
const newRate = current + (Math.random() - 0.5) * 2;
goldRateInput.value = newRate.toFixed(2);
}
if (icon) icon.classList.remove('fa-spin');
zakatCalculate();
}
// Reset form
function zakatResetForm() {
document.querySelectorAll('input[type="number"]').forEach(input => {
if (input) input.value = '';
});
donationBasket = [];
charityProjects.forEach(p => p.selected = false);
loadCharityProjects();
zakatCalculate();
}
// Save calculation
function zakatSaveCalculation() {
const totalEl = document.getElementById('zakat-total-assets');
const zakatEl = document.getElementById('zakat-amount');
const total = totalEl ? totalEl.textContent : '0';
const zakat = zakatEl ? zakatEl.textContent : '0';
alert(`Hesaplama kaydedildi:\nToplam Mal: ${total}\nFarz Olan Zekat: ${zakat}`);
}
// Checkout
function zakatCheckout() {
const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);
if (total === 0) {
alert('Lütfen önce bağış sepetine projeler ekleyin');
return;
}
alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);
// In production: window.location.href = 'payment.html';
}
// Redirect to payment
function zakatRedirectToPayment() {
const zakatAmountEl = document.getElementById('zakat-amount');
const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';
if (zakatAmount === '0.00 $') {
alert('Lütfen önce zekat hesaplamak için tutarı girin');
return;
}
alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);
// 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 goldRateInput = document.getElementById('zakat-gold-rate');
const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;
const nisab = 85 * goldRate;
const nisabValueEl = document.getElementById('zakat-nisab-value');
if (nisabValueEl) {
nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
});
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
// Initialize charity projects
const charityProjects = [
{
id: 1,
title: "Oruç Açtırma",
description: "Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması",
icon: "fa-utensils",
cost: 500,
selected: false
},
{
id: 2,
title: "Kışlık Giysi",
description: "İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı",
icon: "fa-shirt",
cost: 300,
selected: false
},
{
id: 3,
title: "Su Kuyusu",
description: "Kuyu açılması ve temiz içme suyu sağlanması",
icon: "fa-droplet",
cost: 1000,
selected: false
},
{
id: 4,
title: "Yetim Eğitimi",
description: "Yetimlere eğitim desteği ve okul malzemeleri",
icon: "fa-graduation-cap",
cost: 400,
selected: false
},
{
id: 5,
title: "Hasta Tedavisi",
description: "Gücü yetmeyen ailelerin tedavi masraflarının karşılanması",
icon: "fa-heart-pulse",
cost: 800,
selected: false
},
{
id: 6,
title: "Dul Kadın Bakımı",
description: "Dul kadınlara ve çocuklarına aylık destek",
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');
if (!container) return;
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 ? 'Eklendi' : 'Ekle'}
`;
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 (!container || !totalElement) return;
if (donationBasket.length === 0) {
container.innerHTML = 'Henüz herhangi bir proje eklemediniz';
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
const totalAssetsEl = document.getElementById('zakat-total-assets');
if (totalAssetsEl) {
totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Nisab Logic (85g Gold 24k)
const nisab = 85 * goldRate;
const nisabValueEl = document.getElementById('zakat-nisab-value');
if (nisabValueEl) {
nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Update nisab displays
const nisabValueDisplayEl = document.getElementById('nisab-value-display');
if (nisabValueDisplayEl) {
nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
const currentNisabEl = document.getElementById('current-nisab');
if (currentNisabEl) {
currentNisabEl.textContent = '85 Gram';
}
const nisabValueEl2 = document.getElementById('nisab-value');
if (nisabValueEl2) {
nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Update progress bar
const nisabProgress = Math.min(100, (total / nisab) * 100);
const progressEl = document.getElementById('nisab-progress');
if (progressEl) {
progressEl.style.width = `${nisabProgress}%`;
}
const zakatAmountEl = document.getElementById('zakat-amount');
const statusBadge = document.getElementById('zakat-status-badge');
if (zakatAmountEl && statusBadge) {
if (total >= nisab && total > 0) {
const zakat = total * 0.025;
zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
statusBadge.innerHTML = ' Zekat farz oldu (Nisaba ulaştı)';
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 = ' Henüz nisaba ulaşmadı';
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 = ' Kontrol etmek için tutarı girin';
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');
if (icon) icon.classList.add('fa-spin');
// Simulate API call
await new Promise(r => setTimeout(r, 1000));
// Dynamic change for effect (simulated rate change)
const goldRateInput = document.getElementById('zakat-gold-rate');
if (goldRateInput) {
const current = parseFloat(goldRateInput.value);
const newRate = current + (Math.random() - 0.5) * 2;
goldRateInput.value = newRate.toFixed(2);
}
if (icon) icon.classList.remove('fa-spin');
zakatCalculate();
}
// Reset form
function zakatResetForm() {
document.querySelectorAll('input[type="number"]').forEach(input => {
if (input) input.value = '';
});
donationBasket = [];
charityProjects.forEach(p => p.selected = false);
loadCharityProjects();
zakatCalculate();
}
// Save calculation
function zakatSaveCalculation() {
const totalEl = document.getElementById('zakat-total-assets');
const zakatEl = document.getElementById('zakat-amount');
const total = totalEl ? totalEl.textContent : '0';
const zakat = zakatEl ? zakatEl.textContent : '0';
alert(`Hesaplama kaydedildi:\nToplam Mal: ${total}\nFarz Olan Zekat: ${zakat}`);
}
// Checkout
function zakatCheckout() {
const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);
if (total === 0) {
alert('Lütfen önce bağış sepetine projeler ekleyin');
return;
}
alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);
// In production: window.location.href = 'payment.html';
}
// Redirect to payment
function zakatRedirectToPayment() {
const zakatAmountEl = document.getElementById('zakat-amount');
const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';
if (zakatAmount === '0.00 $') {
alert('Lütfen önce zekat hesaplamak için tutarı girin');
return;
}
alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);
// 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 goldRateInput = document.getElementById('zakat-gold-rate');
const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;
const nisab = 85 * goldRate;
const nisabValueEl = document.getElementById('zakat-nisab-value');
if (nisabValueEl) {
nisabValueEl.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\nThe Third Pillar of Islam\r\nSmart Zakat CalculatorAccurate Payment.. Big Impact\r\n\r\n\r\nA comprehensive calculator to calculate your zakat according to the most up-to-date prices and the most accurate Sharia rulings, enabling you to perform your worship with accuracy and confidence. It is designed to help. \r\n\r\n\r\n\r\n\r\nToday's Gold Nisab\r\n85 Grams\r\n\r\n\r\n\r\n\r\nEquivalent according to current gold price id=\"nisab-value\">$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 Cash & Savings\r\n \r\n \r\n \r\n Gold & Silver\r\n \r\n \r\n \r\n Stocks & Business Assets\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Cash & Bank Deposits\r\n \r\n \r\n \r\n \r\n Available Cash\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Bank Deposits & Account Balances\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Money Owed to You\r\n \r\n \r\n \r\n \r\n Debts you expect to collect\r\n \r\n\r\n \r\n Your Outstanding Debts\r\n \r\n \r\n \r\n \r\n Deducted from your total assets\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Gold, Silver & Jewelry\r\n \r\n\r\n \r\n \r\n Gold Weight (Grams)\r\n \r\n \r\n \r\n \r\n Excluding jewelry for personal use\r\n \r\n\r\n \r\n Gold Purity\r\n \r\n \r\n 24 Karat (Pure)\r\n 22 Karat\r\n 21 Karat\r\n 18 Karat\r\n \r\n \r\n \r\n \r\n\r\n \r\n Silver Weight (Grams)\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Today's Gold Price\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n Price per gram (USD)\r\n \r\n \r\n \r\n \r\n \r\n \r\n Nisab Calculator\r\n \r\n \r\n \r\n Gold Nisab\r\n 85 Grams\r\n \r\n \r\n Silver Nisab\r\n 595 Grams\r\n \r\n \r\n Value in USD\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 Business & Investment Assets\r\n \r\n \r\n \r\n Current Stock Value\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Trade Goods\r\n \r\n \r\n \r\n \r\n Goods intended for sale\r\n \r\n\r\n \r\n Investment Real Estate\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Other Assets\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n Choose Your Charity Projects\r\n \r\n\r\n \r\n You can distribute your Zakat among one or more charity projects as you wish.\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Donation Basket\r\n \r\n\r\n \r\n You have not added any projects yet.\r\n \r\n\r\n \r\n \r\n Total Allocated Amount\r\n 0.00 $\r\n \r\n\r\n \r\n Complete Donation\r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n Conditions for Zakat Obligation\r\n \r\n\r\n <ul>\r\n <li>\r\n \r\n Owning wealth equal to or exceeding the Nisab (the value of 85 grams of 24K gold).\r\n </li>\r\n\r\n <li>\r\n \r\n One Hijri year has passed while owning the wealth.\r\n </li>\r\n\r\n <li>\r\n \r\n Full ownership and complete control over the wealth.\r\n </li>\r\n </ul>\r\n \r\n\r\n \r\n \r\n \r\n Trust & Transparency\r\n \r\n\r\n \r\n At Vicdan Relief Association, we are committed to distributing your Zakat according to the eight eligible categories under the supervision of qualified Islamic scholars, while ensuring the highest standards of transparency, accountability, and traceability.\r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n Calculation Summary\r\n \r\n\r\n \r\n \r\n \r\n Total Zakatable Assets\r\n \r\n 0.00 $\r\n \r\n\r\n \r\n \r\n Current Nisab Threshold\r\n \r\n 6,502.50 $\r\n \r\n \r\n\r\n \r\n \r\n Zakat Due (2.5%)\r\n \r\n\r\n 0.00 $\r\n\r\n \r\n \r\n Enter your assets to calculate\r\n \r\n \r\n\r\n <a>\r\n Contact Us on WhatsApp for Consultation & Donations\r\n </a>\r\n\r\n \r\n All calculations are based on current global gold prices and the latest recognized Islamic rulings. For specific religious matters, we recommend consulting a qualified Islamic scholar.\r\n \r\n\r\n \r\n \r\n \r\n Reset\r\n \r\n\r\n \r\n Save Calculation\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: \"Oruç Açtırma\",\r\n description: \"Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması\",\r\n icon: \"fa-utensils\",\r\n cost: 500,\r\n selected: false\r\n },\r\n {\r\n id: 2,\r\n title: \"Kışlık Giysi\",\r\n description: \"İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı\",\r\n icon: \"fa-shirt\",\r\n cost: 300,\r\n selected: false\r\n },\r\n {\r\n id: 3,\r\n title: \"Su Kuyusu\",\r\n description: \"Kuyu açılması ve temiz içme suyu sağlanması\",\r\n icon: \"fa-droplet\",\r\n cost: 1000,\r\n selected: false\r\n },\r\n {\r\n id: 4,\r\n title: \"Yetim Eğitimi\",\r\n description: \"Yetimlere eğitim desteği ve okul malzemeleri\",\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: \"Hasta Tedavisi\",\r\n description: \"Gücü yetmeyen ailelerin tedavi masraflarının karşılanması\",\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: \"Dul Kadın Bakımı\",\r\n description: \"Dul kadınlara ve çocuklarına aylık destek\",\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 if (!container) return;\r\n \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 ? 'Eklendi' : 'Ekle'}\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 (!container || !totalElement) return;\r\n \r\n if (donationBasket.length === 0) {\r\n container.innerHTML = 'Henüz herhangi bir proje eklemediniz';\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 const totalAssetsEl = document.getElementById('zakat-total-assets');\r\n if (totalAssetsEl) {\r\n totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Nisab Logic (85g Gold 24k)\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update nisab displays\r\n const nisabValueDisplayEl = document.getElementById('nisab-value-display');\r\n if (nisabValueDisplayEl) {\r\n nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n const currentNisabEl = document.getElementById('current-nisab');\r\n if (currentNisabEl) {\r\n currentNisabEl.textContent = '85 Gram';\r\n }\r\n \r\n const nisabValueEl2 = document.getElementById('nisab-value');\r\n if (nisabValueEl2) {\r\n nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update progress bar\r\n const nisabProgress = Math.min(100, (total / nisab) * 100);\r\n const progressEl = document.getElementById('nisab-progress');\r\n if (progressEl) {\r\n progressEl.style.width = `${nisabProgress}%`;\r\n }\r\n \r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const statusBadge = document.getElementById('zakat-status-badge');\r\n \r\n if (zakatAmountEl && statusBadge) {\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 = ' Zekat farz oldu (Nisaba ulaştı)';\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 = ' Henüz nisaba ulaşmadı';\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 = ' Kontrol etmek için tutarı girin';\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 \r\n // Fetch live rates\r\n async function zakatFetchRates() {\r\n const icon = document.getElementById('zakat-refresh-icon');\r\n if (icon) 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 goldRateInput = document.getElementById('zakat-gold-rate');\r\n if (goldRateInput) {\r\n const current = parseFloat(goldRateInput.value);\r\n const newRate = current + (Math.random() - 0.5) * 2;\r\n goldRateInput.value = newRate.toFixed(2);\r\n }\r\n \r\n if (icon) 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 => {\r\n if (input) input.value = '';\r\n });\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 totalEl = document.getElementById('zakat-total-assets');\r\n const zakatEl = document.getElementById('zakat-amount');\r\n const total = totalEl ? totalEl.textContent : '0';\r\n const zakat = zakatEl ? zakatEl.textContent : '0';\r\n \r\n alert(`Hesaplama kaydedildi:\\nToplam Mal: ${total}\\nFarz Olan Zekat: ${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('Lütfen önce bağış sepetine projeler ekleyin');\r\n return;\r\n }\r\n \r\n alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);\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 zakatAmountEl = document.getElementById('zakat-amount');\r\n const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';\r\n if (zakatAmount === '0.00 $') {\r\n alert('Lütfen önce zekat hesaplamak için tutarı girin');\r\n return;\r\n }\r\n \r\n alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);\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 goldRateInput = document.getElementById('zakat-gold-rate');\r\n const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\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"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'en') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'en') (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: "Oruç Açtırma",
description: "Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması",
icon: "fa-utensils",
cost: 500,
selected: false
},
{
id: 2,
title: "Kışlık Giysi",
description: "İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı",
icon: "fa-shirt",
cost: 300,
selected: false
},
{
id: 3,
title: "Su Kuyusu",
description: "Kuyu açılması ve temiz içme suyu sağlanması",
icon: "fa-droplet",
cost: 1000,
selected: false
},
{
id: 4,
title: "Yetim Eğitimi",
description: "Yetimlere eğitim desteği ve okul malzemeleri",
icon: "fa-graduation-cap",
cost: 400,
selected: false
},
{
id: 5,
title: "Hasta Tedavisi",
description: "Gücü yetmeyen ailelerin tedavi masraflarının karşılanması",
icon: "fa-heart-pulse",
cost: 800,
selected: false
},
{
id: 6,
title: "Dul Kadın Bakımı",
description: "Dul kadınlara ve çocuklarına aylık destek",
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');
if (!container) return;
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 ? 'Eklendi' : 'Ekle'}
`;
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 (!container || !totalElement) return;
if (donationBasket.length === 0) {
container.innerHTML = 'Henüz herhangi bir proje eklemediniz';
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
const totalAssetsEl = document.getElementById('zakat-total-assets');
if (totalAssetsEl) {
totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Nisab Logic (85g Gold 24k)
const nisab = 85 * goldRate;
const nisabValueEl = document.getElementById('zakat-nisab-value');
if (nisabValueEl) {
nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Update nisab displays
const nisabValueDisplayEl = document.getElementById('nisab-value-display');
if (nisabValueDisplayEl) {
nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
const currentNisabEl = document.getElementById('current-nisab');
if (currentNisabEl) {
currentNisabEl.textContent = '85 Gram';
}
const nisabValueEl2 = document.getElementById('nisab-value');
if (nisabValueEl2) {
nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Update progress bar
const nisabProgress = Math.min(100, (total / nisab) * 100);
const progressEl = document.getElementById('nisab-progress');
if (progressEl) {
progressEl.style.width = `${nisabProgress}%`;
}
const zakatAmountEl = document.getElementById('zakat-amount');
const statusBadge = document.getElementById('zakat-status-badge');
if (zakatAmountEl && statusBadge) {
if (total >= nisab && total > 0) {
const zakat = total * 0.025;
zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
statusBadge.innerHTML = ' Zekat farz oldu (Nisaba ulaştı)';
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 = ' Henüz nisaba ulaşmadı';
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 = ' Kontrol etmek için tutarı girin';
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');
if (icon) icon.classList.add('fa-spin');
// Simulate API call
await new Promise(r => setTimeout(r, 1000));
// Dynamic change for effect (simulated rate change)
const goldRateInput = document.getElementById('zakat-gold-rate');
if (goldRateInput) {
const current = parseFloat(goldRateInput.value);
const newRate = current + (Math.random() - 0.5) * 2;
goldRateInput.value = newRate.toFixed(2);
}
if (icon) icon.classList.remove('fa-spin');
zakatCalculate();
}
// Reset form
function zakatResetForm() {
document.querySelectorAll('input[type="number"]').forEach(input => {
if (input) input.value = '';
});
donationBasket = [];
charityProjects.forEach(p => p.selected = false);
loadCharityProjects();
zakatCalculate();
}
// Save calculation
function zakatSaveCalculation() {
const totalEl = document.getElementById('zakat-total-assets');
const zakatEl = document.getElementById('zakat-amount');
const total = totalEl ? totalEl.textContent : '0';
const zakat = zakatEl ? zakatEl.textContent : '0';
alert(`Hesaplama kaydedildi:\nToplam Mal: ${total}\nFarz Olan Zekat: ${zakat}`);
}
// Checkout
function zakatCheckout() {
const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);
if (total === 0) {
alert('Lütfen önce bağış sepetine projeler ekleyin');
return;
}
alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);
// In production: window.location.href = 'payment.html';
}
// Redirect to payment
function zakatRedirectToPayment() {
const zakatAmountEl = document.getElementById('zakat-amount');
const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';
if (zakatAmount === '0.00 $') {
alert('Lütfen önce zekat hesaplamak için tutarı girin');
return;
}
alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);
// 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 goldRateInput = document.getElementById('zakat-gold-rate');
const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;
const nisab = 85 * goldRate;
const nisabValueEl = document.getElementById('zakat-nisab-value');
if (nisabValueEl) {
nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
});
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
// Initialize charity projects
const charityProjects = [
{
id: 1,
title: "Oruç Açtırma",
description: "Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması",
icon: "fa-utensils",
cost: 500,
selected: false
},
{
id: 2,
title: "Kışlık Giysi",
description: "İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı",
icon: "fa-shirt",
cost: 300,
selected: false
},
{
id: 3,
title: "Su Kuyusu",
description: "Kuyu açılması ve temiz içme suyu sağlanması",
icon: "fa-droplet",
cost: 1000,
selected: false
},
{
id: 4,
title: "Yetim Eğitimi",
description: "Yetimlere eğitim desteği ve okul malzemeleri",
icon: "fa-graduation-cap",
cost: 400,
selected: false
},
{
id: 5,
title: "Hasta Tedavisi",
description: "Gücü yetmeyen ailelerin tedavi masraflarının karşılanması",
icon: "fa-heart-pulse",
cost: 800,
selected: false
},
{
id: 6,
title: "Dul Kadın Bakımı",
description: "Dul kadınlara ve çocuklarına aylık destek",
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');
if (!container) return;
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 ? 'Eklendi' : 'Ekle'}
`;
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 (!container || !totalElement) return;
if (donationBasket.length === 0) {
container.innerHTML = 'Henüz herhangi bir proje eklemediniz';
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
const totalAssetsEl = document.getElementById('zakat-total-assets');
if (totalAssetsEl) {
totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Nisab Logic (85g Gold 24k)
const nisab = 85 * goldRate;
const nisabValueEl = document.getElementById('zakat-nisab-value');
if (nisabValueEl) {
nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Update nisab displays
const nisabValueDisplayEl = document.getElementById('nisab-value-display');
if (nisabValueDisplayEl) {
nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
const currentNisabEl = document.getElementById('current-nisab');
if (currentNisabEl) {
currentNisabEl.textContent = '85 Gram';
}
const nisabValueEl2 = document.getElementById('nisab-value');
if (nisabValueEl2) {
nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Update progress bar
const nisabProgress = Math.min(100, (total / nisab) * 100);
const progressEl = document.getElementById('nisab-progress');
if (progressEl) {
progressEl.style.width = `${nisabProgress}%`;
}
const zakatAmountEl = document.getElementById('zakat-amount');
const statusBadge = document.getElementById('zakat-status-badge');
if (zakatAmountEl && statusBadge) {
if (total >= nisab && total > 0) {
const zakat = total * 0.025;
zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
statusBadge.innerHTML = ' Zekat farz oldu (Nisaba ulaştı)';
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 = ' Henüz nisaba ulaşmadı';
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 = ' Kontrol etmek için tutarı girin';
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');
if (icon) icon.classList.add('fa-spin');
// Simulate API call
await new Promise(r => setTimeout(r, 1000));
// Dynamic change for effect (simulated rate change)
const goldRateInput = document.getElementById('zakat-gold-rate');
if (goldRateInput) {
const current = parseFloat(goldRateInput.value);
const newRate = current + (Math.random() - 0.5) * 2;
goldRateInput.value = newRate.toFixed(2);
}
if (icon) icon.classList.remove('fa-spin');
zakatCalculate();
}
// Reset form
function zakatResetForm() {
document.querySelectorAll('input[type="number"]').forEach(input => {
if (input) input.value = '';
});
donationBasket = [];
charityProjects.forEach(p => p.selected = false);
loadCharityProjects();
zakatCalculate();
}
// Save calculation
function zakatSaveCalculation() {
const totalEl = document.getElementById('zakat-total-assets');
const zakatEl = document.getElementById('zakat-amount');
const total = totalEl ? totalEl.textContent : '0';
const zakat = zakatEl ? zakatEl.textContent : '0';
alert(`Hesaplama kaydedildi:\nToplam Mal: ${total}\nFarz Olan Zekat: ${zakat}`);
}
// Checkout
function zakatCheckout() {
const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);
if (total === 0) {
alert('Lütfen önce bağış sepetine projeler ekleyin');
return;
}
alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);
// In production: window.location.href = 'payment.html';
}
// Redirect to payment
function zakatRedirectToPayment() {
const zakatAmountEl = document.getElementById('zakat-amount');
const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';
if (zakatAmount === '0.00 $') {
alert('Lütfen önce zekat hesaplamak için tutarı girin');
return;
}
alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);
// 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 goldRateInput = document.getElementById('zakat-gold-rate');
const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;
const nisab = 85 * goldRate;
const nisabValueEl = document.getElementById('zakat-nisab-value');
if (nisabValueEl) {
nisabValueEl.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\nThe Third Pillar of Islam\r\nSmart Zakat CalculatorAccurate Payment.. Big Impact\r\n\r\n\r\nA comprehensive calculator to calculate your zakat according to the most up-to-date prices and the most accurate Sharia rulings, enabling you to perform your worship with accuracy and confidence. It is designed to help. \r\n\r\n\r\n\r\n\r\nToday's Gold Nisab\r\n85 Grams\r\n\r\n\r\n\r\n\r\nEquivalent according to current gold price id=\"nisab-value\">$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 Cash & Savings\r\n \r\n \r\n \r\n Gold & Silver\r\n \r\n \r\n \r\n Stocks & Business Assets\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Cash & Bank Deposits\r\n \r\n \r\n \r\n \r\n Available Cash\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Bank Deposits & Account Balances\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Money Owed to You\r\n \r\n \r\n \r\n \r\n Debts you expect to collect\r\n \r\n\r\n \r\n Your Outstanding Debts\r\n \r\n \r\n \r\n \r\n Deducted from your total assets\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Gold, Silver & Jewelry\r\n \r\n\r\n \r\n \r\n Gold Weight (Grams)\r\n \r\n \r\n \r\n \r\n Excluding jewelry for personal use\r\n \r\n\r\n \r\n Gold Purity\r\n \r\n \r\n 24 Karat (Pure)\r\n 22 Karat\r\n 21 Karat\r\n 18 Karat\r\n \r\n \r\n \r\n \r\n\r\n \r\n Silver Weight (Grams)\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Today's Gold Price\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n Price per gram (USD)\r\n \r\n \r\n \r\n \r\n \r\n \r\n Nisab Calculator\r\n \r\n \r\n \r\n Gold Nisab\r\n 85 Grams\r\n \r\n \r\n Silver Nisab\r\n 595 Grams\r\n \r\n \r\n Value in USD\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 Business & Investment Assets\r\n \r\n \r\n \r\n Current Stock Value\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Trade Goods\r\n \r\n \r\n \r\n \r\n Goods intended for sale\r\n \r\n\r\n \r\n Investment Real Estate\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Other Assets\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n Choose Your Charity Projects\r\n \r\n\r\n \r\n You can distribute your Zakat among one or more charity projects as you wish.\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Donation Basket\r\n \r\n\r\n \r\n You have not added any projects yet.\r\n \r\n\r\n \r\n \r\n Total Allocated Amount\r\n 0.00 $\r\n \r\n\r\n \r\n Complete Donation\r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n Conditions for Zakat Obligation\r\n \r\n\r\n <ul>\r\n <li>\r\n \r\n Owning wealth equal to or exceeding the Nisab (the value of 85 grams of 24K gold).\r\n </li>\r\n\r\n <li>\r\n \r\n One Hijri year has passed while owning the wealth.\r\n </li>\r\n\r\n <li>\r\n \r\n Full ownership and complete control over the wealth.\r\n </li>\r\n </ul>\r\n \r\n\r\n \r\n \r\n \r\n Trust & Transparency\r\n \r\n\r\n \r\n At Vicdan Relief Association, we are committed to distributing your Zakat according to the eight eligible categories under the supervision of qualified Islamic scholars, while ensuring the highest standards of transparency, accountability, and traceability.\r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n Calculation Summary\r\n \r\n\r\n \r\n \r\n \r\n Total Zakatable Assets\r\n \r\n 0.00 $\r\n \r\n\r\n \r\n \r\n Current Nisab Threshold\r\n \r\n 6,502.50 $\r\n \r\n \r\n\r\n \r\n \r\n Zakat Due (2.5%)\r\n \r\n\r\n 0.00 $\r\n\r\n \r\n \r\n Enter your assets to calculate\r\n \r\n \r\n\r\n <a>\r\n Contact Us on WhatsApp for Consultation & Donations\r\n </a>\r\n\r\n \r\n All calculations are based on current global gold prices and the latest recognized Islamic rulings. For specific religious matters, we recommend consulting a qualified Islamic scholar.\r\n \r\n\r\n \r\n \r\n \r\n Reset\r\n \r\n\r\n \r\n Save Calculation\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: \"Oruç Açtırma\",\r\n description: \"Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması\",\r\n icon: \"fa-utensils\",\r\n cost: 500,\r\n selected: false\r\n },\r\n {\r\n id: 2,\r\n title: \"Kışlık Giysi\",\r\n description: \"İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı\",\r\n icon: \"fa-shirt\",\r\n cost: 300,\r\n selected: false\r\n },\r\n {\r\n id: 3,\r\n title: \"Su Kuyusu\",\r\n description: \"Kuyu açılması ve temiz içme suyu sağlanması\",\r\n icon: \"fa-droplet\",\r\n cost: 1000,\r\n selected: false\r\n },\r\n {\r\n id: 4,\r\n title: \"Yetim Eğitimi\",\r\n description: \"Yetimlere eğitim desteği ve okul malzemeleri\",\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: \"Hasta Tedavisi\",\r\n description: \"Gücü yetmeyen ailelerin tedavi masraflarının karşılanması\",\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: \"Dul Kadın Bakımı\",\r\n description: \"Dul kadınlara ve çocuklarına aylık destek\",\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 if (!container) return;\r\n \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 ? 'Eklendi' : 'Ekle'}\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 (!container || !totalElement) return;\r\n \r\n if (donationBasket.length === 0) {\r\n container.innerHTML = 'Henüz herhangi bir proje eklemediniz';\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 const totalAssetsEl = document.getElementById('zakat-total-assets');\r\n if (totalAssetsEl) {\r\n totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Nisab Logic (85g Gold 24k)\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update nisab displays\r\n const nisabValueDisplayEl = document.getElementById('nisab-value-display');\r\n if (nisabValueDisplayEl) {\r\n nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n const currentNisabEl = document.getElementById('current-nisab');\r\n if (currentNisabEl) {\r\n currentNisabEl.textContent = '85 Gram';\r\n }\r\n \r\n const nisabValueEl2 = document.getElementById('nisab-value');\r\n if (nisabValueEl2) {\r\n nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update progress bar\r\n const nisabProgress = Math.min(100, (total / nisab) * 100);\r\n const progressEl = document.getElementById('nisab-progress');\r\n if (progressEl) {\r\n progressEl.style.width = `${nisabProgress}%`;\r\n }\r\n \r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const statusBadge = document.getElementById('zakat-status-badge');\r\n \r\n if (zakatAmountEl && statusBadge) {\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 = ' Zekat farz oldu (Nisaba ulaştı)';\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 = ' Henüz nisaba ulaşmadı';\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 = ' Kontrol etmek için tutarı girin';\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 \r\n // Fetch live rates\r\n async function zakatFetchRates() {\r\n const icon = document.getElementById('zakat-refresh-icon');\r\n if (icon) 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 goldRateInput = document.getElementById('zakat-gold-rate');\r\n if (goldRateInput) {\r\n const current = parseFloat(goldRateInput.value);\r\n const newRate = current + (Math.random() - 0.5) * 2;\r\n goldRateInput.value = newRate.toFixed(2);\r\n }\r\n \r\n if (icon) 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 => {\r\n if (input) input.value = '';\r\n });\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 totalEl = document.getElementById('zakat-total-assets');\r\n const zakatEl = document.getElementById('zakat-amount');\r\n const total = totalEl ? totalEl.textContent : '0';\r\n const zakat = zakatEl ? zakatEl.textContent : '0';\r\n \r\n alert(`Hesaplama kaydedildi:\\nToplam Mal: ${total}\\nFarz Olan Zekat: ${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('Lütfen önce bağış sepetine projeler ekleyin');\r\n return;\r\n }\r\n \r\n alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);\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 zakatAmountEl = document.getElementById('zakat-amount');\r\n const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';\r\n if (zakatAmount === '0.00 $') {\r\n alert('Lütfen önce zekat hesaplamak için tutarı girin');\r\n return;\r\n }\r\n \r\n alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);\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 goldRateInput = document.getElementById('zakat-gold-rate');\r\n const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\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"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'en') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'en') (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, '
The Third Pillar of Islam
Smart Zakat CalculatorAccurate Payment.. Big Impact
A comprehensive calculator to calculate your zakat according to the most up-to-date prices and the most accurate Sharia rulings, enabling you to perform your worship with accuracy and confidence. It is designed to help.
Today's Gold Nisab
85 Grams
Equivalent according to current gold price id="nisab-value">$6,502.50
Cash & Savings
Gold & Silver
Stocks & Business Assets
Charity Projects
-->
Cash & Bank Deposits
Available Cash
Bank Deposits & Account Balances
Money Owed to You
Debts you expect to collect
Your Outstanding Debts
Deducted from your total assets
Gold, Silver & Jewelry
Gold Weight (Grams)
Excluding jewelry for personal use
Gold Purity
24 Karat (Pure)
22 Karat
21 Karat
18 Karat
Silver Weight (Grams)
Today's Gold Price
Price per gram (USD)
Nisab Calculator
Gold Nisab
85 Grams
Silver Nisab
595 Grams
Value in USD
$6,502.50
Business & Investment Assets
Current Stock Value
Trade Goods
Goods intended for sale
Investment Real Estate
Other Assets
Choose Your Charity Projects
You can distribute your Zakat among one or more charity projects as you wish.
Donation Basket
You have not added any projects yet.
Total Allocated Amount
0.00 $
Complete Donation
Conditions for Zakat Obligation
<ul class="space-y-3 text-gray-600">
<li class="flex items-start gap-3">
Owning wealth equal to or exceeding the Nisab (the value of 85 grams of 24K gold).
</li>
<li class="flex items-start gap-3">
One Hijri year has passed while owning the wealth.
</li>
<li class="flex items-start gap-3">
Full ownership and complete control over the wealth.
</li>
</ul>
Trust & Transparency
At Vicdan Relief Association, we are committed to distributing your Zakat according to the eight eligible categories under the supervision of qualified Islamic scholars, while ensuring the highest standards of transparency, accountability, and traceability.
Calculation Summary
Total Zakatable Assets
0.00 $
Current Nisab Threshold
6,502.50 $
Zakat Due (2.5%)
0.00 $
Enter your assets to calculate
<a href="https://wa.me/905057763103" class="sponsorships-btn-secondary sponsorships-btn-full mt-4" target="_blank">
Contact Us on WhatsApp for Consultation & Donations
</a>
All calculations are based on current global gold prices and the latest recognized Islamic rulings. For specific religious matters, we recommend consulting a qualified Islamic scholar.
Reset
Save Calculation
// Initialize charity projects
const charityProjects = [
{
id: 1,
title: "Oruç Açtırma",
description: "Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması",
icon: "fa-utensils",
cost: 500,
selected: false
},
{
id: 2,
title: "Kışlık Giysi",
description: "İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı",
icon: "fa-shirt",
cost: 300,
selected: false
},
{
id: 3,
title: "Su Kuyusu",
description: "Kuyu açılması ve temiz içme suyu sağlanması",
icon: "fa-droplet",
cost: 1000,
selected: false
},
{
id: 4,
title: "Yetim Eğitimi",
description: "Yetimlere eğitim desteği ve okul malzemeleri",
icon: "fa-graduation-cap",
cost: 400,
selected: false
},
{
id: 5,
title: "Hasta Tedavisi",
description: "Gücü yetmeyen ailelerin tedavi masraflarının karşılanması",
icon: "fa-heart-pulse",
cost: 800,
selected: false
},
{
id: 6,
title: "Dul Kadın Bakımı",
description: "Dul kadınlara ve çocuklarına aylık destek",
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');
if (!container) return;
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 ? 'Eklendi' : 'Ekle'}
`;
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 (!container || !totalElement) return;
if (donationBasket.length === 0) {
container.innerHTML = 'Henüz herhangi bir proje eklemediniz';
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
const totalAssetsEl = document.getElementById('zakat-total-assets');
if (totalAssetsEl) {
totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Nisab Logic (85g Gold 24k)
const nisab = 85 * goldRate;
const nisabValueEl = document.getElementById('zakat-nisab-value');
if (nisabValueEl) {
nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Update nisab displays
const nisabValueDisplayEl = document.getElementById('nisab-value-display');
if (nisabValueDisplayEl) {
nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
const currentNisabEl = document.getElementById('current-nisab');
if (currentNisabEl) {
currentNisabEl.textContent = '85 Gram';
}
const nisabValueEl2 = document.getElementById('nisab-value');
if (nisabValueEl2) {
nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Update progress bar
const nisabProgress = Math.min(100, (total / nisab) * 100);
const progressEl = document.getElementById('nisab-progress');
if (progressEl) {
progressEl.style.width = `${nisabProgress}%`;
}
const zakatAmountEl = document.getElementById('zakat-amount');
const statusBadge = document.getElementById('zakat-status-badge');
if (zakatAmountEl && statusBadge) {
if (total >= nisab && total > 0) {
const zakat = total * 0.025;
zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
statusBadge.innerHTML = ' Zekat farz oldu (Nisaba ulaştı)';
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 = ' Henüz nisaba ulaşmadı';
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 = ' Kontrol etmek için tutarı girin';
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');
if (icon) icon.classList.add('fa-spin');
// Simulate API call
await new Promise(r => setTimeout(r, 1000));
// Dynamic change for effect (simulated rate change)
const goldRateInput = document.getElementById('zakat-gold-rate');
if (goldRateInput) {
const current = parseFloat(goldRateInput.value);
const newRate = current + (Math.random() - 0.5) * 2;
goldRateInput.value = newRate.toFixed(2);
}
if (icon) icon.classList.remove('fa-spin');
zakatCalculate();
}
// Reset form
function zakatResetForm() {
document.querySelectorAll('input[type="number"]').forEach(input => {
if (input) input.value = '';
});
donationBasket = [];
charityProjects.forEach(p => p.selected = false);
loadCharityProjects();
zakatCalculate();
}
// Save calculation
function zakatSaveCalculation() {
const totalEl = document.getElementById('zakat-total-assets');
const zakatEl = document.getElementById('zakat-amount');
const total = totalEl ? totalEl.textContent : '0';
const zakat = zakatEl ? zakatEl.textContent : '0';
alert(`Hesaplama kaydedildi:\nToplam Mal: ${total}\nFarz Olan Zekat: ${zakat}`);
}
// Checkout
function zakatCheckout() {
const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);
if (total === 0) {
alert('Lütfen önce bağış sepetine projeler ekleyin');
return;
}
alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);
// In production: window.location.href = 'payment.html';
}
// Redirect to payment
function zakatRedirectToPayment() {
const zakatAmountEl = document.getElementById('zakat-amount');
const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';
if (zakatAmount === '0.00 $') {
alert('Lütfen önce zekat hesaplamak için tutarı girin');
return;
}
alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);
// 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 goldRateInput = document.getElementById('zakat-gold-rate');
const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;
const nisab = 85 * goldRate;
const nisabValueEl = document.getElementById('zakat-nisab-value');
if (nisabValueEl) {
nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
});
') (Line: 110)
gavias_content_builder_render_element('gva_row', Array, '
The Third Pillar of Islam
Smart Zakat CalculatorAccurate Payment.. Big Impact
A comprehensive calculator to calculate your zakat according to the most up-to-date prices and the most accurate Sharia rulings, enabling you to perform your worship with accuracy and confidence. It is designed to help.
Today's Gold Nisab
85 Grams
Equivalent according to current gold price id="nisab-value">$6,502.50
Cash & Savings
Gold & Silver
Stocks & Business Assets
Charity Projects
-->
Cash & Bank Deposits
Available Cash
Bank Deposits & Account Balances
Money Owed to You
Debts you expect to collect
Your Outstanding Debts
Deducted from your total assets
Gold, Silver & Jewelry
Gold Weight (Grams)
Excluding jewelry for personal use
Gold Purity
24 Karat (Pure)
22 Karat
21 Karat
18 Karat
Silver Weight (Grams)
Today's Gold Price
Price per gram (USD)
Nisab Calculator
Gold Nisab
85 Grams
Silver Nisab
595 Grams
Value in USD
$6,502.50
Business & Investment Assets
Current Stock Value
Trade Goods
Goods intended for sale
Investment Real Estate
Other Assets
Choose Your Charity Projects
You can distribute your Zakat among one or more charity projects as you wish.
Donation Basket
You have not added any projects yet.
Total Allocated Amount
0.00 $
Complete Donation
Conditions for Zakat Obligation
<ul class="space-y-3 text-gray-600">
<li class="flex items-start gap-3">
Owning wealth equal to or exceeding the Nisab (the value of 85 grams of 24K gold).
</li>
<li class="flex items-start gap-3">
One Hijri year has passed while owning the wealth.
</li>
<li class="flex items-start gap-3">
Full ownership and complete control over the wealth.
</li>
</ul>
Trust & Transparency
At Vicdan Relief Association, we are committed to distributing your Zakat according to the eight eligible categories under the supervision of qualified Islamic scholars, while ensuring the highest standards of transparency, accountability, and traceability.
Calculation Summary
Total Zakatable Assets
0.00 $
Current Nisab Threshold
6,502.50 $
Zakat Due (2.5%)
0.00 $
Enter your assets to calculate
<a href="https://wa.me/905057763103" class="sponsorships-btn-secondary sponsorships-btn-full mt-4" target="_blank">
Contact Us on WhatsApp for Consultation & Donations
</a>
All calculations are based on current global gold prices and the latest recognized Islamic rulings. For specific religious matters, we recommend consulting a qualified Islamic scholar.
Reset
Save Calculation
// Initialize charity projects
const charityProjects = [
{
id: 1,
title: "Oruç Açtırma",
description: "Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması",
icon: "fa-utensils",
cost: 500,
selected: false
},
{
id: 2,
title: "Kışlık Giysi",
description: "İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı",
icon: "fa-shirt",
cost: 300,
selected: false
},
{
id: 3,
title: "Su Kuyusu",
description: "Kuyu açılması ve temiz içme suyu sağlanması",
icon: "fa-droplet",
cost: 1000,
selected: false
},
{
id: 4,
title: "Yetim Eğitimi",
description: "Yetimlere eğitim desteği ve okul malzemeleri",
icon: "fa-graduation-cap",
cost: 400,
selected: false
},
{
id: 5,
title: "Hasta Tedavisi",
description: "Gücü yetmeyen ailelerin tedavi masraflarının karşılanması",
icon: "fa-heart-pulse",
cost: 800,
selected: false
},
{
id: 6,
title: "Dul Kadın Bakımı",
description: "Dul kadınlara ve çocuklarına aylık destek",
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');
if (!container) return;
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 ? 'Eklendi' : 'Ekle'}
`;
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 (!container || !totalElement) return;
if (donationBasket.length === 0) {
container.innerHTML = 'Henüz herhangi bir proje eklemediniz';
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
const totalAssetsEl = document.getElementById('zakat-total-assets');
if (totalAssetsEl) {
totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Nisab Logic (85g Gold 24k)
const nisab = 85 * goldRate;
const nisabValueEl = document.getElementById('zakat-nisab-value');
if (nisabValueEl) {
nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Update nisab displays
const nisabValueDisplayEl = document.getElementById('nisab-value-display');
if (nisabValueDisplayEl) {
nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
const currentNisabEl = document.getElementById('current-nisab');
if (currentNisabEl) {
currentNisabEl.textContent = '85 Gram';
}
const nisabValueEl2 = document.getElementById('nisab-value');
if (nisabValueEl2) {
nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Update progress bar
const nisabProgress = Math.min(100, (total / nisab) * 100);
const progressEl = document.getElementById('nisab-progress');
if (progressEl) {
progressEl.style.width = `${nisabProgress}%`;
}
const zakatAmountEl = document.getElementById('zakat-amount');
const statusBadge = document.getElementById('zakat-status-badge');
if (zakatAmountEl && statusBadge) {
if (total >= nisab && total > 0) {
const zakat = total * 0.025;
zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
statusBadge.innerHTML = ' Zekat farz oldu (Nisaba ulaştı)';
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 = ' Henüz nisaba ulaşmadı';
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 = ' Kontrol etmek için tutarı girin';
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');
if (icon) icon.classList.add('fa-spin');
// Simulate API call
await new Promise(r => setTimeout(r, 1000));
// Dynamic change for effect (simulated rate change)
const goldRateInput = document.getElementById('zakat-gold-rate');
if (goldRateInput) {
const current = parseFloat(goldRateInput.value);
const newRate = current + (Math.random() - 0.5) * 2;
goldRateInput.value = newRate.toFixed(2);
}
if (icon) icon.classList.remove('fa-spin');
zakatCalculate();
}
// Reset form
function zakatResetForm() {
document.querySelectorAll('input[type="number"]').forEach(input => {
if (input) input.value = '';
});
donationBasket = [];
charityProjects.forEach(p => p.selected = false);
loadCharityProjects();
zakatCalculate();
}
// Save calculation
function zakatSaveCalculation() {
const totalEl = document.getElementById('zakat-total-assets');
const zakatEl = document.getElementById('zakat-amount');
const total = totalEl ? totalEl.textContent : '0';
const zakat = zakatEl ? zakatEl.textContent : '0';
alert(`Hesaplama kaydedildi:\nToplam Mal: ${total}\nFarz Olan Zekat: ${zakat}`);
}
// Checkout
function zakatCheckout() {
const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);
if (total === 0) {
alert('Lütfen önce bağış sepetine projeler ekleyin');
return;
}
alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);
// In production: window.location.href = 'payment.html';
}
// Redirect to payment
function zakatRedirectToPayment() {
const zakatAmountEl = document.getElementById('zakat-amount');
const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';
if (zakatAmount === '0.00 $') {
alert('Lütfen önce zekat hesaplamak için tutarı girin');
return;
}
alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);
// 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 goldRateInput = document.getElementById('zakat-gold-rate');
const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;
const nisab = 85 * goldRate;
const nisabValueEl = document.getElementById('zakat-nisab-value');
if (nisabValueEl) {
nisabValueEl.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\nThe Third Pillar of Islam\r\nSmart Zakat CalculatorAccurate Payment.. Big Impact\r\n\r\n\r\nA comprehensive calculator to calculate your zakat according to the most up-to-date prices and the most accurate Sharia rulings, enabling you to perform your worship with accuracy and confidence. It is designed to help. \r\n\r\n\r\n\r\n\r\nToday's Gold Nisab\r\n85 Grams\r\n\r\n\r\n\r\n\r\nEquivalent according to current gold price id=\"nisab-value\">$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 Cash & Savings\r\n \r\n \r\n \r\n Gold & Silver\r\n \r\n \r\n \r\n Stocks & Business Assets\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Cash & Bank Deposits\r\n \r\n \r\n \r\n \r\n Available Cash\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Bank Deposits & Account Balances\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Money Owed to You\r\n \r\n \r\n \r\n \r\n Debts you expect to collect\r\n \r\n\r\n \r\n Your Outstanding Debts\r\n \r\n \r\n \r\n \r\n Deducted from your total assets\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Gold, Silver & Jewelry\r\n \r\n\r\n \r\n \r\n Gold Weight (Grams)\r\n \r\n \r\n \r\n \r\n Excluding jewelry for personal use\r\n \r\n\r\n \r\n Gold Purity\r\n \r\n \r\n 24 Karat (Pure)\r\n 22 Karat\r\n 21 Karat\r\n 18 Karat\r\n \r\n \r\n \r\n \r\n\r\n \r\n Silver Weight (Grams)\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Today's Gold Price\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n Price per gram (USD)\r\n \r\n \r\n \r\n \r\n \r\n \r\n Nisab Calculator\r\n \r\n \r\n \r\n Gold Nisab\r\n 85 Grams\r\n \r\n \r\n Silver Nisab\r\n 595 Grams\r\n \r\n \r\n Value in USD\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 Business & Investment Assets\r\n \r\n \r\n \r\n Current Stock Value\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Trade Goods\r\n \r\n \r\n \r\n \r\n Goods intended for sale\r\n \r\n\r\n \r\n Investment Real Estate\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Other Assets\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n Choose Your Charity Projects\r\n \r\n\r\n \r\n You can distribute your Zakat among one or more charity projects as you wish.\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Donation Basket\r\n \r\n\r\n \r\n You have not added any projects yet.\r\n \r\n\r\n \r\n \r\n Total Allocated Amount\r\n 0.00 $\r\n \r\n\r\n \r\n Complete Donation\r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n Conditions for Zakat Obligation\r\n \r\n\r\n <ul>\r\n <li>\r\n \r\n Owning wealth equal to or exceeding the Nisab (the value of 85 grams of 24K gold).\r\n </li>\r\n\r\n <li>\r\n \r\n One Hijri year has passed while owning the wealth.\r\n </li>\r\n\r\n <li>\r\n \r\n Full ownership and complete control over the wealth.\r\n </li>\r\n </ul>\r\n \r\n\r\n \r\n \r\n \r\n Trust & Transparency\r\n \r\n\r\n \r\n At Vicdan Relief Association, we are committed to distributing your Zakat according to the eight eligible categories under the supervision of qualified Islamic scholars, while ensuring the highest standards of transparency, accountability, and traceability.\r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n Calculation Summary\r\n \r\n\r\n \r\n \r\n \r\n Total Zakatable Assets\r\n \r\n 0.00 $\r\n \r\n\r\n \r\n \r\n Current Nisab Threshold\r\n \r\n 6,502.50 $\r\n \r\n \r\n\r\n \r\n \r\n Zakat Due (2.5%)\r\n \r\n\r\n 0.00 $\r\n\r\n \r\n \r\n Enter your assets to calculate\r\n \r\n \r\n\r\n <a>\r\n Contact Us on WhatsApp for Consultation & Donations\r\n </a>\r\n\r\n \r\n All calculations are based on current global gold prices and the latest recognized Islamic rulings. For specific religious matters, we recommend consulting a qualified Islamic scholar.\r\n \r\n\r\n \r\n \r\n \r\n Reset\r\n \r\n\r\n \r\n Save Calculation\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: \"Oruç Açtırma\",\r\n description: \"Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması\",\r\n icon: \"fa-utensils\",\r\n cost: 500,\r\n selected: false\r\n },\r\n {\r\n id: 2,\r\n title: \"Kışlık Giysi\",\r\n description: \"İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı\",\r\n icon: \"fa-shirt\",\r\n cost: 300,\r\n selected: false\r\n },\r\n {\r\n id: 3,\r\n title: \"Su Kuyusu\",\r\n description: \"Kuyu açılması ve temiz içme suyu sağlanması\",\r\n icon: \"fa-droplet\",\r\n cost: 1000,\r\n selected: false\r\n },\r\n {\r\n id: 4,\r\n title: \"Yetim Eğitimi\",\r\n description: \"Yetimlere eğitim desteği ve okul malzemeleri\",\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: \"Hasta Tedavisi\",\r\n description: \"Gücü yetmeyen ailelerin tedavi masraflarının karşılanması\",\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: \"Dul Kadın Bakımı\",\r\n description: \"Dul kadınlara ve çocuklarına aylık destek\",\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 if (!container) return;\r\n \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 ? 'Eklendi' : 'Ekle'}\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 (!container || !totalElement) return;\r\n \r\n if (donationBasket.length === 0) {\r\n container.innerHTML = 'Henüz herhangi bir proje eklemediniz';\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 const totalAssetsEl = document.getElementById('zakat-total-assets');\r\n if (totalAssetsEl) {\r\n totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Nisab Logic (85g Gold 24k)\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update nisab displays\r\n const nisabValueDisplayEl = document.getElementById('nisab-value-display');\r\n if (nisabValueDisplayEl) {\r\n nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n const currentNisabEl = document.getElementById('current-nisab');\r\n if (currentNisabEl) {\r\n currentNisabEl.textContent = '85 Gram';\r\n }\r\n \r\n const nisabValueEl2 = document.getElementById('nisab-value');\r\n if (nisabValueEl2) {\r\n nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update progress bar\r\n const nisabProgress = Math.min(100, (total / nisab) * 100);\r\n const progressEl = document.getElementById('nisab-progress');\r\n if (progressEl) {\r\n progressEl.style.width = `${nisabProgress}%`;\r\n }\r\n \r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const statusBadge = document.getElementById('zakat-status-badge');\r\n \r\n if (zakatAmountEl && statusBadge) {\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 = ' Zekat farz oldu (Nisaba ulaştı)';\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 = ' Henüz nisaba ulaşmadı';\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 = ' Kontrol etmek için tutarı girin';\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 \r\n // Fetch live rates\r\n async function zakatFetchRates() {\r\n const icon = document.getElementById('zakat-refresh-icon');\r\n if (icon) 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 goldRateInput = document.getElementById('zakat-gold-rate');\r\n if (goldRateInput) {\r\n const current = parseFloat(goldRateInput.value);\r\n const newRate = current + (Math.random() - 0.5) * 2;\r\n goldRateInput.value = newRate.toFixed(2);\r\n }\r\n \r\n if (icon) 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 => {\r\n if (input) input.value = '';\r\n });\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 totalEl = document.getElementById('zakat-total-assets');\r\n const zakatEl = document.getElementById('zakat-amount');\r\n const total = totalEl ? totalEl.textContent : '0';\r\n const zakat = zakatEl ? zakatEl.textContent : '0';\r\n \r\n alert(`Hesaplama kaydedildi:\\nToplam Mal: ${total}\\nFarz Olan Zekat: ${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('Lütfen önce bağış sepetine projeler ekleyin');\r\n return;\r\n }\r\n \r\n alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);\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 zakatAmountEl = document.getElementById('zakat-amount');\r\n const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';\r\n if (zakatAmount === '0.00 $') {\r\n alert('Lütfen önce zekat hesaplamak için tutarı girin');\r\n return;\r\n }\r\n \r\n alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);\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 goldRateInput = document.getElementById('zakat-gold-rate');\r\n const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\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"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'en') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'en') (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)