// Funciones JavaScript para hallar
// el calculo de un Credito Personal.
// Ultima Revision: 28/07/2004


//--------------------------------------------

function cuotas_mensuales(anos) {

	resultado = 0;
	interes = (mobil.interes.value)/(100*12);
	prestamo = Delete_miles(mobil.prestamo.value);
	meses=anos * 12;
		
	if (interes == 0) {
		resultado = prestamo/meses;
	}
	else {
		resultado = -(-prestamo * interes * Math.pow((1 + interes),meses)) / (Math.pow((1 + interes),meses) - 1);
	}
	return resultado;
}

//---------------------------------------------

function cuadro_cuotas_mensuales() {

	anos = mobil.plazo.value - 1;
	anos = anos + 1;
	 

var mesa = document.getElementById("hipoteca");
mesa.border=2;	


	while(anos!=4) {

		resultado = cuotas_mensuales(anos);
		
		if (anos < 10)
		{
		
		var newTD = document.createElement("td");
		var newText = document.createTextNode("." + "                 " + (anos--) + "- años:                      " + (Math.round(resultado * 100)) /100);
		newTD.appendChild(newText);
		}

		else {
			var newTD = document.createElement("td");
			var newText = document.createTextNode("." + "                 " + (anos--) + "- años:                    " + (Math.round(resultado * 100)) /100);
			newTD.appendChild(newText);
		}

		var trElm = document.getElementById("tabla");
		var refTD = trElm.getElementsByTagName("td").item(0);
		trElm.insertBefore(newTD,refTD);

	}

	// Esto es para poner el titulo del principio
	var newTD = document.createElement("th");
	var newText = document.createTextNode("Cuadro de Cuotas Mensuales");
	newTD.appendChild(newText);

	var trElm = document.getElementById("tabla");
	var refTD = trElm.getElementsByTagName("td").item(0);
	trElm.insertBefore(newTD,refTD);


}

//-----------------------------------------------

function ComprobarDatos () {
	
	if (mobil.plazo.value == "") {
		alert("Escriba una cantidad de años para el prestamo");
		mobil.plazo.focus();
		return (false);
	}

	if (!(EsNumerico(mobil.plazo.value))) {
		alert("El plazo introducido es incorrecto");
		mobil.plazo.focus();
		return (false);
	}


	if (mobil.interes.value == "") {
		alert("Escriba el tipo de interes del prestamo");
		mobil.interes.focus();
		return (false);
	}

	if (!(EsNumerico(mobil.interes.value))) {
		alert("El interes introducido es incorrecto");
		mobil.interes.focus();
		return (false);
	}

	if (mobil.prestamo.value == "") {
		alert("Escriba el importe del prestamo a solicitar");
		mobil.prestamo.focus();
		return (false);
	}

	if (mobil.comision.value == "") {
		alert("Escriba la comision de apertura del prestamo");
		mobil.comision.focus();
		return (false);
	}

	if (!(EsNumerico(mobil.comision.value))) {
		alert("La comision de apertura introducida es incorrecto");
		mobil.comision.focus();
		return (false);
	}

	if (mobil.cancelacion.value == "") {
		alert("Escriba la comision de cancelacion parcial o total del prestamo");
		mobil.cancelacion.focus();
		return (false);
	}

	if (!(EsNumerico(mobil.cancelacion.value))) {
		alert("La comision de cancelacion parcial o total del prestamo es incorrecto");
		mobil.cancelacion.focus();
		return (false);
	}

	var mesa = document.getElementById("hipoteca");
	if (mesa.border==2) {
		alert("Por favor pulse el botón de RESET antes de realizar otro calculo");
		return (false);
	}
	else return true;

}

//-----------------------------------------------

function calcular(datos) {
	
		
	notaria = 0.5;
	tramitacion = 0.16;
	seguro = 5;


	prestamo = Delete_miles(mobil.prestamo.value);
	plazo = mobil.plazo.value;
	interes = mobil.interes.value;
	comision_apertura = mobil.comision.value;
	cancelacion_total_parcial = mobil.cancelacion.value;
	
	
	if (ComprobarDatos()) {



		mobil.notaria.value = Formato_numero(Math.round((prestamo * notaria) / 100));
		mobil.tramitacion.value = Formato_numero(Math.round((prestamo * tramitacion) / 100));
		mobil.seguro.value = Formato_numero(Math.round((prestamo * seguro) / 100));
		mobil.comision_apertura.value = Formato_numero((prestamo*comision_apertura) / 100);	


		aux1 = parseInt(Delete_miles(mobil.notaria.value));
		aux2 = parseInt(Delete_miles(mobil.tramitacion.value));
		aux3 = parseInt(Delete_miles(mobil.seguro.value));
		aux4 = parseInt(Delete_miles(mobil.comision_apertura.value));
		
		mobil.total.value = Formato_numero(aux1 + aux2 +aux3 +aux4);
		
		cuadro_cuotas_mensuales();
	}

}

