function Slideshow(id, pWidth, pHide)
{
	var picWidth = pWidth;
	if (pHide == undefined)
		hide = false;
	else
		hide = pHide;
	var container = $(id);
	var sliders = $$('#' + id + ' .sliderelement');
	var sliderBox = $$('#' + id + ' .sliderbox')[0];
	var sliderContainer = $$('#' + id + ' .slidercontainer')[0];
	var arrowLeft = $$('#' + id + ' .arrow_left')[0];
	var arrowRight = $$('#' + id + ' .arrow_right')[0];
	var __slider_position = 1;
	var __slider_max_position = 0;
	var __slider_is_animating = false;

	
	this.showArrows = function()
	{
		arrowLeft.show();
		arrowRight.show();
	};
	
	this.hideArrows = function()
	{
		arrowLeft.hide();
		arrowRight.hide();
	};
	
	this.next = function()
	{
		if (__slider_is_animating == true)
			return;
		
		if (__slider_max_position == __slider_position)
		{
			return;
		}
	
		this.animate(__slider_position, __slider_position + 1, 60, 0.4);
	};

	this.back = function()
	{
		if (__slider_is_animating == true)
			return;

		if (__slider_position == 1)
		{
			return;
		}
	
		this.animate(__slider_position, __slider_position - 1, 60, 0.4);
	};	
	
	this.load = function()
	{
		var maxheight = 0;
		var height;
	
		sliderBox.setStyle({overflow: "hidden"});
	
		for (var i = 0; i < sliders.length; i++)
		{
			sliders[i].setStyle({height: "auto"});
			height = sliders[i].getHeight();
			if (maxheight == 0 || maxheight < height)
			{
				maxheight = height;
			}
		}	
	
		__slider_max_position = sliders.length;
	
		var width = sliders.length * picWidth;

		sliderBox.setStyle({height: maxheight + "px"});
		sliderContainer.setStyle({width: width + "px", height: maxheight + "px"});	
	
	
		for (var i = 0; i < sliders.length; i++)
		{
			sliders[i].select('.sliderpicture')[0].setStyle({height: (maxheight - 16) + "px"});
		}
		
		if (maxheight < 50)
		{
			window.setTimeout(this.load.bind(this), 100);
		}
		
		container.select('.shadow')[0].observe('mouseover', this.showArrows.bind(this));
		container.select('.shadow')[0].observe('mouseout', this.hideArrows.bind(this));		
		arrowLeft.observe('click', this.back.bind(this));
		arrowRight.observe('click', this.next.bind(this));
		
		if (hide == true)
			container.addClassName('hidden');
	}

	

	this.animate = function(from, to, fps, seconds)
	{
		__slider_is_animating = true;


		if (to - from < 0)
			var direction = -1;
		else
			var direction = 1;
		
		var movepixels = Math.abs(to - from) * 238;
		var movepixelthisframe = movepixels / (fps * seconds) * direction;
		var pos = sliderContainer.positionedOffset().left;
	
		if ( pos > 0 || (pos < 0 && ((direction == 1 && Math.abs(pos) >= (to-1) * 238) || (direction == -1 && Math.abs(pos) <= (to-1) * 238)))) // Wir sind fertig
		{
			__slider_position = to;
			__slider_is_animating = false;
			sliderContainer.setStyle({left: (to-1) * -238 + "px"});
	
			return;
		}
		else
		{
			sliderContainer.setStyle({left: (pos - movepixelthisframe) + "px"});
			window.setTimeout(this.animate.bind(this), 1000 / fps, from, to, fps, seconds);
		}
	};
	
	this.load();	
}

