// Rajoute une valeur à la fin d'un champ, avec en plus le séparateur ";" si une valeur est déjà renseignée.
function ajouter(classe, nom, valeur) {
    // Un champ peut contenir plusieurs enregistrements.
    if (classe == 'multiple') {
        var chaine = document.getElementById(nom).value.length; // Calcul de la longueur de la chaîne.
        var sep = chaine == 0 ? '' : ';';   // En début de chaîne, pas de séparateur, sinon ";".
        document.getElementById(nom).value+=sep+valeur;
    // Le champ ne contient qu'un enregistrement.
    } else {
        document.getElementById(nom).value=valeur;
    }
}
function ajouter_simple(classe, nom, valeur) {
    // Un champ peut contenir plusieurs enregistrements.
    if (classe == 'multiple') {
        var chaine = document.getElementById(nom).value.length; // Calcul de la longueur de la chaîne.
        var sep = chaine == 0 ? '' : ', ';   // En début de chaîne, pas de séparateur, sinon ", ".
        document.getElementById(nom).value+=sep+valeur;
    // Le champ ne contient qu'un enregistrement.
    } else {
        document.getElementById(nom).value=valeur;
    }
}
// Remplit un champ année au format "aaaa" à partir d'un autre champ.
function deduire_annee(origine, destination) {
    // Récupération de la date à partir du champ d'origine.
    var date = document.getElementById(origine).value;
    // Construction de l'expression régulière.
    var date_regexp = '^[0-9]{4}';
    // Les quatre premiers caractères du champ d'origine doivent être numériques.
    if (date.match(date_regexp))
    {
        // Remplissage du champ de destination.
        document.getElementById(destination).value = date.substr(0,4);
        // On grise ensuite le champ pour ne plus permettre à l'utilisateur de le modifier.
        document.getElementById(destination).disabled = true;
    }
    // Sinon, non seulement on ne fait rien, mais on revient à la situation de départ au cas où l'utilisateur serait revenu sur sa saisie préalablement bien formatée.
    // Une fonction PHP se charge des contrôles de saisie et d'alerter l'utilisateur avant insertion dans la base de données.
    else
    {
        // On rend par précaution le champ à nouveau vierge.
        document.getElementById(destination).value = '';
        // On active le champ, peut-être préalablement désactivé.
        document.getElementById(destination).disabled = false;
    }
}
// Efface le contenu d'un champ.
function effacer(nom) {
    document.getElementById(nom).value='';
}
// Récupère la position d'un élémént dans le formulaire.
function getPosElement(element) {
    if (element.form) {
        // Pour chaque élément, on récupère la valeur de i.
        for (var i = 0; i < element.form.elements.length; i++) {
            if (element == element.form.elements[i]) {
                return i;
            }
        }
        return -1;
        }
        else {
            return -1;
        }
}
// Rajoute une valeur à la fin d'un champ, avec en plus le séparateur ";" si une valeur est déjà renseignée, plus retour à la ligne.
function ajouter_textarea(classe, nom, valeur) {
    // Un champ peut contenir plusieurs enregistrements.
    if (classe == 'multiple') {
        var chaine = document.getElementById(nom).value.length; // Calcul de la longueur de la chaîne.
        var sep = chaine == 0 ? '' : ';'+"\r\n";   // En début de chaîne, pas de séparateur, sinon ";".
        document.getElementById(nom).value+=sep+valeur;
    // Le champ ne contient qu'un enregistrement.
    } else {
        document.getElementById(nom).value=valeur;
    }
}