//-----------------------------------------------------------------------------
// Module      : plan_situer_votre_entreprise
// Auteur      : A2L - Multimédia
// Date        : 01/12/2003
// Description : permet de faire une simulation pour une flotte automobile
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
// Variables globales
// Description : déclaration des variables globales
//-----------------------------------------------------------------------------
//variables issues formulaire
var nom_societe;
var nbr_vehicules;
var nbr_sinistres;
var budget_assurance_par_an;
var budget_prevention;
var annee_reference;
var franchise_auto_assurance;
var estimation_couts_induits_sinistre;
var majoration_cotisation_at;

//variables décrivant la simulation
var nbr_annees_simu=4;
var nbr_parametres_par_an=10;

//variables représentant la simulation
var tab_resultat_sans_prevention = new Array(nbr_annees_simu);
var tab_resultat_avec_prevention = new Array(nbr_annees_simu);

//variables paramètres simulation
var indice_nbr_sinistres=0;
var indice_budget_assurance=1;
var indice_franchises=2;
var indice_couts_induits=3;
var indice_majoration_cotisatio_at=4;
var indice_budget_prevention=5;
var indice_total=6;
var indice_objectif=7;
var indice_frequence=8;
var indice_gain=9;
var annee1=0;
var annee2=1;
var annee3=2;
var annee4=3;

// Alloue les tableaux des réponses correctes et initialise chaque
// réponse comme une réponse fausse    tab_resultat_sans_prevention[nbr_annees_simu][nbr_parametres_par_an]
for (i=0; i<nbr_annees_simu; i++)
{
  // Alloue les tableaux
  tab_resultat_sans_prevention[i] = new Array(nbr_parametres_par_an);
  tab_resultat_avec_prevention[i] = new Array(nbr_parametres_par_an);
  
  // Initialise les réponses comme des erreurs
  for (j=0; j<nbr_parametres_par_an; j++)
  {
    tab_resultat_sans_prevention[i][j]=0;
    tab_resultat_avec_prevention[i][j]=0;
  }
}

//-----------------------------------------------------------------------------
// Fonction    : obtenir_informations_formulaire
// Paramètres  : 
// Retour      : aucun
// Description : récupère les valeurs saisies dans le formulaire (dans la fenêtre appellante de la popup
//-----------------------------------------------------------------------------
function obtenir_informations_formulaire()
{
nom_societe=window.opener.document.forms[0].elements["nom_societe"].value;
nbr_vehicules=parseFloat(window.opener.document.forms[0].elements["nbr_vehicules"].value);
nbr_sinistres=parseFloat(window.opener.document.forms[0].elements["nbr_sinistres"].value);
budget_assurance_par_an=parseFloat(window.opener.document.forms[0].elements["budget_assurance_par_an"].value);
budget_prevention=parseFloat(window.opener.document.forms[0].elements["budget_prevention"].value);
annee_reference=parseFloat(window.opener.document.forms[0].elements["annee_reference"].value);
franchise_auto_assurance=parseFloat(window.opener.document.forms[0].elements["franchise_auto_assurance"].value);
estimation_couts_induits_sinistre=parseFloat(window.opener.document.forms[0].elements["estimation_couts_induits_sinistre"].value);
majoration_cotisation_at=parseFloat(window.opener.document.forms[0].elements["majoration_cotisation_at"].value);	
couts_induits=estimation_couts_induits_sinistre*nbr_sinistres;
}

