// fonction qui ajoute un zero si le texte en entree n'a qu'un seul chiffre (1 ->01)
// pour tous les vieux fureteurs et si les fureteurs plantent, ne rien faire - si le javascript plante, les liens devraient fonctionner et on tombera dans 
// la version du site sans javascript
function rien() {return true;}
window.onerror = rien;

// fonction qui ajoute un zero si le texte en entree n'a qu'un seul chiffre (1 ->01)
function preZero(istr) {
	var str = '' + istr;
	if (str.length < 2) {
		str = '0' + str;
	}
	return str;
}
	
// fonction qui vérifie la présence de certains fureteur pour optimiser la fonctionnalité sur chacun de ces fureteurs
// en théorie, Netscape 6.22 et plus, Mozilla 1.0 et plus, Opera 7 et plus, et Ie 5.5 et plus
// sur Mac, Windows et Linux

function lib_bwcheck(){
	var bw = new Object();
	bw.ver=navigator.appVersion;
	bw.agent=navigator.userAgent;
	bw.dom=document.getElementById?1:0;
	bw.win=bw.agent.indexOf("Win")>-1;
	bw.operaOld=((!bw.dom)&&bw.agent.indexOf("Opera")>-1);
	bw.opera5=bw.agent.indexOf("Opera 5")>-1;
	bw.opera5=bw.agent.indexOf("Opera/5")>-1;
	bw.opera6=bw.agent.indexOf("Opera 6")>-1;
	bw.opera6=bw.agent.indexOf("Opera/6")>-1;
	bw.operaM=(bw.opera5||bw.opera6);	
	bw.opera7p=(!bw.operaOld)&&(!bw.operaM)&&(bw.agent.indexOf("Opera")>-1);
	bw.opera=(bw.opera5||bw.opera6||bw.opera7p);
	bw.ie5=(bw.ver.indexOf("MSIE 5")>-1 && bw.dom && !bw.opera)?1:0; 
	bw.ie5_5=(bw.ver.indexOf("MSIE 5.5")>-1 && bw.dom && !bw.opera)?1:0; 	
	bw.ie6=(bw.ver.indexOf("MSIE 6")>-1 && bw.dom && !bw.opera)?1:0;
	bw.ie7=(bw.ver.indexOf("MSIE 7")>-1 && bw.dom && !bw.opera)?1:0;
	bw.ie8=(bw.ver.indexOf("MSIE 8")>-1 && bw.dom && !bw.opera)?1:0;
	bw.ie4=(document.all && !bw.dom && !bw.opera5)?1:0;
	bw.ie6p=(bw.dom && (bw.ver.indexOf("MSIE")>-1))?1:0 
	bw.ie=bw.ie4||bw.ie5||bw.ie6||bw.ie7||bw.ie8||bw.ie6p;
	bw.mac=bw.agent.indexOf("Mac")>-1;
	bw.ns6=(bw.dom && parseInt(bw.ver) >= 5 &&!bw.opera) ?1:0;
	bw.ns6p = bw.ns6; 
	bw.ns4=(document.layers && !bw.dom)?1:0;
	bw.bw=(bw.ie8 || bw.ie7 || bw.ie6 || bw.ie5 || bw.ie5_5  || bw.ns6 || bw.opera);
	return bw;
}
var bw = lib_bwcheck();

var tabImg = new Array();


function preloadImg() {
	preload("img");
	preload("input");
}

function preload(tag) { 
  var elements = document.getElementsByTagName(tag);
  var objA;
  for (i=0;i<elements.length;i++) {
  	if (elements[i].src) {
  		//alert(elements[i].id);
  		//alert(elements[i].src);
	  	if (regExpPatternImgOff.test(elements[i].src)) {
	  		tabImg[i] = new Image();
	  		tabImg[i].src = elements[i].src.replace(regExpPatternImgOff, patternImgOn);
			if (!regExpImgMenu.test(elements[i].id)) {  
				objA = chercheElementParent("a", elements[i]);	
				if (bw.ie && !bw.opera) {
					elements[i].onmouseover=swap;
					elements[i].onmouseout=restore;	
					if (objA) {
						objA.onfocus=swapChildImg;
						objA.onblur=restoreChildImg;			
					}
				} else  {
					elements[i].setAttribute("onmouseover", "swap(this)");	
					elements[i].setAttribute("onmouseout", "restore(this)");	
					if(objA) {
						objA.setAttribute("onfocus", "swapChildImg(this)");	
						objA.setAttribute("onblur", "restoreChildImg(this)");				
					}
				}	
			}
	  	}
	  }	
  } 
} 
// fonction pour mouseover sur images
function swap(imgSwpObj) {
	if (imgSwpObj) {
		imgSwpObj.src = imgSwpObj.src.replace(regExpPatternImgOff, patternImgOn);
	} else {
		if (this) swap(this); 
	}
}

