function checkNumber(input, min, max, msg) {

//msg = msg + " erròni: " + input.value;
msg = msg + " erroni.";
var str = input.value;
for (var i = 0; i < str.length; i++) {
var ch = str.substring(i, i + 1)
if ((ch < "0" || "9" < ch) && ch != '.') {
alert(msg);
return false;
      }
   }
var num = parseFloat(str)
if (num < min || max < num) {
alert(msg + " Ha de tenir un valor entre [" + min + " i " + max + "]");
return false;
   }
input.value = str;
return true;
}

function formatCurrency(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+'.'+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + '' + num + ',' + cents);
}

function EsNumero(Dato){
   var CadenaNumeros="0123456789.";
   var EsteCaracter;
   var Contador = 0;
   for (var i=0; i < Dato.length; i++){
       EsteCaracter = Dato.substring(i, i+1);
       if (CadenaNumeros.indexOf(EsteCaracter) != -1)
           Contador ++;
   }
   if (Contador == Dato.length)
       return(true);
   else
       return(false);
}


function computeField(input) {
if (input.value != null && input.value.length != 0){
	if (input.name == "principaltxt"){
		if (EsNumero(input.value)){
			input.value = '' + eval(input.value);
			document.form1.principal.value = input.value;
			document.form1.principaltxt.value = formatCurrency(input.value);
		}
		else{
			document.form1.principaltxt.value = "";
			document.form1.principal.value = "";
		}
	}

	computeForm(input.form);
}
}
function computeForm(form) {
if ((form.payments.value == null || form.payments.value.length == 0) ||
(form.interest.value == null || form.interest.value.length == 0) ||
(form.principal.value == null || form.principal.value.length == 0)) {
return;
}

if (!checkNumber(form.payments, 1, 50, "Termini") ||
!checkNumber(form.interest, .001, 99, "Interes") ||
!checkNumber(form.principal, 00, 10000000, "Capital")) {
//form.payment.value = "Invalid";
return;
}
var i = form.interest.value;
//if (i > 1.0) {
//i = i / 100.0;
//form.interest.value = i;
//}

i = i / 100.0;


i /= 12;

var pow = 1;

var formpayments = form.payments.value * 12;

for (var j = 0; j < formpayments; j++)
pow = pow * (1 + i);
money = "" + .01* Math.round(100*(form.principal.value * pow * i) / (pow - 1));
dec = money.indexOf(".");
dollars = money.substring(0,dec); 
cents = money.substring(dec+1,dec+3);
cents = (cents.length < 2) ? cents + "0" : cents;
money = dollars + "." + cents;


money = formatCurrency(money);
form.payment.value = money;

}
function clearForm(form) {
form.payments.value = "";
form.interest.value = "";
form.principal.value = "";
}
