function checkform(form){
	if (form.price.value==null||form.price.value.length==0){
		alert("Please enter the purchase price of your house.");
		return false;
	} else {
		if (form.price.value<20000){
			alert("House price is normally greater than $20000. Please re-enter.");
			return false;
		} else {
			if (form.year.value==null||form.year.value.length==0){
				alert("Please enter the length of your mortgage.");
				return false;
			} else {
				 if (form.rate.value<2||form.rate.value>20){
					alert("The interest rate should be between 2% and 20%.");
					return false;
				} else {
					return true;
				}
			}
		}
	}
}

function MakeMoney(numb){
	money='$';
	for (var i=0;i<numb.value.length; i++) {
	  j=i+1;
	  money+=numb.value.substring(i,j);
	  if (numb.value==Math.round(numb.value))
		{ pos=numb.value.length-j;}
	  else
		{ pos=numb.value.length-3-j;}
	  tmp=Math.round(pos/3);
	  if (pos == tmp*3 && pos != 0) money+=",";
	}
	return money;
}

function pir(annual_rate, years, period){
	var monthly_rate=annual_rate/period;
	var factor=0;
	var base_rate=1+monthly_rate;
	var denominator=base_rate;
	for (var i=0;i<(years*period);i++){
		factor+=(1/denominator);
		denominator*=base_rate;}
	return factor;
}

function yeari(annual_rate, principal, payment){
	var money=principal;
	var monthly_rate=annual_rate/12;
	var leftover=0;
	var int_month=0;
	var year_int=0;
	var year_interest=0;
	for (var i=0;i<(12);i++){
		int_month=(monthly_rate*money);
		leftover=(payment-int_month);
		money=(money-leftover);
		year_int+=int_month;
		}
	year_interest=Math.round(year_int);
	return year_interest;
}

function calculate(form){
	if (checkform(form)){
		pay1=form.price.value*0.05;
		pay2=form.price.value*0.10;
		pay3=form.price.value*0.15;
		pay4=form.price.value*0.20;

		document.getElementById("result").pay1.value=Math.round(pay1);
		document.getElementById("result").pay2.value=Math.round(pay2);
		document.getElementById("result").pay3.value=Math.round(pay3);
		document.getElementById("result").pay4.value=Math.round(pay4);

		interest_rate=(form.rate.value/100);
		monthly_factor=pir(interest_rate, form.year.value, 12);
		weekly_factor=pir(interest_rate, form.year.value, 52);
		yearly_factor=pir(interest_rate, form.year.value, 1);

		document.getElementById("result").month0.value=Math.round(form.price.value/monthly_factor);
		var base_amount1=form.price.value-pay1;
		document.getElementById("result").month1.value=Math.round(base_amount1/monthly_factor);
		var base_amount2=form.price.value-pay2;
		document.getElementById("result").month2.value=Math.round(base_amount2/monthly_factor);
		var base_amount3=form.price.value-pay3;
		document.getElementById("result").month3.value=Math.round(base_amount3/monthly_factor);
		var base_amount4=form.price.value-pay4;
		document.getElementById("result").month4.value=Math.round(base_amount4/monthly_factor);

		document.getElementById("result").salary0.value=Math.round(document.getElementById("result").month0.value*12/.28);
		document.getElementById("result").interest0.value=yeari(interest_rate, form.price.value, document.getElementById("result").month0.value);
		document.getElementById("result").salary1.value=Math.round(document.getElementById("result").month1.value*12/.28);
		document.getElementById("result").interest1.value=yeari(interest_rate, base_amount1, document.getElementById("result").month1.value);
		document.getElementById("result").salary2.value=Math.round(document.getElementById("result").month2.value*12/.28);
		document.getElementById("result").interest2.value=yeari(interest_rate, base_amount2, document.getElementById("result").month2.value);
		document.getElementById("result").salary3.value=Math.round(document.getElementById("result").month3.value*12/.28);
		document.getElementById("result").interest3.value=yeari(interest_rate, base_amount3, document.getElementById("result").month3.value);
		document.getElementById("result").salary4.value=Math.round(document.getElementById("result").month4.value*12/.28);
		document.getElementById("result").interest4.value=yeari(interest_rate, base_amount4, document.getElementById("result").month4.value);

		document.getElementById("result").pay1.value=MakeMoney(document.getElementById("result").pay1);
		document.getElementById("result").pay2.value=MakeMoney(document.getElementById("result").pay2);
		document.getElementById("result").pay3.value=MakeMoney(document.getElementById("result").pay3);
		document.getElementById("result").pay4.value=MakeMoney(document.getElementById("result").pay4);
		document.getElementById("result").month0.value=MakeMoney(document.getElementById("result").month0);
		document.getElementById("result").month1.value=MakeMoney(document.getElementById("result").month1);
		document.getElementById("result").month2.value=MakeMoney(document.getElementById("result").month2);
		document.getElementById("result").month3.value=MakeMoney(document.getElementById("result").month3);
		document.getElementById("result").month4.value=MakeMoney(document.getElementById("result").month4);
		document.getElementById("result").salary0.value=MakeMoney(document.getElementById("result").salary0);
		document.getElementById("result").salary1.value=MakeMoney(document.getElementById("result").salary1);
		document.getElementById("result").salary2.value=MakeMoney(document.getElementById("result").salary2);
		document.getElementById("result").salary3.value=MakeMoney(document.getElementById("result").salary3);
		document.getElementById("result").salary4.value=MakeMoney(document.getElementById("result").salary4);
		document.getElementById("result").interest0.value=MakeMoney(document.getElementById("result").interest0);
		document.getElementById("result").interest1.value=MakeMoney(document.getElementById("result").interest1);
		document.getElementById("result").interest2.value=MakeMoney(document.getElementById("result").interest2);
		document.getElementById("result").interest3.value=MakeMoney(document.getElementById("result").interest3);
		document.getElementById("result").interest4.value=MakeMoney(document.getElementById("result").interest4);
	  	return true;
	}
}

function clearinput(form){
	form.price.value="";
	form.year.value="";
	form.rate.value="";
	document.getElementById("result").pay1.value="";
	document.getElementById("result").pay2.value="";
	document.getElementById("result").pay3.value="";
	document.getElementById("result").pay4.value="";
	document.getElementById("result").month0.value="";
	document.getElementById("result").month1.value="";
	document.getElementById("result").month2.value="";
	document.getElementById("result").month3.value="";
	document.getElementById("result").month4.value="";
	document.getElementById("result").salary0.value="";
	document.getElementById("result").salary1.value="";
	document.getElementById("result").salary2.value="";
	document.getElementById("result").salary3.value="";
	document.getElementById("result").salary4.value="";
	document.getElementById("result").interest0.value="";
	document.getElementById("result").interest1.value="";
	document.getElementById("result").interest2.value="";
	document.getElementById("result").interest3.value="";
	document.getElementById("result").interest4.value="";
	return true;
}