/******************************************************************
 * Program: 	fader.js
 * Function: 	Fades in / out dom elements
 * Author: 		A. Schösser
 * Date:		2008-11-03
 ******************************************************************/


/******************************************************************
 * Fade a DOM element having a start opacity to a target opacity  
 * @param id       	id of the dom element to fade
 * @param start		start opacity
 * @param target	target opacity 
 * @param speed		fading speed, i.e pause in ms
 * @return			-
 ******************************************************************/

function fade(id, start, target, speed, last_timer)
{
	timer = last_timer, dummy = 0;
	if(start < target)	
	{
		// Fade in
		for(opac = start; opac < target; opac++)
		{
			window.setTimeout("setOpac('" + id + "', " +  opac + ", " + dummy +  ")", timer * speed);
			timer = timer + 1;
		}
	}
	else
	{
		// Fade out
		for(opac = start; opac > target; opac--)
		{
			window.setTimeout("setOpac('" + id + "', " +  opac + ", " + dummy + ")", timer * speed);
			timer = timer + 1;
		}
	}
	return(timer);
} 


/*****************************************************************
 * Set Opacity of a DOM element
 * @param id		id of the dom element to modify
 * @param opac		
 * @return
 *****************************************************************/

function setOpac(id, opacity, dummy)
{
    var object = document.getElementById(id).style;
    object.zoom = 1;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
    // alert(dummy);
}


/****************************************************************
 * fade out a DOM element completely
 * @param id		id of the DOM element to fade
 * @param speed		fading speed, i.e. pause between steps in ms
 * @return			- 
 ****************************************************************/

function fade_out(id, speed, last_timer)
{
	return(fade(id, 100, 0, speed, last_timer));
}



/****************************************************************
 * Fade in a DOM element completely
 * @param id		id of the DOM element to fade
 * @param speed		fading speed, i.e. pause between steps in ms
 * @return			-
 ****************************************************************/

function fade_in(id, speed, last_timer)
{
	return(fade(id, 0, 100, speed, last_timer));
} 
