

//CALCULATOR FUNCTIONS
function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + '$' + num + '.' + cents);
}

function get_interest_factor(annual_interest_rate , factor) {
	var interestRate = annual_interest_rate / 2;
	var rate_factor = (Math.pow(1. + interestRate , 1 / factor)-1.) / interestRate;
	return rate_factor;
}

function get_discount_factor(month_term , annual_interest_rate) {
	var interestRate = annual_interest_rate / 2;
	var d_factor = (1. - Math.pow(1. + interestRate, (-2 * month_term))) / interestRate;
	return d_factor;
}

function compute_mort_calc(){
	var frm = document.forms.frmCalculator;
	var period = 0;
	var factor = 0;

	switch (frm.mortgage_type[frm.mortgage_type.selectedIndex].value) {
		case "monthly":
			period = 12;
			factor = 6;
			break;
		case "semi-month":
			period = 24;
			factor = 12;
			break;
		case "bi-weekly":
			period = 26;
			factor = 13.028;
			break;
		case "weekly":
			period = 52;
			factor = 26.053;
			break;
		case "bi-weekly-accel":
			period = 26;
			factor = 13;
			break;
		case "weekly-accel":
			period = 52;
			factor = 26.053;
			break;
		default:
			period = 12;
			factor = 6;
	}

	var term = frm.term.value;
	var principal = frm.principal.value;
	var month_term = term * period;
	var annual_interest_rate = frm.interest_percent.value / 100;
	var monthly_interest_rate = annual_interest_rate / period;
	var financing_price = principal;
	var monthly_factor = get_interest_factor(annual_interest_rate , factor);
	var discount_factor = get_discount_factor(term , annual_interest_rate);

	var payment = (financing_price / discount_factor) * monthly_factor;
	var total_cost = payment * month_term;
	var total_interest = total_cost - financing_price;

	frm.payment.value = formatCurrency(payment);
	frm.total_cost.value = formatCurrency(total_cost);
	frm.total_interest.value = formatCurrency(total_interest);
}


