﻿var simulateur_valeurProjet              = null;
var simulateur_capaciteRemboursement     = null;
var simulateur_capaciteRemboursement_max = null;

function writeResults()
{
 var tableResults = $('#simulateur_tableResults')[0];
 
 // Clear the table
 while( child = tableResults.firstChild )
  tableResults.removeChild( child );
 
 // THEAD
 var thead = document.createElement( "thead" );
 tableResults.appendChild( thead );
 
 row = document.createElement( "tr" );
 thead.appendChild( row );
 
 for( var i=0 ; i<5 ; i++ )
 {
  cell = document.createElement( ( i == 0 ? "td" : "th" ) );
  
  // Text in cell
  switch( i )
  {
   case 1:
    cell.innerHTML = "3 ans";
    break;
   case 2:
    cell.innerHTML = "7 ans";
    break;
   case 3:
    cell.innerHTML = "18 ans";
    break;
   case 4:
    cell.innerHTML = "24 ans";
    break;
  }
  
  row.appendChild( cell );
 }
 
 
 // TBODY
 var tbody = document.createElement( "tbody" );
 tableResults.appendChild( tbody );
 
 // TBODY - Valeur projet
 row = document.createElement( "tr" );
 tbody.appendChild( row );
 
 for( var i=0 ; i<5 ; i++ )
 {
  cell = document.createElement( ( i == 0 ? "th" : "td" ) );
  
  // Text in cell
  switch( i )
  {
   case 0:
    cell.innerHTML = "Mon cr&eacute;dit";
    break;
   case 1:
    if( simulateur_valeurProjet == null || simulateur_capaciteRemboursement == null )
    {
     cell.innerHTML = "Merci de remplir les crit&egrave;res ci-dessus.";
     cell.className = "erreur";
     cell.colSpan = 4;
     cell.rowSpan = 2;
     i = 5;
    }
    else
    {
     cell.innerHTML = simulateur_valeurProjet[0] + "&euro;";
     
     if( simulateur_valeurProjet[0] == simulateur_valeurProjet[1]
      && simulateur_valeurProjet[0] == simulateur_valeurProjet[2]
      && simulateur_valeurProjet[0] == simulateur_valeurProjet[3] )
     {
      cell.colSpan = 4;
      i = 5;
     }
    }
    break;
   case 2:
    cell.innerHTML = simulateur_valeurProjet[1] + "&euro;";
    break;
   case 3:
    cell.innerHTML = simulateur_valeurProjet[2] + "&euro;";
    break;
   case 4:
    cell.innerHTML = simulateur_valeurProjet[3] + "&euro;";
    break;
  }
  
  row.appendChild( cell );
 }
 
 // TBODY - Capacité de remboursement
 row = document.createElement( "tr" );
 tbody.appendChild( row );
 
 for( var i=0 ; i<5 ; i++ )
 {
  cell = document.createElement( ( i == 0 ? "th" : "td" ) );
  
  // Text in cell
  switch( i )
  {
   case 0:
    cell.innerHTML = "Ma mensualit&eacute; maximum";
    
    if( simulateur_valeurProjet == null || simulateur_capaciteRemboursement == null )
     i = 5;
    break;
   case 1:
    if( isArray(simulateur_capaciteRemboursement) )
    {
     cell.innerHTML = simulateur_capaciteRemboursement[0] + "&euro; /mois";
     
     if( simulateur_capaciteRemboursement[0] == simulateur_capaciteRemboursement[1]
      && simulateur_capaciteRemboursement[0] == simulateur_capaciteRemboursement[2]
      && simulateur_capaciteRemboursement[0] == simulateur_capaciteRemboursement[3] )
     {
      cell.colSpan = 4;
      i = 5;
     }
    }
    break;
   case 2:
    cell.innerHTML = simulateur_capaciteRemboursement[1] + "&euro; /mois";
    break;
   case 3:
    cell.innerHTML = simulateur_capaciteRemboursement[2] + "&euro; /mois";
    break;
   case 4:
    cell.innerHTML = simulateur_capaciteRemboursement[3] + "&euro; /mois";
    break;
  }
  
  if( i > 0 && simulateur_capaciteRemboursement_max != null )
   if( simulateur_capaciteRemboursement[i-1] > simulateur_capaciteRemboursement_max )
   {
    cell.innerHTML += "*";
    cell.className = "nd";
   }
  
  row.appendChild( cell );
 }
}

