﻿//IINVESTMENT CALCULATOR

function iccalculate(){
var iccompound = 0;
var icterm = 0;
var ictime = 0;
var icinitial = parseInt(document.iccalc.icinitial.value);
var icadditions = parseInt(document.iccalc.icadditions.value);
var icapr = parseFloat(document.iccalc.icapr.value);
var icyears = parseInt(document.iccalc.icyears.value);

if((icinitial < 0)||(isNaN(icinitial))) icinitial = 0;
if((icadditions < 0)||(isNaN(icadditions))) icadditions = 0;
if((icapr <= 0)||(isNaN(icapr))) icapr = 0;
if((icyears <= 0)||(isNaN(icyears))) icyears = 0;

var icselect = (document.iccalc.select.selectedIndex);
if(icselect == 0) iccompound = ((icapr / 100) / 12), icterm = 12, ictime = 1;
if(icselect == 1) iccompound = ((icapr / 100) / 4), icterm = 4, ictime = 3;
if(icselect == 2) iccompound = ((icapr / 100) / 2), icterm = 2, ictime = 6;
if(icselect == 3) iccompound = ((icapr / 100) / 1), icterm = 1, ictime = 12;

var icadditionalyield = icinitial;
for(var i = 0; i < icyears; i++){

	for(var p=0; p < icterm; p++){
	
		for(var t = 0; t < ictime; t++){
			var icadd = icadditions;
			icadditionalyield = icadditionalyield + icadd;
		}
	icadditionalyield = ((icadditionalyield - (icadd * iccompound)) + (icadditionalyield * iccompound));

	}
}

document.iccalc.ictotalyield.value = "$" + (icadditionalyield).toFixed(2);
}


//MORTGAGE CALCULATOR

var amortsub = false;

function calcLoan() {

var formvals = getFormVal();

var years = formvals[0];
var months = years * 12;

var loan = formvals[2];
var apr = formvals[1];

var mpr = apr / 1200;
var nfactor = 0 - months;
var mofactor = Math.pow((1 + mpr), nfactor);
var bofactor = 1 - mofactor;
var tofactor = mpr / bofactor;

var payment = loan * tofactor;
var reducto = Math.round(payment*100)/100;
var totalpayments = reducto * months;


document.calc.payment.value = "$"+reducto.toFixed(2);
document.calc.totpayment.value = "$"+ totalpayments.toFixed(2);
document.calc.totinterest.value = "$"+ (totalpayments - loan).toFixed(2);

if (amortsub) showAm();

}

function showAm(){

amortsub = true;

formvals = getFormVal();

var years = formvals[0];
var months = years * 12;

var loan = formvals[2];
var apr = formvals[1];

var mpr = apr / 1200;
var nfactor = 0 - months;
var mofactor = Math.pow((1 + mpr), nfactor);
var bofactor = 1 - mofactor;
var tofactor = mpr / bofactor;

var payment = loan * tofactor;
var reducto = Math.round(payment*100)/100;
var totalpayments = reducto * months;


document.calc.payment.value = "$"+reducto.toFixed(2);
document.calc.totpayment.value = "$"+ totalpayments.toFixed(2);
document.calc.totinterest.value = "$"+ (totalpayments - loan).toFixed(2);

// NOW WE CALCULATE THE AMORTIZATION
var payment = 0;
var intpaid = 0;
var princpaid = 0;
var factsout = "";
var inyear = 0;
var inmonth = 0;

document.getElementById('amortsub').innerHTML = '<h3>Monthly Amortization</h3>' + '<hr>' +
 '<table><tr><td style="width:80px;"><strong>Payment</strong></td><td style="width:80px;"><strong>Principal</strong></td><td style="width:80px;"><strong>Interest</strong></td><td style="width:80px;"><strong>Balance</strong></td></tr></table>';
for(var i=0;i<months;i++){
intpaid = Math.round((mpr * loan) *100)/100;
princpaid = Math.round((reducto - intpaid)*100)/100;
loan = Math.round((loan - princpaid)*100)/100;

inyear = parseInt(i/12);
inmonth = i - (inyear * 12);

factsout += '<table><tr><td style="width:80px;">'+(payment + 1)+'</td><td style="width:80px;">'+princpaid.toFixed(2)+'</td><td style="width:80px;">'+intpaid.toFixed(2)+'</td><td style="width:80px;">'+loan.toFixed(2)+'</td></tr></table>';
payment = payment + 1;
}
document.getElementById('amortsub').innerHTML += factsout;


}

