//////////////////////////////////////////
// script calcul ta ///////////////////////
///////////////////////////////////////////

function refreshCSA(val){
	document.calcul_ta.t_csa.value = val.replace(",",".") + "%";
	document.calcul_ta.tauxCSA.value = val.replace(",",".");
}

function script_calcul_ta(sta_id)
{
// récupérer valeurs des radios

var region = document.calcul_ta.ent_cp.value.substring(0,2);  // zone géographique
if ((region != parseInt('57'))||(region != parseInt('67'))||(region != parseInt('68'))||(region != parseInt('97')))
{
var zc = '0';
}
if ((region == parseInt('57'))||(region == parseInt('67'))||(region == parseInt('68')))
{
var zc = '1';
}
if (region == parseInt('97'))
{
var zc = '2';
}

var type_cout = '0'; // Montant apprentis

// pourcentage pour calcul de la taxe brute

if(zc == '0')
{
    var ptb = 0.5;
    document.calcul_ta.t_b.value = ptb+'%';
}
else if(zc == '1')
{
    var ptb = 0.26;
    document.calcul_ta.t_b.value = ptb+'%';
}
else if(zc == '2')
{
    var ptb = 0.5;
    document.calcul_ta.t_b.value = ptb+'%';
}

// contrôle exonération (ne vide pas les champs)

if(document.calcul_ta.ta_nb_app.value == '')
{
document.calcul_ta.ta_nb_app.value = '0';
}

if((document.calcul_ta.ta_massal.value <= parseInt(smic_annuel)) && (document.calcul_ta.ta_nb_app.value != '0'))
{
document.calcul_ta.reset();
alert('Entreprise exonérée !\nLe simulateur a été ré-initialisé...');
}
else
{
}

// calcul de la taxe

if(document.calcul_ta.ta_massal.value == '')
{
document.calcul_ta.ta_massal.value = '0';
}

// champ MS
document.calcul_ta.r_ms.value = number_format(document.calcul_ta.ta_massal.value, 0, ',', ' ');

// champ V
var tb_v = Math.round((document.calcul_ta.ta_massal.value * ptb)/100);
tb = number_format(tb_v, 0, ',', ' ');
document.calcul_ta.r_tb.value = tb;

// champ FNDMA
if(zc == '2')
{
var fndma = Math.round((tb_v * 12)/100);
fndma = number_format(fndma, 0, ',', ' ');
document.calcul_ta.r_fndma.value = fndma;
document.calcul_ta.t_fndma.value = '12%';
}
else
{
var fndma = Math.round((tb_v * 22)/100);
fndma = number_format(fndma, 0, ',', ' ');
document.calcul_ta.r_fndma.value = fndma;
document.calcul_ta.t_fndma.value = '22%';
}

if(type_cout == '0') // si non prise en compte des coûts par apprenti
{
    if(zc == '0')
    {
        var qa = Math.round((tb_v * 31)/100); // calcul du champ qa
        qa = number_format(qa, 0, ',', ' ');
        document.calcul_ta.r_qa.value = qa; 
        document.calcul_ta.t_qa.value = '31%'; // maj infos qa
    }
    else if(zc == '1')
    {
        var qa = Math.round((tb_v * 78)/100); // calcul du champ qa
        qa = number_format(qa, 0, ',', ' ');
        document.calcul_ta.r_qa.value = qa; 
        document.calcul_ta.t_qa.value = '78%'; // maj infos qa
    }
    else if(zc == '2')
    {
        var qa = Math.round((tb_v * 41)/100); // calcul du champ qa
        qa = number_format(qa, 0, ',', ' ');
        document.calcul_ta.r_qa.value = qa; 
        document.calcul_ta.t_qa.value = '41%'; // maj infos qa
    }
}

// champs déductions stagiaires
if(zc == '1') // hors est
{
    document.calcul_ta.ta_stoq.value = 0;
    document.calcul_ta.ta_stcm.value = 0;
    document.calcul_ta.ta_stcs.value = 0;
    document.calcul_ta.t_aut.value = 0;
    
    var sa_saisi = document.calcul_ta.ta_stoq.value;
    var sb_saisi = document.calcul_ta.ta_stcm.value;
    var sc_saisi = document.calcul_ta.ta_stcs.value;
    
    var total_saisi_v = parseInt(sa_saisi) + parseInt(sb_saisi) + parseInt(sc_saisi);
    var total_saisi = number_format(total_saisi_v, 0, ',', ' ');
    document.calcul_ta.t_total.value = total_saisi;
}
else
{
    var plafond_v = Math.round((tb_v * 4)/100); // montant déductible
    var plafond = number_format(plafond_v, 0, ',', ' ');
    document.calcul_ta.t_aut.value = plafond;
    
    if(document.calcul_ta.ta_stoq.value == '') // champs à zéro si vide
    {
    document.calcul_ta.ta_stoq.value = 0;
    }
    if(document.calcul_ta.ta_stcm.value == '')
    {
    document.calcul_ta.ta_stcm.value = 0;
    }
    if(document.calcul_ta.ta_stcs.value == '')
    {
    document.calcul_ta.ta_stcs.value = 0;
    }
    
    var sa_saisi = document.calcul_ta.ta_stoq.value; // récupérer la valeur des champs
    var sb_saisi = document.calcul_ta.ta_stcm.value;
    var sc_saisi = document.calcul_ta.ta_stcs.value;
    
    var total_saisi = parseInt(sa_saisi) + parseInt(sb_saisi) + parseInt(sc_saisi); // faire le total des champs saisis
    
    var diff_sta_v = plafond_v - total_saisi; // calculer la différence entre plafond et total saisi
    var diff_sta_v = parseInt(diff_sta_v);
    
    if(diff_sta_v < 0) // si différence négative on plafonne la saisie
    {
        if(sta_id == 'a')
        {
        document.calcul_ta.ta_stoq.value = plafond_v - (parseInt(sb_saisi) + parseInt(sc_saisi));
        }
        else if(sta_id == 'b')
        {
        document.calcul_ta.ta_stcm.value = plafond_v - (parseInt(sa_saisi) + parseInt(sc_saisi));
        }
        else if(sta_id == 'c')
        {
        document.calcul_ta.ta_stcs.value = plafond_v - (parseInt(sa_saisi) + parseInt(sb_saisi));
        }
        else if(!sta_id)
        {
        document.calcul_ta.ta_stoq.value = 0;
        document.calcul_ta.ta_stcm.value = 0;
        document.calcul_ta.ta_stcs.value = 0;
        }
    }
    
    var sa_saisi = document.calcul_ta.ta_stoq.value; // récupérer la valeur des champs
    var sb_saisi = document.calcul_ta.ta_stcm.value;
    var sc_saisi = document.calcul_ta.ta_stcs.value;
    
    var total_saisi_v = parseInt(sa_saisi) + parseInt(sb_saisi) + parseInt(sc_saisi); // faire le total des champs saisis
    var total_saisi = number_format(total_saisi_v, 0, ',', ' ');
    document.calcul_ta.t_total.value = total_saisi;
}

// champ W

document.calcul_ta.r_abc.value = number_format(total_saisi_v, 0, ',', ' ');

// champs A B C
if(zc == '1')
{
    document.calcul_ta.r_a.value = 0;
    document.calcul_ta.r_b.value = 0;
    document.calcul_ta.r_c.value = 0;
}
else
{
    if(tb_v <= repartition_stagiaire_defaut)
    {
        document.calcul_ta.r_a.value = 0;
        var champ_b = ((tb_v * 47)/100) - parseInt(sb_saisi);
        champ_b = number_format(champ_b, 0, ',', ' ');
        document.calcul_ta.r_b.value = champ_b;
        document.calcul_ta.r_c.value = 0;
    }
    else
    {
        var champ_a = ((((tb_v * 47)/100)*40)/100) - parseInt(sa_saisi);
        champ_a = number_format(champ_a, 0, ',', ' ');
        document.calcul_ta.r_a.value = champ_a;
        
        var champ_b = ((((tb_v * 47)/100)*40)/100) - parseInt(sb_saisi);
        champ_b = number_format(champ_b, 0, ',', ' ');
        document.calcul_ta.r_b.value = champ_b;
        
        var champ_c = ((((tb_v * 47)/100)*20)/100) - parseInt(sc_saisi);
        champ_c = number_format(champ_c, 0, ',', ' ');
        document.calcul_ta.r_c.value = champ_c;
    }

}

// champ X
var total_x_v = tb_v - total_saisi_v;
total_x = number_format(total_x_v, 0, ',', ' ');
document.calcul_ta.r_total.value = total_x;

// champ Y
var m_csa = 0;

m_csa = Math.round((document.calcul_ta.ta_massal.value * document.calcul_ta.tauxCSA.value)/100);
 
document.calcul_ta.r_csa.value = number_format(m_csa, 0, ',', ' ');
document.calcul_ta.t_csa.value = document.calcul_ta.tauxCSA.value + "%";

// champ Z
var cda_v = Math.round((document.calcul_ta.ta_massal.value * 0.18)/100);
cda = number_format(cda_v, 0, ',', ' ');
document.calcul_ta.r_cda.value = cda;

// Règlement
var reglement = total_x_v + m_csa + cda_v;
reglement = number_format(reglement, 0, ',', ' ');
document.calcul_ta.r_reglement.value = reglement;
}