//------------------------------------------------

function Formato_numero(numero){
var nombre = "";
var num = numero;
if (num != ""){
var str = "";
while (num > 999){
	n1 = Math.floor(num/1000);
	n2 = num - 1000 * n1;
	if (n2 < 10){n2 = "00" + n2;}   
	else{if (n2 < 100)
       	      	n2 = "0" + n2;}
	str = "." + n2 + str;
	num = n1;}
	str = num + str;}
return (str);}

//-------------------------------------------------

function Delete_miles(numero_puntos){
var num_p;
num_p = numero_puntos;longitud = 0;
longitud = num_p.length;n = 0;
var num_sp = "";
while (n<longitud){
     	var car = ' ';
      	var car = num_p.charAt(n);
      	if (car != '.')
		num_sp += num_p.charAt(n);
       	n++;}
var sin_puntos = parseInt(num_sp,10);
return sin_puntos;
}
//-------------------------------------------------	

function isEmpty(s){return ((s == null) || (s.length == 0))}

//-------------------------------------------------

function CleanThis(Tipo){
if (Tipo=="dinero")
	document.formu.importeh.value="";
else if(Tipo=="Apertura")
	document.hipoteca.MinApert.value="";}

//-------------------------------------------------
function PonPuntos(obj, sign, imaxlength)
{
var snumero; 
snumero = obj.value + 1; 
 
if (snumero.length > imaxlength)
	{  
	event.returnValue = false;
     	return false;  
   	}
if (isEmpty(obj.value) && (event.keyCode == 48)) 
  	{
     	Event.returnValue = false;
}
else
	if (sign == "positive")
  		{	
    		if ((event.keyCode < 48) || (event.keyCode > 57))
    			{
      			event.returnValue = false;
    			}
    		else 
    			{
      			var s_pre = obj.value;
      			var s_inter = "";
      			var s_post = "";
      			var single_character = "";
      			var poner_punto = 1;
      			for (var i = 0; i < s_pre.length; i++)
      				{
        			single_character = s_pre.substring(i,i+1);
        			if (single_character != ".")
        				{
          				s_inter = s_inter + single_character;
        				}
      				}
			s_inter = s_inter + String.fromCharCode(event.keyCode);
			for (var j = s_inter.length; j > 0; j--, poner_punto++)
      				{
        			s_post = s_inter.substring(j-1,j) + s_post;
        			if ((poner_punto == 3) && (j != 1))
        				{
          				poner_punto = 0;
          				s_post = "." + s_post;
        				}
      				}
      			obj.value = s_post;
      			event.returnValue = false;
    			}
  		}
  	else
  		{
    		if ((isEmpty(obj.value) && ((event.keyCode < 48) || (event.keyCode > 57)) && (event.keyCode != 43) && (event.keyCode != 45)) || ((obj.value.length > 0) && ((event.keyCode < 48) || (event.keyCode > 57))))
    			{
    			event.returnValue = false;
    			}
    		else if (obj.value != "+" && obj.value != "-")
    			{
      			var s_pre = obj.value;
      			var s_inter = "";
      			var s_post = "";
      			var single_character = "";
      			var poner_punto = 1;
      			var sign_character = "";
			if ((s_pre.substring(0, 1) == "+") || (s_pre.substring(0, 1) == "-"))
      				{
        			sign_character = s_pre.substring(0, 1);
        			s_pre = s_pre.substring(1, s_pre.length);
      				}
			for (var i = 0; i < s_pre.length; i++)
      				{
        			single_character = s_pre.substring(i,i+1);
			        if (single_character != ".")
        				{
          				s_inter = s_inter + single_character;
        				}
      				}
			s_inter = s_inter + String.fromCharCode(event.keyCode);
			for (var j = s_inter.length; j > 0; j--, poner_punto++)
      				{
        			s_post = s_inter.substring(j-1,j) + s_post;
			        if ((poner_punto == 3) && (j != 1))
        				{
          				poner_punto = 0;
          				s_post = "." + s_post;
        				}
      				}
				obj.value = sign_character + s_post;
				event.returnValue = false;
    			}
  		}
	}
//-------------------------------------------------	
function EsNumerico(dato){
var i;var longitud;var caracter;var sumo = 0;longitud = dato.length;valido = "0123456789.";
for ( i=0; i <= longitud; i++){
	caracter = dato.substring(i,i+1)
	if (valido.indexOf(caracter) == -1)
		return false;}return true;}
//-------------------------------------------------
function borrar(obj){obj.value = "";}
//-------------------------------------------------
function cerrar(){Window.close();}
//-------------------------------------------------

