function perRound(num, precision) {
	var precision = 3; //default value if not passed from caller, change if desired
	// remark if passed from caller
	precision = parseInt(precision); // make certain the decimal precision is an integer
    var result1 = num * Math.pow(10, precision);
    var result2 = Math.round(result1);
    var result3 = result2 / Math.pow(10, precision);
    return zerosPad(result3, precision);
}

function zerosPad(rndVal, decPlaces) {
    var valStrg = rndVal.toString(); // Convert the number to a string
    var decLoc = valStrg.indexOf("."); // Locate the decimal point
    // check for a decimal 
    if (decLoc == -1) {
        decPartLen = 0; // If no decimal, then all decimal places will be padded with 0s
        // If decPlaces is greater than zero, add a decimal point
        valStrg += decPlaces > 0 ? "." : "";
    }
    else {
        decPartLen = valStrg.length - decLoc - 1; // If there is a decimal already, only the needed decimal places will be padded with 0s
    }
     var totalPad = decPlaces - decPartLen;    // Calculate the number of decimal places that need to be padded with 0s
    if (totalPad > 0) {
        // Pad the string with 0s
        for (var cntrVal = 1; cntrVal <= totalPad; cntrVal++) 
            valStrg += "0";
        }
    return valStrg;
}
// send the value in as "num" in a variable

// clears field of default value
function clear_field(field) {
		if (field.value==field.defaultValue) {
			field.value=''
		}
	}

function isNum(str) 
{
	// checks 'str' contains only digits and '.'
	for (var i = 0; i < str.length; i++)
	{
		var ch = str.substring(i, i + 1)
		if ((ch < "0" || "9" < ch) && ch != '.')
		{
			return false
		}
	}
	if ((str.length==0))
	{
		return false
	}
	else 
	{
		return true
	}
}

function twodp(num) 
{
	num="$"+Math.round(100*num)/100;
	if (num.indexOf(".")==-1) num+=".00"
	if (num.indexOf(".")==num.length-2) num+="0"
	return num.substring(1,num.length)
}

function FindPayment() 
{
	msg="";
	ppstring=document.calcPayment.amount.value;
	if (!isNum(ppstring)) 
	{
		msg+="Please Enter a Valid Loan Amount.\n";
	}
	aprstring=document.calcPayment.aprpcnt.value;
	if (!isNum(aprstring)) 
	{
		msg+="Please Enter a Valid APR.\n";
	}
	nstring=document.calcPayment.nmonths.value;
	if (!isNum(nstring)) 
	{
		msg+="Please Enter Valid Months.\n";
	}
	if (msg.length==0) 
	{
		var p=parseFloat(ppstring);
		var n=parseFloat(nstring);
		var apr=parseFloat(aprstring);
		var r=Math.pow((1+apr/100),1/12);
		if (apr>0)
		{
			rn=Math.pow(r,n);
			a=p*(1-r)*rn/(1-rn);
		}
		else  
		{
			a=p/n;
		}
		p=twodp(p);
		a=twodp(a);
		totp=twodp(a*n);
		interest=twodp(a*n-p);
		document.calcPayment.amount.value=p;
		document.calcPayment.mpayment.value=a;
		document.calcPayment.trepaid.value=totp;
		document.calcPayment.tcharge.value=interest;
	}
	else 
	{
		alert(msg+"\nPlease enter only digits or '.' into the data boxes.\n");

	}
}