function restore(imgSwpObj) {
	if (imgSwpObj) {
		imgSwpObj.src = imgSwpObj.src.replace(regExpPatternImgOn, patternImgOff);
	} else {
		if (this) restore(this); 	
	}
}

function swapChildImg(aSwpObj) {
	var imgSwpObj;
	if (aSwpObj) {
		imgSwpObj = chercheElementEnfant("img", aSwpObj);
		swap(imgSwpObj);
	} else {
		if (this) swapChildImg(this); 
	}
}

function restoreChildImg(aSwpObj) {
	var imgSwpObj;
	if (aSwpObj) {
		imgSwpObj = chercheElementEnfant("img", aSwpObj);
		restore(imgSwpObj);
	} else {
		if (this) restoreChildImg(this); 
	}
}

var regExpPatternImgOff;
var regExpPatternImgOn;
var patternImgOn;
var patternImgOff;

function setPatternImgOver(patternOff, patternOn) {
	regExpPatternImgOff = new RegExp(patternOff);
	regExpPatternImgOn = new RegExp(patternOn);	
	patternImgOn = patternOn;
	patternImgOff = patternOff;	
}

setPatternImgOver("_0", "_1"); // pattern des url des images ayant un mouseover et devant etre preloadée
regExpImgMenu = new RegExp("^im"); // pattern des id des images faisant parties d'un menu

// les recherches se font sur un seul niveau, pas de recursivite pour questions de perf

function chercheElementParent(nomElement, domObj) {
	var objCourant = domObj.parentNode;
	// on essai juste avec le premier
	if (objCourant.nodeName.toLowerCase() == nomElement.toLowerCase()) return objCourant;
	else return false;	
}

function chercheElementEnfant(nomElement, domObj) {
	var objEnfants = domObj.childNodes;
	var objRech = false;
	for (i=0;i<objEnfants.length;i++) {
	   if (objEnfants[i].nodeType==1) {
			if (objEnfants[i].nodeName.toLowerCase() == nomElement.toLowerCase()) {
				objRech = objEnfants[i];
			}
		}
	}	
	return objRech;	
}


//*********************************************************
//Fonction générique pour le suivi d'événement dans GA
//Params: categorie(obligatoire), action(obligatoire), label(optionnel)
//Les paramètres correspondent à l'arborescence des événements dans GA:
//le label x sous l'action y de la catégorie z (voir GA)
//L'objet pageTracker doit avoir préalablement été créé (plugin struts).
//**********************************************************
function saveStats(categorie, action) {	 
	
	var argv=saveStats.arguments;
	var argc=saveStats.arguments.length;
	var label=(argc > 2) ? argv[2] : null;

	var lLangue;	
	var lSalon;
	
	if (location.href.indexOf("/en/") == -1){		
		lLangue = " FR";
	} else {
		lLangue = " EN";
	}	
	if (location.href.indexOf("/quebec/") == -1){		
		lSalon = "TR ";
	} else {
		lSalon = "QC ";
	}

	categorie = lSalon + categorie;
	categorie += lLangue;
	
	if (typeof pageTracker != "undefined") {
		((label==null) ? (pageTracker._trackEvent(categorie, action)) : (pageTracker._trackEvent(categorie, action, label)))
	}    	
}

function appliqueSuiviStatistiqueAccueil(){
	jQuery(document).ready(function($) {
	
		$("ul#btnMenu li a").click(function() {
			var label = $(this).find("td").html();
			
			var elementCourant = $(this).find("td");
			var position = $("ul#btnMenu").find("td").index(elementCourant) + 1;
		
		 	saveStats("Zone Publicité - Accueil","click - bouton " + position,label);
		});
		
		$("ul#nouvelles span.titre").click(function() {
			var label = $(this).find("a").html();
			
			var elementCourant = $(this);
			var position = $("ul#nouvelles").find("span.titre").index(elementCourant) + 1;
	
		 	saveStats("Zone À Surveiller - Accueil","click - bouton " + position,label);
		});
	});
}
