//tableau contenant toutes les formules 
var formules = ["decouverte", "evasion", "passion"];
var optionsIds = new Array();
//tableau contenant l'id de l'option en rapport a la formule

var coeffSemestriel = 1;
var coeffMensuel = 1;

function getCommission(event,ui)
{
    if( 'V'+ui.value == $(".codeApporteur").val() )
    {
        $("#btCalculer").hide();
        $("#detailCommission").show();
        $("#detailPeriodicite").show("slow");
        //$("#detailGarantie").show("slow");
    }
    else
    {
        $("#btCalculer").show();
        $("#detailCommission").hide();
        $("#detailPeriodicite").hide("slow");
        //$("#detailGarantie").hide("slow");
    }


    return '';
}

function getFrais(event,ui)
{

    return ui.value;

}


//calcul de tous les tarifs
function calculerTousLesTarifs(tarifTab)
{
	coeffSemestriel = tarifTab.coeff_seme;
	coeffMensuel = tarifTab.coeff_mens;
	var nbFormules = formules.length;
	for(var i = 0; i < nbFormules; i++)
	{
		calculerTarif(formules[i], tarifTab);
	}
};

//calcul des tarifs d'une formule
function calculerTarif(formule, tarifTab)
{
        //recuperation du tableau associé à la formule
	var formuleTarifTab = getFormuleTarifTab(formule, tarifTab);
        
       if(formuleTarifTab != undefined)
       {
            var montantOptions = 0.0;
            var fraisOption = 0.0;
            var nonMajOption = 0.0;
            var fraisDeBase = formuleTarifTab.fraisDeBase;
            var garantieAttentat = formuleTarifTab.garantieAttentat;
            var deltaCom = formuleTarifTab.baseTarif_deltaCom;
            var deltaCom_nonMaj = formuleTarifTab.baseTarif_deltaCom_nonMaj;
            var currentOption;
            var hasOptionFranRed = false;
            var hasOptionAccPlus = false;

            var commission = (parseFloat(formuleTarifTab.baseTarif_com) + parseFloat(formuleTarifTab.garantieAttentat_com));
            
            $("."+formule+"_option").each(function(){

                if($(this).is(':checked'))
                {
                     var arrayOfClasses = $(this).attr('class').split(' ');

                     currentOption = formuleTarifTab[arrayOfClasses[1]];

                    
                    montantOptions = parseFloat(montantOptions) + parseFloat(currentOption.montant);
                    fraisOption = parseFloat(fraisOption) + parseFloat(currentOption.frais);
                    nonMajOption = parseFloat(nonMajOption) + parseFloat(currentOption.nonMaj);

                   /* $tarifTab['cond_simple_com']['montant'] = isset($garanties['AMT GPDC_com'])?$garanties['AMT GPDC_com']:0;
                    $tarifTab['cond_simple_com']['frais'] = isset($garanties['FG2_com'])?$garanties['FG2_com']:0;
                    $tarifTab['cond_simple_com']['nonMaj'] = */

                    commission += parseFloat(formuleTarifTab[arrayOfClasses[1]+"_com"].montant);
                    
                    deltaCom += parseFloat(currentOption.deltaCom);
                    deltaCom_nonMaj += parseFloat(currentOption.deltaCom_nonMaj);
                }
            })


            //Calcul des montants et on les place dans le template
            var montantAnnuel = (parseFloat(formuleTarifTab.baseTarif) + parseFloat(montantOptions) + parseFloat(fraisOption) + parseFloat(garantieAttentat));

            var montantMajore = parseFloat(formuleTarifTab.baseTarif) + parseFloat(montantOptions) - parseFloat(nonMajOption) - parseFloat(fraisDeBase)
            				    - parseFloat(deltaCom) + parseFloat(deltaCom_nonMaj);

            var montantSemestriel = (montantAnnuel - parseFloat(garantieAttentat) + (parseFloat(montantMajore) * parseFloat((coeffSemestriel*100-100)/100))) / 2 
            						+ parseFloat(garantieAttentat);
//            montantSemestriel = (Math.round(montantSemestriel * 100) / 100);
            

            var montantMensuel = (montantAnnuel + (parseFloat(montantMajore) * parseFloat((coeffMensuel*100-100)/100)))/12; 
//            montantMensuel = (Math.round(montantMensuel * 100) / 100);
            
            $("#"+formule+"_commission").html( (Math.round(commission*100)/100 ));

            $("."+formule+"_prime").each(function(){
                if($(this).hasClass("annuel")) $(this).val(format(montantAnnuel)).change();
                if($(this).hasClass("semestriel")) $(this).val(format(montantSemestriel)).change();
                if($(this).hasClass("mensuel")) $(this).val(format(montantMensuel)).change();
            });
       }
};

//recupere le tableau associé a une formule
function getFormuleTarifTab(formule, tarifTab)
{
	if (formule == "decouverte")
		return tarifTab.decouverte;
	else if (formule == "evasion")
		return tarifTab.evasion;
	else if (formule == "passion")
		return tarifTab.passion;
};

//recupere le tableau associé a une option (pour le quad -> une seule option)
function getOptionTarifTab(formule, optionId, tarifTab)
{
	if ($("#"+optionId).hasClass("optionIndCond"))
	{
		if (formule == "decouverte")
			return tarifTab.decouverte.cond_simple;
		else if (formule == "evasion")
			return tarifTab.evasion.cond_simple;
		else if (formule == "passion")
			return tarifTab.passion.cond_simple;
	}
};

//formattage d'un nombre
function format(n, c, d, t){
	c = isNaN(c = Math.abs(c)) ? 2 : c, d = d == undefined ? "," : d, t = t == undefined ? "" : t, s = n < 0 ? "-" : "", i = parseInt(n = Math.abs(+n || 0).toFixed(c), 10) + "", j = (j = i.length) > 3 ? j % 3 : 0;
	return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
};
