
// Constants used in the calculator.

var fee = parseInt(175);
var interest_rate_1 = 0.145;
var interest_rate_2 = 0.155;
var min_loan = 1000;
var cut_off = 10000;
var max_loan = 30000;
var loan_term_min = 2;
var loan_term_max = 5;

// Variables used in the calculator. Loan_term should be in years

var two_years = 0;
var present_value = 0;
var interest_rate = 0;
var loan_term = 0;
var loan = 0;
var result3 = 0;
var monthly_payment = 0;
var weekly_payment = 0;
var result3 = 0;
var monthlyArr = new Array (4);
var weeklyArr = new Array (4);
var years_in_months = 0;

//main calculation



function goforit() {


	var stripped = document.calculator.frmLoan.value.replace(/[\(\)\$\,\ ]/g, '');
	
	loan = parseInt(stripped);
	
	if (loan == "") { 
		alert("please enter a loan amount between $1,000 and $30,000");
		return false;
		
	}	
	
	if (isNaN(parseInt(loan))) {
		alert ("please enter a loan amount between $1,000 and $30,000");
		return false;
	}	
	
	if (loan < min_loan) {
		alert ("your loan has to be at least $1000");
		return false;
		
	}	
	if (loan > max_loan) {
		alert ("your loan has to be less than $30,000");
		return false;
	}	
		
	else {

var i;
for (i = 0; i < 4; i++)
{
monthlyArr[i] = validate_loan_amount(loan, ((i + 2)*12));
weeklyArr[i] = Math.ceil(((monthlyArr[i] * 12)/52));
}
i = 0;

//document.getElementById("over").style.display = '';

//while (i < 4)
//{
//document.write ("monthlyArr[" + i + "] = " + monthlyArr[i] + "<br>");
//document.write ("weeklyArr[" + i + "] = " + weeklyArr[i] + "<br>");
//i++;
//}
//alert(document.getElementById("m2").childNodes[0].nodeValue);
//alert(document.getElementById("m2").innerText);
document.getElementById("m2").childNodes[0].nodeValue = "$" + monthlyArr[0];
document.getElementById("w2").childNodes[0].nodeValue = "$" + weeklyArr[0];
document.getElementById("m3").childNodes[0].nodeValue = "$" + monthlyArr[1];
document.getElementById("w3").childNodes[0].nodeValue = "$" + weeklyArr[1];
document.getElementById("m4").childNodes[0].nodeValue= "$" + monthlyArr[2];
document.getElementById("w4").childNodes[0].nodeValue = "$" + weeklyArr[2];
document.getElementById("m5").childNodes[0].nodeValue = "$" + monthlyArr[3];
document.getElementById("w5").childNodes[0].nodeValue = "$" + weeklyArr[3];

document.getElementById("over").style.display ="";

return false;
}	
		
}	
	
// Check that user entered a value(loan) between min_loan and max_loan and not blank

function validate_loan_amount(loan, years) {
	
		present_value = parseFloat(get_present_value(loan));
		interest_rate = parseFloat(get_interest_rate(loan)/12);
		two_years = calculate_payment(present_value,interest_rate,years);
		return two_years;
}

// Strip loan of any non-numerical characters

// Get present value (= loan + fee)

function get_present_value(loan) {
	present_value=(loan + fee);
	return present_value;
}

// Get interest_rate. This will be equal to interest_rate_1 if loan amount under cut_off, otherwise it will be interest_rate_2

function get_interest_rate(loan) {
 if (loan < cut_off) {
 	interest_rate=interest_rate_2;}
 else {
 	interest_rate=interest_rate_1;
}
return interest_rate;
}
// PMT  monthly calculation

function calculate_payment(PV, IR, NP) {
  var PMT = (PV * IR) / (1 - Math.pow(1 + IR, -NP))
  return round_decimals(PMT, 2)

}

function round_decimals(original_number, decimals) {
  var result1 = original_number * Math.pow(10, decimals);
  var result2 = Math.round(result1);
  var result3 = Math.ceil(result2 / Math.pow(10, decimals));
  return (result3);
}

function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}