//-----------------------------------------------------------------------------
// Fonction    : remplir_tableaux_annee1
// Paramètres  : 
// Retour      : aucun
// Description : met à jour les tableaux de la simulation en fonction des info issues du formulaire pour l'année1
//-----------------------------------------------------------------------------
function remplir_tableaux_annee1()
{
//tableau SANS prevention
tab_resultat_sans_prevention[annee1][indice_objectif]=0;
tab_resultat_sans_prevention[annee1][indice_nbr_sinistres]=nbr_sinistres;
tab_resultat_sans_prevention[annee1][indice_budget_assurance]=budget_assurance_par_an;
tab_resultat_sans_prevention[annee1][indice_franchises]=franchise_auto_assurance;
tab_resultat_sans_prevention[annee1][indice_couts_induits]=couts_induits;
tab_resultat_sans_prevention[annee1][indice_majoration_cotisatio_at]=majoration_cotisation_at;
tab_resultat_sans_prevention[annee1][indice_budget_prevention]=0;
tab_resultat_sans_prevention[annee1][indice_total]=(tab_resultat_sans_prevention[annee1][indice_budget_assurance]) + 
						   (tab_resultat_sans_prevention[annee1][indice_franchises]) +
						   (tab_resultat_sans_prevention[annee1][indice_couts_induits]) +
						   (tab_resultat_sans_prevention[annee1][indice_majoration_cotisatio_at]) +
						   (tab_resultat_sans_prevention[annee1][indice_budget_prevention]);

tab_resultat_sans_prevention[annee1][indice_frequence]=0;
tab_resultat_sans_prevention[annee1][indice_gain]=0;

//tableau AVEC prevention
tab_resultat_avec_prevention[annee1][indice_objectif]=0;
tab_resultat_avec_prevention[annee1][indice_nbr_sinistres]=tab_resultat_sans_prevention[annee1][indice_nbr_sinistres];
tab_resultat_avec_prevention[annee1][indice_budget_assurance]=tab_resultat_sans_prevention[annee1][indice_budget_assurance];
tab_resultat_avec_prevention[annee1][indice_franchises]=tab_resultat_sans_prevention[annee1][indice_franchises];
tab_resultat_avec_prevention[annee1][indice_couts_induits]=tab_resultat_sans_prevention[annee1][indice_couts_induits];
tab_resultat_avec_prevention[annee1][indice_majoration_cotisatio_at]=majoration_cotisation_at;
tab_resultat_avec_prevention[annee1][indice_budget_prevention]=0;
tab_resultat_avec_prevention[annee1][indice_total]=(tab_resultat_avec_prevention[annee1][indice_budget_assurance]) + 
						   (tab_resultat_avec_prevention[annee1][indice_franchises]) +
						   (tab_resultat_avec_prevention[annee1][indice_couts_induits]) +
						   (tab_resultat_avec_prevention[annee1][indice_majoration_cotisatio_at]) +
						   (tab_resultat_avec_prevention[annee1][indice_budget_prevention]);

tab_resultat_avec_prevention[annee1][indice_frequence]=tab_resultat_avec_prevention[annee1][indice_nbr_sinistres] / nbr_vehicules;
tab_resultat_avec_prevention[annee1][indice_gain]=tab_resultat_sans_prevention[annee1][indice_total] - tab_resultat_avec_prevention[annee1][indice_total];
}

//-----------------------------------------------------------------------------
// Fonction    : remplir_tableaux_annee2
// Paramètres  : 
// Retour      : aucun
// Description : met à jour les tableaux de la simulation en fonction des info issues du formulaire pour l'année2
//-----------------------------------------------------------------------------
function remplir_tableaux_annee2()
{
//tableau SANS prevention
tab_resultat_sans_prevention[annee2][indice_objectif]=0;
tab_resultat_sans_prevention[annee2][indice_nbr_sinistres]=nbr_sinistres;
tab_resultat_sans_prevention[annee2][indice_budget_assurance]=budget_assurance_par_an;
tab_resultat_sans_prevention[annee2][indice_franchises]=franchise_auto_assurance;
tab_resultat_sans_prevention[annee2][indice_couts_induits]=couts_induits;
tab_resultat_sans_prevention[annee2][indice_majoration_cotisatio_at]=majoration_cotisation_at;
tab_resultat_sans_prevention[annee2][indice_budget_prevention]=0;
tab_resultat_sans_prevention[annee2][indice_total]=tab_resultat_sans_prevention[annee2][indice_budget_assurance] + 
						   tab_resultat_sans_prevention[annee2][indice_franchises] +
						   tab_resultat_sans_prevention[annee2][indice_couts_induits] +
						   tab_resultat_sans_prevention[annee2][indice_majoration_cotisatio_at] +
						   tab_resultat_sans_prevention[annee2][indice_budget_prevention] ;

tab_resultat_sans_prevention[annee2][indice_frequence]=0;
tab_resultat_sans_prevention[annee2][indice_gain]=0;

//tableau AVEC prevention
tab_resultat_avec_prevention[annee2][indice_objectif]=parseFloat(-20/100);
tab_resultat_avec_prevention[annee2][indice_nbr_sinistres]=(tab_resultat_sans_prevention[annee1][indice_nbr_sinistres])*(tab_resultat_avec_prevention[annee2][indice_objectif]) + nbr_sinistres;
tab_resultat_avec_prevention[annee2][indice_budget_assurance]=budget_assurance_par_an;
tab_resultat_avec_prevention[annee2][indice_franchises]=(franchise_auto_assurance*(tab_resultat_avec_prevention[annee2][indice_objectif]) + tab_resultat_avec_prevention[annee1][indice_franchises]);
tab_resultat_avec_prevention[annee2][indice_couts_induits]=couts_induits*(tab_resultat_avec_prevention[annee2][indice_objectif]) + couts_induits;
tab_resultat_avec_prevention[annee2][indice_majoration_cotisatio_at]=majoration_cotisation_at;
tab_resultat_avec_prevention[annee2][indice_budget_prevention]=budget_prevention;
tab_resultat_avec_prevention[annee2][indice_total]=(tab_resultat_avec_prevention[annee2][indice_budget_assurance]) + 
						   (tab_resultat_avec_prevention[annee2][indice_franchises]) +
						   (tab_resultat_avec_prevention[annee2][indice_couts_induits]) +
						   (tab_resultat_avec_prevention[annee2][indice_majoration_cotisatio_at]) +
						   (tab_resultat_avec_prevention[annee2][indice_budget_prevention]);
tab_resultat_avec_prevention[annee2][indice_frequence]=tab_resultat_avec_prevention[annee2][indice_nbr_sinistres] / nbr_vehicules;
tab_resultat_avec_prevention[annee2][indice_gain]=tab_resultat_sans_prevention[annee2][indice_total] - tab_resultat_avec_prevention[annee2][indice_total];
}

