// JavaScript Document
//

var fadeDuration      = 1000;
var timeBetweenImages = 9999;
var slideShowInterval = (fadeDuration *2) + timeBetweenImages;

var startImageNumber;
									
//
// http://brainerror.net/scripts/javascript/blendtrans/
//
function setOpacity( id, opacity )							// 0 <= opacity <= 100
{	var style = document.getElementById(id).style; 

	style.filter		= "alpha(opacity=" + opacity + ")";	// IE(7,8)
	style.opacity		= (opacity / 100);					// CSS3, Firefox 3.x, Safari 3.x
	style.MozOpacity	= (opacity / 100); 
//	style.KhtmlOpacity	= (opacity / 100); 
}

function getOpacity( id )
{	var ie   = document.getElementById(id).filters;
	var css3 = document.getElementById(id).style;			// Firefox 3.x, Safari 3.x

	if (     	 typeof ie               != 'undefined' )
		if (     typeof ie.alpha         != 'undefined' )	// Firefox won't parse this.
			if ( typeof ie.alpha.opacity == 'number'    )
				 return ie.alpha.opacity ;

	if (     typeof css3.opacity == 'string' )
		if (        css3.opacity != ''       )
			return (css3.opacity *  100);

	return 100;
}

//
function fade( id, direction, duration, frameRate )
{
	if ( typeof direction == 'undefined' )
				direction =  'out' ;

	if ( typeof duration  == 'undefined' )
				duration  =  fadeDuration;		// milliseconds

	if ( typeof frameRate == 'undefined' )
				frameRate =  20 ;				// frames per second

	var interval  = Math.round( 1000 / frameRate ) ;
	var numFrames = 				   frameRate * duration / 1000;
	
	var opacity      = getOpacity( id );
	var opacityChange;
	
	if (direction == 'out')
		opacityChange = opacity - 0;
	else
		opacityChange = 100 - opacity;
	
	var stepSize = Math.round( opacityChange / numFrames ) ;

	setOpacity( id, opacity );
	
	var img     = new Image();
		img.src = nextImage(id);

	intervalID = setInterval( "fadeInterval('" + id + "', " + stepSize + ", '" + direction + "')", interval );
}

function fadeInterval( id, stepSize, direction )
{	
	if ( typeof direction  == 'undefined' )
				direction  =  'out' ;

	if ( direction == 'out')
		stepSize = -stepSize;
		
	var opacity = getOpacity( id );

	if ( (direction == 'out')? (opacity > 0): (opacity < 100) )
		setOpacity( id, (opacity + stepSize) );
	else
	{	
		clearInterval( intervalID );

		if (direction == 'out')
		{
			document.getElementById(id).src = nextImage( id );
			
			fade( id, 'in' );
			
			setTimeout( "fade('" + id + "')", slideShowInterval );
		}
	}
}

function slideshow( id )
{
	startImageNumber = imageNumber( id );
	
	setTimeout( "fade('" + id + "')", slideShowInterval );
}

//
function nextImage( id )
{
	var img    = document.getElementById(id);
	var str    = img.src;
	var imgNum = imageNumber(id);

	if	( imgNum > 1 )	imgNum -= 1;
	else				imgNum  = startImageNumber;

	return	str.substring( 0, str.lastIndexOf('/') +1) + imgNum +
			str.substring(    str.lastIndexOf('.')      );
}

function imageNumber( id )
{
	var img = document.getElementById(id);
	var str = img.src;
	
	return parseInt( str.slice( str.lastIndexOf('/') +1, str.lastIndexOf('.') ) );
}