fadeObject = new Object();
fadeTimer = new Object();
function objectFade(object, destOp, rate, delta){
	if (navigator.appName=="Netscape") {
		destOp = Math.round((destOp/100)*100)/100;
		delta = Math.round((delta/100)*100)/100;

		clearTimeout(fadeTimer[object.id]);

		difference = Math.round((destOp-object.style.opacity)*100)/100;
		direction = 1;
		if (object.style.opacity > destOp) { direction = -1; }
		delta = Math.min(direction*difference,delta);

		object.style.opacity = Math.round((parseFloat(object.style.opacity)+(direction*delta))*100)/100;

		if (object.style.opacity < destOp) {
			if (object.style.opacity != destOp && object.style.opacity < 1) {
				fadeObject[object.id] = object;
				fadeTimer[object.id] = setTimeout("objectFade(fadeObject["+object.id+"],"+destOp*100+","+rate+","+delta*100+")",rate);
			}
		} else if (object.style.opacity > destOp) {
			if (object.style.opacity != destOp && object.style.opacity > 0) {
				fadeObject[object.id] = object;
				fadeTimer[object.id] = setTimeout("objectFade(fadeObject["+object.id+"],"+destOp*100+","+rate+","+delta*100+")",rate);
			}
	    }
	} else if ((navigator.appName).indexOf("Microsoft")!=-1) {
		if (!document.all) { return; }
		if (object!="[object]"){
			setTimeout("objectFade("+object+","+destOp+","+rate+","+delta+")",0);
			return;
		}
		clearTimeout(fadeTimer[object.id]);

		difference = destOp-object.filters.alpha.opacity;
		direction = 1;
		if (object.filters.alpha.opacity > destOp) { direction = -1; }
		delta = Math.min(direction*difference,delta);

		object.filters.alpha.opacity += direction*delta;
		if (object.filters.alpha.opacity != destOp){
		    fadeObject[object.id]=object;
			fadeTimer[object.id]=setTimeout("objectFade(fadeObject["+object.id+"],"+destOp+","+rate+","+delta+")",rate);
	    }
	}
}