			function saveDownloadEvent(link, extension)
			{
				var url = link.href;
				
				if(!extension || extension == '')
				{
					extension = 'Undefined';
				}
				
				/*
				extension = extension.split('|');
				
				if(extension.length > 1)
				{
					var domain = extension[0];
				}
				
				extension = extension[(extension.length - 1)];
				*/
				
				_gaq.push(['_trackEvent', 'Downloads', extension, url]);
			}
			
			/**
			 * Récupère le descriptif utilisé pour google analytics
			 * @param link le lien dom
			 * @param extension l'extension du fichier
			 * @return .
			 */
			function getDescriptorLink(link, extension)
			{
				if (!extension)
				{
					extension = 'undefined';
				}
				extension = '/' + extension + '/';
				
				var getDescriptorFromLinkAttribut = function (attributContent)
				{
					if (attributContent && attributContent != '')
					{
						return cleanStringForGA(attributContent, '-', false);
					}
					return '';
				}
			
				var tmp = getDescriptorFromLinkAttribut(link.title);
				if (tmp != '')
				{
					return extension + tmp;
				}
				
				tmp = getDescriptorFromLinkAttribut(link.alt);
				if (tmp != '')
				{
					return extension + tmp;
				}
				
				var href = ('' + link.href);
				if (href && href != '')
				{
					var hrefA = href.split('/');
					tmp = getDescriptorFromLinkAttribut(hrefA[ hrefA.length - 1 ]);
					if (tmp != '')
					{
						return extension + tmp;
					}
				}
				
				return extension + 'undefined';
			}
			
			/**
			 * Récupère une valeur définie par défaut
			 * @param bool isMail est-ce un mailto
			 * @param string key clef de la valeur par défaut
			 * @return la valeur par défaut
			 */
			function getDescriptorGlobalDefaultValue(isMail, key)
			{
				return eval('gaDefault' + (isMail ? 'Email' : 'Http') + key);
			}
			
			/**
			 * @param dom link lien
			 * @param string marker cat, label ou value
			 * @param bool isMail est-ce un mailto
			 */
			function getDescriptorGlobal(link, marker, isMail)
			{
				marker = '' + marker;
				var defaultValue = isMail ? 'Email' : 'Http';
				switch (marker)
				{
					case 'cat':
						return (link.className && link.className != '') ? link.className : getDescriptorGlobalDefaultValue(isMail, 'Category');
					case 'label':
						var value = '' + ((link.title && link.title != '') ? link.title : getDescriptorGlobalDefaultValue(isMail, 'Label'));
						return cleanStringForGA(value.toLowerCase(), '_', isMail);
					case 'value':
						var value = (link.href && link.href != '') ? link.href : getDescriptorGlobalDefaultValue(isMail, 'Value');
						return value.replace(/mailto:/g, '').replace(/http:\/\//g, '');
					default :
					return 'undefined';
				}
			}
			
			/**
			 * 
			 */
			function getDescriptorMail(link, marker)
			{
				return getDescriptorGlobal(link, marker, true);
			}
			
			/**
			 * 
			 */
			function getDescriptorHttp(link, marker)
			{
				return getDescriptorGlobal(link, marker, false);
			}
			
			/**
			 * Nettoie un string pour google analytics
			 * @param string message message a nettoyer
			 * @param string whitespace caractère de remplacement des espaces
			 * @param boolean arobase garde ou non les arobases
			 */
			function cleanStringForGA(message, whitespace, arobase)
			{
				message = '' + message;
				message = message.replace(/ /g, whitespace);
				var regexreplacer = (arobase)?/[0-9a-zA-Z_@\-]/g:/[0-9a-zA-Z_\-]/g;
				return message.match(regexreplacer).join('');
			}
			
			//
			// EMULATION PART
			//
			function callGA(truc1, truc2)
			{
				debug(truc1);
				debug(truc2);
			}
			
			function debug(msg)
			{
				if (typeof console != 'undefined')
				{
					console.log(msg);
				}
				else
				{
					alert(msg);
				}
			}