//-----------------------------------------------------------------------------
// Fonction    : remplir_tableaux_annee3
// Paramètres  : 
// Retour      : aucun
// Description : met à jour les tableaux de la simulation en fonction des info issues du formulaire pour l'année1
//-----------------------------------------------------------------------------
function remplir_tableaux_annee3()
{
//tableau SANS prevention
tab_resultat_sans_prevention[annee3][indice_nbr_sinistres]=nbr_sinistres;
tab_resultat_sans_prevention[annee3][indice_budget_assurance]=budget_assurance_par_an;
tab_resultat_sans_prevention[annee3][indice_franchises]=franchise_auto_assurance;
tab_resultat_sans_prevention[annee3][indice_couts_induits]=couts_induits;
tab_resultat_sans_prevention[annee3][indice_majoration_cotisatio_at]=majoration_cotisation_at;
tab_resultat_sans_prevention[annee3][indice_budget_prevention]=0;
tab_resultat_sans_prevention[annee3][indice_total]=tab_resultat_sans_prevention[annee3][indice_budget_assurance] + 
						   tab_resultat_sans_prevention[annee3][indice_franchises] +
						   tab_resultat_sans_prevention[annee3][indice_couts_induits] +
						   tab_resultat_sans_prevention[annee3][indice_majoration_cotisatio_at] +
						   tab_resultat_sans_prevention[annee3][indice_budget_prevention] ;
tab_resultat_sans_prevention[annee3][indice_objectif]=0;
tab_resultat_sans_prevention[annee3][indice_frequence]=0;
tab_resultat_sans_prevention[annee3][indice_gain]=0;

//tableau AVEC prevention
tab_resultat_avec_prevention[annee3][indice_objectif]=parseFloat(-20/100);
tab_resultat_avec_prevention[annee3][indice_nbr_sinistres]=(tab_resultat_avec_prevention[annee2][indice_nbr_sinistres])*(tab_resultat_avec_prevention[annee3][indice_objectif]) + tab_resultat_avec_prevention[annee2][indice_nbr_sinistres];
tab_resultat_avec_prevention[annee3][indice_budget_assurance]=budget_assurance_par_an;
tab_resultat_avec_prevention[annee3][indice_franchises]=((tab_resultat_avec_prevention[annee2][indice_franchises])*(tab_resultat_avec_prevention[annee3][indice_objectif]) + tab_resultat_avec_prevention[annee2][indice_franchises]);
tab_resultat_avec_prevention[annee3][indice_couts_induits]=tab_resultat_avec_prevention[annee3][indice_nbr_sinistres]*estimation_couts_induits_sinistre;
tab_resultat_avec_prevention[annee3][indice_majoration_cotisatio_at]=majoration_cotisation_at;
tab_resultat_avec_prevention[annee3][indice_budget_prevention]=budget_prevention;
tab_resultat_avec_prevention[annee3][indice_total]=(tab_resultat_avec_prevention[annee3][indice_budget_assurance]) + 
						   (tab_resultat_avec_prevention[annee3][indice_franchises]) +
						   (tab_resultat_avec_prevention[annee3][indice_couts_induits]) +
						   (tab_resultat_avec_prevention[annee3][indice_majoration_cotisatio_at]) +
						   (tab_resultat_avec_prevention[annee3][indice_budget_prevention]);
tab_resultat_avec_prevention[annee3][indice_frequence]=tab_resultat_avec_prevention[annee3][indice_nbr_sinistres] / nbr_vehicules;
tab_resultat_avec_prevention[annee3][indice_gain]=tab_resultat_sans_prevention[annee3][indice_total] - tab_resultat_avec_prevention[annee3][indice_total];
}

