var te_scr_dn = null;
var te_scr_up = null;

function makeScrollable(base_id)
{
	varname = base_id + '_scr';
	var varname = new Control.Slider(base_id + '_scrollhandle',base_id + '_scrollbar', {axis:'vertical', sliderValue:0, onSlide:function(v){scrollVertical(v, $(base_id + '_list'), varname)}, onChange:function(v){scrollVertical(v, $(base_id + '_list'), varname)}});
	
	diff = $(base_id + '_list').scrollHeight-$(base_id + '_list').offsetHeight;
	scrollbarheight = $(base_id + '_scrollbar').offsetHeight;
	$(base_id + '_scrollhandle').style.top = Math.round(($(base_id + '_list').scrollTop) * scrollbarheight / diff) + 'px';
	
	sc_dn = $(base_id + '_scrolldown');
	sc_up = $(base_id + '_scrollup');
	Event.observe(sc_dn, 'mouseover', function(e){te_scr_dn = window.setInterval("scrollVerticalUpDown('" + base_id + "', 'down')", 50);});
	Event.observe(sc_up, 'mouseover', function(e){te_scr_up = window.setInterval("scrollVerticalUpDown('" + base_id + "', 'up')", 50);});
	Event.observe(sc_dn, 'mouseout', function(e){window.clearInterval(te_scr_dn);});
	Event.observe(sc_up, 'mouseout', function(e){window.clearInterval(te_scr_up);});
}

function scrollVertical(value, element, slider) 
{
	element.scrollTop = Math.round(value/slider.maximum*(element.scrollHeight-element.offsetHeight));	
}

function scrollDown(base_id)
{
	var te_scr = setInterval("scrollVerticalDown('" + base_id + "')", 500);
}

function scrollMouseUp()
{
	var te_scr = false;
}

function scrollVerticalUpDown(base_id, direction)
{
	slider = base_id + '_scr';
	element = $(base_id + '_list');
	diff = element.scrollHeight-element.offsetHeight;
	scrollbarheight = $(base_id + '_scrollbar').offsetHeight;
	
	if(direction == 'up')
	{
		if(element.scrollTop > 0)
		{
			move = -1;
		}
		else
		{
			return false;
		}
	}
	
	if(direction == 'down')
	{
		if(element.scrollTop < element.scrollHeight)
		{
			move = 1;
		}
		else
		{
			return false;
		}
	}
	
	element.scrollTop += move;
	if(element.scrollTop < 0)
	{
		element.scrollTop = 0;
	}
	else if(element.scrollTop > diff)
	{
		element.scrollTop = diff;
	}
	
	handlepos = Math.round((element.scrollTop) * scrollbarheight / diff);
	//stepfactor = move/diff;
	//step = element.scrollTop / diff * stepfactor;
	//alert('Handle: ' + handlepos);
	//alert('steps: ' + steps);
		//handlemove = Math.round(scrollbarheight * move / element.offsetHeight * diff );
	//handlemove = Math.round(scrollbarheight * stepfactor * step);
	//alert(scrollbarheight);
	//alert(handlemove);
	
	handle = $(base_id + '_scrollhandle')
	/*
	top = handle.style.top;
	oldtop = top.substring(0,top.length-2);
	newtop = parseInt(oldtop) + handlemove;
	*/
	newtop = handlepos;
	if(newtop < 0)
	{
		newtop = 0;
	}
	else if(newtop > scrollbarheight)
	{
		newtop = scrollbarheight;
	}
	//alert(newtop);
	handle.style.top = newtop + 'px';
}

function scrollCurrentValue(base_id)
{
	element = $(base_id + '_list');
	scTop = element.scrollTop;
	slider = base_id + '_scr';
	diff = element.scrollHeight-element.offsetHeight;
	return scTop/diff;//(element.scrollHeight-element.offsetHeight)*slider.maximum;
}

function te_menu_click(id, link)
{
	/*
	if($('te_submenu_' + id))
	{
		Element.toggle('css_submenu_' + id);
		if($('css_submenu_' + id).style.display == 'none')
		{
			Cookie.set('css_submenu_' + id, 0, 1);
		}
		else
		{
			Cookie.set('css_submenu_' + id, 1, 1);
		}
	}*/
	if(link)
	{	
		location.href = link;
	}
}
