function saisie_nouveau_conges($user_login, $year_calendrier_saisie_debut, $mois_calendrier_saisie_debut, $year_calendrier_saisie_fin, $mois_calendrier_saisie_fin, $onglet, $DEBUG = FALSE)
{
    //$DEBUG=TRUE;
    if ($DEBUG) {
        echo 'user_login = '******', year_calendrier_saisie_debut = ' . $year_calendrier_saisie_debut . ', mois_calendrier_saisie_debut = ' . $mois_calendrier_saisie_debut . ', year_calendrier_saisie_fin = ' . $year_calendrier_saisie_fin . ', mois_calendrier_saisie_fin = ' . $mois_calendrier_saisie_fin . ', onglet = ' . $onglet . '<br>';
    }
    $PHP_SELF = $_SERVER['PHP_SELF'];
    $session = session_id();
    $mois_calendrier_saisie_debut_prec = 0;
    $year_calendrier_saisie_debut_prec = 0;
    $mois_calendrier_saisie_debut_suiv = 0;
    $year_calendrier_saisie_debut_suiv = 0;
    $mois_calendrier_saisie_fin_prec = 0;
    $year_calendrier_saisie_fin_prec = 0;
    $mois_calendrier_saisie_fin_suiv = 0;
    $year_calendrier_saisie_fin_suiv = 0;
    init_tab_jours_fermeture($user_login);
    echo '<form name="form1" action="' . $PHP_SELF . '?session=' . $session . '&onglet=' . $onglet . '" method="POST">';
    // il faut indiquer le champ de formulaire 'login_user' car il est récupéré par le javascript qui apelle le calcul automatique.
    echo '<table cellpadding="0" cellspacing="5" border="0">';
    echo '<tr align="center">';
    echo '<td>';
    echo '<table cellpadding="0" cellspacing="0" border="0">';
    echo '<tr align="center">';
    echo '<td>';
    echo '<fieldset class="cal_saisie">';
    echo '<table cellpadding="0" cellspacing="0" border="0">';
    echo '<tr align="center">';
    echo "<td>\n";
    /******************************************************************/
    // affichage du calendrier de saisie de la date de DEBUT de congès
    /******************************************************************/
    echo '<table cellpadding="0" cellspacing="0" width="250" border="0">';
    echo '<tr>';
    init_var_navigation_mois_year($mois_calendrier_saisie_debut, $year_calendrier_saisie_debut, $mois_calendrier_saisie_debut_prec, $year_calendrier_saisie_debut_prec, $mois_calendrier_saisie_debut_suiv, $year_calendrier_saisie_debut_suiv, $mois_calendrier_saisie_fin, $year_calendrier_saisie_fin, $mois_calendrier_saisie_fin_prec, $year_calendrier_saisie_fin_prec, $mois_calendrier_saisie_fin_suiv, $year_calendrier_saisie_fin_suiv);
    // affichage des boutons de défilement
    // recul du mois saisie début
    echo '<td align="center" class="big">';
    echo '<a href="' . $PHP_SELF . '?session=' . $session . '&year_calendrier_saisie_debut=' . $year_calendrier_saisie_debut_prec . '&mois_calendrier_saisie_debut=' . $mois_calendrier_saisie_debut_prec . '&year_calendrier_saisie_fin=' . $year_calendrier_saisie_fin . '&mois_calendrier_saisie_fin=' . $mois_calendrier_saisie_fin . '&user_login='******'&onglet=' . $onglet . '">';
    echo ' <img src="' . TEMPLATE_PATH . 'img/simfirs.gif" width="16" height="16" border="0" alt="' . _('divers_mois_precedent') . '" title="' . _('divers_mois_precedent') . '"> ';
    echo '</a>';
    echo '</td>';
    echo '<td align="center" class="big">' . _('divers_debut_maj') . ' :</td>';
    // affichage des boutons de défilement
    // avance du mois saisie début
    // si le mois de saisie fin est antérieur ou égal au mois de saisie début, on avance les 2 , sinon on avance que le mois de saisie début
    if ($year_calendrier_saisie_debut_suiv == $year_calendrier_saisie_fin && $mois_calendrier_saisie_debut_suiv >= $mois_calendrier_saisie_fin || $year_calendrier_saisie_debut_suiv > $year_calendrier_saisie_fin) {
        $lien_mois_debut_suivant = $PHP_SELF . '?session=' . $session . '&year_calendrier_saisie_debut=' . $year_calendrier_saisie_debut_suiv . '&mois_calendrier_saisie_debut=' . $mois_calendrier_saisie_debut_suiv . '&year_calendrier_saisie_fin=' . $year_calendrier_saisie_debut_suiv . '&mois_calendrier_saisie_fin=' . $mois_calendrier_saisie_debut_suiv . '&user_login='******'&onglet=' . $onglet;
    } else {
        $lien_mois_debut_suivant = $PHP_SELF . '?session=' . $session . '&year_calendrier_saisie_debut=' . $year_calendrier_saisie_debut_suiv . '&mois_calendrier_saisie_debut=' . $mois_calendrier_saisie_debut_suiv . '&year_calendrier_saisie_fin=' . $year_calendrier_saisie_fin . '&mois_calendrier_saisie_fin=' . $mois_calendrier_saisie_fin . '&user_login='******'&onglet=' . $onglet;
    }
    echo '<td align="center" class="big">';
    echo '<a href="' . $lien_mois_debut_suivant . '">';
    echo ' <img src="' . TEMPLATE_PATH . 'img/simlast.gif" width="16" height="16" border="0" alt="' . _('divers_mois_suivant') . '" title="' . _('divers_mois_suivant') . '"> ';
    echo '</a>';
    echo '</td>';
    echo '</tr>';
    echo '</table>';
    /*** calendrier saisie date debut ***/
    affiche_calendrier_saisie_date($user_login, $year_calendrier_saisie_debut, $mois_calendrier_saisie_debut, 'new_debut', $DEBUG);
    echo '</td>';
    /**************************************************/
    /* cellule 2 : boutons radio matin ou après midi */
    echo '<td align="left">';
    echo '<input type="radio" name="new_demi_jour_deb" ';
    if ($_SESSION['config']['rempli_auto_champ_nb_jours_pris']) {
        // attention : IE6 : bug avec les "OnChange" sur les boutons radio!!! (on remplace par OnClick)
        if (isset($_SERVER['HTTP_USER_AGENT']) && stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE') != FALSE) {
            echo 'onClick="compter_jours(new_debut, new_fin, login_user, new_demi_jour_deb, new_demi_jour_fin);return true;"';
        } else {
            echo 'onChange="compter_jours(new_debut, new_fin, login_user, new_demi_jour_deb, new_demi_jour_fin);return false;"';
        }
    }
    echo 'value="am" checked><b><u>' . _('form_am') . '</u></b><br><br>';
    echo '<input type="radio" name="new_demi_jour_deb" ';
    if ($_SESSION['config']['rempli_auto_champ_nb_jours_pris']) {
        if (isset($_SERVER['HTTP_USER_AGENT']) && stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE') != FALSE) {
            echo 'onClick="compter_jours(new_debut, new_fin, login_user, new_demi_jour_deb, new_demi_jour_fin);return true;"';
        } else {
            echo 'onChange="compter_jours(new_debut, new_fin, login_user, new_demi_jour_deb, new_demi_jour_fin);return false;"';
        }
    }
    echo 'value="pm"><b><u>' . _('form_pm') . '</u></b><br><br>';
    echo '</td>';
    /**************************************************/
    echo '</tr>';
    echo '</table>';
    echo '</fieldset>';
    echo '</td>';
    echo '</tr>';
    echo '<tr align="center">';
    echo '<td><img src="' . TEMPLATE_PATH . 'img/shim.gif" width="15" height="10" border="0" vspace="0" hspace="0"></td>';
    echo '</tr>';
    echo '<tr align="center">';
    echo '<td>';
    echo '<fieldset class="cal_saisie">';
    echo '<table cellpadding="0" cellspacing="0" border="0">';
    echo '<tr align="center">';
    echo '<td>';
    /******************************************************************/
    // affichage du calendrier de saisie de la date de FIN de congès
    /******************************************************************/
    echo '<table cellpadding="0" cellspacing="0" width="250" border="0">';
    echo '<tr>';
    $mois_calendrier_saisie_fin_prec = $mois_calendrier_saisie_fin == 1 ? 12 : $mois_calendrier_saisie_fin - 1;
    $mois_calendrier_saisie_fin_suiv = $mois_calendrier_saisie_fin == 12 ? 1 : $mois_calendrier_saisie_fin + 1;
    // affichage des boutons de défilement
    // recul du mois saisie fin
    // si le mois de saisie fin est antérieur ou égal au mois de saisie début, on recule les 2 , sinon on recule que le mois de saisie fin
    if ($year_calendrier_saisie_debut == $year_calendrier_saisie_fin_prec && $mois_calendrier_saisie_debut >= $mois_calendrier_saisie_fin_prec || $year_calendrier_saisie_debut > $year_calendrier_saisie_fin_prec) {
        $lien_mois_fin_precedent = '' . $PHP_SELF . '?session=' . $session . '&year_calendrier_saisie_debut=' . $year_calendrier_saisie_fin_prec . '&mois_calendrier_saisie_debut=' . $mois_calendrier_saisie_fin_prec . '&year_calendrier_saisie_fin=' . $year_calendrier_saisie_fin_prec . '&mois_calendrier_saisie_fin=' . $mois_calendrier_saisie_fin_prec . '&user_login='******'&onglet=' . $onglet;
    } else {
        $lien_mois_fin_precedent = '' . $PHP_SELF . '?session=' . $session . '&year_calendrier_saisie_debut=' . $year_calendrier_saisie_debut . '&mois_calendrier_saisie_debut=' . $mois_calendrier_saisie_debut . '&year_calendrier_saisie_fin=' . $year_calendrier_saisie_fin_prec . '&mois_calendrier_saisie_fin=' . $mois_calendrier_saisie_fin_prec . '&user_login='******'&onglet=' . $onglet;
    }
    echo '<td align="center" class="big">';
    echo '<a href="' . $lien_mois_fin_precedent . '">';
    echo ' <img src="' . TEMPLATE_PATH . 'img/simfirs.gif" width="16" height="16" border="0" alt="' . _('divers_mois_precedent') . '" title="' . _('divers_mois_precedent') . '">';
    echo ' </a>';
    echo '</td>';
    echo '<td align="center" class="big">' . _('divers_fin_maj') . ' :</td>';
    // affichage des boutons de défilement
    // avance du mois saisie fin
    echo '<td align="center" class="big">';
    echo '<a href="' . $PHP_SELF . '?session=' . $session . '&year_calendrier_saisie_debut=' . $year_calendrier_saisie_debut . '&mois_calendrier_saisie_debut=' . $mois_calendrier_saisie_debut . '&year_calendrier_saisie_fin=' . $year_calendrier_saisie_fin_suiv . '&mois_calendrier_saisie_fin=' . $mois_calendrier_saisie_fin_suiv . '&user_login='******'&onglet=' . $onglet . '">';
    echo ' <img src="' . TEMPLATE_PATH . 'img/simlast.gif" width="16" height="16" border="0" alt="' . _('divers_mois_suivant') . '" title="' . _('divers_mois_suivant') . '"> ';
    echo '</a>';
    echo '</td>';
    echo '</tr>';
    echo '</table>';
    /*** calendrier saisie date fin ***/
    affiche_calendrier_saisie_date($user_login, $year_calendrier_saisie_fin, $mois_calendrier_saisie_fin, 'new_fin', $DEBUG);
    echo '</td>';
    /**************************************************/
    /* cellule 2 : boutons radio matin ou après midi */
    echo '<td align="left">';
    echo '<input type="radio" name="new_demi_jour_fin" ';
    if ($_SESSION['config']['rempli_auto_champ_nb_jours_pris']) {
        // attention : IE6 : bug avec les "OnChange" sur les boutons radio!!! (on remplace par OnClick)
        if (isset($_SERVER['HTTP_USER_AGENT']) && stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE') != FALSE) {
            echo 'onClick="compter_jours(new_debut, new_fin, login_user, new_demi_jour_deb, new_demi_jour_fin);return true;"';
        } else {
            echo 'onChange="compter_jours(new_debut, new_fin, login_user, new_demi_jour_deb, new_demi_jour_fin);return false;"';
        }
    }
    echo 'value="am"><b><u>' . _('form_am') . '</u></b><br><br>';
    echo '<input type="radio" name="new_demi_jour_fin"  ';
    if ($_SESSION['config']['rempli_auto_champ_nb_jours_pris']) {
        if (isset($_SERVER['HTTP_USER_AGENT']) && stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE') != FALSE) {
            echo 'onClick="compter_jours(new_debut, new_fin, login_user, new_demi_jour_deb, new_demi_jour_fin);return true;"';
        } else {
            echo 'onChange="compter_jours(new_debut, new_fin, login_user, new_demi_jour_deb, new_demi_jour_fin);return false;"';
        }
    }
    echo 'value="pm" checked><b><u>' . _('form_pm') . '</u></b><br><br>';
    echo '</td>';
    /**************************************************/
    echo '</tr>';
    echo '</table>';
    echo '</fieldset>';
    echo '</td>';
    echo '</tr>';
    echo '</table>';
    echo '</td>';
    echo '<td><img src="' . TEMPLATE_PATH . 'img/shim.gif" width="15" height="2" border="0" vspace="0" hspace="0"></td>';
    echo '<td>';
    /*******************/
    /*   formulaire    */
    /*******************/
    echo '<table cellpadding="0" cellspacing="2" border="0" >';
    echo '<tr>';
    echo '<td valign="top">';
    echo '<table cellpadding="2" cellspacing="3" border="0" >';
    //                  echo '<input type="hidden" name="login_user" value="'.'.$_SESSION['userlogin'].'.'">';
    echo '<input type="hidden" name="login_user" value="' . $user_login . '">';
    echo '<input type="hidden" name="session" value="' . $session . '">';
    // bouton 'compter les jours'
    if ($_SESSION['config']['affiche_bouton_calcul_nb_jours_pris']) {
        echo '<tr><td colspan="2">';
        echo '<input type="button" onclick="compter_jours(new_debut, new_fin, login_user, new_demi_jour_deb, new_demi_jour_fin);return false;" value="' . _('saisie_conges_compter_jours') . '">';
        echo '</td></tr>';
    }
    // zones de texte
    echo '<tr align="center"><td><b>' . _('saisie_conges_nb_jours') . '</b></td><td><b>' . _('divers_comment_maj_1') . '</b></td></tr>';
    if ($_SESSION['config']['disable_saise_champ_nb_jours_pris']) {
        // zone de texte en readonly et grisée
        $text_nb_jours = '<input type="text" name="new_nb_jours" size="10" maxlength="30" value="" style="background-color: #D4D4D4; " readonly="readonly">';
    } else {
        $text_nb_jours = '<input type="text" name="new_nb_jours" size="10" maxlength="30" value="">';
    }
    $text_commentaire = '<input type="text" name="new_comment" size="25" maxlength="30" value="">';
    echo '<tr align="center">';
    echo '<td>' . $text_nb_jours . '</td><td>' . $text_commentaire . '</td>';
    echo '</tr>';
    echo '<tr align="center"><td><img src="' . TEMPLATE_PATH . 'img/shim.gif" width="15" height="10" border="0" vspace="0" hspace="0"></td><td></td></tr>';
    echo '<tr align="center">';
    echo '<td colspan=2>';
    echo '<input type="hidden" name="user_login" value="' . $user_login . '">';
    echo '<input type="hidden" name="new_demande_conges" value=1>';
    // boutons du formulaire
    // les classes "button_type_submit" et "button_type_cancel"
    // servent à choisir leur position (droite gauche) dans vos feuilles de style (voir style.css)
    echo '<input type="submit" class="button_type_submit" value="' . _('form_submit') . '">   <input type="reset" class="button_type_cancel" value="' . _('form_cancel') . '">';
    echo '</td>';
    echo '</tr>';
    echo '</table>';
    echo '</td>';
    /*****************/
    /* boutons radio */
    /*****************/
    // recup d tableau des types de conges
    $tab_type_conges = recup_tableau_types_conges($DEBUG);
    // recup du tableau des types d'absence
    $tab_type_absence = recup_tableau_types_absence($DEBUG);
    // recup d tableau des types de conges exceptionnels
    $tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels($DEBUG);
    $already_checked = false;
    echo '<td align="left" valign="top">';
    // si le user a droit de saisir une demande de conges ET si on est PAS dans une fenetre de responsable
    // OU si le user n'a pas droit de saisir une demande de conges ET si on est dans une fenetre de responsable
    // OU si le user est un RH ou un admin
    if ($_SESSION['config']['user_saisie_demande'] && $user_login == $_SESSION['userlogin'] || $_SESSION['config']['user_saisie_demande'] == FALSE && $user_login != $_SESSION['userlogin'] || is_hr($_SESSION['userlogin']) || is_admin($_SESSION['userlogin'])) {
        // congés
        echo '<b><i><u>' . _('divers_conges') . ' :</u></i></b><br>';
        foreach ($tab_type_conges as $id => $libelle) {
            if ($id == 1) {
                echo '<input type="radio" name="new_type" value="' . $id . '" checked> ' . $libelle . '<br>';
                $already_checked = true;
            } else {
                echo '<input type="radio" name="new_type" value="' . $id . '"> ' . $libelle . '<br>';
            }
        }
    }
    // si le user a droit de saisir une mission ET si on est PAS dans une fenetre de responsable
    // OU si le resp a droit de saisir une mission ET si on est PAS dans une fenetre dd'utilisateur
    // OU si le resp a droit de saisir une mission ET si le resp est resp de lui meme
    if ($_SESSION['config']['user_saisie_mission'] && $user_login == $_SESSION['userlogin'] || $_SESSION['config']['resp_saisie_mission'] && $user_login != $_SESSION['userlogin'] || $_SESSION['config']['resp_saisie_mission'] && is_resp_of_user($_SESSION['userlogin'], $user_login, $DEBUG)) {
        echo '<br>';
        // absences
        echo '<b><i><u>' . _('divers_absences') . ' :</u></i></b><br>';
        foreach ($tab_type_absence as $id => $libelle) {
            if (!$already_checked) {
                echo '<input type="radio" name="new_type" value="' . $id . '" checked> ' . $libelle . '<br>';
                $already_checked = true;
            } else {
                echo '<input type="radio" name="new_type" value="' . $id . '"> ' . $libelle . '<br>';
            }
        }
    }
    // si le user a droit de saisir une demande de conges ET si on est PAS dans une fenetre de responsable
    // OU si le user n'a pas droit de saisir une demande de conges ET si on est dans une fenetre de responsable
    // OU si c'est un HR
    if ($_SESSION['config']['gestion_conges_exceptionnels'] && ($_SESSION['config']['user_saisie_demande'] && $user_login == $_SESSION['userlogin'] || $_SESSION['config']['user_saisie_demande'] == FALSE && $user_login != $_SESSION['userlogin'] || is_hr($_SESSION['userlogin']))) {
        echo '<br>';
        // congés exceptionnels
        echo '<b><i><u>' . _('divers_conges_exceptionnels') . ' :</u></i></b><br>';
        foreach ($tab_type_conges_exceptionnels as $id => $libelle) {
            if ($id == 1) {
                echo '<input type="radio" name="new_type" value="' . $id . '" checked> ' . $libelle . '<br>';
            } else {
                echo '<input type="radio" name="new_type" value="' . $id . '"> ' . $libelle . '<br>';
            }
        }
    }
    echo '</td>';
    echo '</tr>';
    echo '</table>';
    echo '</td>';
    echo '</tr>';
    echo '</table>';
    echo '</form>';
}
function compter($user, $num_current_periode, $date_debut, $date_fin, $opt_debut, $opt_fin, &$comment, $DEBUG = FALSE, $num_update = null)
{
    // verif si date_debut est bien anterieure à date_fin
    // ou si meme jour mais debut l'apres midi et fin le matin
    if (strtotime($date_debut) > strtotime($date_fin) || $date_debut == $date_fin && $opt_debut == "pm" && $opt_fin == "am") {
        $comment = _('calcul_nb_jours_commentaire_bad_date');
        return 0;
    }
    if ($date_debut != 0 && $date_fin != 0) {
        // On ne peut pas calculer si, pour l'année considérée, les jours feries ont ete saisis
        if (verif_jours_feries_saisis($date_debut, $DEBUG, $num_update) == FALSE || verif_jours_feries_saisis($date_fin, $DEBUG, $num_update) == FALSE) {
            $comment = _('calcul_impossible') . "<br>\n" . _('jours_feries_non_saisis') . "<br>\n" . _('contacter_admin') . "<br>\n";
            return 0;
        }
        /************************************************************/
        // 1 : on fabrique un tableau de jours (divisé chacun en 2 demi-jour) de la date_debut à la date_fin
        // 2 : on verifie que le conges demandé ne chevauche pas une periode deja posée
        // 3 : on affecte à 0 ou 1 chaque demi jour, en fonction de s'il est travaillé ou pas
        // 4 : à la fin , on parcours le tableau en comptant le nb de demi-jour à 1, on multiplie ce total par 0.5, ça donne le nb de jours du conges !
        $nb_jours = 0;
        /************************************************************/
        // 1 : fabrication et initialisation du tableau des demi-jours de la date_debut à la date_fin
        $tab_periode_calcul = make_tab_demi_jours_periode($date_debut, $date_fin, $opt_debut, $opt_fin, $DEBUG);
        /************************************************************/
        // 2 : on verifie que le conges demandé ne chevauche pas une periode deja posée
        if (verif_periode_chevauche_periode_user($date_debut, $date_fin, $user, $num_current_periode, $tab_periode_calcul, $comment, $DEBUG, $num_update)) {
            return 0;
        }
        /************************************************************/
        // 3 : on affecte à 0 ou 1 chaque demi jour, en fonction de s'il est travaillé ou pas
        // on initialise le tableau global des jours fériés s'il ne l'est pas déjà :
        if (!isset($_SESSION["tab_j_feries"])) {
            init_tab_jours_feries();
            //print_r($_SESSION["tab_j_feries"]);   // verif DEBUG
        }
        // on initialise le tableau global des jours fermés s'il ne l'est pas déjà :
        if (!isset($_SESSION["tab_j_fermeture"])) {
            init_tab_jours_fermeture($user, $DEBUG);
            //print_r($_SESSION["tab_j_fermeture"]);   // verif DEBUG
        }
        $current_day = $date_debut;
        $date_limite = jour_suivant($date_fin);
        // on va avancer jour par jour jusqu'à la date limite et voir si chaque jour est travaillé, férié, rtt, etc ...
        while ($current_day != $date_limite) {
            // calcul du timestamp du jour courant
            $pieces = explode("-", $current_day);
            // date de la forme yyyy-mm-jj
            $y = $pieces[0];
            $m = $pieces[1];
            $j = $pieces[2];
            $timestamp_du_jour = mktime(0, 0, 0, $m, $j, $y);
            // on regarde si le jour est travaillé ou pas dans la config de l'appli
            $j_name = date("D", $timestamp_du_jour);
            if ($j_name == "Sat" && $_SESSION['config']['samedi_travail'] == FALSE || $j_name == "Sun" && $_SESSION['config']['dimanche_travail'] == FALSE) {
                // on ne compte ce jour à 0
                $tab_periode_calcul[$current_day]['am'] = 0;
                $tab_periode_calcul[$current_day]['pm'] = 0;
            } elseif (est_chome($timestamp_du_jour)) {
                // on ne compte ce jour à 0
                $tab_periode_calcul[$current_day]['am'] = 0;
                $tab_periode_calcul[$current_day]['pm'] = 0;
            } else {
                /***************/
                // verif des rtt ou temp partiel (dans la table rtt)
                $val_matin = "N";
                $val_aprem = "N";
                recup_infos_artt_du_jour($user, $timestamp_du_jour, $val_matin, $val_aprem);
                if ($val_matin == "Y") {
                    // rtt le matin
                    $tab_periode_calcul[$current_day]['am'] = 0;
                }
                if ($val_aprem == "Y") {
                    // rtt l'après midi
                    $tab_periode_calcul[$current_day]['pm'] = 0;
                }
            }
            $current_day = jour_suivant($current_day);
        }
        if ($DEBUG) {
            echo "tab_periode_calcul :<br>\n";
            print_r($tab_periode_calcul);
            echo "<br>\n";
        }
        /************************************************************/
        // 3 : on va avancer jour par jour jusqu'à la date limite pour compter le nb de demi jour à 1
        $current_day = $date_debut;
        $date_limite = jour_suivant($date_fin);
        while ($current_day != $date_limite) {
            $nb_jours = $nb_jours + $tab_periode_calcul[$current_day]['am'] + $tab_periode_calcul[$current_day]['pm'];
            $current_day = jour_suivant($current_day);
        }
        $nb_jours = $nb_jours * 0.5;
        return $nb_jours;
    } else {
        return 0;
    }
}
function commit_new_fermeture($new_date_debut, $new_date_fin, $groupe_id, $id_type_conges, $DEBUG = FALSE)
{
    $PHP_SELF = $_SERVER['PHP_SELF'];
    $session = session_id();
    // on transforme les formats des dates
    $tab_date_debut = explode("/", $new_date_debut);
    // date au format d/m/Y
    $date_debut = $tab_date_debut[2] . "-" . $tab_date_debut[1] . "-" . $tab_date_debut[0];
    $tab_date_fin = explode("/", $new_date_fin);
    // date au format d/m/Y
    $date_fin = $tab_date_fin[2] . "-" . $tab_date_fin[1] . "-" . $tab_date_fin[0];
    if ($DEBUG) {
        echo "date_debut = {$date_debut}  // date_fin = {$date_fin}<br>\n";
    }
    /*****************************/
    // on construit le tableau des users affectés par les fermetures saisies :
    if ($groupe_id == 0) {
        // fermeture pour tous !
        $list_users = get_list_all_users($DEBUG);
    } else {
        $list_users = get_list_users_du_groupe($groupe_id, $DEBUG);
    }
    $tab_users = explode(",", $list_users);
    if ($DEBUG) {
        echo "tab_users =<br>\n";
        print_r($tab_users);
        echo "<br>\n";
    }
    //******************************
    // !!!!
    // type d'absence à modifier ....
    //	$id_type_conges = 1 ; //"cp" : conges payes
    //calcul de l'ID de de la fermeture (en fait l'ID de la saisie de fermeture)
    $new_fermeture_id = get_last_fermeture_id($DEBUG) + 1;
    /***********************************************/
    /** enregistrement des jours de fermetures   **/
    $tab_fermeture = array();
    for ($current_date = $date_debut; $current_date <= $date_fin; $current_date = jour_suivant($current_date)) {
        $tab_fermeture[] = $current_date;
    }
    if ($DEBUG) {
        echo "tab_fermeture =<br>\n";
        print_r($tab_fermeture);
        echo "<br>\n";
    }
    // on insere les nouvelles dates saisies dans conges_jours_fermeture
    $result = insert_year_fermeture($new_fermeture_id, $tab_fermeture, $groupe_id, $DEBUG);
    $opt_debut = 'am';
    $opt_fin = 'pm';
    /*********************************************************/
    /** insersion des jours de fermetures pour chaque user  **/
    foreach ($tab_users as $current_login) {
        $current_login = trim($current_login);
        // on enleve les quotes qui ont été ajoutées lors de la creation de la liste
        $current_login = trim($current_login, "\\'");
        // on compte le nb de jour à enlever au user (par periode et au total)
        // on ne met à jour la table conges_periode
        $nb_jours = 0;
        $comment = "";
        // $nb_jours = compter($current_login, $date_debut, $date_fin, $opt_debut, $opt_fin, $comment,  $DEBUG);
        $nb_jours = compter($current_login, "", $date_debut, $date_fin, $opt_debut, $opt_fin, $comment, $DEBUG);
        if ($DEBUG) {
            echo "<br>user_login : "******" nbjours : " . $nb_jours . "<br>\n";
        }
        // on ne met à jour la table conges_periode .
        $commentaire = _('divers_fermeture');
        $etat = "ok";
        $num_periode = insert_dans_periode($current_login, $date_debut, $opt_debut, $date_fin, $opt_fin, $nb_jours, $commentaire, $id_type_conges, $etat, $new_fermeture_id, $DEBUG);
        // mise à jour du solde de jours de conges pour l'utilisateur $current_login
        if ($nb_jours != 0) {
            soustrait_solde_et_reliquat_user($current_login, "", $nb_jours, $id_type_conges, $date_debut, $opt_debut, $date_fin, $opt_fin, $DEBUG);
        }
    }
    // on recharge les jours fermés dans les variables de session
    init_tab_jours_fermeture($_SESSION['userlogin'], $DEBUG);
    echo '<div class="wrapper">';
    if ($result) {
        echo "<br>" . _('form_modif_ok') . "<br><br>\n";
    } else {
        echo "<br>" . _('form_modif_not_ok') . " !<br><br>\n";
    }
    $comment_log = "saisie des jours de fermeture de {$date_debut} a {$date_fin}";
    log_action(0, "", "", $comment_log, $DEBUG);
    echo "<form action=\"{$PHP_SELF}?session={$session}\" method=\"POST\">\n";
    echo "<input class=\"btn btn-success\" type=\"submit\" value=\"" . _('form_ok') . "\">\n";
    echo "</form>\n";
    echo '</div>';
}