function getFormVal(){

var years = parseInt(document.calc.term.value);
var loan = parseInt(document.calc.loan.value);
var apr = parseFloat(document.calc.apr.value);

if((years <= 0)||(isNaN(years))) years = 0;
if((apr <= 0)||(isNaN(apr))) apr = 0;
if((loan <= 0)||(isNaN(loan))) loan = 0;

var indata = new Array(years,apr,loan);

return indata;
}

//MORTGAGE CALCULATOR COMP

var amortsubp = false;

function calcLoanp() {

var formvalsp = getFormValp();

var yearsp = formvalsp[0];
var monthsp = yearsp * 12;

var loanp = formvalsp[2];
var aprp = formvalsp[1];

var mprp = aprp / 1200;
var nfactorp = 0 - monthsp;
var mofactorp = Math.pow((1 + mprp), nfactorp);
var bofactorp = 1 - mofactorp;
var tofactorp = mprp / bofactorp;

var paymentp = loanp * tofactorp;
var reductop = Math.round(paymentp*100)/100;
var totalpaymentsp = reductop * monthsp;


document.calcp.paymentp.value = "$"+reductop.toFixed(2);
document.calcp.totpaymentp.value = "$"+ totalpaymentsp.toFixed(2);
document.calcp.totinterestp.value = "$"+ (totalpaymentsp - loanp).toFixed(2);

if (amortsubp) showAmp();

}

function showAmp(){

amortsubp = true;

formvalsp = getFormValp();

var yearsp = formvalsp[0];
var monthsp = yearsp * 12;

var loanp = formvalsp[2];
var aprp = formvalsp[1];

var mprp = aprp / 1200;
var nfactorp = 0 - monthsp;
var mofactorp = Math.pow((1 + mprp), nfactorp);
var bofactorp = 1 - mofactorp;
var tofactorp = mprp / bofactorp;

var paymentp = loanp * tofactorp;
var reductop = Math.round(paymentp*100)/100;
var totalpaymentsp = reductop * monthsp;


document.calcp.paymentp.value = "$"+reductop.toFixed(2);
document.calcp.totpaymentp.value = "$"+ totalpaymentsp.toFixed(2);
document.calcp.totinterestp.value = "$"+ (totalpaymentsp - loanp).toFixed(2);

// NOW WE CALCULATE THE AMORTIZATION COMP
var paymentp = 0;
var intpaidp = 0;
var princpaidp = 0;
var factsoutp = "";
var inyearp = 0;
var inmonthp = 0;

document.getElementById('amortsubp').innerHTML = '<h3>Monthly Amortization</h3>' + '<hr>' +
 '<table><tr><td style="width:80px;"><strong>Payment</strong></td><td style="width:80px;"><strong>Principal</strong></td><td style="width:80px;"><strong>Interest</strong></td><td style="width:80px;"><strong>Balance</strong></td></tr></table>';
for(var i=0;i<monthsp;i++){
intpaidp = Math.round((mprp * loanp) *100)/100;
princpaidp = Math.round((reductop - intpaidp)*100)/100;
loanp = Math.round((loanp - princpaidp)*100)/100;

inyearp = parseInt(i/12);
inmonthp = i - (inyearp * 12);

factsoutp += '<table><tr><td style="width:80px;">'+(paymentp + 1)+'</td><td style="width:80px;">'+princpaidp.toFixed(2)+'</td><td style="width:80px;">'+intpaidp.toFixed(2)+'</td><td style="width:80px;">'+loanp.toFixed(2)+'</td></tr></table>';
paymentp = paymentp + 1;
}
document.getElementById('amortsubp').innerHTML += factsoutp;


}

function getFormValp(){

var yearsp = parseInt(document.calcp.termp.value);
var loanp = parseInt(document.calcp.loanp.value);
var aprp = parseFloat(document.calcp.aprp.value);

if((yearsp <= 0)||(isNaN(yearsp))) yearsp = 0;
if((aprp <= 0)||(isNaN(aprp))) aprp = 0;
if((loanp <= 0)||(isNaN(loanp))) loanp = 0;

var indatap = new Array(yearsp,aprp,loanp);

return indatap;
}






