//------------------FORM UTILITIES----------------------------
// Test for Invalid Entry


function test_it(entry) {
 if (entry.value!=null && entry.value.length!=0) {
  entry.value=""+ eval(entry.value);
  }
 computeForm(entry.form);
 }

function computeForm() {

	if( document.getElementById( 'theMonths15' ).checked == true )
	{
		theMonths = 180;
	}
	else
	{
		theMonths = 360;
	}

	if
	(
		document.getElementById('theRate').value.length == 0 ||
		document.getElementById('theFinanced').value.length == 0 ||
		document.getElementById('theRate').value.length * 1 != document.getElementById('theRate').value.length ||
		document.getElementById('theFinanced').value.length != document.getElementById('theFinanced').value.length 
	)
	{
		alert('Enter in numbers');
	}

/*
 if ((form.months.value==null || form.months.value.length==0) ||
    (form.rate.value==null || form.rate.value.length==0) ||
    (form.financed.value == null || form.financed.value.length==0)) {
   return;
   }
 */
 //if (!alrt_msg(form.months,1,480,"Number of Payments") ||
   // !alrt_msg(form.rate,.001,99,"Interest Rate") ||
   // !alrt_msg(form.financed,100,10000000,"Principal Amount")) {
   //form.payment.value="Invalid Entry.";
   //return;
    //}

// --------------------Math Strings---------------------

 	var i = document.getElementById('theRate').value;
	ffv=0;
	ffv += document.getElementById('theFinanced').value;
	fmv=0;
	fmv += theMonths;
	if (i > 1.0) 
	{
		// Hack to mostly correct floating point/binary conversion error
		i=(i/100.0)+.00001;
		var fmt="";
		fmt+=i;
		fmt=fmt.substring(0,6);
		document.getElementById('theRate').value=fmt;
	}
/* var i=form.rate.value;
 ffv=0;
 ffv+=form.financed.value;
 fmv=0;
 fmv+=form.months.value;
 if (i > 1.0) {
 // Hack to mostly correct floating point/binary conversion error
  i=(i/100.0)+.00001;
  var fmt="";
  fmt+=i;
  fmt=fmt.substring(0,6);
  form.rate.value=fmt;
*/


// --------------------Math Functions---------------------

	i/=12;
	var isn=1;
	for (var j=0;j < theMonths; j++)
		isn=isn*(1+i);

	document.getElementById('thePayment').value = (document.getElementById('theFinanced').value*isn*i)/(isn-1);
	fpv=0;

	fpv+=document.getElementById('thePayment').value;
	var fmt="";
	var add=9;
	fmt+=document.getElementById('thePayment').value;
	for (var i=0;i<fmt.length;i++) 
	{
		if (fmt.charAt(i)==".") 
		{
			add=i+3;
			i=fmt.length;
		}
	}
	fmt=fmt.substring(0,add);
	fcalc=((fmv*fpv)-ffv);

	var fmtb="";
	var add=9;
	fmtb+=fcalc;
	for (var i=0;i<fmtb.length;i++) 
	{
		if (fmtb.charAt(i)==".") 
		{
			add=i+3;
			i=fmtb.length;
		}
	}
	fmtb=fmtb.substring(0,add);
	document.getElementById('thePayment').value = fmt;

/*
i/=12;
var isn=1;
for (var j=0;j<form.months.value;j++)
isn=isn*(1+i);

form.payment.value=(form.financed.value*isn*i)/(isn-1);
fpv=0;

fpv+=form.payment.value;
var fmt="";
var add=9;
fmt+=form.payment.value;
for (var i=0;i<fmt.length;i++) {
if (fmt.charAt(i)==".") {
add=i+3;
i=fmt.length;
}
}
fmt=fmt.substring(0,add);
fcalc=((fmv*fpv)-ffv);
var fmtb="";
var add=9;
fmtb+=fcalc;
for (var i=0;i<fmtb.length;i++) {
if (fmtb.charAt(i)==".") {
add=i+3;
i=fmtb.length;
}
}
fmtb=fmtb.substring(0,add);
form.payment.value=fmt;
*/
}

// --------------------Reset Form---------------------

function reset_it(form) {
 //form.months.value="";
 //form.rate.value="";
 //form.financed.value="";
 //form.payment.value="";
 }

// --------------------Invalid Messages---------------------

function alrt_msg(entry,low,high,prompt) {
 prompt="Please Note: "+prompt +" is invalid. ";
 var scratch=entry.value;
 for (var i=0;i<scratch.length;i++) {
  var letter=scratch.substring(i,i+1);
  if ((letter<"0" || "9"<letter) && letter!='.') {
   alert(prompt);
   return false;
   }
    }
 var errtst=parseFloat(scratch)
 if (errtst<low || high<errtst) {
  alert("" +prompt + " Must be between "+low+" and "+high+"!");
  return false;
  }
 entry.value=scratch;
 return true;
 }



