// JavaScript Document


function CalculatePayment(form)
{
	var iOrigTerm;
	if (Validate(form, false) )
	{
		//Calculate Remaining Term, first convert everything to monthly 
		if ( form.Mortgage_period.options[0].selected )
			iOrigTerm = parseInt(form.Mortgage_term.value) * 12;
		else
			iOrigTerm = parseInt(form.Mortgage_term.value);
		
		form.TempMonthlyPmt.value = CalculatePI(parseFloat(form.Loan_balance.value), 
		parseFloat(form.IRR_From.value)/100.0, iOrigTerm);
	
		form.Monthly_Payment.value = RoundUp(form.TempMonthlyPmt.value);
	}
}

function CalculatePI(LoanAmt, Rate, Term) {
    var dPI = 0.0;
    var dMthlyIntRate = Rate / 12.0;    
    var dDenominator = (Math.pow( (1+dMthlyIntRate),Term) - 1);
    var dNumerator = dMthlyIntRate * (Math.pow( (1 + dMthlyIntRate),Term) );
    dPI =  LoanAmt * (dNumerator / dDenominator);  
    return dPI;
}   

function RoundUp(inValue) {
	//this will round inValue to 2 decimal places
	
	var decimal = ".";
	var pos;
	var newValue;
	var temp1;
	var temp2;
	var temp3;
	var round;
	pos = inValue.indexOf(decimal);

	newValue = inValue.substring(0, 1);
	
	for (var i = 1; i <= pos; i++)
		newValue += inValue.substring(i, i+1);	
	
	temp1 = inValue.substring(i, i+1);	
	temp2 = inValue.substring(++i, i+1);
	temp3 = inValue.substring(++i, i+1);
	
	if (parseInt(temp3) >= 5)
	{
		round = parseInt(temp2);
		round++;
		newValue += temp1;
		newValue += round;		 
	}
	else
	{
		newValue += temp1;
		newValue += temp2;
	}	
	return newValue;

}   

function checkNum(inValue, VarName) {
	var NewVal="";
	var bFirst = true;
	num="0123456789.";

	if (parseFloat(inValue) == 0) {
		//update new value
		//document.forms[0].elements[VarName].value = NewVal;	
		document.getElementbyId(Varname).value = NewVal
		return;	
	}

	if (inValue != "")
	{
		for (var i=0; i<inValue.length; i++)
		{
			check=inValue.substring(i,i+1); 
			if ( num.indexOf(check) >= 0 )
			{
				if (bFirst)
				{	
					NewVal = check;
					bFirst = false;
				}
				else
					NewVal += check;
			}
		}
		
		//update new value
		document.forms[0].elements[VarName].value = NewVal;	
	}
 }

function Validate(form, amort_sched)
{
	if (form.Loan_balance.value == "")
	{
		document.forms[0].elements[2].select();
		document.forms[0].elements[2].focus();
		alert("Please enter Loan Balance");
		return false;
	}

	if ( form.Mortgage_term.value == "")
	{
		document.forms[0].elements[3].select();
		document.forms[0].elements[3].focus();
		alert("Please enter Mortgage Term");
		return false;
	}
	else
	{
		if (form.Mortgage_period.selectedIndex == 0)
		{
			if ( parseInt(form.Mortgage_term.value) > 30 ) 
			{
				document.forms[0].elements[3].select();
				document.forms[0].elements[3].focus();
				alert("Please enter a valid Mortgage Term");
				return false;
			}
		}
		else
		{
			if ( parseInt(form.Mortgage_term.value) > 360 ) 
			{
				document.forms[0].elements[3].select();
				document.forms[0].elements[3].focus();
				alert("Please enter a valid Mortgage Term");
				return false;
			}
		}
	}


	if ( form.IRR_From.value == "")
	{
		document.forms[0].elements[5].select();
		document.forms[0].elements[5].focus();
		alert("Please enter Interest Rate")
		return false;
	}
	
	if (amort_sched)
		form.submit();

	return true;
}

