// JavaScript Document

//THIS FUNCTION RECEIVES MONTHS AND CONVERTS THEM TO DAYS
function plazos(meses,donde)
{
	dias = meses*30;
	
	var plazDias = document.getElementById(donde);
	
	plazDias.innerHTML = dias;

}




//THIS FUNCTION DISPLAYS TASA ACCORDING TO THE TIPO DE CUOTA
function loadTasa(valor)
{
	var tasaLabel = document.getElementById("tasaLabel_ID");
	var tasaCredi = document.getElementById("tasaCredi_ID");
	var seguCarte = document.getElementById("seguCarte_ID");
	var maxiPlazo = document.getElementById("maxiPlazo_ID");
	
	var mPlaz     = 0;
	
	if (valor != 0)
	{
		switch (valor)
		{
			case "1":
			tasaLabel.innerHTML = "<strong>Tasa mensual (%): </strong>";
			tasaCredi.innerHTML = "1.6";
			seguCarte.innerHTML = "0.034";
			mPlaz               = "60";
			break;
		
			case "2":
			tasaLabel.innerHTML = "<strong>Tasa mensual (%): </strong>";
			tasaCredi.innerHTML = "1.7";
			seguCarte.innerHTML = "0.034";
			mPlaz               = "60";
			break;
		
			case "15":
			tasaLabel.innerHTML = "<strong>Tasa mensual (%): </strong>";
			tasaCredi.innerHTML = "1.7";
			seguCarte.innerHTML = "0.034";
			mPlaz               = "48";
			break;
			
			case "11":
			tasaLabel.innerHTML = "<strong>Tasa mensual (%): </strong>";
			tasaCredi.innerHTML = "1.6";
			seguCarte.innerHTML = "0.034";
			mPlaz               = "4";
			break;
			
			case "10":
			tasaLabel.innerHTML = "<strong>Tasa mensual (%): </strong>";
			tasaCredi.innerHTML = "1.3";
			seguCarte.innerHTML = "0.034";
			mPlaz               = "36";
			break;
			
			case "9":
			tasaLabel.innerHTML = "<strong>Tasa mensual (%): </strong>";
			tasaCredi.innerHTML = "1.7";
			seguCarte.innerHTML = "0.034";
			mPlaz               = "6";
			break;
			
			case "12":
			tasaLabel.innerHTML = "<strong>Tasa mensual (%): </strong>";
			tasaCredi.innerHTML = "1.2";
			seguCarte.innerHTML = "0.034";
			mPlaz               = "24";
			break;
			
			case "26":
			tasaLabel.innerHTML = "<strong>Tasa mensual (%): </strong>";
			tasaCredi.innerHTML = "1.2";
			seguCarte.innerHTML = "0.034";
			mPlaz               = "24";
			break;
			
			case "25":
			tasaLabel.innerHTML = "<strong>Tasa mensual (%): </strong>";
			tasaCredi.innerHTML = "1.1";
			seguCarte.innerHTML = "0.034";
			mPlaz               = "48";
			break;
			
			case "13":
			tasaLabel.innerHTML = "<strong>Tasa mensual (%): </strong>";
			tasaCredi.innerHTML = "0.9";
			seguCarte.innerHTML = "0.034";
			mPlaz               = "48";
			break;
			
			case "7":
			tasaLabel.innerHTML = "<strong>Tasa mensual (%): </strong>";
			tasaCredi.innerHTML = "1.5";
			seguCarte.innerHTML = "0.034";
			mPlaz               = "6";
			break;
		}
	
	tableHtml  = '';
	tableHtml += '<table width="400" border="0" cellpadding="2" cellspacing="0" bgcolor="#CCCCCC" class="borderCellMiddle">' + '\n';
    tableHtml += '<tr>' + '\n';
    tableHtml += '<td width="394" height="22" align="center" valign="middle" bgcolor="#FFFFFF" class="simCredLabel">';
	tableHtml += '<strong>Plazo Máximo para ésta línea de crédito: </strong><span id="mxplaz_ID">' + mPlaz + '</span> meses.</td>' + '\n';
    tableHtml += '</tr>' + '\n';
    tableHtml += '</table>' + '\n';
	
	maxiPlazo.innerHTML = tableHtml;
	
	}
}
	



