var __slider_position = 1;
var __slider_max_position = 0;
var __slider_is_animating = false;
var __slider_move = false;
var __slider_width = 0;
var __sliderbox_width = 0;
var __slideshow_stop = false;
var sliders;
var sliderBox;
var sliderContainer;

function loadSlideshow()
{
	sliders = $$('.sliderelement');
	sliderBox = $('sliderbox');
	sliderTable = $('slidertable');	
	sliderContainer = $('slidercontainer');	
	var maxwidth = 0;
	var width = 0;
	
	__sliderbox_width = sliderBox.getWidth();
	
	sliderBox.setStyle({overflow: "hidden"});

	for (var i = 0; i < sliders.length; i++)
	{
		width = sliders[i].getWidth();
		maxwidth += width;
	}	
	
	sliderContainer.setStyle({width: maxwidth + "px"});
	
	__slider_max_position = sliders.length;
	
	if (maxwidth < 100)
	{
		window.setTimeout("loadSlideshow()", 100);
	}
	else
	{
		__slider_width = maxwidth;
	}
}

function slideshow_stop()
{
	__slideshow_stop = true;
}

function slideshow_next()
{
	__slideshow_stop = false;

	if (__slider_is_animating == true)
		return;
	
	slideshow_animate(1, 60, 4);
}

function slideshow_back()
{
	__slideshow_stop = false;
	
	if (__slider_is_animating == true)
		return;
	
	slideshow_animate(-1, 60, 4);
}

function slideshow_animate(direction, fps, seconds)
{
	if (__slideshow_stop == true)
	{
		__slideshow_stop = false;
		__slider_is_animating = false;
		return;
	}
	
	if (direction != -1 && direction != 1)
		direction = 1;

	__slider_is_animating = true;
	
	var pos = sliderContainer.positionedOffset().left;
	var movepixelthisframe = (__slider_width / (fps * seconds)) * direction;
		
	if ( (pos >= 0 && direction == -1) || (pos < 0 && direction == 1 && Math.abs(pos) >= __slider_width - __sliderbox_width)) // Wir sind fertig
	{
		__slider_is_animating = false;
		if (pos >= 0)
			sliderContainer.setStyle({left: 0});
		else
			sliderContainer.setStyle({left: (-1 * (__slider_width - __sliderbox_width)) + "px"});

		return;
	}
	else
	{
		sliderContainer.setStyle({left: (pos - movepixelthisframe) + "px"});
		window.setTimeout("slideshow_animate("+ direction + ", " + fps + ", " + seconds + ")", 1000 / fps);
	}
}