function calculSimulation()
{
 var valeurProjet_obj = $("#f_simulateur_valeurProjet")[0];
     while( valeurProjet_obj.value.indexOf( " " ) != -1 )
      valeurProjet_obj.value = valeurProjet_obj.value.replace( " ", "" );
     while( valeurProjet_obj.value.indexOf( "," ) != -1 )
      valeurProjet_obj.value = valeurProjet_obj.value.replace( ",", "." );
 var valeurProjet = ( valeurProjet_obj.value != '' && !isNaN( valeurProjet_obj.value ) ? parseFloat( valeurProjet_obj.value ) : null );
 // var capaciteRemboursement_obj = $('#f_simulateur_capaciteRemboursement')[0];
     // capaciteRemboursement_obj.value = capaciteRemboursement_obj.value.replace( " ", "" );
     // capaciteRemboursement_obj.value = capaciteRemboursement_obj.value.replace( ",", "." );
 // var capaciteRemboursement = ( capaciteRemboursement_obj.value != '' && !isNaN( capaciteRemboursement_obj.value ) ? parseFloat( capaciteRemboursement_obj.value ) : null );
 var capaciteRemboursement = null;
 var tbodyResults = $('#simulateur_results')[0];
 
 simulateur_valeurProjet              = new Array( 0, 0, 0, 0 );
 simulateur_capaciteRemboursement     = new Array( 0, 0, 0, 0 );
 simulateur_capaciteRemboursement_max = null;
 
 if( valeurProjet != null || capaciteRemboursement != null )
 {
  if( valeurProjet == null && capaciteRemboursement != null )
  {
   simulateur_valeurProjet[0] = Math.round( capaciteRemboursement / 0.071 );
   simulateur_valeurProjet[1] = Math.round( capaciteRemboursement / 0.071 );
   simulateur_valeurProjet[2] = Math.round( capaciteRemboursement / 0.071 );
   simulateur_valeurProjet[3] = Math.round( capaciteRemboursement / 0.071 );
   
   simulateur_capaciteRemboursement[0] = capaciteRemboursement;
   simulateur_capaciteRemboursement[1] = capaciteRemboursement;
   simulateur_capaciteRemboursement[2] = capaciteRemboursement;
   simulateur_capaciteRemboursement[3] = capaciteRemboursement;
  }
  else
  {
   simulateur_valeurProjet[0] = valeurProjet;
   simulateur_valeurProjet[1] = valeurProjet;
   simulateur_valeurProjet[2] = valeurProjet;
   simulateur_valeurProjet[3] = valeurProjet;
   
   // simulateur_capaciteRemboursement[0] = Math.round( valeurProjet * 0.008 );
   // simulateur_capaciteRemboursement[1] = Math.round( valeurProjet * 0.0068 );
   // simulateur_capaciteRemboursement[2] = Math.round( valeurProjet * 0.00615 );
   // simulateur_capaciteRemboursement[3] = Math.round( valeurProjet * 0.00575 );
   simulateur_capaciteRemboursement[0] = Math.round( ( ( valeurProjet * 0.071 ) / ( 1 - Math.pow( 1 + 0.071, 0 - 3 ) ) ) / 12 );
   simulateur_capaciteRemboursement[1] = Math.round( ( ( valeurProjet * 0.071 ) / ( 1 - Math.pow( 1 + 0.071, 0 - 7 ) ) ) / 12 );
   simulateur_capaciteRemboursement[2] = Math.round( ( ( valeurProjet * 0.071 ) / ( 1 - Math.pow( 1 + 0.071, 0 - 18 ) ) ) / 12 );
   simulateur_capaciteRemboursement[3] = Math.round( ( ( valeurProjet * 0.071 ) / ( 1 - Math.pow( 1 + 0.071, 0 - 24 ) ) ) / 12 );
   
   if( capaciteRemboursement != null )
    simulateur_capaciteRemboursement_max = capaciteRemboursement;
  }
 }
 else
 {
  simulateur_valeurProjet = null;
  simulateur_capaciteRemboursement = null;
 }
 
 writeResults();
}