document.onmouseup = stop_scroll;
   
var scrollTimer;  
var scrollData = new Array();	 
var scrollMaxSpeed = 20;

var scrollCurrentSpeed = 0;
var scrollDestinationSpeed = scrollMaxSpeed;
	
		 
function scroll_init(text,left,right,scrollWidth,contentWidth,scrollbar,scrollslider,scrollbar_width)
{	 
	// Scrolltext-Eigenschaften
	scrollData[text] = new Object(); 
	scrollData[text].elem = document.getElementById(text);
	scrollData[text].left = document.getElementById(left);
	scrollData[text].right = document.getElementById(right);	
	scrollData[text].width = scrollWidth;  
	scrollData[text].contentWidth = parseInt(contentWidth); 

	// Scrollbar-Eigenschaften
	scrollData[text].scrollbar = document.getElementById(scrollbar);
	scrollData[text].scrollslider = document.getElementById(scrollslider);	
	scrollData[text].scrollwidth = scrollData[text].contentWidth - scrollData[text].width;
	scrollData[text].scrollbar_initwidth = scrollbar_width;

	scrollData[text].elem.style.left = "0px";
	widthInt = parseInt(scrollData[text].contentWidth);

	// Scrollen notwendig?
	if (parseInt(scrollData[text].contentWidth) > (scrollData[text].width+10)) 
	{
		// Breite des Scrollbars bestimmen
		set_scrollbar_width(text);

		scrollData[text].right.style.visibility = "visible";
		scrollData[text].scrollbar.style.visibility = "visible";

		// Draggable für den Slider initalisieren
		new Draggable(scrollslider, { constraint: 'horizontal', change: 
			function() 
			{
				if (parseInt(scrollData[text].scrollslider.style.left) < 0) scrollData[text].scrollslider.style.left = "0px"; 
				if (parseInt(scrollData[text].scrollslider.style.left) > scrollData[text].scrollbar_width) scrollData[text].scrollslider.style.left = scrollData[text].scrollbar_width+"px"; 
				offset = 0-scrollData[text].scrollwidth*parseInt(scrollData[text].scrollslider.style.left)/scrollData[text].scrollbar_width;
				scrollData[text].elem.style.left = offset+"px";
				update_scrollbuttons(text);
			} 
		} );
	}		
	else
	{
		scrollData[text].elem.style.width = scrollWidth+"px";
		scrollData[text].left.style.visibility = "hidden";
		scrollData[text].right.style.visibility = "hidden";
		scrollData[text].scrollbar.style.visibility = "hidden";
	}		  
}

function set_scrollbar_width(id)
{
//		scrollData[text].scrollslider.style.width = scrollbar_width/(widthInt/scrollWidth)+"px";
//		scrollData[text].scrollbar_width = scrollbar_width - parseInt(scrollData[text].scrollslider.style.width);  

	widthInt = parseInt(scrollData[id].contentWidth);
	
	scrollData[id].scrollslider.style.width = scrollData[id].scrollbar_initwidth/(widthInt/scrollData[id].width)+"px";
	scrollData[id].scrollbar_width = scrollData[id].scrollbar_initwidth - parseInt(scrollData[id].scrollslider.style.width);  
}

function update_scrollbar(id)
{
	set_scrollbar_width(id);

	offset = 0-scrollData[id].scrollbar_width*parseInt(scrollData[id].elem.style.left)/scrollData[id].scrollwidth;
	scrollData[id].scrollslider.style.left = offset+"px";
	
	if (parseInt(scrollData[id].contentWidth) > (scrollData[id].width+10)) scrollData[id].scrollbar.style.visibility = "visible";
}

function set_scrollwidth(id,width)
{
	scrollData[id].contentWidth = width;
	scrollData[id].scrollwidth = scrollData[id].contentWidth - scrollData[id].width;
}

function get_scrollwidth(id)
{
	return (scrollData[id].contentWidth);
}

function hide_scrollbuttons(id)
{
	scrollData[id].left.style.visibility = "hidden";
	scrollData[id].right.style.visibility = "hidden";
	scrollData[id].scrollbar.style.visibility = "hidden";
}

function update_scrollbuttons(id)
{
	elem = document.getElementById(id);	   
	leftInt = parseInt(elem.style.left);
	if (leftInt <= scrollData[id].width-scrollData[id].contentWidth)
		scrollData[id].right.style.visibility = "hidden";
	else
		scrollData[id].right.style.visibility = "visible";
		
	if (leftInt >= 0)
		scrollData[id].left.style.visibility = "hidden";
	else
		scrollData[id].left.style.visibility = "visible";
}

function scrollright(id) 
{
	elem = document.getElementById(id);	   
	widthInt = parseInt(scrollData[id].contentWidth);
	leftInt = parseInt(elem.style.left);
	if (scrollCurrentSpeed < scrollDestinationSpeed) scrollCurrentSpeed += 0.3;
	if (scrollCurrentSpeed > scrollDestinationSpeed) scrollCurrentSpeed -= 0.3;
	if (scrollCurrentSpeed <= 0) scroll_end();
	leftInt -= scrollCurrentSpeed;
	if (leftInt < scrollData[id].width-widthInt) 
	{
		leftInt = scrollData[id].width-widthInt;
	}
	elem.style.left = leftInt+"px";
	update_scrollbuttons(id);
	update_scrollbar(id);
}

function scrollleft(id) 
{
	elem = document.getElementById(id);
	leftInt = parseInt(elem.style.left);
	if (scrollCurrentSpeed < scrollDestinationSpeed) scrollCurrentSpeed += 0.3;
	if (scrollCurrentSpeed > scrollDestinationSpeed) scrollCurrentSpeed -= 0.3;
	if (scrollCurrentSpeed <= 0) scroll_end();
	leftInt += scrollCurrentSpeed;
	if (leftInt > 0) 
	{
		leftInt = 0;
	}
	elem.style.left = leftInt+"px";
	update_scrollbuttons(id);
	update_scrollbar(id);
}

function start_scrollright(id)
{							   
	scroll_end();  
	scrollTimer = setInterval("scrollright('"+id+"')",10);	
}

function start_scrollleft(id)
{		
	scroll_end();  
	scrollTimer = setInterval("scrollleft('"+id+"')",10);
}						
					   
function scroll_end()
{
	scrollCurrentSpeed = 0;
	scrollDestinationSpeed = scrollMaxSpeed;
	clearInterval(scrollTimer);
}

function stop_scroll()
{	   							
	scrollDestinationSpeed = 0;
}