//-----------------------------------------------------------------------------
// Fonction    : remplir_tableaux_annee4
// Paramètres  : 
// Retour      : aucun
// Description : met à jour les tableaux de la simulation en fonction des info issues du formulaire pour l'année1
//-----------------------------------------------------------------------------
function remplir_tableaux_annee4()
{
//tableau SANS prevention
tab_resultat_sans_prevention[annee4][indice_nbr_sinistres]=nbr_sinistres;
tab_resultat_sans_prevention[annee4][indice_budget_assurance]=budget_assurance_par_an;
tab_resultat_sans_prevention[annee4][indice_franchises]=franchise_auto_assurance;
tab_resultat_sans_prevention[annee4][indice_couts_induits]=couts_induits;
tab_resultat_sans_prevention[annee4][indice_majoration_cotisatio_at]=majoration_cotisation_at;
tab_resultat_sans_prevention[annee4][indice_budget_prevention]=0;
tab_resultat_sans_prevention[annee4][indice_total]=tab_resultat_sans_prevention[annee4][indice_budget_assurance] + 
						   tab_resultat_sans_prevention[annee4][indice_franchises] +
						   tab_resultat_sans_prevention[annee4][indice_couts_induits] +
						   tab_resultat_sans_prevention[annee4][indice_majoration_cotisatio_at] +
						   tab_resultat_sans_prevention[annee4][indice_budget_prevention] ;
tab_resultat_sans_prevention[annee4][indice_objectif]=0;
tab_resultat_sans_prevention[annee4][indice_frequence]=0;
tab_resultat_sans_prevention[annee4][indice_gain]=0;

//tableau AVEC prevention
tab_resultat_avec_prevention[annee4][indice_objectif]=parseFloat(-20/100);
tab_resultat_avec_prevention[annee4][indice_nbr_sinistres]=(tab_resultat_avec_prevention[annee3][indice_nbr_sinistres])*(tab_resultat_avec_prevention[annee4][indice_objectif]) + tab_resultat_avec_prevention[annee3][indice_nbr_sinistres];
tab_resultat_avec_prevention[annee4][indice_budget_assurance]=budget_assurance_par_an;
tab_resultat_avec_prevention[annee4][indice_franchises]=((tab_resultat_avec_prevention[annee3][indice_franchises])*(tab_resultat_avec_prevention[annee4][indice_objectif]) + tab_resultat_avec_prevention[annee3][indice_franchises]);
tab_resultat_avec_prevention[annee4][indice_couts_induits]=tab_resultat_avec_prevention[annee4][indice_nbr_sinistres]*estimation_couts_induits_sinistre;
tab_resultat_avec_prevention[annee4][indice_majoration_cotisatio_at]=0;
tab_resultat_avec_prevention[annee4][indice_budget_prevention]=budget_prevention;
tab_resultat_avec_prevention[annee4][indice_total]=(tab_resultat_avec_prevention[annee4][indice_budget_assurance]) + 
						   (tab_resultat_avec_prevention[annee4][indice_franchises]) +
						   (tab_resultat_avec_prevention[annee4][indice_couts_induits]) +
						   (tab_resultat_avec_prevention[annee4][indice_majoration_cotisatio_at]) +
						   (tab_resultat_avec_prevention[annee4][indice_budget_prevention]);
tab_resultat_avec_prevention[annee4][indice_frequence]=tab_resultat_avec_prevention[annee4][indice_nbr_sinistres] / nbr_vehicules;
tab_resultat_avec_prevention[annee4][indice_gain]=tab_resultat_sans_prevention[annee4][indice_total] - tab_resultat_avec_prevention[annee4][indice_total];

}

