nereidFadeObjects = new Object();
nereidFadeTimers = new Object();

/* object - image to be faded (actual object, not name);
 * destop - destination transparency level (ie 80, for mostly solid)
 * rate   - time in milliseconds between transparency changes (best under 100)
 * delta  - amount of change each time (ie 5, for 5% change in transparency)
 */

function nereidFade(object, destOp, rate, delta){
if (!document.all)
return
    if (object != "[object]"){  //do this so I can take a string too
        setTimeout("nereidFade("+object+","+destOp+","+rate+","+delta+")",0);
        return;
    }
        
    clearTimeout(nereidFadeTimers[object.sourceIndex]);
    
    diff = destOp-object.filters.alpha.opacity;
    direction = 1;
    if (object.filters.alpha.opacity > destOp){
        direction = -1;
    }
    delta=Math.min(direction*diff,delta);
    object.filters.alpha.opacity+=direction*delta;

    if (object.filters.alpha.opacity != destOp){
        nereidFadeObjects[object.sourceIndex]=object;
        nereidFadeTimers[object.sourceIndex]=setTimeout("nereidFade(nereidFadeObjects["+object.sourceIndex+"],"+destOp+","+rate+","+delta+")",rate);
    }
}



function expandCollapse(id) {
	expandedItem = getElemRefs(id+"_e");
	collapsedItem = getElemRefs(id+"_c");
	if(expandedItem && collapsedItem) {
		if(expandedItem.style.display == "none") {
			hideDiv(id+"_c");
			showDiv(id+"_e");
		} else {
			hideDiv(id+"_e");
			showDiv(id+"_c");
		}
	}
if(expandedItem && !collapsedItem)
	{
		collapseImage = getElemRefs(id+"_collapseimg");
		if(expandedItem.style.display == "none") {
			showDiv(id+"_e");
			if(collapseImage) {
			  collapseImage_re = new RegExp("_collapsed\\.gif$");
			  collapseImage.src =  collapseImage.src.replace(collapseImage_re, '.gif');
			}
                    if (collapseImage)
		      {
			collapseImage_re = new RegExp("^(td|tc)(_collapsed)$");
			collapseImage.className = collapseImage.className.replace(collapseImage_re, '$1');
		   }

		} else {
			hideDiv(id+"_e");
			if(collapseImage) {
		         collapseImage_re = new RegExp("\\.gif$");
			 collapseImage.src =  collapseImage.src.replace(collapseImage_re, '_collapsed.gif');
			}
                         if (collapseImage){
			collapseImage_re = new RegExp("^(td|tc)$");
			collapseImage.className = collapseImage.className.replace(collapseImage_re, '$1_collapsed');
	
                     }
		}
	}
}
function getElemRefs(id) {
	if(document.getElementById) {
		return document.getElementById(id);
	}
	else if(document.all) {
		return document.all[id];
	}
	else if(document.layers) {
		return document.layers[id];
	}
}

function showDiv(id) {
	var lyr = getElemRefs(id);
	if(lyr && lyr.style) {
		lyr.style.display = "";
	}
}

function hideDiv(id) {
	var lyr = getElemRefs(id);
	if(lyr && lyr.style) {
		lyr.style.display = "none";
	}
}

