// 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 pays
 * @param lng
 */
function init_valid_int(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#'+idpays).val();
        }
        var formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            var messerr = '';

            var $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');
                }
            }

            var $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') {
                        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 pays
 * @param lng
 */
function init_valid_intf(idbut, idform, fmt, tab_champ, idpays, lng) {

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


function init_valid_inth(idbut, idform, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#'+idpays).val();
        }
        var formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            var messerr = '';
            var val_fait = $('#fait').val();
            var 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';
                }
            }

            var val_depl = 0;
            var 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
            {
                var 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 $value = $('#' + value);
                    var val_champ = $value.val();
                    switch (value) {
                        case 'a_mt' :
                        case 'r_mt' :
                            if (val_champ != '') {
                                var val_coutmt = $('#M_' + val_champ).val();
                                if (Number(val_coutmt) == 1) {
                                    var 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, '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_champ != '') {
                                if (chk_heuredif(value, 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 'r_heured' :
                            if (val_champ != '') {
                                if (chk_heuredif(value, 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_champ != '') {
                                if (chk_heuredif(value, 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 'a_km' :
                        case 'r_km' :
                            var 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' :
                            var val_fa = 0;
                            if (value == 'a_fa') {
                                val_fa = Number($('#a_fa').val());
                            }
                            else {
                                val_fa = Number($('#r_fa').val());
                            }

                            if (val_fa > 0) {
                                var 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;
        }
    });
}

function init_valid_intp(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#'+idpays).val();
        }
        var formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            var messerr = '';
            var $genpla = $('#genpla');
            var $mrdv = $('#mrdv');

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

            if ((val_genpla == 1) || (val_mrdv == 1)) {
                var val_hrdv = $genpla.val();
                var 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
            var 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;
        }
    });
}


function init_valid_cocl(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#'+idpays).val();
        }
        var formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            var 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;
        }
    });
}

function init_valid_cocla(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#'+idpays).val();
        }
        var formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            var 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;
        }
    });
}

function init_valid_coclclos(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#'+idpays).val();
        }
        var formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            var 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;
        }
    });
}


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

            if ($('#datefinf').length > 0) {
                if ($('#datefinf').val() != '') {
                    messerr += chk_chp_ok_ot('daterdvf,hrdv,mat,pbm,gar,codetec,tect,fait,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;
        }
    });
}

function init_valid_oth(idbut, idform, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#'+idpays).val();
        }
        var formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            var 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;
        }
    });
}

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

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

            switch (val_prev) {
                case 0 :
                    var 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 :
                    var 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 :
                    var 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;
        }
    });

}


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

            var val_dateout = '';
            if ($('#dateoutf').length > 0) {
                val_dateout = $('#dateoutf').val();
            }
            var val_dconges = '';
            if ($('#dconges').length > 0) {
                val_dconges = $('#dconges').val();
            }
            var 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";
                }

                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;
        }
    });
}

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

            var val_dateout = $('#dateoutf').val();
            var val_dconges = $('#dconges').val();
            var 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";
                }

                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;
        }
    });
}

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

            var val_doss = parseInt($('#doss').val());
            var 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;
        }
    });
}

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

            var val_daterepf = $('#daterepf').val();
            var 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;
        }
    });
}

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

            var val_codeme = $('#codeme').val();
            var 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;
        }
    });
}

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

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


            var val_codeme = $('#codeme').val();
            var 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;
        }
    });
}

function init_valid_clcg(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#'+idpays).val();
        }
        var 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;
        }
    });
}

function init_valid_upll(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#'+idpays).val();
        }
        var formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            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 {
                $('#waitajax').show();
                $('#no_wait').hide();
                $('#nbutton').val(idbut);
                readok_all();
                $('#' + idform).submit();
                return true;
            }
        }
        else {
            return false;
        }
    });
}

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 {
            $('#waitajax').show();
            $('#no_wait').hide();
            $('#nbutton').val(idbut);
            readok_all();
            $('#' + idform).submit();
            return true;
        }
    });
}

