
var interest_rate = 6.25;
var years = 30;
var loan_amount = formatCurrency(0);
var down_payment = formatCurrency(0);
var months = 12;

function init() {
	document.calculator.years.value = years;
	document.calculator.loan_amount.value = loan_amount;
	document.calculator.down_payment.value = down_payment;
	document.calculator.interest_rate.value = interest_rate;
}

function calculate() {
	loan_amount = document.calculator.loan_amount.value;
	if(loan_amount==''||loan_amount=='0') {
		alert('Loan Amount:\r\n    You have not entered a loan amount.')
		document.calculator.loan_amount.select();
		return false;
	} else {
		do {
			loan_amount = loan_amount.replace(',','');
		} while(loan_amount.indexOf(',')!=-1)
		if(isNaN(loan_amount)) {
			alert('Loan Amount:\r\n    Please make sure to use numeric values only.\r\n    Ex. 200,000')
			document.calculator.loan_amount.select();
			return false;
		}
	}	
	down_payment = document.calculator.down_payment.value;
	if(down_payment=='') {
		down_payment = 0;
	} else {
		do {
			down_payment = down_payment.replace(',','');
		} while(down_payment.indexOf(',')!=-1)
		if(isNaN(down_payment)) {
			alert('Down Payment:\r\n    Please make sure to use numeric values only.\r\n    Ex. 10,000')
			document.calculator.down_payment.select();
			return false;
		}
	}
	interest_rate = document.calculator.interest_rate.value;
	interest_rate = interest_rate/100;
	if(isNaN(interest_rate)) {
		alert('Annual Interest Rate:\r\n    Please make sure to use numeric values only.\r\n    Ex. 6.25')
		document.calculator.interest_rate.select();
		return false;
	}
	years = document.calculator.years.value;
	if(isNaN(years)) {
		alert('Numbers of Years:\r\n    Please make sure to use numeric values only.\r\n    Ex. 30')
		document.calculator.years.select();
		return false;
	}
	var rate_by_month = interest_rate/months;	
	var payments = years*months;	
	var principal = loan_amount-down_payment;
	var monthly_payment = (principal*rate_by_month) / (1-Math.pow((1+rate_by_month),(-1*payments)));
	monthly_payment = parseInt(monthly_payment);
	document.calculator.principal.value = formatCurrency(principal);
	document.calculator.monthly_payment.value = formatCurrency(monthly_payment);
	document.calculator.number_payments.value = payments;
}

function formatCurrency(num)	{
	num = num.toString();
	var a = new Array();
	var b = new Array();
	
	if(num.indexOf('.')!=-1) {
		num = num.split('.');
		var dollars = num[0];
		var cents = num[1];
	} else {
		var dollars = num;
		var cents = '00';
	}
	
	for(var i=0; i<dollars.length; i++) {
		a[i] = dollars.charAt(i);
	}
	a = a.reverse();
	var j = 0;
	for(var i=0; i<a.length; i++) {
		if(j==3) { 
			b.push(',')
			j = 1;
		} else {
			j++;
		}
		b.push(a[i])
	}
	b = b.reverse();
	dollars = b.join('')	
	return dollars;
}

