// JavaScript Document

/* Fonctions JQuery pour les champs */

/* Fonctions de calculs et vérifications sur formulaires */

/**
 *
 * Formulaire intervention
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_int(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var dialog;
        var $datefinf;
        var $dateprevf;
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';

            $datefinf = $('#datefinf');

            if ($datefinf.length > 0) {
                if ($datefinf.val() != '') {
                    messerr += chk_chp_ok_int('codecli,codetec,idsite,lsthnc,lsttded,mat,pbm,gar,tect,travail,dateprevf,codereg');
                }
            }

            $dateprevf = $('#dateprevf');
            if (($dateprevf.length > 0) && (messerr == '')) {
                if ($dateprevf.val() != '') {
                    messerr += chk_chp_ok_int('codecli,codetec,idsite,lsthnc,lsttded,mat,pbm,gar,tect,travail');
                }
            }

            if (messerr == '') {
                messerr += chk_chp_ok_int('codecli,codetec,idsite,lsthnc,lsttded,mat,pbm,gar');
            }

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                // On alerte (si nécessaire) sur le fait que l'intervention n'est pas affectée
                if ($datefinf.val() != '') {
                    if ($('#codetec').val() == '-1') {
                        dialog = new Messi('Intervention non affectée - merci de confirmer',
                            {
                                title: 'Confirmation',
                                buttons: [{id: 0, label: 'Confirmer', val: 'Y'},
                                    {id: 1, label: 'Annuler', val: 'N'}],
                                titleClass: 'warning',
                                modal: true,
                                width: '700px',
                                callback: function (val) {
                                    if (val == 'Y') {
                                        $('#nbutton').val(idbut);
                                        readok_all();
                                        $('#' + idform).submit();
                                        return true;
                                    } else {
                                        return false;
                                    }
                                }
                            });
                    }
                    else {
                        $('#nbutton').val(idbut);
                        readok_all();
                        $('#' + idform).submit();
                        return true;

                    }
                }
                else {
                    $('#nbutton').val(idbut);
                    readok_all();
                    $('#' + idform).submit();
                    return true;
                }
            }
        }
        else {
            return false;
        }
    });
}

/**
 *
 * Formulaire facture intervention
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_intf(idbut, idform, fmt, tab_champ, idpays, lng) {

    $('#' + idbut).click(function () {
        var val_fnulle;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = true;
        val_fnulle = parseInt($('#fnulle').val());
        if (val_fnulle == 0) {
            formok = VForm(idform, tab_champ, val_codepays, lng);
        }
        if (formok == true) {
            $('#nbutton').val(idbut);
            readok_all();
            $('#' + idform).submit();
            return true;
        }
        else {
            return false;
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_inth(idbut, idform, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var val_sel;
        var formok;
        var tab_chp_to_check;
        var taba_chp_to_check;
        var tabr_chp_to_check;
        var val_depl;
        var val_fait;
        var val_travail;
        var val_typmt;
        var messerr;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';
            val_fait = $('#fait').val();
            val_travail = $('#travail').val();

            if ((val_fait == '') && (val_travail == '')) {
                messerr += '<br />Vous devez saisir du travail effectué';
            }

            if (chk_heuredif('heurea', false, '', 'heured', '')) {
                messerr += '<br />Heures de début et de fin identiques';
            }
            else {
                if (chk_heuredif('heurea', false, 'heured', '', '')) {
                    messerr += '<br />Heures de fin inférieure à heure de début';
                }
            }

            val_depl = 0;
            val_sel = $('#codelieu').val();
            if (val_sel != '') {
                val_depl = Number($('#_' + val_sel).val());
            }
            if (val_depl == 1) // Déplacement : on doit vérifier les champs nécessaires
            {
                tab_chp_to_check = [
                    'a_mt',
                    'r_mt'
                ];

                taba_chp_to_check = [
                    'a_heured',
                    'a_heuref',
                    'a_km',
                    'a_fa'
                ];

                tabr_chp_to_check = [
                    'r_heured',
                    'r_heuref',
                    'r_km',
                    'r_fa'
                ];

                $.each(tab_chp_to_check, function (key, value) {
                    var val_fad;
                    var val_fa;
                    var val_cd;
                    var val_coutmt;
                    var val_km;
                    var $value = $('#' + value);
                    var val_champ = $value.val();
                    switch (value) {
                        // On teste l'aller
                        case 'a_mt' :
                            if (val_champ != '') {
                                val_coutmt = $('#M_' + val_champ).val();
                                if (Number(val_coutmt) == 1) {
                                    val_cd = 0;
                                    val_cd = Number($('#a_cd').val());
                                    if (val_cd == 0) {
                                        messerr += '<br />Manque coût du transport';
                                    }
                                }
                                $.each(taba_chp_to_check, function (keya, valuea) {
                                    var $valuea = $('#' + valuea);
                                    var val_champa = $valuea.val();
                                    switch (valuea) {
                                        case 'a_heured' :
                                            if (val_champa != '') {
                                                if (chk_heuredif(valuea, false, 'heurea,heured,a_heuref,r_heured,r_heuref', '', '')) {
                                                    messerr += '<br />Problème heure début déplacement aller';
                                                }
                                            }
                                            else {
                                                messerr += '<br />Manque horaire départ aller';
                                            }
                                            break;
                                        case 'a_heuref' :
                                            if (val_champa != '') {
                                                if (chk_heuredif(valuea, false, 'heurea,heured,a_heuref,r_heured,r_heuref', '', 'a_heured')) {
                                                    messerr += '<br />Problème heure fin déplacement aller';
                                                }
                                            }
                                            else {
                                                messerr += '<br />Manque horaire arrivée aller';
                                            }
                                            break;
                                        case 'a_km' :
                                            //val_km = 0;
                                            val_km = Number(val_champa);
                                            if (val_km == 0) {
                                                messerr += '<br />Manque kilométrage aller';
                                            }
                                            break;
                                        case 'a_fa' :
                                            //val_fa = 0;
                                            val_fa = Number(val_champa);

                                            if (val_fa > 0) {
                                                //val_fad = '';
                                                val_fad = $('#a_fad').val();
                                                if (val_fad == '') {
                                                    messerr += '<br />Manque détail frais aller';
                                                }
                                            }
                                            break;
                                        default :
                                            break;
                                    }
                                });
                            }
                            else {
                                messerr += '<br />Manque mode de transport aller';
                            }
                            break;
                        // On teste le retour
                        case 'r_mt' :
                            if (val_champ != '') {
                                val_typmt = Number(val_champ);
                                val_coutmt = $('#M_' + val_champ).val();
                                if (Number(val_coutmt) == 1) {
                                    //val_cd = 0;
                                    val_cd = Number($('#r_cd').val());
                                    if (val_cd == 0) {
                                        messerr += '<br />Manque coût du transport';
                                    }
                                }
                                if (val_typmt != -1) {
                                    $.each(tabr_chp_to_check, function (keyr, valuer) {
                                        var $valuer = $('#' + valuer);
                                        var val_champr = $valuer.val();
                                        switch (valuer) {
                                            case 'r_heured' :
                                                if (val_champr != '') {
                                                    if (chk_heuredif(valuer, false, 'r_heuref', '', 'heurea,heured,a_heured,a_heuref')) {
                                                        messerr += '<br />Problème heure début déplacement retour';
                                                    }
                                                }
                                                else {
                                                    messerr += '<br />Manque horaire départ retour';
                                                }
                                                break;
                                            case 'r_heuref' :
                                                if (val_champr != '') {
                                                    if (chk_heuredif(valuer, false, '', '', 'heurea,heured,a_heured,a_heuref,r_heured')) {
                                                        messerr += '<br />Problème heure fin déplacement retour';
                                                    }
                                                }
                                                else {
                                                    messerr += '<br />Manque horaire arrivée retour';
                                                }
                                                break;
                                            case 'r_km' :
                                                //val_km = 0;
                                                val_km = Number($('#r_km').val());
                                                if (val_km == 0) {
                                                    messerr += '<br />Manque kilométrage retour';
                                                }
                                                break;
                                            case 'r_fa' :
                                                //val_fa = 0;
                                                val_fa = Number($('#r_fa').val());

                                                if (val_fa > 0) {
                                                    //val_fad = '';
                                                    val_fad = $('#r_fad').val();
                                                    if (val_fad == '') {
                                                        messerr += '<br />Manque détail frais retour retour';
                                                    }
                                                }
                                                break;
                                            default :
                                                break;
                                        }
                                    });
                                }
                            }
                            else {
                                messerr += '<br />Manque mode de transport retour';
                            }
                            break;
                    }
                });
            }

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
        else {
            return false;
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_intp(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var val_idsite;
        var val_dureem;
        var val_hrdv;
        var val_mrdv;
        var val_genpla;
        var $mrdv;
        var $genpla;
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';
            $genpla = $('#genpla');
            $mrdv = $('#mrdv');

            // Génération du planning
            val_genpla = parseInt($genpla.val());
            val_mrdv = parseInt($mrdv.val());

            if ((val_genpla == 1) || (val_mrdv == 1)) {
                val_hrdv = $genpla.val();
                val_dureem = $mrdv.val();

                if ((val_hrdv == '') || (val_dureem == '')) {
                    messerr += '<br />Si vous choisissez de générer un planning ou une multi inteventions, il faut choisir une heure et une durée';
                }
            }

            // Site intervention
            val_idsite = $('#idsite').val();

            if (val_idsite == '') {
                messerr += '<br />Vous devez choisir un site d\'intervention';
            }

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
        else {
            return false;
        }
    });
}


/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_cocl(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';

            messerr += chk_chp_ok_cocl('sitep,cope,nbh,matos,pu');

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
        else {
            return false;
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_cocla(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';

            messerr += chk_chp_ok_cocl('sitep,matos,pu');

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
        else {
            return false;
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_coclclos(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';

            if ($('#lsthnc').length > 1) {
                messerr += '<br />Vous devez choisir un mode de report des heures non consommées';
            }

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
        else {
            return false;
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_ot(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var $dateprevf;
        var $datefinf;
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';

            $datefinf = $('#datefinf');
            if ($datefinf.length > 0) {
                if ($datefinf.val() != '') {
                    messerr += chk_chp_ok_ot('daterdvf,hrdv,mat,pbm,gar,codetec,tect,fait,dateprevf');
                }
            }

            $dateprevf = $('#dateprevf');
            if (($dateprevf.length > 0) && (messerr == '')) {
                if ($dateprevf.val() != '') {
                    messerr += chk_chp_ok_ot('daterdvf,hrdv,mat,pbm,gar,codetec,tect,fait');
                }
            }

            if (messerr == '') {
                messerr += chk_chp_ok_ot('daterdvf,hrdv,mat,pbm,gar');
            }

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
        else {
            return false;
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_oth(idbut, idform, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';
            if (chk_heuredif('heurea', false, '', 'heured', '')) {
                messerr += '<br />Heures de début et de fin identiques';
            }
            else {
                if (chk_heuredif('heurea', false, 'heured', '', '')) {
                    messerr += '<br />Heures de fin inférieure à heure de début';
                }
            }

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
        else {
            return false;
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_cli(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var val_telp;
        var val_fax;
        var val_email;
        var val_prev;
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';

            val_prev = parseInt($("#typ_prev").find("input[type='radio']:checked").val());

            switch (val_prev) {
                case 0 :
                    val_email = $("#email").val();
                    if (val_email == '') {
                        messerr += "Vous n'avez pas saisi d'adresse email et coché 'prévenir par email'";
                    }
                    break;
                case 2 :
                    val_fax = $("#fax").val();
                    if (val_fax == '') {
                        messerr += "Vous n'avez pas saisi de numéro de télécopie et avez coché 'prévenir par fax'";
                    }
                    break;
                case 3 :
                    val_telp = $("#telp").val();
                    if (val_telp == '') {
                        messerr += "Vous n'avez pas saisi de numéro de téléphone portable et avez coché 'prévenir par SMS'";
                    }
                    break;
                default :
                    break;
            }

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
        else {
            return false;
        }
    });

}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_ope(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var dialog;
        var $dateoutf;
        var $dconges;
        var $fconges;
        var val_fconges;
        var val_dconges;
        var val_dateout;
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';

            $dateoutf = $('#dateoutf');
            val_dateout = '';
            if ($dateoutf.length > 0) {
                val_dateout = $dateoutf.val();
            }
            $dconges = $('#dconges');
            val_dconges = '';
            if ($dconges.length > 0) {
                val_dconges = $dconges.val();
            }
            $fconges = $('#fconges');
            val_fconges = '';
            if ($fconges.length > 0) {
                val_fconges = $fconges.val();
            }

            if (val_dateout == '') {
                if (val_dconges != '') {
                    if (val_fconges == '') {
                        messerr += "Date de fin de congés non saisie";
                    }
                }
                else {
                    if (val_fconges != '') {
                        messerr += "Date de début de congés non saisie";
                    }
                }

                if (messerr != '') {
                    warn_txt(messerr);
                    return false;
                }
                else {
                    $('#nbutton').val(idbut);
                    readok_all();
                    $('#' + idform).submit();
                    return true;
                }
            }
            else {
                messerr += "Départ de l'opérateur";
                if ((val_dconges != '') || (val_fconges != '')) {
                    messerr += "<br />Les dates de congés seront annulées";
                }

                dialog = new Messi(messerr,
                    {
                        title: 'Confirmation',
                        buttons: [{id: 0, label: 'Confirmer', val: 'Y'},
                            {id: 1, label: 'Annuler', val: 'N'}],
                        titleClass: 'warning',
                        modal: true,
                        width: '700px',
                        callback: function (val) {
                            if (val == 'Y') {
                                $dconges.val('');
                                $fconges.val('');
                                $('#nbutton').val(idbut);
                                readok_all();
                                $('#' + idform).submit();
                                return true;
                            } else {
                                return false;
                            }
                        }
                    });
            }
        }
        else {
            return false;
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_tec(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var dialog;
        var val_fconges;
        var val_dconges;
        var val_dateout;
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';

            val_dateout = $('#dateoutf').val();
            val_dconges = $('#dconges').val();
            val_fconges = $('#fconges').val();

            if (val_dateout == '') {
                if (val_dconges != '') {
                    if (val_fconges == '') {
                        messerr += "Date de fin de congés non saisie";
                    }
                }
                else {
                    if (val_fconges != '') {
                        messerr += "Date de début de congés non saisie";
                    }
                }

                if (messerr != '') {
                    warn_txt(messerr);
                    return false;
                }
                else {
                    $('#nbutton').val(idbut);
                    readok_all();
                    $('#' + idform).submit();
                    return true;
                }
            }
            else {
                messerr += "Départ du technicien";
                if ((val_dconges != '') || (val_fconges != '')) {
                    messerr += "Les dates de congés seront annulées";
                }

                dialog = new Messi(messerr,
                    {
                        title: 'Confirmation',
                        buttons: [{id: 0, label: 'Confirmer', val: 'Y'},
                            {id: 1, label: 'Annuler', val: 'N'}],
                        titleClass: 'warning',
                        modal: true,
                        width: '700px',
                        callback: function (val) {
                            if (val == 'Y') {
                                $('#dconges').val('');
                                $('#fconges').val('');
                                $('#nbutton').val(idbut);
                                readok_all();
                                $('#' + idform).submit();
                                return true;
                            } else {
                                return false;
                            }
                        }
                    });
            }
        }
        else {
            return false;
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_ta(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var val_tra;
        var val_doss;
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';

            val_doss = parseInt($('#doss').val());
            val_tra = parseInt($('#tra').val());

            if ((val_doss == 0) && (val_tra == 0)) {
                messerr += 'Le type action doit être affecté au moins à un type de suivi';
            }

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
        else {
            return false;
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_retd(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var val_rma;
        var val_daterepf;
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';

            val_daterepf = $('#daterepf').val();
            val_rma = $('#rma').val();
            if (val_daterepf != '') {
                if (val_rma == '') {
                    messerr += '<br />Vous devez saisir un numéro de retour';
                }
            }
            else {
                if (val_rma != '') {
                    messerr += '<br />Vous devez saisir une date de réponse';
                }
            }

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
        else {
            return false;
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_rete(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var val_bord;
        var val_codeme;
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';

            val_codeme = $('#codeme').val();
            val_bord = $('#bord').val();
            if (val_codeme != '') {
                if (val_bord == '') {
                    messerr += '<br />Vous devez saisir un numéro de bordereau';
                }
            }
            else {
                if (val_bord != '') {
                    messerr += '<br />Vous devez saisir un mode d\'envoi';
                }
            }

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
        else {
            return false;
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_retr(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var val_bord;
        var val_codeme;
        var val_fait;
        var val_raison;
        var val_ns;
        var val_avoir;
        var val_typeope;
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';

            val_typeope = parseInt($('#typeope').val());
            switch (val_typeope) {
                case 1 :
                    val_avoir = $('#avoir').val();
                    if (val_avoir == '') {
                        messerr += '<br />Vous devez saisir un numéro d\'avoir';
                    }
                    break;
                case 2 :
                    val_ns = $('#ns').val();
                    if (val_ns == '') {
                        messerr += '<br />Vous devez saisir un numéro de série';
                    }
                    break;
                case 4 :
                case 6 :
                    val_raison = $('#raison').val();
                    if (val_raison == '') {
                        messerr += '<br />Vous devez saisir un motif';
                    }
                    break;
                case 5 :
                    val_fait = $('#fait').val();
                    if (val_fait == '') {
                        messerr += '<br />Vous devez saisir le travail effectué';
                    }
                    break;
                default :
                    break;
            }


            val_codeme = $('#codeme').val();
            val_bord = $('#bord').val();
            if (val_codeme != '') {
                if (val_bord == '') {
                    messerr += '<br />Vous devez saisir un numéro de bordereau';
                }
            }
            else {
                if (val_bord != '') {
                    messerr += '<br />Vous devez saisir un mode d\'envoi';
                }
            }

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
        else {
            return false;
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_clcg(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            select_all_id('clcclcg');
            $('#nbutton').val(idbut);
            readok_all();
            $('#' + idform).submit();
            return true;
        }
        else {
            return false;
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_upll(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var val_upload;
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';

            val_upload = $('#upload').val();
            if (val_upload == '') {
                messerr += '<br />Vous devez choisir un fichier à télécharger';
            }

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $("#waitajaxOverlay").show();
                $('#no_wait').hide();
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
        else {
            return false;
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 */
function init_valid_upllcge(idbut, idform) {
    $('#' + idbut).click(function () {
        var messerr = '';

        var val_upload = $('#upload').val();
        if (val_upload == '') {
            messerr += '<br />Vous devez choisir un fichier à télécharger';
        }

        if (messerr != '') {
            warn_txt(messerr);
            return false;
        }
        else {
            $("#waitajaxOverlay").show();
            $('#no_wait').hide();
            $('#nbutton').val(idbut);
            readok_all();
            $('#' + idform).submit();
            return true;
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_robj(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var val_assu;
        var val_mob;
        var tab_chp_to_check;
        var val_ns;
        var val_mque;
        var pbm_champ;
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';
            pbm_champ = false;

            // Test si objet avec marque
            val_mque = parseInt($('#tomque').val());
            if (val_mque == 1) {
                if ($('#codemque').val() == '') {
                    messerr += '<br />Merci de choisir une marque';
                }
            }

            // Test si objet avec numéro de série
            val_ns = parseInt($('#tons').val());
            if (val_ns == 1) {
                if ($('#codemque').val() == '') {
                    messerr += '<br />Merci de saisir un numéro de série';
                }
            }

            tab_chp_to_check = [];
            // Test si objet immobile
            val_mob = parseInt($('#tomob').val());
            if (val_mob == 0) {
                tab_chp_to_check = [
                    'adr1',
                    'pays',
                    'dep',
                    'ville'
                ];

                $.each(tab_chp_to_check, function (key, value) {
                    var val_champ = $('#' + value).val();
                    if (val_champ == '') {
                        pbm_champ = true;
                    }
                });

                if (pbm_champ == true) {
                    messerr += '<br />Objet immobile : merci de compléter les champs obligatoires';
                }
            }

            // Test si objet assuré
            val_assu = parseInt($('#toassu').val());
            if (val_assu == 1) {
                tab_chp_to_check = [
                    'rassurcodemque',
                    'rassurnumco',
                    'rassurcotis',
                    'rassurva'
                ];

                pbm_champ = false;
                $.each(tab_chp_to_check, function (key, value) {
                    var val_champ = $('#' + value).val();
                    if (val_champ == '') {
                        pbm_champ = true;
                    }
                });

                if (pbm_champ == true) {
                    messerr += '<br />Objet assuré : merci de compléter les champs obligatoires';
                }
            }

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
        else {
            return false;
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_dosd(idbut, idform, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var tab_chp_to_check;
        var val_sel;
        var val_depl;
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';

            if (chk_heuredif('heured', false, '', 'heuref', '')) {
                messerr += '<br />Heures de début et de fin identiques';
            }
            else {
                if (chk_heuredif('heured', false, 'heuref', '', '')) {
                    messerr += '<br />Heures de fin inférieure à heure de début';
                }
            }

            // Vérification du type d'action
            val_depl = 0;
            val_sel = $('#typea').val();
            if (val_sel != '') {
                val_depl = Number($('#_' + val_sel).val());
            }
            if (val_depl == 1) // Déplacement : on doit vérifier les champs nécessaires
            {
                tab_chp_to_check = [
                    'a_mt',
                    'r_mt',
                    'a_heured',
                    'a_heuref',
                    'r_heured',
                    'r_heuref',
                    'a_km',
                    'r_km',
                    'a_fa',
                    'r_fa'
                ];

                $.each(tab_chp_to_check, function (key, value) {
                    var val_fad;
                    var val_fa;
                    var val_km;
                    var val_cd;
                    var val_coutmt;
                    var val_champ = $('#' + value).val();
                    switch (value) {
                        case 'a_mt' :
                        case 'r_mt' :
                            if (val_champ != '') {
                                val_coutmt = $('#M_' + val_champ).val();
                                if (Number(val_coutmt) == 1) {
                                    val_cd = 0;
                                    if (value == 'a_mt') {
                                        val_cd = Number($('#a_cd').val());
                                    }
                                    else {
                                        val_cd = Number($('#r_cd').val());
                                    }
                                    if (val_cd == 0) {
                                        messerr += '<br />Manque coût du transport';
                                    }
                                }
                            }
                            else {
                                messerr += '<br />Manque mode de transport';
                            }
                            break;
                        case 'a_heured' :
                            if (val_champ != '') {
                                if (chk_heuredif(value, false, 'heured,heuref,a_heuref,r_heured,r_heuref', '', '')) {
                                    messerr += '<br />Problème heure début déplacement aller';
                                }
                            }
                            else {
                                messerr += '<br />Manque horaire départ aller';
                            }
                            break;
                        case 'a_heuref' :
                            if (val_champ != '') {
                                if (chk_heuredif(value, false, 'heured,heuref,a_heuref,r_heured,r_heuref', '', 'a_heured')) {
                                    messerr += '<br />Problème heure fin déplacement aller';
                                }
                            }
                            else {
                                messerr += '<br />Manque horaire arrivée aller';
                            }
                            break;
                        case 'r_heured' :
                            if (val_champ != '') {
                                if (chk_heuredif(value, false, 'r_heuref', '', 'heured,heuref,a_heured,a_heuref')) {
                                    messerr += '<br />Problème heure début déplacement retour';
                                }
                            }
                            else {
                                messerr += '<br />Manque horaire départ retour';
                            }
                            break;
                        case 'r_heuref' :
                            if (val_champ != '') {
                                if (chk_heuredif(value, false, '', '', 'heured,heuref,a_heured,a_heuref,r_heured')) {
                                    messerr += '<br />Problème heure fin déplacement retour';
                                }
                            }
                            else {
                                messerr += '<br />Manque horaire arrivée retour';
                            }
                            break;
                        case 'a_km' :
                        case 'r_km' :
                            val_km = 0;
                            if (value == 'a_km') {
                                val_km = Number($('#a_km').val());
                            }
                            else {
                                val_km = Number($('#r_km').val());
                            }
                            if (val_km == 0) {
                                messerr += '<br />Manque kilométrage';
                            }
                            break;
                        case 'a_fa' :
                        case 'r_fa' :
                            val_fa = 0;
                            if (value == 'a_fa') {
                                val_fa = Number($('#a_fa').val());
                            }
                            else {
                                val_fa = Number($('#r_fa').val());
                            }

                            if (val_fa > 0) {
                                val_fad = '';
                                if (value == 'a_fa') {
                                    val_fad = $('#a_fad').val();
                                }
                                else {
                                    val_fad = $('#r_fad').val();
                                }
                                if (val_fad == '') {
                                    messerr += '<br />Manque détail frais';
                                }
                            }
                            break;
                        default :
                            break;
                    }
                });
            }

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
        else {
            return false;
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 * @param idtec
 */
function init_valid_stat_tec(idbut, idform, fmt, tab_champ, idpays, lng, idtec) {
    $('#' + idbut).click(function () {
        var tecerr;
        var alltec;
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';

            if (idtec != '') {
                alltec = false;
                tecerr = false;
                $('#' + idtec + ' option:selected').each(function () {
                    if ($(this).val() == '*') {
                        alltec = true;
                    }
                    else {
                        if (alltec == true) {
                            tecerr = true;
                        }
                    }
                });
                if (tecerr == true) {
                    messerr += '<br />Impossible de sélectionner "Tous" et d\'autres techniciens';
                }
            }

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
        else {
            return false;
        }
    });

}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_pevt(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var $rat;
        var val_rat;
        var val_typrat;
        var val_dest;
        var val_typdest;
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';

            val_typdest = parseInt($('#typdest').val());
            val_dest = $('#dest').val();
            if ((val_typdest >= 1) && (val_dest == '')) {
                messerr += '<br />Il faut choisir un destinataire';
            }

            val_typrat = parseInt($('#typrat').val());
            $rat = $('#rat');
            val_rat = $rat.val();
            if ((val_typrat >= 1) && (val_rat == '')) {
                messerr += '<br />Il faut choisir un code de rattachement';
            }

            if ((val_typrat <= 0) && (val_rat != '')) {
                messerr += '<br />Pas besoin de choisir un code de rattachement';
                $rat.val('');
            }

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                if (idbut == 'del') {
                    $('#td').val('del');
                }
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
        else {
            return false;
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_tvarea(idbut, idform, fmt, tab_champ, idpays, lng) {

    $('#' + idbut).click(function () {
        var val_tva2;
        var val_tva1;
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';
            val_tva1 = $('#tva1').val();
            val_tva2 = $('#tva2').val();
            if (val_tva1 == val_tva2) {
                messerr += '<br />Il faut choisir 2 TVA différentes';
            }
            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
        else {
            return false;
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_tpfrea(idbut, idform, fmt, tab_champ, idpays, lng) {

    $('#' + idbut).click(function () {
        var val_tpf2;
        var val_tpf1;
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';
            val_tpf1 = $('#tpf1').val();
            val_tpf2 = $('#tpf2').val();
            if (val_tpf1 == val_tpf2) {
                messerr += '<br />Il faut choisir 2 taxes différentes';
            }
            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
        else {
            return false;
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_tcons_penbar(idbut, idform, fmt, tab_champ, idpays, lng) {

    $('#' + idbut).click(function () {
        var val_maxi;
        var val_mini;
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';
            val_mini = parseInt($('#mini').val());
            val_maxi = parseInt($('#maxi').val());
            if ((val_maxi >= 0) && (val_mini >= 0)) {
                if (val_maxi > 0) {
                    if (val_maxi <= val_mini) {
                        messerr += '<br />le maximum doit être supérieur au minimum';
                    }
                }
            }
            else {
                if (val_maxi != 0) {
                    messerr += '<br />Pas de chiffre négatif';
                }
            }

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
        else {
            return false;
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_stats_age(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var tab_sel_cat;
        var pbm;
        var all_sel;
        var tab_sel_age;
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';

            tab_sel_age = $('#age').val();
            all_sel = false;
            pbm = false;

            $.each(tab_sel_age, function (key, value) {
                if (value == '*') {
                    all_sel = true;
                }
                else {
                    if (all_sel == true) {
                        pbm = true;
                    }
                }
            });
            if (pbm == true) {
                messerr += '<br />Pas possible de choisir une agence et toutes en même temps';
            }

            tab_sel_cat = $('#cat').val();
            all_sel = false;
            pbm = false;

            $.each(tab_sel_cat, function (key, value) {
                if (value == '*') {
                    all_sel = true;
                }
                else {
                    if (all_sel == true) {
                        pbm = true;
                    }
                }
            });
            if (pbm == true) {
                messerr += '<br />Pas possible de choisir une catégorie et toutes en même temps';
            }

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_stats_do(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var pbm;
        var all_sel;
        var tab_sel_do;
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';

            tab_sel_do = $('#do').val();
            all_sel = false;
            pbm = false;

            $.each(tab_sel_do, function (key, value) {
                if (value == '*') {
                    all_sel = true;
                }
                else {
                    if (all_sel == true) {
                        pbm = true;
                    }
                }
            });
            if (pbm == true) {
                messerr += '<br />Pas possible de choisir un donneur d\'ordres et tous en même temps';
            }

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_stats_st(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var pbm;
        var all_sel;
        var tab_sel_st;
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';

            tab_sel_st = $('#st').val();
            all_sel = false;
            pbm = false;

            $.each(tab_sel_st, function (key, value) {
                if (value == '*') {
                    all_sel = true;
                }
                else {
                    if (all_sel == true) {
                        pbm = true;
                    }
                }
            });
            if (pbm == true) {
                messerr += '<br />Pas possible de choisir un sous-traitant et tous en même temps';
            }

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_stats_ope(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var pbm;
        var all_sel;
        var tab_sel_ope;
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';

            tab_sel_ope = $('#ope').val();
            all_sel = false;
            pbm = false;

            $.each(tab_sel_ope, function (key, value) {
                if (value == '*') {
                    all_sel = true;
                }
                else {
                    if (all_sel == true) {
                        pbm = true;
                    }
                }
            });
            if (pbm == true) {
                messerr += '<br />Pas possible de choisir un opérateur et tous en même temps';
            }

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_stats_tec(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var $age;
        var $do;
        var $st;
        var tab_sel_st;
        var tab_sel_do;
        var tab_sel_age;
        var pbm;
        var all_sel;
        var tab_sel_tec;
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';

            tab_sel_tec = $('#tec').val();
            all_sel = false;
            pbm = false;

            $.each(tab_sel_tec, function (key, value) {
                if (value == '*') {
                    all_sel = true;
                }
                else {
                    if (all_sel == true) {
                        pbm = true;
                    }
                }
            });

            if (pbm == true) {
                messerr += '<br />Pas possible de choisir un technicien et tous en même temps';
            }

            $age = $('#age');
            if ($age.length) {
                all_sel = false;
                pbm = false;

                tab_sel_age = $age.val();

                $.each(tab_sel_age, function (key, value) {
                    if (value == '*') {
                        all_sel = true;
                    }
                    else {
                        if (all_sel == true) {
                            pbm = true;
                        }
                    }
                });

                if (pbm == true) {
                    messerr += '<br />Pas possible de choisir une agence et toutes en même temps';
                }
            }

            $do = $('#do');
            if ($do.length) {
                all_sel = false;
                pbm = false;

                tab_sel_do = $do.val();

                $.each(tab_sel_do, function (key, value) {
                    if (value == '*') {
                        all_sel = true;
                    }
                    else {
                        if (all_sel == true) {
                            pbm = true;
                        }
                    }
                });

                if (pbm == true) {
                    messerr += '<br />Pas possible de choisir un donneur d\'ordres et tous en même temps';
                }
            }

            $st = $('#st');
            if ($st.length) {
                all_sel = false;
                pbm = false;

                tab_sel_st = $st.val();

                $.each(tab_sel_st, function (key, value) {
                    if (value == '*') {
                        all_sel = true;
                    }
                    else {
                        if (all_sel == true) {
                            pbm = true;
                        }
                    }
                });

                if (pbm == true) {
                    messerr += '<br />Pas possible de choisir un sous-traitant et tous en même temps';
                }
            }

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_mt(idbut, idform, fmt, tab_champ, idpays, lng) {

    $('#' + idbut).click(function () {
        var val_kms;
        var val_kmill;
        var val_kmi;
        var val_coutas;
        var val_coutf;
        var val_coutk;
        var val_mt;
        var messerr;
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            messerr = '';
            val_mt = parseInt($('#mt').val());
            switch (val_mt) {
                // "Interne"
                case 0 :
                    val_coutk = parseInt($('#coutk').val());
                    if (val_coutk == 0) {
                        messerr += '<br />Vous devez saisir un coût kilométrique';
                    }
                    break;
                // "Externe"
                case 1 :
                    val_coutf = parseInt($('#coutf').val());
                    val_coutas = $('#coutas').prop('checked');
                    val_kmi = parseInt($('#kmi').val());
                    val_kmill = $('#kmill').prop('checked');
                    val_kms = parseInt($('#kms').val());
                    if (((val_coutf == 0) && (val_coutas == false)) || ((val_kmi == 0) && (val_kmill == false)) || ((val_kms == 0) && (val_kmill == false))) {
                        messerr += "<br />Vous devez saisir un coût forfaitaire ou à saisir,<br/>un km inclus ou suppl ou illimité";
                    }
                    break;
                default :
                    break;
            }

            if (messerr != '') {
                warn_txt(messerr);
                return false;
            }
            else {
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
        else {
            return false;
        }
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_exp(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            $('#nbutton').val(idbut);
            readok_all();
            $('patience').show();
            $('boutons').hide();
            $('#' + idform).submit();
        }
        return formok;
    });
}

/**
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_log(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var val_codepays;
        var formok = true;
        switch (idbut) {
            case "purge" :
                val_codepays = '';
                if (idpays != '') {
                    val_codepays = $('#' + idpays).val();
                }
                formok = VForm(idform, tab_champ, val_codepays, lng);
                break;
            case "purgea" :
                break;
        }
        if (formok == true) {
            $('patience').show();
            $('boutons').hide();
            $('#' + idform).submit();
        }
        return formok;
    });


}

/**
 *Validation standard (pas de contrôle spécifique) d'un formulaire
 *
 * @param idbut
 * @param idform
 * @param fmt
 * @param tab_champ
 * @param idpays
 * @param lng
 */
function init_valid_form(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var formok;
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#' + idpays).val();
        }
        formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            $('#nbutton').val(idbut);
            readok_all();
            $('#' + idform).submit();
        }
        return formok;
    });
}