// JavaScript Document

	<!--
	
//Paramètres généraux


var TVAMetro 	= 0.196;
var TVADOM   	= 0.085;
var TVAGuyane	= 0.0;


//------------------------------------------------------------------------------
// Calcul des frais de notaire
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
// Emoluments 
//------------------------------------------------------------------------------

function FEmolumentsNotaire( BaseDeCalcul , Localisation)
// maj 04/07/08
{
  
  // Bornes émoluments notaire
  // Les tarifs varient en fonction du prêt et sont dégressifs
  // tarif proportionnel degressif

  // 5% de 0 a 3050
  // 3.30% de 3050 a 6100
  // 1.65% de 61010 a 16770
  // 0.825% a partir de 16770

  var dBornesEmoluments=new Array();

  dBornesEmoluments[0]=new Array();
  dBornesEmoluments[0][0]=3050;
  dBornesEmoluments[0][1]=6100;
  dBornesEmoluments[0][2]=16770;
  dBornesEmoluments[0][3]=0;

  dBornesEmoluments[1]=new Array();
  dBornesEmoluments[1][0]=5.0/100.0;
  dBornesEmoluments[1][1]=3.30/100.0;
  dBornesEmoluments[1][2]=1.65/100.0;
  dBornesEmoluments[1][3]=0.825/100.0;

  try

  {

    // Emoluments du notaire (hors TVA)
  
    var dValue=0.0;
    dValue+=Math.min(BaseDeCalcul,dBornesEmoluments[0][0])*dBornesEmoluments[1][0];
    dValue+=Math.max(Math.min(BaseDeCalcul,dBornesEmoluments[0][1])-dBornesEmoluments[0][0],0.0)*dBornesEmoluments[1][1];
    dValue+=Math.max(Math.min(BaseDeCalcul,dBornesEmoluments[0][2])-dBornesEmoluments[0][1],0.0)*dBornesEmoluments[1][2];
    dValue+=Math.max(BaseDeCalcul-dBornesEmoluments[0][2],0.0)*dBornesEmoluments[1][3];

    if (Localisation=="R")
      dValue*=1.4;
    else if (Localisation=="G" || Localisation=="M" || Localisation=="Y")  
      dValue*=1.25;
    
	if (Localisation=="Y")
	  dValue*=(1.0+TVAGuyane);	
    else if (Localisation=="I" || Localisation=="P")
      dValue*=(1.0+TVAMetro);
    else
      dValue*=(1.0+TVADOM);
    
    if (isNaN(dValue))
      return undefined;
    else
      return dValue;

    return dValue;

  }
  catch (e) { return undefined;}
}

//------------------------------------------------------------------------------
// Droits et salaire du conservateur 
//------------------------------------------------------------------------------
// modif. 01/11/2006
function FDroitsNotaire( BaseDeCalcul , Natop)
{

  // Droits de notaire
  // Bien ancien -> 5,09 %  de la base
  //          neuf    -> 0,715 % de la base 

  // Salaire du conservateur : 0,1 % de la base 
 
  try

  {
    var dValue=0.0;
    
    if (Natop=="CNNeuf" || Natop=="AchatNeuf") 
      dValue+=BaseDeCalcul*0.00715;
    else if (Natop=="Ancien") 
      dValue+=BaseDeCalcul*0.05090;
    else
      return undefined;
    
    dValue+=BaseDeCalcul*0.001;
    
    if (isNaN(dValue))
      return undefined;
    else
      return dValue;
      
  }
  catch (e) { return undefined;}
}

//------------------------------------------------------------------------------
// Emoluments de formalités et débours
//------------------------------------------------------------------------------
// modif. 26/08/2006
function FFormalitesDeboursNotaire ( Localisation )
{
    var dValue=0.0;
	if (Localisation=="R")
      dValue+=(1150.0*0.836*1.4*1.085);
    else if (Localisation=="G" || Localisation=="M")  
      dValue+=(1150.0*0.836*1.25*1.085);
    else if (Localisation=="Y")  
      dValue+=(1150.0*0.836*1.25);
    else
      dValue+=1150.0;

	  if (isNaN(dValue))
      return undefined;
    else
      return dValue;
}

