// JavaScript Document
// DEPENDENCIAS (ficheros js a incluir antes):
// simulador_camposNum.js
// simulador_matFin.js

function doCalcular(tipoCalculo){
        // Comprobaciones de datos.
		if (document.miForm.dat_capital.value == '') {
			document.miForm.dat_capital.value = '0,00';
		}
		if (document.miForm.dat_interes.value == '') {
			document.miForm.dat_interes.value = '0,000';
		}
		if (document.miForm.dat_plazo.value == '') {
			document.miForm.dat_plazo.value = '0';
		}
		
        var l_sigo = true;
        var capIni = getNumeroCampo(document.miForm.dat_capital);
        if(isNaN(capIni) || (capIni == 0)){
                alert("Debe introducir el importe del Capital Inicial");
                document.miForm.dat_capital.focus();
                l_sigo = false;
        }
        
        var tInteres = getNumeroCampo(document.miForm.dat_interes);
        if (isNaN(tInteres) || tInteres == 0) {
                alert("Debe introducir el Tipo de Interés");
                document.miForm.dat_interes.focus();
                l_sigo = false;
        } 
        // Duración en meses
		var l_valPlazo = getNumeroCampo(document.miForm.dat_plazo);
        var l_numCuotas =  l_valPlazo * document.miForm.sel_plazo.value;

		//var mensual = document.miForm.sel_plazo.value;
		var l_num_pago_int = document.miForm.sel_pago_int.value;

		var num_meses = ((1/l_num_pago_int)*12);

		// Comprobamos si la periodicidad es mayor que el plazo.
		// No es en origen o en fin, y el número de meses entre pagos es superior a la duración.
		if (l_numCuotas == 0) {
			alert("Debe introducir una duración para el depósito");
			document.miForm.dat_plazo.focus();
			l_sigo = false;
		} else if ((l_num_pago_int != 0 && l_num_pago_int != 100) &&
				l_numCuotas % num_meses != 0) {
                alert("La duración del depósito y la periodicidad de pagos no concuerdan:\n" +
				"La duración total del depósito debe de ser un múltiplo del periodo entre pagos.");
                document.miForm.sel_pago_int.focus();
                l_sigo = false;
		}
        
    // Realizo el calculo si y sólo si los datos de entrada eran válidos.
        var l_intereses = 0;
		var l_tae= 0;
    	if (l_sigo) {
				
				if (l_num_pago_int == 0) { //si el pago de intereses es en origen
					
		
					// P0=C0*((IN*t)/(1+IN*t))
					var l_duracion=l_numCuotas / 12.0; // t (años)
					//var l_interesAcumulado=tInteres*l_duracion/100; // IN*t
					//l_intereses=capIni*l_interesAcumulado/(1+l_interesAcumulado); // P0
					l_intereses = (capIni * (tInteres/1200))* l_numCuotas;
					setNumeroCampo(document.miForm.res_intereses, l_intereses);
					
					// i = (1 + IN * t)^(1/t) - 1
// TT_PROD Validar
					//l_tae = (Math.pow(1 + ((tInteres/100)*l_duracion), 1/l_duracion) - 1)*100;
					//l_tae = (l_intereses/((capIni-l_intereses)*l_duracion))*100;
					l_tae = (Math.pow(capIni/(capIni-l_intereses), 1/l_duracion) - 1)*100;
					setNumeroCampo(document.miForm.res_tae, l_tae);
				
				}else{
					if (l_num_pago_int == 100) { // si el pago es al vencimiento
						l_intereses = (capIni * (tInteres/1200))* l_numCuotas;
						setNumeroCampo(document.miForm.res_intereses, l_intereses);
						
						var l_duracion=l_numCuotas / 12.0; // t
						l_tae = (Math.pow(1 + ((tInteres/100)*l_duracion), 1/l_duracion) - 1)*100;
						setNumeroCampo(document.miForm.res_tae, l_tae);
					
					}else{
					
						l_intereses = ((capIni * (tInteres/1200) * num_meses));// / l_num_pago_int);
						
						setNumeroCampo(document.miForm.res_intereses, l_intereses);
					
						l_tae = (Math.pow(1 + ((tInteres/100) / l_num_pago_int), l_num_pago_int) - 1)*100;
						setNumeroCampo(document.miForm.res_tae, l_tae);
					}
					window.location='#topForm1';
				}
			// Reformatear los campos de entrada.
			setNumeroCampo(document.miForm.dat_capital, capIni);
			setNumeroCampo(document.miForm.dat_interes, tInteres);
		}
}

