/**
* Écrit ou ré-écrit le contenu sCookie dans le cookie sNomCookie, et le fait expirer dans un ans pour le path '/'
* du domaine courant
* @ param string "sCookie" "le contenu à inscrire dans le cookie"
* @ param string "sNomCookie" "le nom du cookie à écrire ou ré-écrire"
*/
function ecrireCookie(sCookie,sNomCookie)
{
	var iTempsExpiration=new Date(); 
	
	// Expire le cookie dans 1 an
	iTempsExpiration.setFullYear(iTempsExpiration.getFullYear()+1);
	document.cookie=sNomCookie+"="+sCookie +"; expires="+ iTempsExpiration.toGMTString()+"; path=/;";
}

/**
* Crée un cookie sous le nom reçu 
*
* @ param string "sNomCookie" "le nom du cookie à créer"
*/
function creerCookie(sNomCookie)
{
	var sCookie="";
	ecrireCookie(sCookie,sNomCookie);
}


/**
* Vérifie si le cookie existe, sinon crée le cookie
*
*/
function verifierSiCookieExiste(sNomCookie)
{
	// Vérifie si le cookie existe
	if (retournerCookie(sNomCookie)==false)
		creerCookie(sNomCookie);
}

/**
* Retourne le contenu du cookie sans la déclaration initiale du cookie (videos_visionnes=)
Modifie la partie du cookie correspondant au module et à l'étape reçus, selon le type de modification reçu
*
* @ param string "sNomCookie" "le nom du cookie à écrire ou ré-écrire"
* @ return string "sContenuCookie" "la chaîne de caractères du contenu du cookie sans la déclaration initiale du cookie", false si le cookie est inexistant
*/
function retournerCookie(sNomCookie)
{
	var iDebutCookie = document.cookie.indexOf(sNomCookie);
	// Si le cookie n'existe pas...
	if( iDebutCookie == -1 )
		return false;

	// Tronque ce qui précède le cookie sNomCookie
	var sCookie = document.cookie.substr(iDebutCookie);

	var iDebutContenuCookie = sNomCookie.length + 1;
	var iFinContenuCookie = sCookie.indexOf(';');
	
	if(iFinContenuCookie == -1)
		sContenuCookie = sCookie.substr(iDebutContenuCookie);
	else
		sContenuCookie = sCookie.substring(iDebutContenuCookie, iFinContenuCookie);
		
	return sContenuCookie;
}

/**
* Détecte et retourne si les cookies sont désactivés sur le navigateur de l'utilisateur
*
* @ param string "sNomCookie" "le nom du cookie de test"
* @ return bool "blnCookiesDesactives" "si les cookies sont désactivés"
*/
function retournerSiCookiesDesactives()
{
	var blnCookiesDesactives = false;
	var sNomCokie = '__mon__cookie__test__';
	
	creerCookie(sNomCokie);
	ecrireCookie('test', sNomCokie);
	var test = retournerCookie(sNomCokie);
	
	if(test == 'test')
		effacerCookie(sNomCokie);// S'assure que le cookie est effacé
	else
		blnCookiesDesactives = true;
	
	return blnCookiesDesactives; 
}

/**
* Efface le cookie existant sous le nom reçu
*
* @ param string "sNomCookie" "le nom du cookie"
*/
function effacerCookie(sNomCookie) {
	var sCookie = retournerCookie(sNomCookie);
	dAncienneDate=new Date;
	dAncienneDate.setFullYear(dAncienneDate.getFullYear()-1);	
    document.cookie=sNomCookie +"=;expires="+ dAncienneDate.toGMTString()+"; path=/;";
}

