
// JavaScript Document


/*
////////////////////////////////////////////////////////////////////////////////////////////////
//
// ALCIIP - 11/09/2003 - bap
//
// trace.js - module de traçage de l'activité de l'internaute
//
////////////////////////////////////////////////////////////////////////////////////////////////
// 
// Inclue dans chaque page du site, cette portion de code permet d'enregistrer dans  un cookie 
// le chemin parcouru par l'internaute sur le site afin de le restituer au moment ou celui-ci 
// choisira éventuellement de remplir un formulaire.
//
// On sait ainsi pour chaque formulaire :
//
//		- par quel lien l'internaute est arrivé sur le site
//		- dans la cas d'un moteur de recherche, quels mots-clé il a saisi
//		- quelles pages du site il a visité avant de soumettre son formulaire ( à chacune est 
//		associée la date et l'heure de visite )
//		- combien de temps il a passé sur chacune des pages
//		
//		- on dispose en outre d'un récapitulatif nombre de pages vues / temps total passé sur 
//		le site
//
//		> ces informations sont actuellement enregistrées sur les 12 derniers mois de navigation
//
////////////////////////////////////////////////////////////////////////////////////////////////
//
// Sur toutes les pages, en plus de cette bibliothèque :
//
//		- insérer après la balise <BODY> le tag :
//		<script language="JavaScript"> creaCookie(document.referrer,document.url,0); </script>
//
////////////////////////////////////////////////////////////////////////////////////////////////
//
// Sur la page contenant le formulaire, en plus de cette bibliothèque :
//
//		- insérer avant la balise </BODY> le tag :
//		<script language="JavaScript"> creaCookie(document.referrer,document.url,1); </script>
//		
//		- vérifier que le formulaire utilisé se nomme 'form_cookie'
//		- ajouter dans ce formulaire un champ caché portant pour nom 'retour_info' : c'est ce 
//		champ qui lors de la soumission éventuelle du formulaire contiendra toutes les données
//		enregistrées lors de la navigation.
//
////////////////////////////////////////////////////////////////////////////////////////////////
*/



	// DEFINITION DES VARIABLES GLOBALES ////////

	// code_temps_actuel ; code_date_actuelle //
	var mydate=new Date();

	var code_temps_actuel=mydate.getTime();

	if(mydate.getDate()<10){
		var ma_date = "0" + mydate.getDate();
	}
	else{
		var ma_date = mydate.getDate();
	}
	
	if(mydate.getMonth()<9){
		var mon_mois = "0" + (mydate.getMonth()+1);
	}
	else{
		var mon_mois = (mydate.getMonth()+1);
	}

	var mon_annee = mydate.getYear();

	var code_date_actuelle = ma_date + "/" + mon_mois + "/" + mon_annee;

	// nb_pages //
	if(document.cookie) {
		var nb_pages = GetCookie("pages_vues");
	}
	else{
		SetCookie("pages_vues","0");
		var nb_pages = GetCookie("pages_vues");	
	}
	

	// FONCTION DE RECUPERATION DES VALEURS CONTENUES DANS UN COOKIE DONNE //
	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;
	}

	// FONCTION ANNEXE A GetCookie (name) //
	function getCookieVal(offset) {
		var endstr=document.cookie.indexOf (";", offset);
		if (endstr==-1)
      			endstr=document.cookie.length;
		return unescape(document.cookie.substring(offset, endstr));
	}

	// FONCTION DE DEFINITION D'UN COOKIE //
	function SetCookie (name, value) {
		var expireLe = new Date();
		expireLe.setMonth(expireLe.getMonth()+12);
		document.cookie = name + "=" + escape(value) + "; expires=" + expireLe.toGMTString() + "; path=/";
	}


	// FONCTION QUI AJOUTE UN ENREG. A UN COOKIE //
	function ajouteEnregistrement(nom_cookie,enregistrement){

			if(GetCookie(nom_cookie)){
				var ancien_contenu = GetCookie(nom_cookie);

				var nouveau_contenu = ancien_contenu + "@" + enregistrement;
				SetCookie (nom_cookie, nouveau_contenu);
			}
			else{
				SetCookie (nom_cookie, enregistrement);
			}	
	}
	
	// FONCTION QUI GERE LA CONVERSION EVENTUELLE DES INDICES DE TEMPS EN INTERVALLES //
	function calculeTemps(param){
		
		if(param == "avec_precedent"){
			if(GetCookie("temps_visite")){
			
				var contenu_existant = GetCookie("temps_visite").split("----")[0];
				var debut_temps = GetCookie("temps_visite").split("----")[1];
				var fin_temps = code_temps_actuel;
				var reecriture = fin_temps - debut_temps;
				reecriture = reecriture / 1000;
				var reecriture = Math.round(reecriture);
	
				if(reecriture<600){
		
					var chaine_finale = contenu_existant + "@" + reecriture + "----" + code_temps_actuel;								
				}
		
				else{
					var chaine_finale = contenu_existant + "@?----" + code_temps_actuel;
				}
				SetCookie ("temps_visite", chaine_finale);			
	
			}
			else{
				SetCookie ("temps_visite", "?----" + code_temps_actuel);
			}
			
		}
		if(param == "sans_precedent"){
		
			if(GetCookie("temps_visite")){
			var contenu_existant = GetCookie("temps_visite").split("----")[0];
			var chaine_finale = contenu_existant + "@?----" + code_temps_actuel;								
			SetCookie ("temps_visite", chaine_finale);			
			}
			else{
			var chaine_finale = "?----" + code_temps_actuel;								
			SetCookie ("temps_visite", chaine_finale);			
			}
		
		}				
		}
	
	// FONCTION QUI LIT UN ENREGISTREMENT D'UN COOKIE //
	function litEnregistrement(nom_cookie, index_enregistrement){
	
		index_enregistrement = index_enregistrement - 1;
		var contenu = GetCookie(nom_cookie);			
		var info_cookie = contenu.split("@")[index_enregistrement];
		return info_cookie;		
		
	}
	
	// FONCTION QUI S'OCCUPE DE LA GESTION DU TOTAL DES PAGES INTERNES VUES //
	function incrementeTotal(){
	
		if(GetCookie("total")){
				var ancien_contenu = GetCookie("total");
				var nouveau_contenu = eval(ancien_contenu) + 1;
				SetCookie ("total", nouveau_contenu);
		}
		else{
			SetCookie ("total", 1);
		}	
	
	}
	

	////////////////////////////////////////////////////////////////////////////////////////////////////
	// FONCTION PRINCIPALE
	////////////////////////////////////////////////////////////////////////////////////////////////////

	function creaCookie(domaine,url_referente,url_actuelle,form_index){
	
	
	nb_pages = eval(GetCookie("pages_vues"))+1;
	SetCookie("pages_vues", nb_pages);	

		if(url_referente == ""){
	
			url_referente = "_";
			
			ajouteEnregistrement("date",code_date_actuelle);		
		
			ajouteEnregistrement("url",url_referente);	
		
			calculeTemps("sans_precedent");
		
		}
		else{
				
			var url_referente_test = url_referente.split("/");
			
			if(url_referente_test[2] == domaine){
			
				url_referente = url_referente_test[url_referente_test.length - 1];
				
				ajouteEnregistrement("date",code_date_actuelle);		
		
				ajouteEnregistrement("url",url_referente);	
		
				calculeTemps("avec_precedent");
				
				incrementeTotal();
				
			}
			else{
						
			ajouteEnregistrement("date",code_date_actuelle);		
		
			ajouteEnregistrement("url",url_referente);	
		
			calculeTemps("sans_precedent");
			
			}
			
		}
		
		
	var total = "";
	var cumul_temps = 0;	

	for( x=1; x <= nb_pages; ++x){
	
		var url_finale = litEnregistrement("url", x);
	
		if(url_finale == "_"){
			url_finale = "Adresse saisie directement dans la barre d&#39;adresses";
		}
			
		if(url_finale == ""){
			url_finale = "index.html";
		}
			
		var temps_final = litEnregistrement("temps_visite", x);
		var letype = typeof(temps_final);

		if(letype == "string"){
				temps_final = temps_final.split("----")[0];
		}
		
		if(temps_final != "?" && temps_final != " ?" && temps_final != "&#160;?"){
			cumul_temps = Number(cumul_temps) + Number(temps_final);
		}	
		
		total = total + "<font color='#444444'>le " + litEnregistrement("date", x) + "</font>&#160; &#8594; &#160; " + url_finale + " <font color='#444444'>(</font> " +  temps_final + " secs. <font color='#444444'>)</font><br>";
		
	}
		
			
	url_actuelle = url_actuelle.split("/");
	url_actuelle = url_actuelle[url_actuelle.length - 1];
		
	total = total + "<font color='#444444'>le " + code_date_actuelle + "</font>&#160; &#8594; &#160; " + url_actuelle + " <font color='#444444'>(</font> ? secs. <font color='#444444'>)</font><br><br>";
		
	if(GetCookie("total")){
		total = total + "<font color='#444444'>total de pages vues : </font>" + (eval(GetCookie("total")) + 1) + "<br><br>";
	}
	
	var reste_secondes = cumul_temps % 60;
	var temps_en_minutes = (cumul_temps - reste_secondes) / 60 ;

	var s_pluriel = "";
	if(temps_en_minutes != 0 && temps_en_minutes != 1){
		s_pluriel = "s";
	}	
	
	total = total + "<font color='#444444'>temps passé sur le site :</font> au moins " + temps_en_minutes + " minute" + s_pluriel + " et " + reste_secondes + " secondes<br>";
	
	if(form_index==1){
		document.form_cookie.retour_info.value = total;
	}
		
}
