﻿// JScript File
// ce code vient du site www.notaire.be
function divers(val1){
  fraisd=625.00;

  return fraisd;
}

// honoraire pour les frais d'achat
function honor_achat(val1){
var honord=0;
                       honord=        Math.min(val1,  7500.00)            * 4.56 / 100;
if (val1> 7500.00)    {honord=honord+(Math.min(val1, 17500.00)- 7500.00)  * 2.85 / 100;}
if (val1> 17500.00)   {honord=honord+(Math.min(val1, 30000.00)-17500.00)  * 2.28 / 100;}
if (val1> 30000.00)   {honord=honord+(Math.min(val1, 45495.00)-30000.00)  * 1.71 / 100;}
if (val1> 45495.00)   {honord=honord+(Math.min(val1, 64095.00)-45495.00)  * 1.14 / 100;}
if (val1> 64095.00)   {honord=honord+(Math.min(val1,250095.00)-64095.00)  * 0.57 / 100;}
if (val1> 250095.00)  {honord=honord+(val1-250095.00)                     * 0.057/100;}
honord=Math.max(honord,8.48);
return parseInt((honord+0.005)*100)/100;
}

// droits pour une crédit et une ouverture de crédit
function droits_hypo(val1){

                       droit=        Math.min(val1,   5000.00)                * 2.865 /100;
if (val1>    5000.00) {droit=droit +(Math.min(val1,  12000.00) -    5000.00 ) * 13.00 /1000;}
if (val1>   12000.00) {droit=droit +(Math.min(val1,  12249.00) -   12000.00 ) * 11.70 /1000;}
if (val1>   12249.00) {droit=droit +(Math.min(val1,  22500.00) -   12249.00 ) * 14.30 /1000;}
if (val1>   22500.00) {droit=droit +(Math.min(val1,  22749.00) -   22500.00 ) * 84.58 /1000;}
if (val1>   22749.00) {droit=droit +(Math.min(val1,  45250.00) -   22749.00 ) * 14.30 /1000;}
if (val1>   45250.00) {droit=droit +(Math.min(val1,  45494.00) -   45250.00 ) * 86.00 /1000;}
if (val1>   45494.00) {droit=droit +(Math.min(val1,  68000.00) -   45494.00 ) * 14.30 /1000;}
if (val1>   68000.00) {droit=droit +(Math.min(val1,  68499.00) -   68000.00 ) * 49.38 /1000;}
if (val1>   68499.00) {droit=droit +(Math.min(val1,  90500.00) -   68499.00 ) * 14.30 /1000;}
if (val1>   90500.00) {droit=droit +(Math.min(val1,  90999.00) -   90500.00 ) * 49.36 /1000;}
if (val1>   90999.00) {droit=droit +(Math.min(val1, 113500.00) -   90999.00 ) * 14.30 /1000;}
if (val1>  113500.00) {droit=droit +(Math.min(val1, 113999.00) -  113500.00 ) * 49.38 /1000;}
if (val1>  113999.00) {droit=droit +(Math.min(val1, 136000.00) -  113999.00 ) * 14.30 /1000;}
if (val1>  136000.00) {droit=droit +(Math.min(val1, 136999.00) -  136000.00 ) * 31.82 /1000;}
if (val1>  136999.00) {droit=droit +(Math.min(val1, 159000.00) -  136999.00 ) * 14.30 /1000;}
if (val1>  159000.00) {droit=droit +(Math.min(val1, 159999.00) -  159000.00 ) * 31.81 /1000;}
if (val1>  159999.00) {droit=droit +(Math.min(val1, 181000.00) -  159999.00 ) * 14.30 /1000;}
if (val1>  181000.00) {droit=droit +(Math.min(val1, 181999.00) -  181000.00 ) * 31.82 /1000;}
if (val1>  181999.00) {droit=droit +(Math.min(val1, 200000.00) -  181999.00 ) * 14.30 /1000;}
if (val1>  200000.00) {droit=droit +(Math.min(val1, 205000.00) -  200000.00 ) * 13.00 /1000;}
if (val1>  205000.00) {droit=droit +(Math.min(val1, 205999.00) -  205000.00 ) * 30.52 /1000;}
if (val1>  205999.00) {droit=droit +(Math.min(val1, 230000.00) -  205999.00 ) * 13.00 /1000;}
if (val1>  230000.00) {droit=droit +(Math.min(val1, 230999.00) -  230000.00 ) * 30.52 /1000;}
if (val1>  230999.00) {droit=droit +(Math.min(val1, 255000.00) -  230999.00 ) * 13.00 /1000;}
if (val1>  255000.00) {droit=droit +(Math.min(val1, 257499.00) -  255000.00 ) * 20.00 /1000;}
if (val1>  257499.00) {droit=droit +(Math.min(val1, 279999.00) -  257499.00 ) * 13.00 /1000;}
if (val1>  279999.00) {droit=droit +(Math.min(val1, 282499.00) -  279999.00 ) * 20.00 /1000;}
if (val1>  282499.00) {droit=droit +(Math.min(val1, 304999.00) -  282499.00 ) * 13.00 /1000;}
if (val1>  304999.00) {droit=droit +(Math.min(val1, 307499.00) -  304999.00 ) * 20.00 /1000;}
if (val1>  307499.00) {droit=droit +(Math.min(val1, 329999.00) -  307499.00 ) * 13.00 /1000;}
if (val1>  329999.00) {droit=droit +(Math.min(val1, 332499.00) -  329999.00 ) * 20.00 /1000;}
if (val1>  332499.00) {droit=droit +(Math.min(val1, 354999.00) -  332499.00 ) * 13.00 /1000;}
if (val1>  354999.00) {droit=droit +(Math.min(val1, 357499.00) -  354999.00 ) * 20.00 /1000;}
if (val1>  357499.00) {droit=droit +(Math.min(val1, 379999.00) -  357499.00 ) * 13.00 /1000;}
if (val1>  379999.00) {droit=droit +(Math.min(val1, 382499.00) -  379999.00 ) * 20.00 /1000;}
if (val1>  382499.00) {droit=droit +(Math.min(val1, 404999.00) -  382499.00 ) * 13.00 /1000;}
if (val1>  404999.00) {droit=droit +(Math.min(val1, 407499.00) -  404999.00 ) * 20.00 /1000;}
if (val1>  407499.00) {droit=droit +(Math.min(val1, 429999.00) -  407499.00 ) * 13.00 /1000;}
if (val1>  429999.00) {droit=droit +(Math.min(val1, 432499.00) -  429999.00 ) * 20.00 /1000;}
if (val1>  432499.00) {droit=droit +(Math.min(val1, 449999.00) -  432499.00 ) * 13.00 /1000;}
if (val1>  449999.00) {droit=droit +(Math.min(val1, 459999.00) -  449999.00 ) * 14.75 /1000;}
if (val1>  459999.00) {droit=droit +(Math.min(val1, 479999.00) -  459999.00 ) * 13.00 /1000;}
if (val1>  479999.00) {droit=droit +(Math.min(val1, 489999.00) -  479999.00 ) * 14.75 /1000;}
if (val1>  489999.00) {droit=droit +(Math.min(val1, 499999.00) -  489999.00 ) * 13.00 /1000;}
if (val1>  499999.00) {droit=droit +(Math.min(val1, 509999.00) -  499999.00 ) * 14.75 /1000;}
if (val1>  509999.00) {droit=droit +(Math.min(val1, 529999.00) -  509999.00 ) * 13.00 /1000;}
if (val1>  529999.00) {droit=droit +(Math.min(val1, 539999.00) -  529999.00 ) * 14.75 /1000;}
if (val1>  539999.00) {droit=droit +(Math.min(val1, 549999.00) -  539999.00 ) * 13.00 /1000;}
if (val1>  549999.00) {droit=droit +(Math.min(val1, 559999.00) -  549999.00 ) * 14.75 /1000;}
if (val1>  559999.00) {droit=droit +(Math.min(val1, 579999.00) -  559999.00 ) * 13.00 /1000;}
if (val1>  579999.00) {droit=droit +(Math.min(val1, 589999.00) -  579999.00 ) * 14.75 /1000;}
if (val1>  589999.00) {droit=droit +(Math.min(val1, 599999.00) -  589999.00 ) * 13.00 /1000;}
if (val1>  599999.00) {droit=droit +(Math.min(val1, 609999.00) -  599999.00 ) * 14.75 /1000;}
if (val1>  609999.00) {droit=droit +(Math.min(val1, 629999.00) -  609999.00 ) * 13.00 /1000;}
if (val1>  629999.00) {droit=droit +(Math.min(val1, 639999.00) -  629999.00 ) * 14.75 /1000;}
if (val1>  639999.00) {droit=droit +(Math.min(val1, 649999.00) -  639999.00 ) * 13.00 /1000;}
if (val1>  649999.00) {droit=droit +(Math.min(val1, 659999.00) -  649999.00 ) * 14.75 /1000;}
if (val1>  659999.00) {droit=droit +(Math.min(val1, 679999.00) -  659999.00 ) * 13.00 /1000;}
if (val1>  679999.00) {droit=droit +(Math.min(val1, 689999.00) -  679999.00 ) * 14.75 /1000;}
if (val1>  689999.00) {droit=droit +(Math.min(val1, 700000.00) -  689999.00 ) * 13.00 /1000;}
if (val1>  700000.00) {droit=droit +         (val1             -  700000.00 ) * 13.70 /1000;}
return droit;
}

