function Credit()
{
}

/******************************************************************************
 *** Calculs sur les taux
 ******************************************************************************/

/**
 * Calcul du taux périodique proportionnel (pour le crédit immobilier en France).
 * Par défaut, le taux correspond à une périodicité mensuelle.
 */

Credit.tauxPeriodiqueProportionnel = function(fTauxAnnuel)
	{
		// Arguments optionnels
		var argv = arguments ;
		var argc = arguments.length ;
		var iEcheancesAnnuelles = (argc > 1) ? argv[1] : 12 ;
		// Formatage
		fTauxAnnuel         = parseFloat(fTauxAnnuel        ) ;
		iEcheancesAnnuelles = parseInt  (iEcheancesAnnuelles) ;
		// Calcul
		return fTauxAnnuel / iEcheancesAnnuelles ;
	}

/**
 * Calcul du taux périodique actuariel (pour le crédit immobilier à l'étranger).
 * Par défaut, le taux correspond à une périodicité mensuelle.
 */

Credit.tauxPeriodiqueActuariel = function(fTauxAnnuel)
	{
		// Arguments optionnels
		var argv = arguments ;
		var argc = arguments.length ;
		var iEcheancesAnnuelles = (argc > 1) ? argv[1] : 12 ;
		// Formatage
		fTauxAnnuel         = parseFloat(fTauxAnnuel        ) ;
		iEcheancesAnnuelles = parseInt  (iEcheancesAnnuelles) ;
		// Calcul
		return Math.pow(1 + fTauxAnnuel, 1 / iEcheancesAnnuelles) - 1 ;
	}

/******************************************************************************
 *** Calculs sur les échéances
 ******************************************************************************/

Credit.echeancesNombreAnnees = function(iAnnees)
	{
		// Arguments optionnels
		var argv = arguments ;
		var argc = arguments.length ;
		var iEcheancesAnnuelles = (argc > 1) ? argv[1] : 12 ;
		// Formatage
		iAnnees             = parseInt  (iAnnees            ) ;
		iEcheancesAnnuelles = parseInt  (iEcheancesAnnuelles) ;
		// Calcul
		return iAnnees * iEcheancesAnnuelles ;
	}

/******************************************************************************
 *** Calculs sur les montants
 ******************************************************************************/

/**
 * Calcul d'un montant d'échéance constant
 */

Credit.montantEcheanceConstant = function(iMontant, fTauxPeriodique, iEcheances)
	{
		// Formatage
		iMontant        = parseInt  (iMontant       ) ;
		fTauxPeriodique = parseFloat(fTauxPeriodique) ;
		iEcheances      = parseInt  (iEcheances     ) ;
		// Calcul
		return (iMontant * fTauxPeriodique) / (1 - Math.pow(1 + fTauxPeriodique, - iEcheances)) ;
	}
