// --- Funciones necesarias para calcular las cuotas
// --- de una hipoteca

// --- Control de entradas
function checkNumber(input, min, max, msg)
{
    msg = "Datos erroneos en los campos " + 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;
}

// --- Calcula las cuotas
function calcular(){
	
	var pform=document.forms['calculadoraHipotecas'];
	var presul=document.forms['resultadoHipotecas'];
	
  	if ((pform.capital.value == null || pform.capital.value.length == 0) || (pform.annos.value == null || pform.annos.value.length == 0) || (pform.interes.value == null || pform.interes.value.length == 0))
    	return;
  	if (!checkNumber(pform.capital, 1, 1000000000000, 'Capital:') || !checkNumber(pform.interes, .001, 99, 'Interés:')|| !checkNumber(pform.annos, 1, 480, 'Años:'))
    	return;
		
	var meses = pform.liquidacion.options[pform.liquidacion.options.selectedIndex].value;
  	var INTECuota = pform.interes.value/100;
  	var INTERES = INTECuota*meses/12; 
    var RECIBO = pform.annos.value*12/meses; 
  	var BASE = 1 + INTERES;
   	var POTENCIA = Math.pow(BASE,RECIBO);
  	var DIVIDENDO = pform.capital.value*INTERES*POTENCIA;
  	var DIVISOR = POTENCIA - 1;
  	var RESULTADO = DIVIDENDO / DIVISOR;
  	var TOTAL = RESULTADO * RECIBO;
  	presul.cuota.value = Math.round(RESULTADO);
  	presul.numcuotas.value = RECIBO;
  	presul.totintereses.value = Math.round((RESULTADO*RECIBO)-pform.capital.value);
  	presul.capintereses.value = Math.round(presul.cuota.value*presul.numcuotas.value);
	
}

function borrar(){
	document.forms['resultadoHipotecas'].reset();
}

