

var cook = {

	dureeSaveQuests: 3,
	dureeSaveRepPHP: 30,
	dureeTestCookie: 0,
	dureePrintAdmin: 1,
	dureeDebugAdmin: 60,
	dureeStatusClie: 10,
	
	Vrai: "VRAI",
	Faux: "FAUX",



	alertCookiesNonActives: function (iLangue) {
	// ---------------------------------------
	switch (iLangue) {
		case iFR: alert ("Les Cookies ne sont pas activ\351s sur votre Navigateur.\nL'activation des cookies est indispensable pour passer les tests.\n\nVoyez la rubrique 'Configuration' !"); break;
		 default: alert ("The cookies are not activated in your Browser.\nThey must be activated before the tests are passed.\n\nSee our menu 'Configuration'!"); break;
		}
	},  //  alertCookiesNonActives

	alertBadCookie: function (iLangue) {
	// -------------------------------
	switch (iLangue) {
		case iFR: alert ("Les Cookies semblent ne pas etre activables sur ce Navigateur.\nVoyez la rubrique 'Configuration' !"); break;
		 default: alert ("The cookies cannot be activated on this Browser.\n\nSee our menu 'Configuration'!"); break;
		}
	},  //  alertBadCookie



	litCookie: function (nom,sCall) {
	// ----------------------------
	// Il n'y a pas d'erreur detectable sur l'operation de lecture d'un cookie
	// En particulier, aucune erreur n'est signalee si les cookies sont desactives
	// Retourne le contenu du cookie OU le String vide si pas de cookie
	var recherche = nom + "=";
	if (window.document.cookie.length > 0) {
		var position = window.document.cookie.indexOf (recherche);
		if (position != -1) {
			position = position + recherche.length;
			var fin = window.document.cookie.indexOf (';',position);
			if (fin == -1) { fin = window.document.cookie.length }
			return (unescape (window.document.cookie.substring (position,fin)));
			} else {
			return ""; 
			}
		} else {
		return "";
		}
	},  // litCookie



	ecritCookie: function (nom,texte,jours,sCall,iLangue) {
	// --------------------------------------------------
	// Retourne le statut de la sauvegarde physique du cookie (vrai ou faux);
	// WARNING ! Aucune erreur n'est signalee si les cookies sont desactives, et cette fonction "ecritCookie" renvoie "TRUE"
	// UTILISER TESTCOOKIE avant toute ecriture sensible !
	// ---------------------------------------------------
	var sCookie = nom + "=" + escape (texte);
	if (jours > 0) {
		var datecourante = new Date ();
		var expires = new Date ();
		expires.setTime (datecourante.getTime () + (24 * 3600 * 1000 * jours));
		sCookie   += "; expires=" + expires.toGMTString ();
		}
	sCookie += "; path=/";
	try { window.document.cookie = sCookie; }
	catch (e) {
		switch (iLangue) {
			case iFR: alert ("Echec de l'ecriture du cookie !"); break;
			 default: alert ("The cookie could not be saved!"); break;
			 }
		return false;
		}
	return true;
	},  // ecritCookie

	ecritCookieArray: function (nom,a,jours,iLangue) {
	// ---------------------------------------------
	return cook.ecritCookie (nom, Array (a).join (","),jours,"",iLangue);
	}, // ecritCookieArray



	killCookie: function (nom) {
	// -----------------------
	var sCookie = nom + "=" + escape ("");
	var datecourante = new Date ();
	var expires = new Date ();
	expires.setTime (datecourante.getTime () - (24 * 3600 * 1000 * 1));
	sCookie += "; expires=" + expires.toGMTString ();
	sCookie += "; path=/";
	window.document.cookie = sCookie;
	}, // killCookie



	buttonRazCookies: function (avecReload) {
	// ------------------------------------
	// Test : est-on en mode "maintien des réponses" (via Admin) ?
	var keepCookiesQuest = cook.litCookie ("ATdebugKeepCookie","");
	if (keepCookiesQuest == cook.Faux) {
		// Si NON, on efface les cookies qui mémorisent les reponses au questionnaire et leur index
		// Cookies "cookieReponses"			Cookies "cookieIndex"
		cook.killCookie ("ATqEgoSave");		cook.killCookie ("ATqEgoIndex");
		cook.killCookie ("ATqEnergoSave");	cook.killCookie ("ATqEnergoIndex");
		cook.killCookie ("ATqMCSave");		cook.killCookie ("ATqMCIndex");
		cook.killCookie ("ATqPosSave");		cook.killCookie ("ATqPosIndex");
		// ------------
		cook.killCookie ("ATqMBTISave");	cook.killCookie ("ATqMBTIIndex");
		}
	// Dans tous les cas, on kill les variables intermédiaires qui alimentent le Recall des Tests
	// Cookies "cookieVariables"			(variables intermédiaires issues de l'encodage et reprises en "recall")
	cook.killCookie ("ATsEgo");
	cook.killCookie ("ATsEnergo");
	cook.killCookie ("ATsMC");
	cook.killCookie ("ATsPos");
	// ------------
	cook.killCookie ("ATsMBTI");
	// ------------
	if (avecReload) { window.location.reload(); }
	},  // buttonRazCookies



	testCookies: function (iLangue,avecMess) {
	// -------------------------------------
	// Fonction appelee par :
	// 1. les fonctions "initQuest???, elles-memes appelees par le "onLoad" de chaque questionnaire
	// 2. la fonction "buttonTestCookies"
	// - elle renvoie un diagnostic vrai / faux
	// - elle affiche un message de mise en garde dans le seul cas n°1
	var bCookiesOK = false
	if (!navigator.cookieEnabled) {
		if (avecMess) { cook.alertCookiesNonActives (iLangue);	}
		} else {
		// Principe : on ecrit puis on relit un cookie de test "ATtest", ad hoc
		var bAccessOK = true;
		var ladate = new Date();
		var sNow = ladate.getDate() + "/" + (ladate.getMonth() + 1) + "/" + ladate.getFullYear();
		var ec = cook.ecritCookie ("ATtestCookie",sNow,cook.dureeTestCookie,"",iLangue);
		var sTest = "";

		var e = new Error();
		try { sTest = cook.litCookie ("ATtestCookie",""); }
		catch (e) { bAccessOK = false; }
		if ((bAccessOK) && (sTest == sNow)) {
			bCookiesOK = true;
			} else {
			if (avecMess) { cook.alertBadCookie (iLangue); }
			}
		}
	return bCookiesOK;
	},  //  testCookies



	getButtonCookies: function (iLangue) {
	// ---------------------------------
	switch (iLangue) {
		case iFR: return "Tester les cookies"; break;
	     default: return "Test cookies"; break;
		}
	}, // getButtonCookies



	makeButtonCookies: function (iLangue) {
	// ----------------------------------
	var sButton = cook.getButtonCookies (iLangue);
	window.document.write('<input type="button" name="boutonCookies" value="' + sButton + '" onClick="cook.buttonTestCookies(window.document.formCookies.boutonCookies,' + iLangue + ')">');
	},  // makeButtonCookies



	buttonTestCookies: function (bouton,iLangue) {
	// -----------------------------------------
	var sButton = cook.getButtonCookies (iLangue);
	var bCookiesOK = cook.testCookies (iLangue,false);
	switch (iLangue) {
		case iFR: if (bCookiesOK) { if (bouton.value == sButton) { bouton.value =  "Les cookies sont OK !"; } else { bouton.value = sButton; } } else { bouton.value = sButton; } break;
	     default: if (bCookiesOK) { if (bouton.value == sButton) { bouton.value =  "Cookies are OK!"; } else { bouton.value = sButton; } } else { bouton.value = sButton; } break;
		}
	},  // buttonTestCookies



	buttonTestJS: function (bouton,iLangue) {
	// ------------------------------------
	var sButton = "JavaScript";						// NE PAS CHANGER ou alors CHANGER AUSSI DANS "menuconfiguration"
	switch (iLangue) {
		case iFR: if (bouton.value == sButton) { bouton.value = "JavaScript est OK !"; } else { bouton.value = sButton; } break;
	     default: if (bouton.value == sButton) { bouton.value = "JavaScript is OK!"; } else { bouton.value = sButton; } break;
		}
	} // buttonTestJS



}; // cookies



