

function scrollerBox()
{
	var is_scrolling = false;
	var mouse_over_scrollbox = false;
}


scrollerBox.prototype.getCurrentPixelPosition = function()
{
	current_position = parseInt($('scrollerElement').style.left);
	
	
	if (isNaN(current_position))
	{
		current_position = 0;
	}


	return current_position;

}


scrollerBox.prototype.move = function(target_position)
{

	if (!scrollerBox.is_scrolling)
	{
	
		target_position = (target_position * $('scrollerBox').offsetWidth * -1)  ;
		current_position = scrollerBox.getCurrentPixelPosition();	
	
	
		// --- In welchen Zeitintervallen muss ein neues Bild gezeichnet werden (Angabe in MS)
		var frame_wait_time = 33;
		
		// --- Um wieviel Pixel muss das Bild verschoben werden
		var frame_pixel_sum = target_position - current_position ;
		
		
		// --- Anzahl der Frames die gezeichnet werden (30 = 1 Sekunde)
		var frame_amount = 25;
		
		// --- Um wieviel Pixel muss das Bild verschoben werden
		var frame_pixel = frame_pixel_sum / frame_amount; 
	
	
		scrollerBox.is_scrolling = true;
	
		for (var i = 0; i <= frame_amount; i++)
		{
		
			this_frame_position = current_position + (i * frame_pixel);
		
			window.setTimeout("scrollerBox.moveReal(" + this_frame_position + ")", (frame_wait_time * i));
		}
		
		window.setTimeout("scrollerBox.is_scrolling = false;", (frame_wait_time * i));
	}
}

scrollerBox.prototype.moveReal = function(left)
{
	$('scrollerElement').style.left = left + "px";
}

scrollerBox.prototype.moveNext = function()
{
	
	current_element_position = scrollerBox.getCurrentElementPosition();
	
	next_element = current_element_position + 1;
	
	if (next_element >= scrollerBox.getAmountElements())
	{
		next_element = 0;
	}
	
	scrollerBox.move(next_element);
	
}
	
scrollerBox.prototype.movePrevious = function()
{
	
	current_element_position = scrollerBox.getCurrentElementPosition();
	
	next_element = current_element_position - 1;
	
	if (next_element < 0)
	{
		next_element = scrollerBox.getAmountElements() - 1;
	}
	
	scrollerBox.move(next_element);
	
}
	
	
scrollerBox.prototype.getCurrentElementPosition = function()
{
	
	current_pixel_position = scrollerBox.getCurrentPixelPosition();
	
	current_element_position = Math.round((current_pixel_position * -1) / parseInt($('scrollerBox').offsetWidth));
	
	return current_element_position;
}
	
		
scrollerBox.prototype.getAmountElements = function()
{
	var counter = 0;
	
	for(var i = 0; i < $('scrollerElement').childNodes.length; i ++)
	{
		if ($('scrollerElement').childNodes[i].nodeName == "LI")
		{
			counter ++;
		}	
	}

	return counter;
}


scrollerBox.prototype.autoScroll = function()
{
	if (!scrollerBox.mouse_over_scrollbox)
	{
		scrollerBox.moveNext();
	}
}


scrollerBox = new scrollerBox();
window.setInterval("scrollerBox.autoScroll()", 5000);

