var interval = null;
var slideTime = 9000;
var displayPercentComplete = 0;
var currentPic = new Array( 8 );
for( i = 0; i < currentPic.length; i++ )
{
	currentPic[i] = 0;
}

function slideshowInit( nr )
{
	slideshowWaitUntilComplete( nr );
}

function slideshowWaitUntilComplete( nr )
{
	var percentComplete = slideshowIsLoadComplete( nr );
	if( percentComplete >= 100 )
	{
		slideshowSetSizes( nr );
		slideshowSetText( nr, "" );
		slideshowRefresh( nr );
		var elem = document.getElementById( "slideshow-controls-" + nr );
		if( elem )
		{
			elem.style.visibility = "visible";
		}
		interval = window.setInterval( "slideshowNext( " + nr + " )", slideTime );
	}
	else
	{
		var range = Math.floor( 100/slideshowGetNumPics( nr ) );
		if( displayPercentComplete < percentComplete + range - 1 && displayPercentComplete < 100 )
		{
			displayPercentComplete += 1;
			if( displayPercentComplete < percentComplete )
			{
				displayPercentComplete = percentComplete;
			}
		}
		slideshowSetText( nr, "Bilder werden geladen (" + displayPercentComplete + "%) ..." );
		window.setTimeout( "slideshowWaitUntilComplete( " + nr + " )", 200 );
	}
}

function slideshowIsLoadComplete( nr )
{
	var elem = document.getElementById( "slideshow-pics-" + nr );
	if( elem == null )
	{
		return 100;
	}
	var num = 0;
	var pics = elem.getElementsByTagName( "img" );
	if( pics.length < 1 )
	{
		return 100;
	}
	for( var i = 0; i < pics.length; i++ )
	{
		if( pics[i].complete )
		{
			num++;
		}
	}
	return Math.floor( num*100/pics.length + 0.5 );
}

function slideshowSetSizes( nr )
{
	var elem = document.getElementById( "slideshow-pics-" + nr );
	if( elem )
	{
		var textDiv = document.getElementById( "slideshow-text-" + nr );
		var pics = elem.getElementsByTagName( "img" );		
		var scale = 1;
		for( var i = 0; i < pics.length; i++ )
		{
			var width;
			var height;
			if( false )
			{
				var width = elem.style.width;
				var height = elem.style.height;
				width = width.substr( 0, width.length - 2 )- 2;
				height = height.substr( 0, height.length - 2 ) - 2;
				if( pics[i].title && textDiv )
				{
					height = height - textDiv.offsetHeight;
				}
			}
			else
			{
				var width = 398;
				var height = 382;
			}

			var w = pics[i].width;
			var h = pics[i].height;
			if( w > 0 && h > 0 )
			{
				scale = Math.min( width/w, height/h );
			}
			else
			{
				scale = 1;
			}
			w = Math.floor( w*scale + 0.5 );
			h = Math.floor( h*scale + 0.5 );
			pics[i].style.width  = w + "px";
			pics[i].style.height = h + "px";
			pics[i].style.left   = ( ( width  - w )*0.5 + 1 ) + "px";
			pics[i].style.top    = ( ( height - h )*0.5 + 1 ) + "px";
		}
	}
}

function slideshowPrev( nr )
{
	window.clearInterval( interval );
	currentPic[nr] = currentPic[nr] - 1;
	if( currentPic[nr] < 0 )
	{
		currentPic[nr] = slideshowGetNumPics( nr ) - 1;
	}
	slideshowRefresh( nr );
}

function slideshowNext( nr )
{
	window.clearInterval( interval );
	currentPic[nr] = currentPic[nr] + 1;
	if( currentPic[nr] >= slideshowGetNumPics( nr ) )
	{
		currentPic[nr] = 0;
	}
	slideshowRefresh( nr );
	interval = window.setInterval( "slideshowNext( 1 )", slideTime );
}

function slideshowGetNumPics( nr )
{
	var elem = document.getElementById( "slideshow-pics-" + nr );
	if( elem )
	{
		var pics = elem.getElementsByTagName( "img" );
		return pics.length;
	}
	return 0;
}
		
function slideshowRefresh( nr )
{
	var elem = document.getElementById( "slideshow-pics-" + nr );
	if( elem )
	{
		var pics = elem.getElementsByTagName( "img" );
		
		for( var i = 0; i < pics.length; i++ )
		{
			if( i == currentPic[nr] )
			{
				pics[i].style.visibility = "visible";
				slideshowSetText( nr, pics[i].title );
			}
			else
			{
				pics[i].style.visibility = "hidden";
			}
		}
	}
}

function slideshowSetText( nr, text )
{
	var elem = document.getElementById( "slideshow-text-" + nr );
	if( elem )
	{
		if( text.indexOf( " - " ) >= 0 )
		{
			text = text.substr( 0, text.indexOf( " - " ) );
		}
		elem.firstChild.nodeValue = text;
		elem.style.visibility = ( text.length == 0 ? "hidden" : "visible");
	}
}


