var fadeTimers = new Object();
  
function fade(id, destOp, rate, delta) {
	clearTimeout(fadeTimers[id]);
	var obj = document.getElementById(id);
	var opacity;
	var type;
	if (typeof obj.filters != 'undefined') { // IE
		opacity = obj.filters.alpha.opacity;
      	type = 0;
	} else if (typeof obj.style.opacity != 'undefined') { // CSS3
		opacity = obj.style.opacity;
		type = 1;
	} else if (typeof obj.style.MozOpacity != 'undefined') { // Mozilla
		opacity = obj.style.MozOpacity;
		type = 2;
	} else
	return;

	if (type > 0) {
		opacity *= 100;
	}
	diff = destOp - opacity;
	var dir = opacity > destOp ? -1 : 1;
	var delta = Math.min(dir * diff, delta);
	opacity += delta * dir;
	if (type == 0)
		obj.filters.alpha.opacity = opacity;
	else if (type == 1)
		obj.style.opacity = opacity / 100;
	else
		obj.style.MozOpacity = opacity / 100;
	if (dir == 1 && opacity < destOp  ||  dir == -1 && opacity > destOp)
		fadeTimers[id] = setTimeout("fade('"+id+"',"+destOp+","+rate+","+delta+")", rate);
}

function hoverThumbnail(img, path, caption, hover) {
	var lblCaption = document.getElementById("lblCaption");
	lblCaption.innerHTML = hover ? caption : "&nbsp;";
	if (typeof(img) != "undefined") {
		var src = path + "/_std" + (hover ? "_hover" : "") + ".jpg";
		if (img.src != src) img.src = src;
	}
}
