﻿//*************************************************//
// Fichier utilisé pour identifier les trackers    //
// sur le site national de l'Ademe.				   //
//*************************************************//

//Active ou désactive les alertes Javascript
var TEST = false;

//DEFINITION DES NIVEAUX A ANALYSER
var NIVEAU = new Array();
/*
On définit jusqu'à quel niveau dans l'arborescence on doit descendre pour obtenir le tracker.
Par exemple, le cas ci dessous :
	> Domaines d'interventions  "UA-X1"
		> Déchets "UA-X2"
			>Logistique "UA-X3"			
Lorsque l'utilisateur est dans Logistique, on ne doit pas fournir le tracker "UA-X1" mais "UA-X3".
Ainsi NIVEAU["Déchets"] = 3;
*/			
NIVEAU[""] = 2;
NIVEAU["Air"] = 2;
NIVEAU["Bâtiment"] = 2;
NIVEAU["Bruit"] = 2;
NIVEAU["Changement climatique"] = 2;
NIVEAU["Déchets"] = 3;
NIVEAU["Economies d'énergie"] = 2;
NIVEAU["Energies et matières renouvelables"] = 3;
NIVEAU["Management environnemental et éco-produits"] = 2;
NIVEAU["Sites pollués et sols"] = 2;
NIVEAU["Agriculture"] = 2;
NIVEAU["Etat exemplaire"] = 2;
NIVEAU["Notre carte d'identité"] = 2;
NIVEAU["Nos ressources et notre organisation"] = 2;
NIVEAU["Administrations"] = 2;
NIVEAU["Collectivités"] = 2;
NIVEAU["Entreprises"] = 2;
NIVEAU["Grenelle Environnement"] = 3;

//DEFINITION DES TRACKERS
var defaultTracker = "UA-6069317-6"; //tracker par défaut (site national).
var  TRACKERS = new  Array();

//Menus niveau 2
TRACKERS["Domaines d'intervention", "Domaines d'intervention"] = "UA-6069317-6"; //Page d'accueil DI
TRACKERS["Domaines d'intervention", "Air"] = "UA-12540773-5"; 
TRACKERS["Domaines d'intervention", "Bâtiment"] = "UA-12540773-4"; 
TRACKERS["Domaines d'intervention", "Bruit"] = "UA-12540773-6"; 
TRACKERS["Domaines d'intervention", "Changement climatique"] = "UA-12540773-7"; 
TRACKERS["Domaines d'intervention", "Déchets"] = "UA-12540773-10"; 
TRACKERS["Domaines d'intervention", "Economies d'énergie"] = "UA-12540773-11"; 
TRACKERS["Domaines d'intervention", "Energies et matières renouvelables"] = "UA-12540773-3"; 
TRACKERS["Domaines d'intervention", "Management environnemental et éco-produits"] = "UA-12540773-9"; 
TRACKERS["Domaines d'intervention", "Sites pollués et sols"] = "UA-12540773-12";
TRACKERS["Offres de l'ADEME", "Agriculture"] = "UA-12544881-7";
TRACKERS["Développement durable", "Développement durable"] = "UA-12544881-4";
TRACKERS["Développement durable", "Etat exemplaire"] = "UA-12544881-5";
TRACKERS["Qui sommes-nous ?", "Notre carte d'identité"] = "UA-12544881-2";
TRACKERS["Qui sommes-nous ?", "Nos ressources et notre organisation"] = "UA-12544881-3";
TRACKERS["Offre de l'ADEME", "Offre de l'ADEME"] = "UA-12544881-6";
TRACKERS["Offre de l'ADEME", "Administrations"] = "UA-12544881-8";
TRACKERS["Offre de l'ADEME", "Collectivités"] = "UA-12544881-10";
TRACKERS["Offre de l'ADEME", "Entreprises"] = "UA-12544881-11";
TRACKERS["Développement durable", ""] = "UA-12544881-4";
TRACKERS["Développement durable", "Grenelle Environnement"] = "UA-12544881-12";
TRACKERS["Topics", "Topics"] = "UA-6069317-7";

/*
	Menus Niveau 3 ou plus.
	Comme vu plus haut, sur déchets par exemple, on a NIVEAU["DECHETS"] = 3.
	Dans ce cas ou va définir les trackers de déchet ci dessous.
	
	Pour résumer on a
	TRACKERS["Domaines d'intervention", "Déchets"] et TRACKERS["Déchets", "Logistique"]
>>> niveaux  		1						2									3		
*/
TRACKERS["Déchets", "Logistique"] = "UA-12540773-14"; //Déchets logistique
TRACKERS["Déchets", "A chaque déchet des solutions"] = "UA-12540773-13"; //Déchets logistique
TRACKERS["Energies et matières renouvelables", "Fonds Chaleur"] = "UA-12540773-2"; 
TRACKERS["Grenelle Environnement", "Présentation"] = "UA-12544881-13"; //Taxe carbone

