
// common.js

function calculateRepayments(form) {
	// get inputs		
	var price 		= Math.abs(parseInt(form.price.value));
	var deposit 	= Math.abs(parseInt(form.deposit.value));
	var tradein 	= Math.abs(parseInt(form.tradein.value));
	var payout 		= Math.abs(parseInt(form.payout.value));
	var insurances 	= Math.abs(parseInt(form.insurances.value));
	var othercosts 	= Math.abs(parseInt(form.othercosts.value));
	var rate		= (form.rate)? Math.abs(parseFloat(form.rate.value)) : 9.65;
	var term		= (form.term)? Math.abs(parseFloat(form.term.value)) : 5;
	
	// clean input
	if (isNaN(price)) price = 0;	
	if (isNaN(deposit)) deposit = 0;	
	if (isNaN(tradein)) tradein = 0;	
	if (isNaN(payout)) payout = 0;	
	if (isNaN(insurances)) insurances = 0;	
	if (isNaN(othercosts)) othercosts = 0;	
	if (isNaN(rate)) rate = 9.65;	
	if (isNaN(term)) term = 5;	
	
	// display cleaned values
	form.price.value = price;
	form.deposit.value = deposit;
	form.tradein.value = tradein;
	form.payout.value = payout;
	form.insurances.value = insurances;
	form.othercosts.value = othercosts;
	if (form.rate) form.rate.value = rate;
	if (form.term) form.term.value = term;

	// calculate and display principal	
	var principal = price - deposit - tradein + payout + insurances + othercosts;
	form.finance.value = principal;

	// discount function
	var rate = rate/(100*12); // monthly interest rate
	var payments = term * 12;  // no. of monthly payments
	var df = (Math.pow((1 + rate),payments) - 1) / (rate * Math.pow((1 + rate),payments));
	
	var r_month = (rate/12)/100;		     // Interest rate per month
	var n_month = (term * 12);		 // Number of payment (monthly)
	var top = principal - (Math.pow(1+r_month,-n_month));
	var bot = ((1 - Math.pow(1+r_month,-n_month)) / r_month);	
	
	// monthly repayments
	var repayments = principal / df;
	//var repayments = top / bot;
	form.repayments.value = '$' + parseInt(repayments*100)/ 100;
	
	//weekly repayments
	//if (form.weekly_repayments) form.weekly_repayments.value = '$' + parseInt(repayments*100*(12/52))/ 100;
	if (form.weekly_repayments) form.weekly_repayments.value = '$' + parseInt(repayments*100/(4.33))/ 100;

	return false;	
}

