//	This javascript tags file downloads and external links in Google Analytics.
//	You need to be using the Google Analytics New Tracking Code (ga.js) 
//	for this script to work.
//	To use, place this file on all pages just above the Google Analytics tracking code.
//	All outbound links and links to non-html files should now be automatically tracked.
//
//	This script has been provided by Goodwebpractices.com
//	Thanks to ShoreTel, MerryMan and Colm McBarron
//
//	www.goodwebpractices.com
//	VKI has made changes as indicated below.	
//  Adapted by Adviso

var docPattern = /([^\/]*\.(?:doc|eps|jpg|png|svg|xls|ppt|pdf|xls|zip|txt|vsd|vxd|js|css|rar|exe|wma|mov|avi|wmv|mp3|xml))(?:$|\&|\?)/gi;
var regExDoc = new RegExp(docPattern);

function urchinAutoTag() {
if (document.getElementsByTagName) {
	// Initialize external link handlers
	var hrefs = document.getElementsByTagName("a");
	for (var l = 0; l < hrefs.length; l++) {
		// try {} catch{} block added by erikvold VKI
		try{
			//protocol, host, hostname, port, pathname, search, hash
			if (hrefs[l].protocol == "mailto:") {
					startListening(hrefs[l],"click",trackMailto);
			} else if (hrefs[l].hostname == location.host) {
					var path = hrefs[l].pathname + hrefs[l].search;
					var isDoc = path.match(docPattern);
					if (isDoc) {
						startListening(hrefs[l],"click",trackExternalLinks);
					}
			} else if (!hrefs[l].href.match(/^javascript:/)) {
					startListening(hrefs[l],"click",trackExternalLinks);
			}
		}
		catch(e){
			continue;
		}
	}
}
}

function startListening (obj,evnt,func) {
	if (obj.addEventListener) {
			 obj.addEventListener(evnt,func,false);
	} else if (obj.attachEvent) {
			 obj.attachEvent("on" + evnt,func);
	}
}

function getLang() {
	var langStr = document.location.pathname.match(/^\/(?:fra|eng)/);
	return (langStr) ? langStr : "";
}

//DÉBUT MAILTO
function trackMailto (evnt) {
	var href = (evnt.srcElement) ? evnt.srcElement.href : this.href;
	var category = 'Mailto';
	var action = href.substring(7);
	var label = document.location.pathname;
	var pvv = getLang() + "/clic/mailto/" + href.substring(7);  

	__utmTrackEvent(category, action, label);  
	urchinTracker(pvv);   
}
//FIN MAILTO

function trackExternalLinks (evnt) {
  var category, action, label, pvv;
	var e = (evnt.srcElement) ? evnt.srcElement : this;
	while (e.tagName != "A") {
			 e = e.parentNode;
	}
	var lnk = (e.pathname.charAt(0) == "/") ? e.pathname : "/" + e.pathname;
	if (e.search && e.pathname.indexOf(e.search) == -1) lnk += e.search;

	//DÉBUT SOCIAL
  if(e.hostname.match(/(twitter|facebook)\.com/gi)){
	  category = 'Medias sociaux - Social media';
	  action = e.hostname + lnk;
	  label = document.location.pathname;
    pvv = "/clic/medias-sociaux/" + e.hostname + lnk;  
	//FIN SOCIAL
    
	//DÉBUT OUTBOUND    
	} else if(e.hostname != location.host){
	  category = 'Liens externes - External links';
	  action = e.hostname + lnk;
	  label = document.location.pathname;
    pvv = "/clic/outbound/" + e.hostname + lnk;
	//FIN OUTBOUND	
	
	} else {
		var matches = regExDoc.exec(lnk);  
		var fileName = matches[1];	
		
		//DÉBUT RSS	
		if(fileName.match(/\.xml($|\?|\&)/gi)) {
		  category = 'RSS';
		  action = fileName;
		  label = document.location.pathname;
      pvv = "/clic/flux-rss/" + fileName;
		//FIN RSS		
		
		//DÉBUT DOCUMENT
		} else if(fileName.match(/\.(pdf|doc|docx)($|\?|\&)/gi)){  
		  category = 'Document';
		  action = fileName;
		  label = document.location.pathname;
      pvv = "/clic/document/" + fileName + '?utm_from=' + document.location.pathname;
		//FIN DOCUMENT		
		
		//DÉBUT DOWNLOAD
		} else {
		  category = 'Téléchargement - Download';
		  action = fileName;
		  label = document.location.pathname;
      pvv = "/clic/download/" + fileName;
      //FIN DOWNLOAD
		}		
	}

  __utmTrackEvent(category, action, label);
  var lang = getLang(); 
	urchinTracker(lang + pvv);  
}
