1 2var CalcTimerActiveCR = false; 3var CalcInteractionDetectedCR = false; 4var reCalcTimerCR; 5var reCalcIntervalCR = 500; // 1000 = one second 6var changeAmountCR = 25; 7var balFieldID = 'AcctBalance'; 8var balErrorFieldID = 'bal_error'; 9var balInitVal = $('#'+balFieldID).val(); 10var balLastVal = $('#'+balFieldID).val(); 11 12$(document).ready(function(){ 13 14 var pmtfld = document.getElementById(balFieldID); 15 pmtfld.onfocus = reCalcRewardsTimer; 16 17 reCalcRewards(); 18 19}); 20 21function initCRInteraction() { 22 $("div.calc-container .post-interaction").delay(2500).fadeIn(2000); 23} 24 25function reCalcRewardsTimer() { 26 if(!CalcTimerActiveCR) { 27 // timer is not active, activate it 28 CalcTimerActiveCR = true; 29 reCalcTimerCR = setInterval(reCalcRewards,reCalcIntervalCR); 30 } 31} 32 33function chgPayment(op) { 34 pmtv = parseInt($('#'+balFieldID).val()); 35 if(isNaN(pmtv)) { 36 $('#'+balFieldID).val(5000); 37 } else { 38 if(CalcInteractionDetectedCR === false) { 39 CalcInteractionDetectedCR = true; 40 initCRInteraction(); 41 } 42 switch(op) { 43 case '-': 44 if(pmtv > changeAmountCR) { 45 pmtv -= changeAmountCR; 46 $('#'+balFieldID).val(pmtv); 47 reCalcRewards(); 48 } 49 break; 50 case '+': 51 pmtv = parseInt($('#'+balFieldID).val()); 52 pmtv += changeAmountCR; 53 $('#'+balFieldID).val(pmtv); 54 reCalcRewards(); 55 break; 56 default: 57 break; 58 } 59 60 } 61} 62 63function dbug(txt) { 64 var dbug = false;
65 if(dbug) { 66 console.log(txt); 67 } 68} 69 70function reCalcRewards() { 71 72 BalanceEntered = $('#'+balFieldID).val(); 73 tmpBalance = BalanceEntered.replace(/\,/g,''); 74 tmpBalance = tmpBalance.replace(/\$/g,''); 75 AcctBalance = parseInt(tmpBalance); 76 77 // harvest parameters 78 Tier1MinBal = parseInt($('#Tier1MinBal').val()); 79 Tier1MaxBal = parseInt($('#Tier1MaxBal').val()); 80 Tier1APR = parseFloat($('#Tier1APR').val()); 81 Tier2MinBal = parseInt($('#Tier2MinBal').val()); 82 Tier2MaxBal = parseInt($('#Tier2MaxBal').val()); 83 Tier2APR = parseFloat($('#Tier2APR').val()); 84 85 // if value hasn't changed since last recalc, just return 86 if($('#'+balFieldID).val() == balLastVal) { 87 return; 88 } else { 89 balLastVal = $('#'+balFieldID).val(); 90 } 91 92 if(CalcInteractionDetectedCR === false) { 93 if(balLastVal != balInitVal) { 94 CalcInteractionDetectedCR = true; 95 initCRInteraction(); 96 } 97 } 98 99 // check that input value is valid integer: 100 var legalNum = /^[\d\,\$]+$/; // allow only numbers and a comma 101 if(!legalNum.test(BalanceEntered)) { 102 $('#'+balErrorFieldID).show(); 103 //alert('Please enter a payment amount like "325" or "475".'); 104 return false; // non numeric character found 105 } else { 106 $('#'+balErrorFieldID).hide(); 107 } 108 109 accum_int = 0; 110 111 for(i=1;i<=12;i++) { 112 mnth_int = 0; 113 tmp_int = 0; 114 dbug("Month " + i); 115 if((AcctBalance >= Tier1MinBal) && (AcctBalance <= Tier1MaxBal)) { 116 mnth_int += AcctBalance*((Tier1APR/100.0)/12.0); 117 dbug(" TierOne interest " + mnth_int.toFixed(2) + " (" + AcctBalance + "*" + Tier1APR + "/100.0/12.0)"); 118 } 119 if((AcctBalance >= Tier2MinBal)) { 120 bal1 = Tier2MinBal; 121 mnth_int += bal1*((Tier1APR/100.0)/12.0); 122 dbug(" TierOne interest " + mnth_int.toFixed(2) + " (" + bal1.toFixed(2) + "*" + Tier1APR + "/100.0/12.0)"); 123 bal2 = AcctBalance - bal1; 124 tmp_int = bal2*((Tier2APR/100.0)/12.0); 125 mnth_int += tmp_int; 126 dbug(" TierTwo interest " + tmp_int.toFixed(2) + " (" + bal2.toFixed(2) + "*" + Tier2APR + "/100.0/12.0)"); 127 } 128 if(i==1) { 129 IntOneMonth = mnth_int; 130 } 131 accum_int += mnth_int; 132 AcctBalance += mnth_int; 133 dbug(" Balance " + AcctBalance.toFixed(2)); 134 135 } 136 137 $('#IntMonth').html(IntOneMonth.toFixed(2)); 138 $('#IntYear').html(accum_int.toFixed(2)); 139 140 141 142} 143 144
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.