/**
 * affiche une boîte de dialogue d'information sur l'expiration imminente de la session utilisateur :
 * si l'utilisateur clique sur OK, la page est rechargée pour réinitialiser le chronomètre de session
 
 * @param int minutes délai avant l'expiration de la session 
 */
function rappelSession(minutes)
{
   var msg='Votre session expirera dans '+minutes+' minute';
   if(minutes>1) msg+='s';
   msg+='.\nVoulez-vous recharger la page pour Ã©viter la dÃ©connexion automatique ?';
   
   if(confirm(msg)) location.reload();
}

/**
 * affiche une alerte sur l'expiration de la session et redirige vers une autre page
 
 * @param string url URL de redirection en cas de déconnexion
 */
function expirationSession(url)
{
   alert('Votre session a expirÃ© !\nVous Ãªtes dÃ©connectÃ© a prÃ©sent.');
   location.href=url;
}

/**
 * affiche des avertissements sur le délai d'expiration de la session :
 * - un premier au bout de (expiration-rappel) minutes (par ex. : 20-3 = 17 minutes)
 * - un second au bout de (expiration) minutes (par ex. : 20 minutes)
 
 * @param int expiration délai en minutes d'expiration de la session
 * @param int rappel délai en minutes avant l'expiration de la session pour l'affichage du rappel
 * @param string redirection URL de redirection en cas de déconnexion
 */
function session(expiration, rappel, redirection)
{
   // affichage du rappel
   var chronoRappel=setTimeout('rappelSession('+rappel+')', (expiration-rappel)*60*1000);
   
   // une fois le rappel affiché, on avertit uniquement de l'expiration
   var chronoExpiration=setTimeout('expirationSession(\''+redirection+'\')', expiration*60*1000);
}
