BPI Time Deposit Calculator

BPI Time Deposit Calculator

by Joey Albert Abano

HTML

<h1>BPI Time Deposit Calculator</h1><p>This allows you to count your BPI time deposit. The rate period for this calculator is <span class="warn"> March 4 - March 10, 2014</span>. For the updated rates refer to the bpi <a href="http://info.bpiexpressonline.com/bpiprod/produpd.nsf/deposit+rates/timedepositrates2" target="_blank">website</a>.</p>
<p>Please enter the amount you want to deposit: <input id="amount" type="text" value="50,000.00"/></p><p>Duration of the term: <select id="term"><option value="35">35</option><option value="63">63</option><option value="91">91</option><option value="182">182</option><option value="364">364</option></select></p><p class="result">BPI:<span id="bpi-td">&nbsp;P0.0000</span><br/>BPI Family Savings Bank:<span id="bpi-family-savings-td">&nbsp;P0.0000</span><br/>BPI Direct Savings Bank:<span id="bpi-direct-savings-td">&nbsp;P0.0000</span><br/></p>
<p class="warn">Disclaimer: I am not affliated or connected in BPI or is liable to any result upon use of this application.</p><hr/><h2>Deposit Rates</h2><p>The deposit rates are editable based on your preferred calculation.</p><h4>BPI</h4><table id="bpi-bracket" class="bracket" cellpadding=0 cellspacing=0><tr><th>Amount</th><th>35</th><th>63</th><th>91</th><th>182</th><th>364</th></tr><tr><td class="desc">50K to less than 100K</td>
<td><input value="0.25000"/></td><td><input value="0.25000"/></td><td><input value="0.25000"/></td><td><input value="0.31250"/></td><td><input value="0.31250"/></td></tr>
<tr><td class="desc">100K to less than 500K</td>
<td><input value="0.37500" /></td>
<td><input value="0.37500" /></td>
<td><input value="0.37500" /></td>
<td><input value="0.43750" /></td>
<td><input value="0.62500" /></td></tr>
<tr><td class="desc">500K to less than 1 MM</td>
<td><input value="0.37500" /></td>
<td><input value="0.37500" /></td>
<td><input value="0.37500" /></td>
<td><input value="0.43750" /></td>
<td><input value="0.62500" /></td></tr>
<tr><td class="desc">1 MM to less than...

CSS

body, input, select, option { font-family: Helvetica, Arial, FreeSans, Verdana, Tahoma, 'Lucida Sans', 'Lucida Sans Unicode', 'Luxi Sans', sans-serif; font-size: 11px}
p.warn, span.warn { color: #f00; }
p.result { font-weight:bold; }
table.bracket td { padding:0px 10px 0px 10px; text-align:center; }
table.bracket td.desc { color: #00f; }
table.bracket td input { border:none; width:39px; }

JavaScript

var calculate = function(ar){     
    var amount = $('amount').get('value').replace(',','');
    var term = $('term').get('value');
    var withholdingtax = 0.20;
    var wt = (1.00-withholdingtax);
    var interest = 0.0000;
    // identify the tier
    var tier = computeTier(amount);
    // compute based on the term 
    if(tier>=0) {
    switch(term) {
    case '35': interest = amount*ar[0+tier]*(term/365)*wt; break;            
    case '63': interest = amount*ar[1+tier]*(term/365)*wt; break;                        
    case '91': interest = amount*ar[2+tier]*(term/365)*wt; break;            
    case '182': interest = amount*ar[3+tier]*(term/365)*wt; break;                     
    case '364': interest = amount*ar[4+tier]*(term/365)*wt; break;                        
    }
    }
    return addComma((interest/100).round(4)); 
}
var addComma = function(nStr){
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
    return x1 + x2;
}
var computeTier = function(amount){
    var tier = -1;
    if(amount>=50000 && amount<100000) { tier = 0; }
    else if(amount>=100000 && amount<500000) { tier = 5; }
    else if(amount>=500000 && amount<1000000) { tier = 10; }
    else if(amount>=1000000 && amount<5000000) { tier = 15; }
    else if(amount>=500000) { tier = 20; }
    return tier;
}
var computeBank = function(bracket,target){
    var ar = [] , ctr = 0;
    $(bracket).getElements('input').each(function(el){
        ar[ctr]=el.get('value'); ctr++;
    });
    $(target).set('html','&nbsp; P'+calculate(ar));    
}

var compute = function(e){
    if(e){ e.stop(); }      
    computeBank('bpi-bracket','bpi-td');
    computeBank('bpi-family-bracket','bpi-family-savings-td'); 
    computeBank('bpi-direct-bracket','bpi-direct-savings-td');   ...