// JavaScript Document

// This simple method rounds a number to two decimal places.
function round(x) {
  return Math.round(x*100)/100;
}

function calculate() {

     var P = document.loandata.i_principal.value;
	 var R = document.loandata.i_interest.value / 100 / 12;
     document.loandata.o_interest_only.value = round(P * R);
  
}

/*  Function to calculate the fields for the RETIREMENT SAVINGS form  */
function calculate_t() {
var currAge = document.retireCalc.currAge.value;
var retireAge = document.retireCalc.retireAge.value;
var presentVal = document.retireCalc.presentVal.value;
var myReturn = document.retireCalc.myReturn.value / 100;
var annualPayment = document.retireCalc.annualPayment.value;
var numPayments = document.retireCalc.numPayments.value;
var futureValue = 0;
var totalInvested = 0;
var totalInterest = 0;
var interest = 0;
var totalPrinciple = 0;
var balance = presentVal;


// check to make sure all data needed has been entered
if (currAge != 0 &&  retireAge != 0 && presentVal != 0 && myReturn != 0)
{
	var numYears = retireAge - currAge;
	document.retireCalc.numYears.value = numYears;
	
	var calcValue = 1;
	var x = 1;
	
	while (calcValue <= numYears) {
		if (x <=  numPayments) {
			totalPrinciple = Number(1*balance + 1*annualPayment);
			var oldBalance = balance;
			interest = (1*interest + (myReturn * oldBalance));
			balance = (1*balance + 1*annualPayment + oldBalance*myReturn);		
		}
		 calcValue =calcValue + 1;
		 x = x + 1;
		 
	}  //end of while loop

	document.retireCalc.futureVal.value = Number(round(balance,2),2);
	document.retireCalc.totalInvested.value = Number(round((1*presentVal + 1*(numPayments * annualPayment)),2),2);
	document.retireCalc.totalInterest.value = Number(round(interest,2),2); 
} //end IF to check if form is filled out:  are values still 0




}  //end function

// Formula for computing loan period
function calculate_x() {
    // Get the user's input from the form. Assume it is all valid.
    // Convert interest from a percentage to a decimal, and convert from
    // an annual rate to a monthly rate. Convert payment period in years
    // to the number of monthly payments.
    var P = document.loandata.i_principal.value;
    var R = document.loandata.i_interest.value / 100 / 12;
   // var payments = document.loandata.years.value * 12;
	var M = document.loandata.i_payments.value;
	var x = Math.log(M/(M-P*R))/Math.log(1+R);
	var x_round = round(x);
	document.loandata.o_num_months.value = x_round; 
	document.loandata.o_tot_int.value = round((x * M) - P);
}
	
function calculate_y() {
	 var P = document.loandata.i_principal.value;
     var R = document.loandata.i_interest.value / 100 / 12;
	 var n = document.loandata.i_payoff_goal.value;
	 var y = Math.pow((1 + R), n);
	 var Araw = P * ((R * y)/(y - 1));
	 var A = round(P * ((R * y)/(y - 1)));
	 document.loandata.o_mon_pay.value = A;
	 document.loandata.o_tot_int2.value = round((Araw * n) - P);
}

//Calculations for the Retirment Planning Worsheet

function calculate_years() {
	var curr_age = document.rbudget.age_c.value;
	var ret_age = document.rbudget.age_r.value;
	if (ret_age > 0) {
		document.rbudget.years.value = ret_age - curr_age;
	} else document.rbudget.years.value = 0;
	}

function calculate_housing_r() {
	var mortgage = document.rbudget.mortgage_r.value;
	var taxes = document.rbudget.taxes_r.value;
	var maintenance = document.rbudget.maintenance_r.value;
	var insurance = document.rbudget.insurance_r.value;
	document.rbudget.total_h_r.value = (+mortgage + +taxes + +maintenance + +insurance);
	
	calculate_annual_required();
	calculate_summary();
}

