//===================================================== // functies voor het berekenen van de mensualiteit //===================================================== // // // JKP waarde voor de gewone lening // -------------------------------- var jkp1 = 5.00; // // JKP waarde voor de hypotheek // ---------------------------- var jkp2 = 4; // // 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 == "") { alert('Gelieve een leenbedrag in te vullen'); } else { 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; } } function bereken_hypotheek(frm) { jkp = jkp2; frm.bedrag.value = frm.bedrag.value.replace(/[^0123456789,.]/g, ""); if(frm.bedrag.value == "") { alert('Gelieve een leenbedrag in te vullen'); } else { var oplossing = "Maandaflossing: "; var kapitaal = frm.bedrag.value; var maand = frm.looptijd.value * 12; var intrestvoet = (Math.pow((1 + (jkp/100)),(1 / 12))- 1 ); var mensualiteit = kapitaal / (1 - 1 / Math.pow((1 + intrestvoet), maand)) * intrestvoet; oplossing = oplossing + round_decimals(mensualiteit, 2) + " €"; frm.resultaat.value = oplossing; } } 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 (bmaxBedrag) { 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 }