function init_valid_robj(idbut, idform, fmt, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#'+idpays).val();
        }
        var formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            var messerr = '';
            var pbm_champ = false;

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

            var tab_chp_to_check = [];
            // Test si objet immobile
            var 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é
            var 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;
        }
    });
}


function init_valid_dosd(idbut, idform, tab_champ, idpays, lng) {
    $('#' + idbut).click(function () {
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#'+idpays).val();
        }
        var formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            var 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
            var val_depl = 0;
            var 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
            {
                var 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_champ = $('#' + value).val();
                    switch (value) {
                        case 'a_mt' :
                        case 'r_mt' :
                            if (val_champ != '') {
                                var val_coutmt = $('#M_' + val_champ).val();
                                if (Number(val_coutmt) == 1) {
                                    var 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' :
                            var 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' :
                            var val_fa = 0;
                            if (value == 'a_fa') {
                                val_fa = Number($('#a_fa').val());
                            }
                            else {
                                val_fa = Number($('#r_fa').val());
                            }

                            if (val_fa > 0) {
                                var 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;
        }
    });
}

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

            if (idtec != '') {
                var alltec = false;
                var 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;
        }
    });

}

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

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

            var val_typrat = parseInt($('#typrat').val());
            var 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;
        }
    });
}

function init_valid_tvarea(idbut, idform, fmt, tab_champ, idpays, lng) {

    $('#' + idbut).click(function () {
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#'+idpays).val();
        }
        var formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            var messerr = '';
            var val_tva1 = $('#tva1').val();
            var 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;
        }
    });
}

function init_valid_tpfrea(idbut, idform, fmt, tab_champ, idpays, lng) {

    $('#' + idbut).click(function () {
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#'+idpays).val();
        }
        var formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            var messerr = '';
            var val_tpf1 = $('#tpf1').val();
            var 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;
        }
    });
}

function init_valid_tcons_penbar(idbut, idform, fmt, tab_champ, idpays, lng) {

    $('#' + idbut).click(function () {
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#'+idpays).val();
        }
        var formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            var messerr = '';
            var val_mini = parseInt($('#mini').val());
            var 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;
        }
    });
}


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

            var tab_sel_age = $('#age').val();
            var all_sel = false;
            var 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';
            }

            var 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;
            }
        }
    });
}

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

            var tab_sel_do = $('#do').val();
            var all_sel = false;
            var 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;
            }
        }
    });
}

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

            var tab_sel_st = $('#st').val();
            var all_sel = false;
            var 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;
            }
        }
    });
}

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

            var tab_sel_ope = $('#ope').val();
            var all_sel = false;
            var 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;
            }
        }
    });
}

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

            var tab_sel_tec = $('#tec').val();
            var all_sel = false;
            var 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';
            }

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

                var 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';
                }
            }

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

                var 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';
                }
            }

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

                var 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;
            }
        }
    });
}

function init_valid_mt(idbut, idform, fmt, tab_champ, idpays, lng) {

    $('#' + idbut).click(function () {
        var val_codepays = '';
        if (idpays != '') {
            val_codepays = $('#'+idpays).val();
        }
        var formok = VForm(idform, tab_champ, val_codepays, lng);
        if (formok == true) {
            var messerr = '';
            var val_mt = parseInt($('#mt').val());
            switch (val_mt) {
                // "Interne"
                case 0 :
                    var val_coutk = parseInt($('#coutk').val());
                    if (val_coutk == 0) {
                        messerr += '<br />Vous devez saisir un coût kilométrique';
                    }
                    break;
                // "Externe"
                case 1 :
                    var val_coutf = parseInt($('#coutf').val());
                    var val_coutas = $('#coutas').prop('checked');
                    var val_kmi = parseInt($('#kmi').val());
                    var val_kmill = $('#kmill').prop('checked');
                    var 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;
        }
    });
}

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


}

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