var inForm;
// Cambiar el valor del euribor cada 15 o 30 dias
var euribor = 1.247;

function validarCalcular(calcular)
{
	inForm = document.hipotecas;

	ahorros = getAhorros();
	cuota = getCuota();
	pagar = getPagar();

	if (isNaN(pagar) &&  !isNaN(cuota) && !isNaN(ahorros))
	{
		setPagar(0);
		calcularPagar();
	}
	else if (isNaN(cuota) &&  !isNaN(pagar) && !isNaN(ahorros))
	{
		setCuota(0);
		calcularCuota();
	}
	else if (isNaN(ahorros))
	{
		alert("debes rellenar los ahorros iniciales");
	} 
	else if (isNaN(pagar) && isNaN(cuota))
	{
		alert("debes rellenar una opción");
	} 
	else if (!(isNaN(pagar) && isNaN(cuota)))
	{
		alert("deja en blanco lo que quieras calcular");
	} 
}

function redondear(anynum)
{
  var destination = '';
  var chrCharacter = '';

  var source = '';
  source = source + Math.round(anynum*100)/100;

  source = String(source);
  for (var i = 0; i < source.length; i++)
  {
    chrCharacter = source.substring(i, i + 1);

    if (chrCharacter == '.')
    {
      destination = destination + ',';
    }
    else
    {
      destination = destination + chrCharacter;
    }
  }
  return destination;
}


function calcularPagar()
{
	R = getTipo(); // Tipo de interes anual 
	N = getPlazo(); // Numero de anos
	C = getCuota(); // Cuota mensual
	G = getGastos(); // Gastos compra
	A = getAhorros(); // Ahorros iniciales
	I = C*(1-Math.pow(1+R/1200,-N*12))/(R/1200);
	setImporte(I);											   
	P = (I + A)/(1 + G/100);
	setPagar(P);
}

function calcularCuota()
{
	R = getTipo(); // Tipo de interes anual 
	N = getPlazo(); // Numero de anos
	G = getGastos(); // Gastos compra
	A = getAhorros(); // Ahorros iniciales
	P = getPagar();	// Vivienda que puedes pagar
	I = P*(1+G/100)-A;
	setImporte(I);
    C = I*(R/1200)/(1-Math.pow(1+R/1200,-N*12));
	setCuota(C);
}

function calculaCookie(precio)
{
	if (obtieneCookie("plazoCookie")==null || !document.cookie) {
		calculaDefault(precio);
		return;
	}
	R = euribor + parseFloat(obtieneCookie("tipoCookie")); // Tipo de interes anual 
	N = obtieneCookie("plazoCookie");  // Numero de anos
	G = obtieneCookie("gastosCookie");  // Gastos compra
	A = obtieneCookie("ahorrosCookie");  // Ahorros iniciales
	P = parseFloat(precio);	// Vivienda que puedes pagar
	I = P*(1+G/100)-A;
	C = I*(R/1200)/(1-Math.pow(1+R/1200,-N*12));
	document.hipoteca.cuota.value = PonPuntos2(Math.round(C));
	document.hipoteca.plazo.value = N;
}

function calculaDefault(precio)
{
	R = euribor + 0.70; // Tipo de interes anual 
	N = 25;  // Numero de anos
	G = 10;  // Gastos compra
	A = 0;  // Ahorros iniciales
	P = parseFloat(precio);	// Vivienda que puedes pagar
	I = P*(1+G/100)-A;
	C = I*(R/1200)/(1-Math.pow(1+R/1200,-N*12));
	document.hipoteca.cuota.value = PonPuntos2(Math.round(C));
	document.hipoteca.plazo.value = N;
}

function getImporte()
{	
	return parseFloat(Delete_miles(inForm.importe.value));
}

function setImporte(I)
{	
	inForm.importe.value = PonPuntos2(Math.round(I));
}


function getPlazo()
{	
	return parseFloat(inForm.plazo.options[inForm.plazo.selectedIndex].value);
}

function getGastos()
{	
	return parseFloat(inForm.gastosCompra.options[inForm.gastosCompra.selectedIndex].value);
}

function getAhorros()
{	
	return parseFloat(Delete_miles(inForm.ahorros.value));
}

function getCuota()
{	
	return parseFloat(Delete_miles(inForm.cuota.value));
}

function setCuota(C)
{	
	inForm.cuota.value = PonPuntos2(Math.round(C));
}


function getPagar()
{	
	return parseFloat(Delete_miles(inForm.pagar.value));
}

function setPagar(P)
{	
	inForm.pagar.value = PonPuntos2(Math.round(P));
}


function getTipo()
{	
	return (parseFloat(inForm.tipoInteres.options[inForm.tipoInteres.selectedIndex].value)+parseFloat(euribor));
}

function PonPuntos2(valor)
{
	var puntos;
	var resultado = "";
	cadena = String(valor);
	puntos = cadena.length;
	var j=0;
	for (i=puntos;i>0;i--)
	{
		if (((j % 3)==0) && (j!=0))
		{
			resultado = "." + resultado;
		}
		j++;
		append = cadena.substring(i-1,i);
		resultado = append + resultado;
	}
	return resultado;
}

function PonPuntos(obj, sign, imaxlength)
{
var snumero; 
snumero = obj.value + 1; 
 
if (snumero.length > imaxlength)
	{  
	event.returnValue = false;
     	return false;  
   	}
if (false) //(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 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++;}
		num_sp = num_sp.replace(",",".");
var sin_puntos = parseFloat(num_sp);
return sin_puntos;
}

function isEmpty(s){return ((s == null) || (s.length == 0))}

function ponerPlazo(valor)
{
	if (!isNaN(valor))
	{
		for (i=0;i<document.hipotecas.plazo.options.length; i++)
		{
			if (document.hipotecas.plazo.options[i].value==valor)
			{
				document.hipotecas.plazo.options[i].selected = true;
			}
			else
				document.hipotecas.plazo.options[i].selected = false;
		}
	}
	else 
		document.hipotecas.plazo.options[4].selected = true; // selecciona 25 años
}
