var euro2pts=166.386;

var tMensual=new Array(
[3.0, 11730, 9656, 8278, 6906, 5546, 4742, 4216],
[3.5, 11958, 9889, 8515, 7149, 5800, 5006, 4490],
[4.0, 12189, 10125, 8755, 7397, 6060, 5278, 4774],
[4.5, 12423, 10364, 9000, 7650, 6326, 5558, 5067],
[5.0, 12660, 10607, 9249, 7908, 6600, 5846, 5368],
[5.5, 12899, 10853, 9502, 8171, 6879, 6141, 5678],
[6.0, 13141, 11102, 9759, 8439, 7164, 6443, 5996],
[6.5, 13386, 11355, 10019, 8711, 7456, 6752, 6321],
[7.0, 13634, 11611, 10284, 8988, 7753, 7068, 6653],
[7.5, 13884, 11870, 10552, 9270, 8056, 7390, 6992],
[8.0, 14137, 12133, 10825, 9557, 8364, 7718, 7338],
[8.5, 14392, 12399, 11101, 9847, 8678, 8052, 7689],
[9.0, 14650, 12668, 11380, 10143, 8997, 8392, 8046],
[9.5, 14911, 12940, 11664, 10442, 9321, 8737, 8409],
[10.0, 15174, 13215, 11951, 10746, 9650, 9087, 8776]
);
var tGConst=new Array(
[5000000, 74000, 17147, 50000, 25000],
[6000000, 78000, 18142, 60000, 25000],
[8000000, 82000, 19421, 80000, 25000],
[10000000, 86000, 20651, 100000, 32000],
[12000000, 88000, 21931, 120000, 32000],
[15000000, 91000, 23576, 150000, 32000],
[17000000, 93000, 24088, 170000, 32000],
[20000000, 96000, 24856, 200000, 32000],
[22000000, 96000, 25368, 220000, 32000],
[25000000, 96000, 26135, 250000, 32000],
[27000000, 100000, 26647, 270000, 32000],
[30000000, 100000, 27415, 300000, 35000],
[35000000, 105000, 28695, 350000, 35000],
[40000000, 110000, 29975, 400000, 35000],
[45000000, 115000, 31254, 450000, 35000],
[50000000, 120000, 32534, 500000, 35000],
[60000000, 125000, 34850, 600000, 35000],
[70000000, 125000, 36556, 700000, 35000],
[80000000, 140000, 38262, 800000, 40000],
[90000000, 170000, 39968, 900000, 40000]
);
var tGCompra=new Array(
[5000000, 55000, 19952, 350000, 50000],
[6000000, 55000, 20967, 420000, 60000],
[8000000, 60000, 22997, 560000, 80000],
[10000000, 65000, 25027, 700000, 100000],
[12000000, 65000, 26245, 840000, 120000],
[15000000, 70000, 28072, 1050000, 150000],
[17000000, 75000, 29290, 1190000, 170000],
[20000000, 75000, 31117, 1400000, 200000],
[22000000, 75000, 32335, 1540000, 220000],
[25000000, 80000, 34162, 1750000, 250000],
[27000000, 80000, 34649, 1890000, 270000],
[30000000, 80000, 35380, 2100000, 300000],
[35000000, 85000, 36598, 2450000, 350000],
[40000000, 85000, 37816, 2800000, 400000],
[45000000, 95000, 39034, 3150000, 450000],
[50000000, 95000, 40252, 3500000, 500000],
[60000000, 95000, 42688, 4200000, 600000],
[70000000, 95000, 42124, 4900000, 700000],
[80000000, 110000, 47560, 5600000, 800000],
[90000000, 110000, 49996, 6300000, 900000],
[100000000, 125000, 52432, 7000000, 1000000]
);
var tIntervalos=new Array(8,10,12,15,20,25,30);

function euroRedondeo(valor) {
	resultado=0.0;
	redondeoMil=""+valor*1000;
	redondeoMilF=0.0;

	if(redondeoMil.indexOf(".")>0) {
		redondeoMilF=parseFloat(redondeoMil.substring(0,redondeoMil.indexOf(".")));
	}
	else {
		redondeoMilF=parseFloat(redondeoMil);
	}
           
	cadResultado=""+(Math.round(redondeoMilF/10)/100);
	i=cadResultado.indexOf(".");
	if(i>0)
		cadResultado=cadResultado.substring(0,i)+","+cadResultado.substring(i+1,cadResultado.length);
	return cadResultado;
}

function recta(px,py,qx,qy,x) {
	a=(qy-py)/(qx-px);	
	b=py-a*px;
	
	y=a*x+b;
	//document.write(y + " = " + a + "·" + x +  " + "+ b + "<BR>");	
	return y;
}

function interpolar(tabla,campo,x) {
	var i;
	if (x<tabla[0][0]) {
		// anterior
		px=tabla[0][0];
		py=tabla[0][campo];
		qx=tabla[1][0];
		qy=tabla[1][campo];
	} else if (x>tabla[tabla.length-1][0]) {
		// posterior
		px=tabla[tabla.length-1][0];
		py=tabla[tabla.length-1][campo];
		qx=tabla[tabla.length-2][0];
		qy=tabla[tabla.length-2][campo];	
	} else {
		// en intervalo
		i=0;
		while(x>tabla[i+1][0]) i++;
		px=tabla[i][0];
		py=tabla[i][campo];
		qx=tabla[i+1][0];
		qy=tabla[i+1][campo];	
	}
		
	return recta(px,py,qx,qy,x);
}

function calcMensualidad(anyos,hipoteca,interes) {
	var i;
	var mensualidad=0;
	
	if (anyos>=tIntervalos[0] && anyos<=tIntervalos[tIntervalos.length-1]) {
		i=0;
		while(anyos>tIntervalos[i+1]) i++;
		m1=interpolar(tMensual,i+1,interes);
		m2=interpolar(tMensual,i+1+1,interes);
		mensualidad=recta(tIntervalos[i],m1,tIntervalos[i+1],m2,anyos);
	}
	
	return euroRedondeo(mensualidad*(hipoteca/6010.12)/euro2pts);	
}

function calcGastosConst(importe) {
	//resultado: notaria,registro,ajd,gestoria
	var resultado= new Array();
	//
	importe*=euro2pts;
	//	
	resultado[0]=euroRedondeo(interpolar(tGConst,1,importe)/euro2pts);
	resultado[1]=euroRedondeo(interpolar(tGConst,2,importe)/euro2pts);
	resultado[2]=euroRedondeo(interpolar(tGConst,3,importe)/euro2pts);
	resultado[3]=euroRedondeo(interpolar(tGConst,4,importe)/euro2pts);	
	
	return resultado;
}

function calcGastosCompra(importe) {
	//resultado: notaria,registro,iva,ajd
	var resultado= new Array();
	//
	importe*=euro2pts;
	//	
	resultado[0]=euroRedondeo(interpolar(tGCompra,1,importe)/euro2pts);
	resultado[1]=euroRedondeo(interpolar(tGCompra,2,importe)/euro2pts);
	resultado[2]=euroRedondeo(interpolar(tGCompra,3,importe)/euro2pts);
	resultado[3]=euroRedondeo(interpolar(tGCompra,4,importe)/euro2pts);	
	
	return resultado;
}