﻿num = 0
var pmt1 = 0
var pmt2 = 0
var prin_pmt = 0
var nterm = 0
var prcpl = 0
var x_pmt = 0
var l_term = 0
var tot_bal = 0
var tot_mon = 0
var x = 0
var intst = 12.95
var array_size = 7
mon_pmt = new Array
it_bal = new Array


function resetCalc(){
	for(var x=0;x<array_size;x++){
		mon_pmt[x]=0
		it_bal[x]=0
	}
}  

function calculate_tb(input,n){
	if(!validate_entry(input,1,100000,"Account balance")){
		input.value=""
		return;
	}  
	if(input.value!=null && input.value.length != 0){
		it_bal[n]=eval(input.value)
		tot_bal=0
		for(var x=0;x<array_size;x++){
			tot_bal=tot_bal+it_bal[x]
		}
		document.forms[0].tot_bal.value=tot_bal
		tot_bal=(tot_bal/.9)
		calculate_savings()
	}    
}

function calculate_mp(input,n){
	if(!validate_entry(input,1,100000,"Payment Amount")){
		input.value=""
		return;
	}  
	if(input.value!=null && input.value.length != 0){
		mon_pmt[n]=eval(input.value)
		tot_mon=0
		for(var x=0;x<array_size;x++){
			tot_mon=tot_mon+mon_pmt[x]
		}
		document.forms[0].total_payments.value=tot_mon
		calculate_savings()
	}    
}

function validate_entry(input, min, max, msg){
	msg = msg + " field has invalid data: " + input.value;
	var str = input.value
	for(var x=0; x< str.length; x++){
		var ch=str.substring(x,x+1)
		if((ch < "0" || "9" < ch) && ch != '.'){
			alert(msg)
			return false;
		}
	}
	var num = parseFloat(str)
	if (num < min || max < num){
		alert(msg + "not in range[" + min + ".." + max + "]");
		return false;
	}
	if (num <0 || 0 < num) {
		input.value = num;
	}
	else {
		input.value = 0
	}
	return true;
}

function calculate_savings(form){
	nterm = 0;
	pmt1 = 0;
	prin_pmt = 0;
	intst_payment = 0;
	x_pmt=document.forms[0].extra_pay.value;
	l_term = document.forms[0].term.value;
	prcpl = tot_bal;
	intst = 13.95;
	intst /= 12;
	var payment_mult = 1;
	for (var j = 0; j < l_term; j++)
		payment_mult = payment_mult * (1 + (intst/100));
	pmt2=Math.round((tot_bal * payment_mult * (intst/100)) / (payment_mult -1) * 100) / 100;
	document.forms[0].total_savings.value=Math.round((tot_mon-pmt2)*100)/100;
	document.forms[0].fmc_payment.value=pmt2	
	calculate_payments();
}

function calculate_payments(form){
	document.forms[0].payment_savings.value=0
	for (var j = 0; j < l_term; j++){
		if ((x_pmt * 1) < 1){
			document.forms[0].short_payments.value=l_term;
		}
		else{
			if (prcpl >= pmt2){
				pmt1 = ((x_pmt * 1) + (pmt2-(prcpl * (intst/100))));
				prcpl = (prcpl - pmt1);
				nterm=nterm+1;
				document.forms[0].short_payments.value=nterm;
				document.forms[0].payment_savings.value=Math.round((((l_term * pmt2) - tot_bal) - (((pmt2 + (x_pmt * 1)) * nterm) - tot_bal)) * 100) / 100;
			}
		}
	}
}