var fadeElement = { initialise: function(obj) { // Set initial opacity for the object: fadeElement.setOpacity(obj, 20); // Add the object to objArray: fadeElement.objArray.push(obj); // Initialise the fadeState property: obj.fadeState = ''; obj.onmouseover = function() { this.fadeState = 'fadingIn'; } obj.onmouseout = function() { this.fadeState = 'fadingOut'; } // Set a timer to call the fader method: if (!window.fadeTimer) window.fadeTimer = setInterval(fadeElement.fader, 50); }, setOpacity: function(obj, opacity) { obj.style.filter = "alpha(opacity=" + opacity + ")"; // For IE filter to work, obj MUST have layout obj.style.KHTMLOpacity = opacity / 100; // Safari and Konqueror obj.style.MozOpacity = opacity / 100; // Old Mozilla and Firefox obj.style.opacity = opacity / 100; // CSS3 opacity for browsers that support it }, fader: function() { // Loop through all objects in objArray: for (var i = 0; i < fadeElement.objArray.length; i++) { var obj = fadeElement.objArray[i]; var opacity = obj.style.opacity * 100; // Check if the current object is animated: if ((obj.fadeState == 'fadingIn') && opacity < 100) fadeElement.setOpacity(obj, opacity + 10); else if ((obj.fadeState == 'fadingOut') && opacity > 20) fadeElement.setOpacity(obj, opacity - 10); } }, objArray: [] // This array stores each object passed to the script. }