//-----------------------------------------------------------------------------
// Fonction    : remplir_tableaux_simulation
// Paramètres  : 
// Retour      : aucun
// Description : met à jour les tableaux de la simulation en fonction des info issues du formulaire
//-----------------------------------------------------------------------------
function remplir_tableaux_simulation()
{
//obtention des informations contenues dans le formulaire
obtenir_informations_formulaire();

//remplissage année 1
remplir_tableaux_annee1();

//remplissage année 2
remplir_tableaux_annee2();

//remplissage année 3
remplir_tableaux_annee3();

//remplissage année 4
remplir_tableaux_annee4();

}

//-----------------------------------------------------------------------------
// Fonction    : afficher_image_progression
// Paramètres  : variation : valeur de la variation
// Retour      : aucun
// Description : ajoute l'image à la page qui convient en fonction de la variation
//-----------------------------------------------------------------------------
function afficher_image_progression(variation)
{
if(variation>0){
	//progression positive
	document.write("<img src=\"situer/hausse.gif\" width=\"105\" height=\"105\">");
}
else{
	if(variation<0){
		//progression négative
		document.write("<img src=\"situer/baisse.gif\" width=\"105\" height=\"105\">");
	} 
	else{
		//stabilité
		document.write("<img src=\"situer/egal.gif\" width=\"105\" height=\"105\">");
	}
}
		
}

//-----------------------------------------------------------------------------
// Fonction    : formater_chiffre
// Paramètres  : valeur : float à arrondir | decimal : nbr de décimales après la virgule | separateur : séparateur entre les milliers
// Retour      : chiffre formaté
// Description : formate un chiffre avec 'decimal' chiffres après la virgule et un separateur
//-----------------------------------------------------------------------------
function formater_chiffre(valeur, decimal, separateur) {

  var deci;
  var val;
  var val_format;
  var nb;
  var decim;
  
  //obtention de la partie décimal
  deci=Math.round( Math.pow(10,decimal)*(Math.abs(valeur)-Math.floor(Math.abs(valeur))));
  
  val=Math.floor(Math.abs(valeur));

  if( (decimal==0) || (deci==Math.pow(10,decimal)) ){
  	val=Math.floor(Math.abs(valeur)); deci=0;
  }
  val_format=val+"";
  nb=val_format.length;
  for(var i=1;i<4;i++){
  	if (val>=Math.pow(10,(3*i))){
  	val_format=val_format.substring(0,nb-(3*i))+separateur+val_format.substring(nb-(3*i));
  	}
  }

  if(decimal>0){
	decim=""; 
	for(var j=0;j<(decimal - deci.toString().length);j++){
		decim+="0";
	}
	deci=decim+deci.toString();
	val_format=val_format+"."+deci;
  }
  if (parseFloat(valeur)<0){
  	val_format="-"+val_format;
  }
  
  //retour du résultat
  return val_format;
}

//-----------------------------------------------------------------------------
// Fonction    : formater_affichage_chiffre
// Paramètres  : valeur : float à arrondir | decimal : nbr de décimales après la virgule | separateur : séparateur entre les milliers
// Retour      : entier
// Description : formate un chiffre avec 'decimal' chiffres après la virgule et un separateur et l'affiche
//-----------------------------------------------------------------------------
function formater_affichage_chiffre(valeur, decimal, separateur) {
  var val_formatee;
  
  //formatage du chiffre
  val_formatee=formater_chiffre(valeur, decimal, separateur);
  
  //écriture dans la page du résultat
  document.write(val_formatee);
}

//-----------------------------------------------------------------------------
// Fonction    : calculer_couts_induits
// Paramètres  : 
// Retour      : 
// Description : calcule le coûts induits
//-----------------------------------------------------------------------------
function calculer_couts_induits(){
  
  var couts_induits;
  
  //calcul des couts induits
  couts_induits=parseFloat(document.forms[0].elements["nbr_sinistres"].value) * parseFloat(document.forms[0].elements["estimation_couts_induits_sinistre"].value);

  //affichage du résultat
  document.forms[0].elements["total_couts_induits"].value=formater_chiffre(couts_induits, 0," ");
	
}
