//*********************************************************
//
//	SCRIPT COOKIE
//
//*********************************************************

//*********************************************************
//	FONCTIONS D'ECRITURE
//*********************************************************

//---------------------------------------------------------
//	SetCookie 
//
// 	Action:		Ecrit dans le cookie
//	Entrée:		cle:	le nom de clé
//			valeur:	la valeur
//	Sortie:		cookie
//---------------------------------------------------------
function SetCookie(cle, valeur) 
{
	// Il faut mettre une date alors on la met dans 20 ans.
	var dateExp = new Date(2020,11,11);
	dateExp = dateExp.toGMTString();
	// On écrit la valeur
	document.cookie = cle + "=" + escape(valeur) +
			"; expires=" + dateExp ;
//			"; secure";
}

//---------------------------------------------------------
//	SetCookieDateCourante
//	Action 		Enregistre l'heure courante
//	Entree		cle:	la clé de la valeur
// 	Sortie		cookie
//---------------------------------------------------------

function SetCookieDateCourante(cle)
{
	// On instancie un objet date
	var ld_date = new Date();

	// on enregistre la date courante
	SetCookie(cle,ld_date.getTime());
}

//---------------------------------------------------------
//	SetCookieCompteur
//	Action 		Compte le nombre de visite
//	Entree		Néant
// 	Sortie		cookie
//---------------------------------------------------------

function SetCookieCompteur()
{
	// On incrémente le compteur de visites
	var li_compteur = GetCookie("nbvisit");
	SetCookie("nbvisit",++li_compteur);

	// On enregistre la premiere date si elle ne l'est pas déjà
	if (GetCookie("premieredate")==null) SetCookieDateCourante("premieredate");
}

//---------------------------------------------------------
//	SetCookieDuree
//	Action 		Enregistre l'interval de temps depuis "startchrono"
//	Entree		cle:	la clé de la valeur
//			startchrono	date de départ dans le cookie
// 	Sortie		cookie
//---------------------------------------------------------

function SetCookieDuree(cle)
{
	// On instancie un objet date
	var ld_date = new Date();

	// On enregistre l'intervale depuis le startchrono
	SetCookie(cle,ld_date.getTime() - GetCookie("startchrono"));
}

//*********************************************************
//	FONCTIONS DE LECTURE
//*********************************************************

//---------------------------------------------------------
//	GetCookie
//	Action 		Lit une valeur
//	Entree		cle:	la clé de la valeur
// 	Sortie		la valeur
//			"null" si la clé n'est pas trouvée
//---------------------------------------------------------

// Fonction qui récupere la valeur à partir de l'offset
function getCookieVal(offset) 
{
	var endstr=document.cookie.indexOf (";", offset);
	if (endstr==-1)
      		endstr=document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie(cle) 
{
	var arg  = cle + "=";
	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;
	}
	// Si on n'a pas trouvé la clé alors on renvoie null
	return null;
}

//---------------------------------------------------------
//	GetCookieDate
//	Action 		Lit une valeur Date
//	Entree		cle:	la clé de la valeur
// 	Sortie		la valeur au format "jjjj jj mmmm aaaa hh:mm:ss"
//			null si la clé n'est pas trouvée
//---------------------------------------------------------

function GetCookieDate(cle)
{
	// On instancie un objet date
	var ld_date = new Date();
	// On le met à la date lue dans le cookie
	ld_date.setTime(GetCookie(cle));

	// Si la date est null c'est qu'elle n'a pas été enregistrée
	if (ld_date.getTime()==0)
		{return null}
	else
		{
		TabJour = new Array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
		TabMois = new Array( "janvier","f&eacute;vrier","mars","avril","mai","juin","juillet","aout","septembre","octobre","novembre","dé&eacute;embre");

		var li_jour 	= ld_date.getDay();
		var li_numero 	= ld_date.getDate();
		var li_mois 	= ld_date.getMonth();
		var li_annee 	= ld_date.getYear();
		var li_heure 	= ld_date.getHours();
		if (li_heure<10) li_heure = "0" + li_heure;
		var li_minute 	= ld_date.getMinutes();
		if (li_minute<10) li_minute = "0" + li_minute;
		var li_seconde 	= ld_date.getSeconds();
		if (li_seconde<10) li_seconde = "0" + li_seconde;
		return TabJour[li_jour] + " " + 
			li_numero + " " + 
			TabMois[li_mois] + " " + 
			li_annee + " " +
			li_heure + ":" +
			li_minute + ":" +
			li_seconde;
		}
}

//---------------------------------------------------------
//	GetCookieDuree
//	Action 		Lit une durée
//	Entree		cle:	la clé de la valeur
// 	Sortie		la valeur au format "hh:mm:ss"
//			"" si la clé n'est pas trouvée
//---------------------------------------------------------

function GetCookieDuree(cle)
{
	// On instancie un objet date
	var ld_date = new Date();
	// On le met à la date lue dans le cookie
	ld_date.setTime(GetCookie(cle));

	if (ld_date.getTime()==0)
		{return null}
	else
		{
		// Il faut ajouter le décalage horaire car getHours en tient compte!!
		var li_heure 	= ld_date.getHours() + ld_date.getTimezoneOffset()/60;
		if (li_heure<10) li_heure = "0" + li_heure;
		var li_minute 	= ld_date.getMinutes();
		if (li_minute<10) li_minute = "0" + li_minute;
		var li_seconde 	= ld_date.getSeconds();
		if (li_seconde<10) li_seconde = "0" + li_seconde;
		return li_heure + ":" +
			li_minute + ":" +
			li_seconde;
		}
}