function calculate_housing_c() {
	var mortgage = document.rbudget.mortgage_c.value;
	var taxes = document.rbudget.taxes_c.value;
	var maintenance = document.rbudget.maintenance_c.value;
	var insurance = document.rbudget.insurance_c.value;
	document.rbudget.total_h_c.value = (+mortgage + +taxes + +maintenance + +insurance);
}

function calculate_personal_r() {
	var grooming = document.rbudget.grooming_r.value;
	var clothing = document.rbudget.clothing_r.value;
	var vacations = document.rbudget.vacations_r.value;
	var other = document.rbudget.other_personal_r.value;
	var auto = document.rbudget.auto_r.value;
	var auto_ins = document.rbudget.auto_ins_r.value;
	
	
	document.rbudget.total_personal_r.value = (+grooming + +clothing + +vacations + +other + +auto + +auto_ins);
	
	calculate_annual_required();
	calculate_summary;
}

function calculate_personal_c() {
	var grooming = document.rbudget.grooming_c.value;
	var clothing = document.rbudget.clothing_c.value;
	var vacations = document.rbudget.vacations_c.value;
	var other = document.rbudget.other_personal_c.value;
	var auto = document.rbudget.auto_c.value;
	var auto_ins = document.rbudget.auto_ins_c.value;
	
	
	document.rbudget.total_personal_c.value = (+grooming + +clothing + +vacations + +other + +auto + +auto_ins);
}

function calculate_living_r() {
	var groceries = document.rbudget.groceries_r.value;
	var entertainment = document.rbudget.entertainment_r.value;
	var utilities = document.rbudget.utilities_r.value;
	var telephone = document.rbudget.telephone_r.value;

	
	document.rbudget.total_living_r.value = (+groceries + +entertainment + +utilities + +telephone);
	
	calculate_annual_required();
	calculate_summary();
}

function calculate_living_c() {
	var groceries = document.rbudget.groceries_c.value;
	var entertainment = document.rbudget.entertainment_c.value;
	var utilities = document.rbudget.utilities_c.value;
	var telephone = document.rbudget.telephone_c.value;

	
	document.rbudget.total_living_c.value = (+groceries + +entertainment + +utilities + +telephone);
	
}

function calculate_medical_r() {
	var prescription = document.rbudget.prescription_r.value;
	var med_ins = document.rbudget.med_ins_r.value;
	var other = document.rbudget.other_med_r.value;
	
	document.rbudget.total_medical_r.value = round(+prescription + +med_ins + +other);
	
	calculate_annual_required();
	calculate_summary();
}

function calculate_medical_c() {
	var prescription = document.rbudget.prescription_c.value;
	var med_ins = document.rbudget.med_ins_c.value;
	var other = document.rbudget.other_med_c.value;
	
	document.rbudget.total_medical_c.value = (+prescription + +med_ins + +other);
}

function calculate_income() {
	var ss_income = document.rbudget.ss_income.value;
	var pensions = document.rbudget.pensions.value;
	var other_plans = document.rbudget.other_plans.value;
	
	document.rbudget.total_retirement.value = (+ss_income + +pensions + +other_plans);
	
	document.rbudget.estimated.value = (+ss_income + +pensions + +other_plans)*12;
	
	calculate_summary();
}

function calculate_annual_required() {
	var housing = document.rbudget.total_h_r.value;
	var personal = document.rbudget.total_personal_r.value;
	var living = document.rbudget.total_living_r.value;
	var medical = document.rbudget.total_medical_r.value;
	document.rbudget.annual_required.value = (+housing + +personal + +living + +medical)*12;

}

function calculate_summary() {
	var expenses = document.rbudget.annual_required.value;
	var income = document.rbudget.estimated.value;
	document.rbudget.shortfall.value = (+income - +expenses);
	}

// END of Functions for Retirement Planning Worksheet.

