https://tcfcanada.org/wp-content/plugins/onx-zakat-shortcode/assets/js/zakat-calculator.js?ver=1.0.0
1jQuery(document).ready(function($){ 2 var total = $('#total'); 3 var zakat = $('#zakat'); 4 var inputs = $('#zakat-calculator input'); 5 var calculate = $('#calculator-calculate'); 6 var reset = $('#calculator-reset'); 7 var donate = $('#calculator-donate'); 8 var zakatForm = $('#give-form-104497-7'); 9 var nisab = $('input[name="nisab"]'); 10 var nisabCalc = Number($('input[name="nisab"]:checked').val()); 11 var zakatCalc = 0; 12 var counter = 0; 13 function parseNum(selector) { 14 let val = $(selector).val(); 15 if (typeof val === 'string') { 16 console.log('string'); 17 val = val.replace(/,/g, '').trim(); 18 } 19 return isNaN(val) || val === '' ? 0 : parseFloat(val); 20 } 21 22 function calculateBtn() { 23 var gold = parseNum('.goldval'); 24 var silver = parseNum('#silver'); 25 var cashinhand = parseNum('#cashinhand'); 26 var cashdeposited = parseNum('#cashdeposited'); 27 var cashloans = parseNum('#cashloans'); 28 var cashinvestments = parseNum('#cashinvestments'); 29 var stock = parseNum('#stock'); 30 var credit = parseNum('#credit'); 31 var wages = parseNum('#wages'); 32 var taxes = parseNum('#taxes'); 33 34 35 var totalCalc = (gold+silver+cashinhand+cashdeposited+cashloans+cashinvestments+stock) - (credit+wages+taxes); 36 37 total.text(totalCalc.toLocaleString('en-US')); 38 if (typeof fbq != 'undefined' && counter < 1) { 39 fbq('track', 'AddToCart'); 40 counter++; 41 } 42 if (totalCalc >= nisabCalc) { 43 zakatCalc = Math.round(totalCalc*0.025); 44 //donate.attr("href", "https://www.tcf.org.pk/zakat/donate-zakat/?de=2&d=" + zakatCalc); 45 zakat.text(zakatCalc.toLocaleString('en-US')); 46 } 47 else { 48 zakat.text("0"); 49 } 50 } 51 let inputTimer; 52 53 inputs.on('input', function () { 54 clearTimeout(inputTimer); 55 inputTimer = setTimeout(calculateBtn, 1000); 56 }); 57 58 nisab.on('change', function () { 59 nisabCalc = Number($('input[name="nisab"]:checked').val()); 60 calculateBtn(); 61 }); 62 63 64 $('#weightgold').on('input', function() { 65 var weightgold = parseFloat($(this).val()); 66 var goldValueRaw = $('#prices').data('gold-price'); 67 var goldValue = parseFloat(goldValueRaw.toString().replace(/,/g, '')); 68 69 console.log("Gold value changed: " + goldValue); 70 71 if (!isNaN(weightgold) && !isNaN(goldValue)) { 72 var zakatValue = weightgold * goldValue; 73 console.log("gold value: " + zakatValue); 74 $('#gold').val(zakatValue.toFixed(2)); 75 } else { 76 $('#gold').val(''); 77 console.warn("Invalid input detected: weightgold or goldValue is NaN"); 78 } 79 }); 80 81 $('#weightsilver').on('input', function() { 82 var weightsilver = parseFloat($(this).val()); 83 var silverValueRaw = $('#prices').data('silver-price'); 84 var silverValue = parseFloat(silverValueRaw.toString().replace(/,/g, '')); 85 86 console.log("Silver value changed: " + silverValue); 87 88 if (!isNaN(weightsilver) && !isNaN(silverValue)) { 89 var zakatValue = weightsilver * silverValue; 90 console.log("silver value: " + zakatValue); 91 $('#silver').val(zakatValue.toFixed(2)); 92 } else { 93 $('#silver').val(''); 94 console.warn("Invalid input detected: weightsilver or silverValue is NaN"); 95 } 96 }); 97 98});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.