// honoraire pour un crédit hypothécaire
function honor_credit(val1){
var honord=0;
                      honord=        Math.min(val1,  7500.00)               * 1.71  /100;
if (val1>   7500.00) {honord=honord+(Math.min(val1, 17500.00) -   7500.00 ) * 1.368 /100;}
if (val1>  17500.00) {honord=honord+(Math.min(val1, 30000.00) -  17500.00 ) * 0.912 /100;}
if (val1>  30000.00) {honord=honord+(Math.min(val1, 45495.00) -  30000.00 ) * 0.684 /100;}
if (val1>  45495.00) {honord=honord+(Math.min(val1, 64095.00) -  45495.00 ) * 0.456 /100;}
if (val1>  64095.00) {honord=honord+(Math.min(val1,250095.00) -  64095.00 ) * 0.228 /100;}
if (val1> 250095.00) {honord=honord+         (val1            - 250095.00 ) * 0.0456/100;}

return parseInt((honord+0.005)*100)/100;
}

function GetFraisOuvertureCredit( val ) {
  val = val*1.1;
  return ( droits_hypo( val ) + honor_credit( val ) +  divers( val ) );
}

function GetMontantSansFraisCredit( Montant ) {
  var m1 = Montant;
  var m2 = Montant*1.2; // maximum 20% ;)
  var Iter = 0;
  while ( ( ( m2-m1 ) > 0.02 ) && ( Iter <= 30 ) ) {
    var m = (m1+m2)/2;
    var f = GetFraisOuvertureCredit( m );
    ((m-f)>Montant ) ? m2 = m : m1 = m;
    Iter++;
  }
  return ( (m1+m2)/2 );
}

function GetFraisAchat(value) {
    return Math.floor((honor_achat(value) + divers(value)) / 5 + 0.5) * 5;
}
