function puntosMillar(valor)
{
	var pos=valor.indexOf(',');
	if (pos==-1){
		valor=valor+",00"
		pos=valor.indexOf(',');
	}
	var fin=valor.substring(pos,valor.length);
	valor=valor.substring(0,pos);
	var num=parseInt(pos / 3);
	var com = pos % 3;
	var valAux="";
	if (com>0 && pos>3){
			valAux=valor.substring(0,com)+".";
			valor=valor.substring(com,pos);
			pos=pos-com;
			com=0;
	}  
	while (pos>4){
		valAux=valAux+valor.substring(0,3)+".";
		valor=valor.substring(3,pos);
		pos=pos-3;
	}
	valAux=valAux+valor;
	valor=valAux+fin;
	fin="";
	pos=0;
	com=0
 
	return valor;
}


function checkNumber(input, min, max, msg)
{
	input.value=input.value.replace(",",".");
    msg = "Ha introducido datos incorrectos en " + msg + input.value;
    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 = 0 + str
    if (num < min || max < num) {
        alert(msg + "no está en el rango [" + min + ".." + max + "]");
        return false;
    }
    input.value = str;
    return true;
}
function computeField(input) {

    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(str+" no es un número");
            return false;
        }
    }
	if (input.value != null && input.value.length != 0)
        input.value = "" + eval(input.value);

    computeForm(input.form);
}
function computeField2(input)
{
    var salida = '';
    str = input.value;
    for (var i = 0; i < str.length; i++) {
        var ch = str.substring(i, i + 1)
        if (ch == ',') {
            ch = '.';
        }
        salida = salida + ch;
    }
    input.value = salida;
	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(str+" no es un número");
            return false;
        }
    }
    if (input.value != null && input.value.length != 0)
        input.value = "" + eval(input.value);
    
    computeForm(input.form);
}
function Dosdecimales(Num)
{
    with (Math) {
	var Resultado=round(Num*100)/100;

    }
   return Resultado;
}
function ValorSeleccion(objeto)
{
    var i=1;
    var Indice= objeto.selectedIndex;
    return objeto.options[Indice].text;
}
function computeForm(form)
{
    if ((form.CanDep.value == null || form.CanDep.value.length == 0) ||
        (form.IntNom.value == null || form.IntNom.value.length == 0) ||
        (form.PlazAm.value == null || form.PlazAm.value.length == 0)
        )
        {
        return;
    }
    if (!checkNumber(form.CanDep, 1, 1000000000000, "Capital") ||
        !checkNumber(form.IntNom, .001, 99, "Interés Anual (%)")||
        !checkNumber(form.PlazAm, 1, 480, "Plazo de Amortización (años)")) {
        form.Res1.value = "Datos Incorrectos ";
        return;
    }
    var A=1;
    if (ValorSeleccion(form.PeriodPag) == "Mensual")
      {
      A=1;
      }
   if (ValorSeleccion(form.PeriodPag) == "Bimestral")
      {
      A=2;
      }
    if (ValorSeleccion(form.PeriodPag) == "Trimestral")
      {
      A=3;
      }
    if (ValorSeleccion(form.PeriodPag) == "Cuatrimestral")
      {
      A=4;
      }
    if (ValorSeleccion(form.PeriodPag) == "Semestral")
      {
      A=6;
      }
    if (ValorSeleccion(form.PeriodPag) == "Anual")
      {
      A=12;
      }
    
    var INTERES1=form.IntNom.value/100	
    var INTERES=INTERES1*A/12; 
    var RECIBO=form.PlazAm.value*12/A; 
    var BASE=1+INTERES;
    var POTENCIA=Math.pow(BASE,RECIBO);
    var DIVIDENDO=form.CanDep.value*INTERES*POTENCIA;
    var DIVISOR= POTENCIA-1;
    var RESULTADO=DIVIDENDO/DIVISOR;
    var TOTAL=RESULTADO*RECIBO;
    var GASTOS=0.02*form.CanDep.value;    
    var reciboAux=puntosMillar(""+RECIBO);
    form.Res1.value=puntosMillar((""+Dosdecimales(RESULTADO)).replace(".",","));
    form.Res3.value=reciboAux.substring(0,reciboAux.indexOf(','));
    form.Res4.value=puntosMillar((""+Dosdecimales(TOTAL)).replace(".",","));
}
function clearForm(form)
{
 form.CanDep.value="";
 form.IntNom.value="";
 form.PlazAm.value="";
 //form.PeriodPag.value="";
 form.Res1.value="";
 // form.Res2.value="";
 form.Res3.value="";
 form.Res4.value="";
}