///////////////////////////////////////////
// controle champs de saisi ///////////////
///////////////////////////////////////////

function controle_saisi(champ)
{
// supprimer le zéro en début d'une chaine à plus de deux caractères
var champ_val = champ.value;

for(i = 0; i < champ_val.length; i++)
{
    if((champ_val.length > 1) && (champ_val.charAt(0) == '0'))
    {
    var taille_champ = champ_val.length;
    champ_val = champ_val.substr(1, taille_champ)
    champ.value = champ_val;
    }
}

// contrôler le type de caractère saisi
var chiffres = new RegExp("[0-9]");
var verif;

for(x = 0; x < champ.value.length; x++)
{
verif = chiffres.test(champ.value.charAt(x));
if(verif == false){champ.value = champ.value.substr(0,x) + champ.value.substr(x+1,champ.value.length-x+1); x--;}
}
}

///////////////////////////////////////////
// séparateur des milliers ////////////////
///////////////////////////////////////////

function number_format( number, decimals, dec_point, thousands_sep )
{
    // http://kevin.vanzonneveld.net
    // +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     bugfix by: Michael White (http://getsprink.com)
    // +     bugfix by: Benjamin Lupton
    // +     bugfix by: Allan Jensen (http://www.winternet.no)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +     bugfix by: Howard Yeend
    // +    revised by: Luke Smith (http://lucassmith.name)
    // +     bugfix by: Diogo Resende
    // *     example 1: number_format(1234.56);
    // *     returns 1: '1,235'
    // *     example 2: number_format(1234.56, 2, ',', ' ');
    // *     returns 2: '1 234,56'
    // *     example 3: number_format(1234.5678, 2, '.', '');
    // *     returns 3: '1234.57'
    // *     example 4: number_format(67, 2, ',', '.');
    // *     returns 4: '67,00'
 
    var n = number, prec = decimals, dec = dec_point, sep = thousands_sep;
    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);
    sep = sep == undefined ? ',' : sep;
 
    var s = n.toFixed(prec),
        abs = Math.abs(n).toFixed(prec),
        _, i;
 
    if (abs > 1000) {
        _ = abs.split(/\D/);
        i = _[0].length % 3 || 3;
 
        _[0] = s.slice(0,i + (n < 0)) +
              _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
 
        s = _.join(dec || '.');
    } else {
        s = abs.replace('.', dec_point);
    }
 
    return s;
}