function corrValid()
{
	var alertmsg ='';
	var linea    = simCred.linea.value;
	var tipo0    = simCred.tipo[0].checked;
	var tipo1    = simCred.tipo[1].checked;
	var monto    = simCred.monto.value;
	var plazo    = simCred.plazo.value;
	var modali   = simCred.modali.value;
	
    if (plazo != ''  &&  mxplaz != ''  &&  linea !=0)
	{
		var mxplaz   = parseInt(document.getElementById("mxplaz_ID").innerHTML);
		var plazoInt = parseInt(plazo);
		
		if (plazoInt > mxplaz)
		{
			alert ("El plazo máximo para esta línea de crédito es de " + mxplaz + " meses.");
			simCred.plazo.value = mxplaz.toString();
			plazos(mxplaz,"plazoDias_ID");
		}
	}
	
	if (linea == 0)
	{
		alertmsg += "- Línea de crédito" + "\n";
	}	
	
	if (!tipo0  &&  !tipo1)
	{
		alertmsg += "- Tipo de cuota del crédito" + "\n";
	}
	
	if (monto == '')
	{
        alertmsg += "- Monto del crédito" + "\n";
	}
	
	if (plazo == '')
	{
		alertmsg += "- Plazo en meses del crédito" + "\n";
	}
	
	if (modali == 0)
	{
		alertmsg += "- Modalidad del crédito" + "\n";
	}
	
	if (alertmsg != '')
	{
		alertmsg = "Por favor ingrese los siguientes datos:" + "\n" + alertmsg;
		alert (alertmsg);
	}
	else
	{
		return true;
	}
}




function calculate()
{
	if (corrValid())
	{
		generate();
	}
	
}



