PageSourceSearch

https://lookoutcu.com/scripts/CalcRewards.js

js lookoutcu.com collected 2026-09-24 10:15:10 UTC 3,745 bytes, 144 lines download raw bytes

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.