function check()
{
    if(document.calcul_ta.ent_rs.value == '')
    {
    alert('Le champ "Raison sociale" est obligatoire !')
    return false;
    }
    
    if(document.calcul_ta.ent_siret.value == '')
    {
    alert('Le champ "SIRET" est obligatoire !')
    return false;
    }
    
    if(document.calcul_ta.ent_cp.value == '')
    {
    alert('Le champ "Code postal" est obligatoire !')
    return false;
    }
    
    if(document.calcul_ta.ent_cp.value == '')
    {
    alert('Le champ "Code postal" est obligatoire !')
    return false;
    }
    
    if(document.calcul_ta.ent_ville.value == '')
    {
    alert('Le champ "Ville" est obligatoire !')
    return false;
    }
    
    if(document.calcul_ta.ta_massal.value == '')
    {
    alert('Le champ "Masse salariale" est obligatoire !')
    return false;
    }
    
    if(document.calcul_ta.ta_nb_sal.value == '')
    {
    alert('Le champ "Nombre de salariés" est obligatoire !')
    return false;
    }
    
    if(document.calcul_ta.ta_nb_app.value == '')
    {
    alert('Le champ "Nombre d\'apprentis" est obligatoire !')
    return false;
    }
    
    // Expédier le formulaire

    document.calcul_ta.submit();
}