function generate()
{
	var tipo0      = simCred.tipo[0].checked;
	var tipo1      = simCred.tipo[1].checked
	var monto      = simCred.monto.value;
	var plazo      = simCred.plazo.value;
	var modali     = simCred.modali.value;
	var tasaCredi  = document.getElementById("tasaCredi_ID").innerHTML;
	var seguCarte  = document.getElementById("seguCarte_ID").innerHTML;
	
	monto     = monto.replace(/[.]/gi,"");
	monto     = parseInt(monto);
	plazo     = parseInt(plazo);
	tasaCredi = parseFloat(tasaCredi);
	seguCarte = parseFloat(seguCarte);
	
	if (modali == "3")
	{
		totlCuota = Math.round(plazo);
	}
	else
	{
		if (modali == "2")
		{
			totlCuota = Math.round(plazo*30/15);
		}
		else
		{
			if (plazo < 6)
			{
				totlCuota = Math.round(plazo*4.33) + 1;
			}
			
			if (plazo >= 6 && plazo <= 18)
			{
				totlCuota = Math.round(plazo*4.33)-1;
			}
			
			if (plazo > 18 && plazo <= 42)
			{
				totlCuota = Math.round(plazo*4.33)-2;
			}
			
			if (plazo > 42)
			{
				totlCuota = Math.round(plazo*4.33)-3;
			}
		}
	}
	document.getElementById("totlCuota_ID").innerHTML = totlCuota;
	
	
	
	if (tipo0)
	{
		tableHtml  = "";
		tableHtml += '<table width="750" border="0" cellpadding="2" cellspacing="1" bgcolor="#CCCCCC">' + '\n';
        tableHtml += '<tr>' + '\n';
        tableHtml += '<td width="80" align="center" valign="middle" bgcolor="#FFFFFF" class="simCredHeader"> No. Cuotas </td>' + '\n';
        tableHtml += '<td width="100" align="center" valign="middle" bgcolor="#FFFFFF" class="simCredHeader"> ABONO A CAPITAL: </td>' + '\n';
        tableHtml += '<td width="100" align="center" valign="middle" bgcolor="#FFFFFF" class="simCredHeader"> ABONO A INTERESES: </td>' + '\n';
        tableHtml += '<td width="100" align="center" valign="middle" bgcolor="#FFFFFF" class="simCredHeader"> SEGURO CARTERA: </td>' + '\n';
        tableHtml += '<td width="100" align="center" valign="middle" bgcolor="#FFFFFF" class="simCredHeader"> VALOR CUOTA SIN SEGURO: </td>' + '\n';
        tableHtml += '<td width="100" align="center" valign="middle" bgcolor="#FFFFFF" class="simCredHeader"> VALOR CUOTA CON SEGURO: </td>' + '\n';
        tableHtml += '<td width="170" align="center" valign="middle" bgcolor="#FFFFFF" class="simCredHeader"> SALDO PRESTAMO: </td>' + '\n';
        tableHtml += '</tr>'
		
		
		var tot_capital   = 0;
		var tot_intereses = 0;
		var tot_seguro    = 0;
		var saldo_pres    = monto;
		
		for (i=1 ; i <= totlCuota ; i++)
		{	
			n_cuotas   = i;
			capital    = Math.round(monto/totlCuota);
			
			if (modali == "3")
			{
				intereses = Math.round(saldo_pres * tasaCredi/100);
			}
			else
			{
				if (modali == "2")
				{
					intereses = Math.round((saldo_pres * tasaCredi/100)/2);
				}
				else
				{
					intereses = Math.round(((saldo_pres * tasaCredi/100)/30)*7);
				}
			}
		

			
			if (modali == "3")
			{
				seguro_cartera = Math.round(saldo_pres * seguCarte/100);
			}
			else
			{
				if (modali == "2")
				{
					seguro_cartera = Math.round(saldo_pres * (seguCarte/100/30)*15);
				}
				else
				{
					seguro_cartera = Math.round(saldo_pres * (seguCarte/100/30)*7);
				}
			}			
			
			(i != totlCuota) ? saldo_pres = saldo_pres - capital : saldo_pres = saldo_pres;
			
			(i == totlCuota) ? capital = saldo_pres : capital = capital;
			
			cuota_conseguro = capital + seguro_cartera + intereses;
			(i == 1) ? cuota_sinseguro = capital + intereses : cuota_sinseguro = cuota_sinseguro;
			(i == totlCuota) ? cuota_sinseguro = saldo_pres + intereses : cuota_sinseguro = cuota_sinseguro;
			(i == totlCuota) ? saldo_pres = 0 : saldo_pres = saldo_pres;
			
			(i == totlCuota) ? saldo_pres = 0 : saldo_pres = saldo_pres;
			
			tot_capital   += capital;
			tot_intereses += intereses;
			tot_seguro    += seguro_cartera;
			
			odd            = i%2;
			var backgcolor = "#FFFFFF";
			if (odd == 0)
			{
				backgcolor = "#DCDCDC";
			}
			
			tableHtml += '<tr>' + '\n';
            tableHtml += '<td width="80" align="right" valign="middle" bgcolor="' + backgcolor + '" class="simCredLabel">'+ n_cuotas +'</td>' + '\n';
            tableHtml += '<td width="100" align="right" valign="middle" bgcolor="' + backgcolor + '" class="simCredLabel">'+ formatThous(capital.toString()) +'</td>' + '\n';
            tableHtml += '<td width="100" align="right" valign="middle" bgcolor="' + backgcolor + '" class="simCredLabel">'+ formatThous(intereses.toString()) +'</td>' + '\n';
            tableHtml += '<td width="100" align="right" valign="middle" bgcolor="' + backgcolor + '" class="simCredLabel">'+ formatThous(seguro_cartera.toString()) +'</td>' + '\n';
            tableHtml += '<td width="100" align="right" valign="middle" bgcolor="' + backgcolor + '" class="simCredLabel"><font color="#990000"><strong>'+ formatThous(cuota_sinseguro.toString()) +'</strong></font></td>' + '\n';
            tableHtml += '<td width="100" align="right" valign="middle" bgcolor="' + backgcolor + '" class="simCredLabel"><font color="#990000"><strong>'+ formatThous(cuota_conseguro.toString()) +'</strong></font></td>' + '\n';
            tableHtml += '<td width="170" align="right" valign="middle" bgcolor="' + backgcolor + '" class="simCredLabel">'+ formatThous(saldo_pres.toString()) +'</td>' + '\n';
            tableHtml += '</tr>' + '\n';
		}
		
	    tableHtml += '<tr>' + '\n';
        tableHtml += '<td width="80" align="center" valign="middle" bgcolor="#FFFFFF" class="simCredHeader">TOTALES=&gt;</td>' + '\n';
        tableHtml += '<td width="100" align="right" valign="middle" bgcolor="#FFFFFF" class="simCredHeader">'+ formatThous(monto.toString()) +'</td>' + '\n';
        tableHtml += '<td width="100" align="right" valign="middle" bgcolor="#FFFFFF" class="simCredHeader">'+ formatThous(tot_intereses.toString()) +'</td>' + '\n';
        tableHtml += '<td width="100" align="right" valign="middle" bgcolor="#FFFFFF" class="simCredHeader">'+ formatThous(tot_seguro.toString()) +'</td>' + '\n';
        tableHtml += '<td width="100" align="right" valign="middle" bgcolor="#FFFFFF" class="simCredHeader">&nbsp;</td>' + '\n';
        tableHtml += '<td width="100" align="right" valign="middle" bgcolor="#FFFFFF" class="simCredHeader">&nbsp;</td>' + '\n';
        tableHtml += '<td width="170" align="right" valign="middle" bgcolor="#FFFFFF" class="simCredHeader">&nbsp;</td>' + '\n';
        tableHtml += '</tr>' + '\n';
        tableHtml += '</table>' + '\n';
		
		document.getElementById("tableCredi_ID").innerHTML = tableHtml;
	
	}
	
	
	
	
	else
	{
		tableHtml  = "";
		tableHtml += '<table width="750" border="0" cellpadding="2" cellspacing="1" bgcolor="#CCCCCC">' + '\n';
        tableHtml += '<tr>' + '\n';
        tableHtml += '<td width="80" align="center" valign="middle" bgcolor="#FFFFFF" class="simCredHeader"> No. Cuotas </td>' + '\n';
        tableHtml += '<td width="100" align="center" valign="middle" bgcolor="#FFFFFF" class="simCredHeader"> ABONO A CAPITAL: </td>' + '\n';
        tableHtml += '<td width="100" align="center" valign="middle" bgcolor="#FFFFFF" class="simCredHeader"> ABONO A INTERESES: </td>' + '\n';
        tableHtml += '<td width="100" align="center" valign="middle" bgcolor="#FFFFFF" class="simCredHeader"> SEGURO CARTERA: </td>' + '\n';
        tableHtml += '<td width="100" align="center" valign="middle" bgcolor="#FFFFFF" class="simCredHeader"> CUOTA FIJA SIN SEGURO: </td>' + '\n';
        tableHtml += '<td width="100" align="center" valign="middle" bgcolor="#FFFFFF" class="simCredHeader"> CUOTA CON SEGURO: </td>' + '\n';
        tableHtml += '<td width="170" align="center" valign="middle" bgcolor="#FFFFFF" class="simCredHeader"> SALDO PRESTAMO: </td>' + '\n';
        tableHtml += '</tr>'
		
		
		var tot_capital   = 0;
		var tot_intereses = 0;
		var tot_seguro    = 0;
		var saldo_pres    = monto;
		
		for (i=1 ; i <= totlCuota ; i++)
		{	
			n_cuotas   = i;
			
			if (modali == 3  &&  i == 1)
			{
				capital   = Math.round((saldo_pres * tasaCredi/100)*(1/(Math.pow((1 + tasaCredi/100),plazo-i+1)-1)));
				intereses = Math.round(saldo_pres * tasaCredi/100);
			}
			else
			{
				if(modali == 2  &&  i == 1)
				{
					capital   = Math.round(((saldo_pres * tasaCredi/100)*(1/(Math.pow((1 + tasaCredi/100),plazo-i+1)-1)))/2);
					intereses = Math.round((saldo_pres * tasaCredi/100)/2);
				}
				else
				{
					if(modali == 1  &&  i == 1)
					{
						capital   = Math.round(((saldo_pres * tasaCredi/100)*(1/(Math.pow((1 + tasaCredi/100),plazo-i+1)-1)))/4.33);
				    	intereses = Math.round((saldo_pres * tasaCredi/100)/4.33);
					}
				}
			}
			
			
			if (modali == 3  &&  i > 1  &&  i != totlCuota)
			{
				intereses = Math.round(saldo_pres * tasaCredi/100);
				capital   = Math.round(cuota_sinseguro - intereses);
			}
			else
			{
				if(modali == 2  &&  i > 1  &&  i != totlCuota)
				{
					intereses = Math.round((saldo_pres * tasaCredi/100)/2);
					capital   = Math.round(cuota_sinseguro - intereses);
				}
				else
				{
					if(modali == 1  &&  i > 1  &&  i != totlCuota)
					{
				    	intereses = Math.round((saldo_pres * tasaCredi/100)/4.33);
						capital   = Math.round(cuota_sinseguro - intereses);
					}
				}
			}
			
			
			
			
			if (modali == 3  &&  i == totlCuota)
			{
				intereses = Math.round(saldo_pres * tasaCredi/100);
                capital = saldo_pres;
			}
			else
			{
				if(modali == 2  &&  i == totlCuota)
				{
					intereses = Math.round((saldo_pres * tasaCredi/100)/2);
					capital = saldo_pres;
				}
				else
				{
					if(modali == 1  &&  i == totlCuota)
					{
				    	intereses = Math.round((saldo_pres * tasaCredi/100)/4.33);
                        capital = saldo_pres;
					}
				}
			}
		
			
			if (modali == "3")
			{
				seguro_cartera = Math.round(saldo_pres * seguCarte/100);
			}
			else
			{
				if (modali == "2")
				{
					seguro_cartera = Math.round(saldo_pres * (seguCarte/100/30)*15);
				}
				else
				{
					seguro_cartera = Math.round(saldo_pres * seguCarte/100/4.33);
				}
			}
			
			(i != totlCuota) ? saldo_pres = saldo_pres - capital : saldo_pres = saldo_pres;
			
			cuota_conseguro = capital + seguro_cartera + intereses;
			(i == 1) ? cuota_sinseguro = capital + intereses : cuota_sinseguro = cuota_sinseguro;
			(i == totlCuota) ? cuota_sinseguro = saldo_pres + intereses : cuota_sinseguro = cuota_sinseguro;
			(i == totlCuota) ? saldo_pres = 0 : saldo_pres = saldo_pres;
			
			(i == totlCuota) ? saldo_pres = 0 : saldo_pres = saldo_pres;
			
			tot_capital   += capital;
			tot_intereses += intereses;
			tot_seguro    += seguro_cartera;
			
			odd            = i%2;
			var backgcolor = "#FFFFFF";
			if (odd == 0)
			{
				backgcolor = "#DCDCDC";
			}
			
			
			tableHtml += '<tr>' + '\n';
            tableHtml += '<td width="80" align="right" valign="middle" bgcolor="' + backgcolor + '" class="simCredLabel">'+ n_cuotas +'</td>' + '\n';
            tableHtml += '<td width="100" align="right" valign="middle" bgcolor="' + backgcolor + '" class="simCredLabel">'+ formatThous(capital.toString()) +'</td>' + '\n';
            tableHtml += '<td width="100" align="right" valign="middle" bgcolor="' + backgcolor + '" class="simCredLabel">'+ formatThous(intereses.toString()) +'</td>' + '\n';
            tableHtml += '<td width="100" align="right" valign="middle" bgcolor="' + backgcolor + '" class="simCredLabel">'+ formatThous(seguro_cartera.toString()) +'</td>' + '\n';
            tableHtml += '<td width="100" align="right" valign="middle" bgcolor="' + backgcolor + '" class="simCredLabel"><font color="#990000"><strong>'+ formatThous(cuota_sinseguro.toString()); +'</strong></font></td>' + '\n';
            tableHtml += '<td width="100" align="right" valign="middle" bgcolor="' + backgcolor + '" class="simCredLabel"><font color="#990000"><strong><span id="cuotaConSeg_ID">' + formatThous(cuota_conseguro.toString()) + '</span></strong></td>' + '\n';
            tableHtml += '<td width="170" align="right" valign="middle" bgcolor="' + backgcolor + '" class="simCredLabel">'+ formatThous(saldo_pres.toString()) +'</td>' + '\n';
            tableHtml += '</tr>' + '\n';
		}
		
	    tableHtml += '<tr>' + '\n';
        tableHtml += '<td width="80" align="center" valign="middle" bgcolor="#FFFFFF" class="simCredHeader">TOTALES=&gt;</td>' + '\n';
        tableHtml += '<td width="100" align="right" valign="middle" bgcolor="#FFFFFF" class="simCredHeader">'+ formatThous(monto.toString()) +'</td>' + '\n';
        tableHtml += '<td width="100" align="right" valign="middle" bgcolor="#FFFFFF" class="simCredHeader">'+ formatThous(tot_intereses.toString()) +'</td>' + '\n';
        tableHtml += '<td width="100" align="right" valign="middle" bgcolor="#FFFFFF" class="simCredHeader">'+ formatThous(tot_seguro.toString()) +'</td>' + '\n';
        tableHtml += '<td width="100" align="right" valign="middle" bgcolor="#FFFFFF" class="simCredHeader">&nbsp;</td>' + '\n';
        tableHtml += '<td width="100" align="right" valign="middle" bgcolor="#FFFFFF" class="simCredHeader">&nbsp;</td>' + '\n';
        tableHtml += '<td width="170" align="right" valign="middle" bgcolor="#FFFFFF" class="simCredHeader">&nbsp;</td>' + '\n';
        tableHtml += '</tr>' + '\n';
        tableHtml += '</table>' + '\n';
		
		document.getElementById("tableCredi_ID").innerHTML = tableHtml;
		
		//cuota_conseguro = Math.round(tot_seguro/totlCuota + cuota_sinseguro);
		//cuota_conseguro = formatThous(cuota_conseguro.toString());
		//document.getElementById("cuotaConSeg_ID").innerHTML = cuota_conseguro;
	
	}
	
}




function formatThous(numero)
{
	var miles=new RegExp("(-?[0-9]+)([0-9]{3})");
    while(miles.test(numero))
	{
    	numero=numero.replace(miles, "$1" + "," + "$2");
    }
	return numero;
}