//------------------------------------------------------------------------------
// Frais de notaire 
//------------------------------------------------------------------------------
// modif. 04/07/2009
function FFraisNotaire( MontantOperation , Localisation, Natop)
{

  try

  {
    
    // Dans le cas d'une construction de maison, on suppose 
    // que la valeur du terrain représente 25 % du montant total de l'opération
    // et que le ménage n'est pas déjà propriétaire du terrain
    
    var BaseDeCalcul;
    
    if (Natop=="CNNeuf")
      BaseDeCalcul=MontantOperation*0.25; 
    else
      BaseDeCalcul=MontantOperation; 
    
    var frais=FEmolumentsNotaire( BaseDeCalcul , Localisation);
    frais+=FDroitsNotaire( BaseDeCalcul , Natop);
    frais+=FFormalitesDeboursNotaire( Localisation);
    
    if (isNaN(frais))
      return undefined;
    else
      return Math.round(frais/100.0)*100.0;
  }
  catch (e) { return undefined;}
}


//------------------------------------------------------------------------------
// Calcul des coûts de garantie
//------------------------------------------------------------------------------
// Le coût de la garantie dépend du montant et de la nature du prêt

 //*************************************************************
 function FGarantieEmolumentsNotaire( MontantPret, Localisation)                             
 // MAJ : 30/06/2006
 {
  var dValue=0.0;
  
  var dTauxGarantie=new Array();
  // Tranches
  dTauxGarantie[0]=new Array();
  dTauxGarantie[0][0]=6500.0;
  dTauxGarantie[0][1]=17000.0;
  dTauxGarantie[0][2]=30000.0;
  dTauxGarantie[0][3]=0.0;

  // Taux applicables 
  dTauxGarantie[1]=new Array();
  dTauxGarantie[1][0]=0.01330;
  dTauxGarantie[1][1]=0.00550;
  dTauxGarantie[1][2]=0.00370;
  dTauxGarantie[1][3]=0.00275;
  
  dValue+=Math.min(MontantPret,dTauxGarantie[0][0])*dTauxGarantie[1][0];
  dValue+=Math.max(Math.min(MontantPret,dTauxGarantie[0][1])-dTauxGarantie[0][0],0.0)*dTauxGarantie[1][1];
  dValue+=Math.max(Math.min(MontantPret,dTauxGarantie[0][2])-dTauxGarantie[0][1],0.0)*dTauxGarantie[1][2];
  dValue+=Math.max(MontantPret-dTauxGarantie[0][2],0.0)*dTauxGarantie[1][3];

  if (Localisation=="R")
    dValue*=1.4;
  else if (Localisation=="G" || Localisation=="M" || Localisation=="Y")  
    dValue*=1.25;

  if (Localisation=="Y")
    dValue*=(1.0+TVAGuyane);
  if (Localisation=="I" || Localisation=="P")
    dValue*=(1.0+TVAMetro);
  else
    dValue*=(1.0+TVADOM);
	
  return dValue;
 }

 //**************************************************
 function FGarantieTPF( MontantPret, TypePret, Natop)     
 // MAJ : 30/06/2006
 // cas hypothèque
 // taxe publicité foncière
 {
  var dValue=0.0;
  //if (Natop!="Ancien"
  //&& (TypePret!="PAS" && TypePret!="PC" && TypePret!="PTZ" && TypePret!="EL"))
  if (Natop=="Neuf" && TypePret=="Autre")
	dValue+=(MontantPret*1.2*0.00715);
  return dValue;
 }

 //************************************************
 function FGarantieSalaireConservateur(MontantPret)     
 // MAJ : 30/06/2006
 {
    return MontantPret*1.2*0.0005;
 }

 //***********************************************
 function FGarantieFormalitesDebours(Localisation)     
 // MAJ : 30/06/2006
 // montant forfaitaire de frais
 {
    var dValue=0.0;
    if (Localisation=="R")
      dValue+=(250.0*0.836*1.4*1.085);
    else if (Localisation=="G" || Localisation=="M")  
      dValue+=(250.0*0.836*1.25*1.085);
	else if (Localisation=="Y")
      dValue+=(250.0*0.836*1.25);
    else
      dValue+=250.0;
    return dValue;
 }

 //*****************************************************************
 function FCoutGarantie( MontantPret, TypePret, Localisation, Natop)                             
 // MAJ : 30/06/2006
 {
  var cout_garantie=0.0;
  try {
    cout_garantie+=FGarantieEmolumentsNotaire(MontantPret,Localisation);
    cout_garantie+=FGarantieTPF(MontantPret,TypePret,Natop);
    cout_garantie+=FGarantieSalaireConservateur(MontantPret);
    cout_garantie+=FGarantieFormalitesDebours(Localisation);
    if (isNaN(cout_garantie))
      return undefined;
    else
      return cout_garantie;
  }
  catch (e) { return undefined;}
 }



//-->

