//	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//	| Javascript:	calcul de Crédit Hypothécaire, avec affichage du TAEG et prise	|
//	| 				en compte des frais												|
//	| Copyright:	ING Luxembourg													|
//	| Auteur:		Raphael Bernard, Juillet 2002									|
//	| Modification:	Raphael Bernard, Février 2003									|
//	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	var taux, mois, bloc, numer, denom, m_inter;
	
	var selectedDureeVariable = -1;
	var selectedDureeFixe = -1;

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //
// Retourne la valeur du bouton radio TYPE_TAUX sélectionné.                //
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //

	function getTypeTaux()
	{
	  var radios = document.forms['f1'].TYPE_TAUX;
	
	  for ( var i = 0 ; i < radios.length ; i++ )
	  {
	    if ( radios[i].checked )
	    {
	      return radios[i].value;
	    }
	  }
	
	  return null;
	}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //
// Fontion appellée quand le visiteur change de durée.                      //
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //

	function ChangementDuree()
	{
	  if ( getTypeTaux() == "variable" )
	  {
	    selectedDureeVariable = document.forms['f1'].DUREE.selectedIndex;    
	  }
	  else
	  {
	    selectedDureeFixe = document.forms['f1'].DUREE.selectedIndex;    
	  }
	  
	  Attrib_Calc();
	}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	//
// Calcul du montant du remboursement, càd : l'utilsateur a rempli	//
// la case "montant total à emprunter"								//
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //
	function Calcul_Remb(tmp)
	{
		// test pour ne rien afficher si le montant est trop petit (résultat incohérent)
		document.forms['f1'].LAST.value = "total";
		if ( (Number( document.forms['f1'].MONTANT_EMPRUNT.value ) >= 1000) && (isNaN(document.forms['f1'].MONTANT_EMPRUNT.value)!=true) )
		{
			// détermination du taux en fonction de son type (variable ou fixe)
			if ( getTypeTaux() == "fixe" )  {
				if ( document.forms['f1'].DUREE.value <= 5 ) {
					taux = var5;
				} else if ( document.forms['f1'].DUREE.value > 5 && document.forms['f1'].DUREE.value <= 10 ) {
					taux = var10;
				} else if ( document.forms['f1'].DUREE.value > 10 && document.forms['f1'].DUREE.value <= 15 ) {
					taux = var15;
				} else if ( document.forms['f1'].DUREE.value > 15 && document.forms['f1'].DUREE.value <= 20 ) {
					taux = var20;
				}
			} else {
				taux = var0;
			}

			// formule du crédit hypothécaire
			bloc = Math.pow(((( taux * 365.2524 ) / 144000 ) + 1 ),( 1 / 3 ));
			numer = Number( document.forms['f1'].MONTANT_EMPRUNT.value ) * ( bloc - 1 );
			denom = 1 - Math.pow( bloc , ( -12 * Number( document.forms['f1'].DUREE.value )) );
			m_inter = numer / denom;

			document.forms['f1'].MONTANT_REMBOUR_SANS_FRAIS.value = m_inter;

			// prise en compte des frais
			if (m_inter % 2.5 == 0)	{
				document.forms['f1'].MONTANT_REMBOUR.value = Math.round( m_inter * 100 ) / 100 + 2.5;
			} else {
				//document.forms['f1'].MONTANT_REMBOUR.value = Math.floor( m_inter / 2.5 ) * 2.5 + 5;
				document.forms['f1'].MONTANT_REMBOUR.value = Math.round( m_inter * 100 ) / 100 + 5;
			}
		}
		else
		{
			document.forms['f1'].MONTANT_REMBOUR.value = "";
			document.forms['f1'].MONTANT_REMBOUR_SANS_FRAIS.value = "";
		}
	}


// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	//
// Calcul du montant du remboursement, càd : l'utilsateur a rempli	//
// la case "mensualités à rembourser"								//
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //
	function Calcul_Emp(tmp)
	{
		document.forms['f1'].LAST.value = "rembour";
		// test pour ne rien afficher si le montant est trop petit (résultat incohérent)
		if ( (Number( document.forms['f1'].MONTANT_REMBOUR.value ) >= 10.73) && (isNaN(document.forms['f1'].MONTANT_REMBOUR.value) != true) )
		{
			// détermination du taux en fonction de son type (variable ou fixe)
			if ( getTypeTaux() == "fixe" )  {
				if ( document.forms['f1'].DUREE.value <= 5 ) {
					taux = var5;
				} else if ( document.forms['f1'].DUREE.value > 5 && document.forms['f1'].DUREE.value <= 10 ) {
					taux = var10;
				} else if ( document.forms['f1'].DUREE.value > 10 && document.forms['f1'].DUREE.value <= 15 ) {
					taux = var15;
				} else if ( document.forms['f1'].DUREE.value > 15 && document.forms['f1'].DUREE.value <= 20 ) {
					taux = var20;
				}
			} else {
				taux = var0;
			}

			// formule du crédit hypothécaire
			bloc = Math.pow(((( taux * 365.2524 ) / 144000 ) + 1 ),( 1 / 3 ));
			denom = 1 - Math.pow( bloc , ( -12 * Number( document.forms['f1'].DUREE.value )) );
			document.forms['f1'].MONTANT_EMPRUNT.value = Math.round( ( Number( document.forms['f1'].MONTANT_REMBOUR.value - 5 ) * denom ) / ( bloc - 1 ) );
		} else {
			document.forms['f1'].MONTANT_EMPRUNT.value = "";
		}
		
		document.forms['f1'].MONTANT_REMBOUR_SANS_FRAIS.value = document.forms['f1'].MONTANT_REMBOUR.value - 5;
	}


// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	//
// Cas de changement dans les listes déroulantes ou boutons radios	//
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //
	function Attrib_Calc()
	{
		if ( document.forms['f1'].LAST.value == "rembour" )
			{
			Calcul_Emp( document.forms['f1'].MONTANT_REMBOUR.value );
			}
		else
			{
			Calcul_Remb( document.forms['f1'].MONTANT_EMPRUNT.value );
			}
	}