//Récupération de l'indice des menus
function getMenuX(menu, table)
{
	var ind = 0;
	
	for(ind; ind < table.length; ind++)
	{
		alert(table[ind] + "   -   " + menu);
		if(table[ind] == menu)
		{
			return ind;
		}
	}
}

//Récupération des trackers
function getTracker()
{	
	var tracker;
	
	//Recherche la position de l'utilisateur dans le menu
	var position = rechercherPositionMenu();
	//Dans positions[0] j'ai le menu N1 -- Dans positions[1] j'ai le menu N2
	var positions = position.split("|");	
	
	if(positions[1] == "")
		positions[1] = positions[0];
		
	//On vérifie si le tracker à utiliser est bien celui de niveau 2 ou si il faut descendre plus bas
	//dans l'arborescence
	var niveau = NIVEAU[positions[1]];
	
	if(TEST)
		alert("Niveau à analyser :"+niveau);
		
	//Tracker du menu niveau 2	(ex: déchets)
	tracker = TRACKERS[positions[0], positions[1]];
	//Tracker non trouvé
	if(!tracker)
	{		
		//On utilise le tracker du niveau supérieur (ex: Domaine d'intervention)
		tracker = TRACKERS[positions[0], positions[0]];
		
		//Toujours pas de tracker : tracker du site national
		if(!tracker)
		{		
			tracker = defaultTracker;			
		}
	}
	
	//Si Niveau 3 pour le tracker
	if(niveau == 3)
	{		
		//Récupération du sous thème dans le H2 de class 'soulThema'
		var sousTheme = rechercherSousTheme();
		
		if(TEST)
			alert("Sous thème :" + sousTheme);
			
		//Si il existe un tracker pour le sous thème alors on l'utilise sinon tracker par défaut.
		var trackerTemp = TRACKERS[positions[1], sousTheme];
		
		if(TEST)
			alert("Tracker niveau 3 :" + trackerTemp);
			
		if(trackerTemp)
		{
			tracker = TRACKERS[positions[1],sousTheme];
		}
	}
	
	if(TEST)
		alert(tracker);
		
	return tracker;
}//getTracker

//Recherche la position de l'utilisateur dans le menu gauche
function rechercherPositionMenu()
{		
	if(TEST)
		alert('rechercherPositionMenu');
		
	var mainTitle = "";
	var subTitle = "";
	
	//parcours de la page HTML jusqu'au menu gauche activé (menuGOn)		
	var headings = document.evaluate('//ul', document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null );
	var thisHeading = headings.iterateNext();

	while (thisHeading) {
	 
	  if(thisHeading.className == 'menuGOn')
	  {
		mainTitle = cleanString(thisHeading.textContent);
		break;			
	  }		  
	  thisHeading = headings.iterateNext();
	}							
	
	if(TEST)
		alert("Menu : [" + mainTitle + "]");		
	
	//parcours de la page HTML jusqu'au menu gauche activé (menuGOn)		
	var headings = document.evaluate('//li', document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null );
	var thisHeading = headings.iterateNext();

	while (thisHeading) {	 
	  if(thisHeading.className == 'on')
	  {
		subTitle = cleanString(thisHeading.textContent);
		break;			
	  }		  
	  thisHeading = headings.iterateNext();
	}							
	
	if(TEST)
		alert("Sous menu : [" + subTitle + "]");
	
	//retourne le menu principal et le sous menu séparés par un pipe
	return mainTitle+"|"+subTitle;
}

//Recherche le sous thème de la page en cours
function rechercherSousTheme()
{		
	if(TEST)
		alert('rechercherSousTheme');
		
	var sousTheme = "";	
	
	//parcours de la page HTML jusqu'au titre H2 de class soulThema
	var headings = document.evaluate('//h2', document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null );
	var thisHeading = headings.iterateNext();

	while (thisHeading) {
	 
	  if(thisHeading.className == 'soulThema')
	  {
		sousTheme = cleanString(thisHeading.textContent);
		break;			
	  }		  
	  thisHeading = headings.iterateNext();
	}							
	
	if(TEST)
		alert("Sous theme : [" + sousTheme + "]");		

	//retourne le sous theme de la page
	return sousTheme;
}

//Utile pour nettoyer le nom des menus du site national.	
function cleanString (myString)
{			
	/*
	//Suppression des accents sur les a
	myString = myString.replace(/[àâä]/gi,'a');	
	//Suppression des accents sur les e		
	myString = myString.replace(/[éèêë]/gi,'e');
	//Suppression des accents sur les i		
	myString = myString.replace(/[îï]/gi,'i');
	//Suppression des accents sur les o		
	myString = myString.replace(/[ôö]/gi,'o');
	//Suppression des accents sur les u
	myString = myString.replace(/[ùûü]/gi,'u');
	//Suppression des cédilles
	myString = myString.replace(/[ç]/gi,'c');
	*/
	
	//Suppression de la ponctuation
	myString = myString.replace(/[.,;:]/g,'');	
	//Suppression des espaces
	myString = myString.replace(/^\s+/g,'').replace(/\s+$/g,'');
	
	return myString;
} 	
