// fonction rollover
var oRollover =
{
	_addEvent: function(oElem, sEvType, fn, bCapture)
		{
		  return oElem.addEventListener?
		  oElem.addEventListener(sEvType, fn, bCapture):
		  oElem.attachEvent?
			 oElem.attachEvent('on' + sEvType, fn):
			 oElem['on' + sEvType] = fn;
	},
	
	// Preload et Rollover
	_Init: function(container)
	{
		if (document.getElementById && document.getElementsByTagName && document.getElementById(container))
		{
			oRollover.Id = container;
			var extension = '';
			var fileurl = '';
			var myPreload  = new Array(); 
			var ImageCible = '';
			// Récupération de toutes les images à traiter
			
			var AllImages = oRollover._Cont().getElementsByTagName('img');
			
			if(!AllImages) return;
			
			// Boucle principale des images
			for(var indexImage = 0; indexImage < AllImages.length; ++indexImage)
				{
				var targetImage = AllImages[indexImage];
					if (targetImage.src.match(oRollover.RegexEtatNormal))
						{ 
						fileurl = targetImage.src.match(oRollover.RegexEtatNormal)[3];
			
						
						// Préchargement des images
						ImageCible = targetImage.src;
						ImageCible = ImageCible.replace('_nm.','_hv.');
						myPreload[indexImage] = new Image();
						myPreload[indexImage].src = ImageCible;						
						
						// addEventListener
						oRollover._addEvent(targetImage, 'mouseover', oRollover._Change, false);
						oRollover._addEvent(targetImage, 'mouseout', oRollover._Reset, false);
						
						// Si l'image est dans un lien
						if(targetImage.parentNode.tagName == "A")
							{
							oRollover._addEvent(targetImage.parentNode, 'focus', oRollover._Change, false);
							oRollover._addEvent(targetImage.parentNode, 'blur', oRollover._Reset, false);
							}
						}
				}
		}
	},
	
	// Devient à l'état hover
	_Change: function(event)
	{
		var oElem = event.target || window.event.srcElement;
		var oImg = (oElem.tagName == "IMG") ? oElem : oElem.firstChild;
		var extension = '';
		var fileurl = '';
				
		fileurl = oImg.src.match(oRollover.RegexEtatNormal); 
		
		if(!oImg.src.match(oRollover.RegexEtatHover)){ // Permet d'éviter mouseover et focus simultanés
			oImg.src = oImg.src.replace('_nm.','_hv.');
		}
	},
	
	// Retourne à l'état normal
	_Reset: function(event)
	{
		var oElem = event.target || window.event.srcElement;
		var oImg = (oElem.tagName == "IMG") ? oElem : oElem.firstChild;
		oImg.src = oImg.src.replace("_hv","_nm");
	},

	// Récupération du conteneur
	_Cont: function()
	{
		var oCont = (oRollover.Id != '') ? document.getElementById(oRollover.Id) : document;
		return oCont;
	},
	
	// Id du conteneur à traiter. Si vide on prend toutes les images de la page
	Id: 'menu',
	RegexEtatNormal: /(.*)(_nm\.)([^\.]{3,4})$/,
	RegexEtatHover: /(.*)(_hv\.)([^\.]{3,4})$/
};