<public:component>
<public:attach event="onmouseover" onevent="fade('in')" />
<public:attach event="onmouseout" onevent="fade('out')" />

<script language="Javascript">
var eTimer = new Object();
var initopa = 40;
var hopa = 100;

element.style.filter="Alpha()";
element.filters.alpha.opacity = initopa;

function fade(s){
/*
 * rate   - time in milliseconds between trasparency changes (best under 100)
 * delta  - amount of change each time (ie 5, for 5% change in transparency)
 */

	switch(s){
		case "in":
			destOp = hopa;
			rate = 30;
			delta = 5;
			break;
		case "out":
			destOp = initopa;
			rate = 30;
			delta = 5;
			break;
	}

	if(eTimer[element.sourceIndex]) clearTimeout(eTimer[element.sourceIndex]);
	if(element.filters.alpha.opacity!=destOp){
		diff = destOp-element.filters.alpha.opacity;
		direction = 1;
		if (element.filters.alpha.opacity > destOp){
			direction = -1;
		}
		delta=Math.min(direction*diff,delta);
		element.filters.alpha.opacity+=direction*delta;

		eTimer[element.sourceIndex] = setTimeout(fade, rate)
	}
}
</script>