//=====================================================
//   functies voor het berekenen van de mensualiteit   
//=====================================================
// 
//														
//        JKP waarde voor de gewone lening					
//		  --------------------------------																			
		  var jkp1 = 6.99;
//
//        JKP waarde voor de hypotheek
//		  ----------------------------
		  var jkp2 = 3.25;
//
//		  JKP waarden voor de lening op afbetaling
//		  ----------------------------------------
		  var minBedrag = 990;
		  var maxBedrag = 50000;
//		  
//        maanden		01-12	13-24	25-30	31-36	37-42	43-48	49-60	61-84	85-120				kredietbedrag
//		  --------------------------------------------------------------------------------------------------------------------
//
		  var jkp3 = new Array(
		  	new Array(	25.50	,24.00	,null	,null	,null	,null	,null	,null	,null	),		//	0		-	500			
			new Array(	21.00	,20.50	,null	,null	,null	,null	,null	,null	,null	),		//	501		-	2500
			new Array(	17.50	,16.50	,15.50	,null	,null	,null	,null	,null	,null	),		//	2501	-	3700
			new Array(	17.00	,16.50	,15.50	,15.50	,null	,null	,null	,null	,null	),		//	3701	-	5600
			new Array(	17.00	,16.50	,15.50	,15.50	,15.50	,null	,null	,null	,null	),		//	5601	-	7500
			new Array(	17.00	,16.50	,15.50	,15.50	,15.50	,15.50	,null	,null	,null	),		//	7501	-	10000
			new Array(	14.00	,13.50	,12.50	,12.50	,12.50	,12.50	,12.00	,null	,null	),		//	10001	-	15000
			new Array(	14.00	,13.50	,12.50	,12.50	,12.50	,12.50	,12.00	,12.00	,null	),		//	15001	-	20000
			new Array(	14.00	,13.50	,12.50	,12.50	,12.50	,12.50	,12.00	,12.00	,12.00	)		//	20001	-	50000	  
		  );	  
//
//		  
//=====================================================
//   niets aanpassen na deze regel
//=====================================================



function bereken_lening(frm) {
	
	
	jkp = jkp1;
	
	frm.bedrag.value = frm.bedrag.value.replace(/[^0123456789,.]/g, "");
	
	if(frm.bedrag.value == "") {
		document.getElementById('resultaat').innerHTML = 'Gelieve een getal in te geven voor het bedrag';
	} else {
		var oplossing = "";
		var kapitaal = frm.bedrag.value;
		var maand = frm.looptijd.value;
		var res = 0;
		
		var mensualiteit = (Math.pow((1+(jkp/100)),(1/12)) - 1) / (1-Math.pow((1+(jkp/100)),(-maand/12))) * (kapitaal - (res/Math.pow((1+(jkp/100)),(maand/12))));
		
		maandafl = round_decimals(mensualiteit, 2) + " €";
		//frm.resultaat.value = oplossing;
		
		result = 	"<table width=\"200\">"+
					"<tr><td>Maandaflossing</td><td>"+ maandafl +"</td></tr>\n"+
					"<tr><td>Jaarlijks kostenpercentage (JKP)</td><td>"+ jkp +" %</td></tr>\n"+
					"</table>";
		
		document.getElementById('resultaat').innerHTML = result;
	}
	

}	

function bereken_loa(frm) {

	frm.bedrag.value = frm.bedrag.value.replace(/[^0123456789,.]/g, "");
	
	if(frm.bedrag.value == "") {
	
		alert('Gelieve een leenbedrag in te vullen');
		
	} else {
		
		b = parseInt(frm.bedrag.value);
		m = parseInt(frm.looptijd.value);
		ok = false;
		
		if (b<minBedrag) {
			alert('Het minimum kredietbedrag bedraagt € 990,00');
		} else if (b>maxBedrag) {
			alert('Het maximum kredietbedrag bedraagt € 50 000,00');
		} else {
			
			if (b>=minBedrag && b<=2500) {
				jkp = getJKP(m,1);
				ok = true;
			} else if (b>2500 && b<=3700) {
				jkp = getJKP(m,2);
				ok = true;
			} else if (b>3700 && b<=5600) {
				jkp = getJKP(m,3);
				ok = true;
			} else if (b>5600 && b<=7500) {
				jkp = getJKP(m,4);
				ok = true;
			} else if (b>7500 && b<=10000) {
				jkp = getJKP(m,5);
				ok = true;
			} else if (b>10000 && b<=15000) {
				jkp = getJKP(m,6);
				ok = true;
			} else if (b>15000 && b<=20000) {
				jkp = getJKP(m,7);
				ok = true;
			} else if (b>20000 && b<=maxBedrag) {
				jkp = getJKP(m,8);
				ok = true;
			} else {
				ok = false;
			}
		
			if (ok && jkp != null) {
				var oplossing = "Maandaflossing: ";
				var kapitaal = frm.bedrag.value;
				var maand = frm.looptijd.value;
				var res = 0;
				
				var mensualiteit = (Math.pow((1+(jkp/100)),(1/12)) - 1) / (1-Math.pow((1+(jkp/100)),(-maand/12))) * (kapitaal - (res/Math.pow((1+(jkp/100)),(maand/12))));
				
				oplossing = oplossing + round_decimals(mensualiteit, 2) + " €";
				frm.resultaat.value = oplossing;
				frm.jkp.value = "Jaarlijks kostenpercentage: " + round_decimals(jkp, 2) + " %";
			} else {
				frm.resultaat.value = round_decimals(b,2) + " € kan niet afgelost worden in " + m + " maanden.";
				frm.jkp.value = "";
			}
		}
	}
}


function getJKP(maand, index){
	
	w = null;
	
	switch(maand){
		case 12:
			w = jkp3[index][0];
			break;
		case 24:
			w = jkp3[index][1];
			break;
		case 30:
			w = jkp3[index][2];
			break;
		case 36:
			w = jkp3[index][3];
			break;
		case 42:
			w = jkp3[index][4];
			break;
		case 48:
			w = jkp3[index][5];
			break;
		case 60:
			w = jkp3[index][6];
			break;
		case 84:
			w = jkp3[index][7];
			break;
		case 120:
			w = jkp3[index][8];
			break;
		default:
			//foute maand
	}
	
	return w;
}


function round_decimals(original_number, decimals) {
    var result1 = original_number * Math.pow(10, decimals)
    var result2 = Math.round(result1)
    var result3 = result2 / Math.pow(10, decimals)
    return pad_with_zeros(result3, decimals)
}


function pad_with_zeros(rounded_value, decimal_places) {
    var value_string = rounded_value.toString()
    var decimal_location = value_string.indexOf(".")

    if (decimal_location == -1) {
        decimal_part_length = 0
        value_string += decimal_places > 0 ? "." : ""
    } else {
        decimal_part_length = value_string.length - decimal_location - 1
    }
    
    var pad_total = decimal_places - decimal_part_length
    
    if (pad_total > 0) { 
        for (var counter = 1; counter <= pad_total; counter++) 
            value_string += "0"
        }
    return value_string
}

