/*
 * Created on 03.01.2010
 * Copyright (c) Andreas Bauer <andreas.bauer@creaktif.de>
 */

var _currentPicture = 0;
var _speed = 3000;
var _timer;
var _pictures = new Array();
var _opacityEffect;

function InitPicture(element, pictures)
{
	ClearInterval();
	_pictures = pictures;
	
	/* Erstes Bild anzeigen */
	ShowPicture(element, 0, 0);

	/* Bild automatisch durchlaufen lassen solange kein Button zum Wechseln der Slideshow
	 * geklickt wurde.
	 */
	_timer = setInterval(function() { NextPicture(element); }, _speed);
}

function ClearInterval()
{
	clearInterval(_timer);
	_timer = null;
}

function ResetSlideshow()
{
	ClearInterval();
	_currentPicture = 0;
	_pictures = new Array();
}

function ShowPicture(element, num, oldNum)
{
	if (document.images["slideshow_button" + oldNum] != undefined)
	{
		document.images["slideshow_button" + oldNum].src = "images/blue_dot1.gif";
		document.images["slideshow_button" + num].src = "images/blue_dot2.gif";
	}
	
	var slideshowOpacity = document.getElementById("slideshow-opacity");
	
	if (slideshowOpacity)
	{
		slideshowOpacity.style.opacity = 0;
		slideshowOpacity.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(Opacity=0)'; /* FŸr IE 8 */
		slideshowOpacity.style.filter = 'alpha(opacity=0)'; /* FŸr IE 5-7 */
		slideshowOpacity.style.display = "block";
		
		// NŠchstes Bild in der Slideshow laden und anzeigen
		document.images["slideshow2"].src = _pictures[num]["picture"];
		
		_opacityEffect = new Opacity("slideshow-opacity", 0);
		_opacityEffect.Start(1, 0.06, 20, 200);
	}
	
	document.images[element].src = _pictures[oldNum]["picture"];
	
	// Zoom Bild laden wenn die Zoom-Funktion aktiviert ist
	var zoom = document.getElementById("slideshow-zoom-image");
	if (zoom != undefined)
		document.images["slideshow-zoom-image"].src = _pictures[_currentPicture]["picture"];
	
	// Wenn eine Bild Caption existiert muss diese angezeigt werden
	var caption = _pictures[_currentPicture]["caption"];
	if (caption != undefined)
		document.getElementById("slideshow-text").innerHTML = caption;
}

function SelectPicture(element, num)
{
	_opacityEffect.Reset();
	_opacityEffect = null;
	
	oldPicture = _currentPicture;
	_currentPicture = num;
	
	ShowPicture(element, _currentPicture, oldPicture);
}

function NextPicture(element)
{
	_opacityEffect.Reset();
	_opacityEffect = null;
	
	if (_currentPicture < (_pictures.length - 1))
	{
		oldPicture = _currentPicture;
		_currentPicture = _currentPicture + 1;
		
		ShowPicture(element, _currentPicture, oldPicture);
	}
	else if (_currentPicture < _pictures.length)
	{
		oldPicture = _currentPicture;
		_currentPicture = 0;
		
		ShowPicture(element, _currentPicture, oldPicture);
	}
}

function PreviousPicture(element)
{
	_opacityEffect.Reset();
	_opacityEffect = null;
	
	if (_currentPicture > 0)
	{
		oldPicture = _currentPicture;
		_currentPicture = _currentPicture - 1;
		
		ShowPicture(element, _currentPicture, oldPicture);
	}
	else if (_currentPicture == 0)
	{
		oldPicture = _currentPicture;
		_currentPicture = (_pictures.length - 1);
		
		ShowPicture(element, _currentPicture, oldPicture);
	}
}
