/*Eric Marcastel  12/99
MARCASTEL home Site  : http://perso.wanadoo.fr/marcastel
e.marcastel@wanadoo.fr
Fonctions de gestion de cookies*/


/* getCookieVal (offset)
   Retourne la valeur du cookie -> chaine de caracteres 'utile' 
   Cette fonction est utlisée par GetCookie(name)
*/
function getCookieVal (offset) {
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
    endstr = document.cookie.length;
  return  document.cookie.substring(offset, endstr);        //unescape(document.cookie.substring(offset, endstr));
}

/*  GetCookie (name)
    Cette fonction retourne le cookies dont le nom est specifie dans "name"
      name - Chaine contenant le nom du cookie à lire.
      returns - chaine de caractéres résultat de la fonction GetCookie (name) contenant la valeur du cookie,
               retourne null si le cookie n'existe pas.
*/
function GetCookie (name) {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
	   if (document.cookie.substring(i, j) == arg)
     return getCookieVal (j);
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break; 
  }
  return null;
}

/* SetCookie(..)
  Fonction de création ou de mise à jour de cookie.
    name - Chaine contenant le nom du cookie à utiliser.
    value - Chaine contenat la valeur du cookie.
    [expires] - Date de fin de validité du cookie.
    [path] - Chaine de caratéres indiquant répertoire dans lequel le cookie est valide.
    [domain] - Chaine de caratéres indiquant le nom du site dans lequel le cookie est valide.
    [secure] - Booléen (true/false) valeur indiquant l'obligation d'utiliser une liaison sécurisée (HTTPS).  

  Les 2 premiers paramétres sont obligatoires. Les autres, s'ils sont utilisés 
  doivent être passés dans l'ordre donné.
  Les  dernier paramétres non utilisé n'ont pas besoin d'être renseigné.
  Remplacer  par null, un paramétre optionnel non utilisé.
  Par exemple, pour appeler SetCookie en utilisant le nom, la valeur et le répertoire, écrire: 
 
      SetCookie ("NomDeMonCookie", "ValeurDeMonCookie", null, "/");

  Pour créer un cookie avec comme répertoire "/MonRépertoire, 
  dont la validité termine lors de l'arret du navigateur,
  écrire le code suivant:

  To set a secure cookie for path "/myPath", that expires after the
  current session, you might code:

      SetCookie (VarNom, VarValeur, null, "/MonRepertoire", null, true);
*/
function SetCookie (name, value) {
  var argv = SetCookie.arguments;
  var argc = SetCookie.arguments.length;
  var expires = (argc > 2) ? argv[2] : null; 
  var path = (argc > 3) ? argv[3] : null;
  var domain = (argc > 4) ? argv[4] : null;
  var secure = (argc > 5) ? argv[5] : false;
  document.cookie = name + "=" +  value + //escape (value) +
    ((expires == null) ? "" : ("; expires=" + expires )) + 
    ((path == null) ? "" : ("; path=" + path)) +
    ((domain == null) ? "" : ("; domain=" + domain)) +
    ((secure == true) ? "; secure" : "");
}

/* DeleteCookie (name)
   Demande de suppression du cookie. 
   Modifie le paramétre expire du cookie en lui donnant la date courante.

   		   name - chaine contenant le nom du cookie
*/   				
function DeleteCookie (name) {
  var exp = new Date();
  exp.setTime (exp.getTime() - 1);  // This cookie is history
  var cval = GetCookie (name);
  if (cval != null)
    document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}


/* Qnom(Question)
  Question-  libellé de la question 
  Retourne la réponse saisi par l'utilisateur 
*/
function Qnom(Question)  {
var retour = prompt ( Question, ' ' );
return retour;
}

