/*
scrollfunktionen
*/
var gMouseContainer = null;

function loadScrollbars(frames, template)
{
	args = frames.split("|");
	
	draginit();
	
	// in den arguments sind die ids der zu scrollenden bereiche
	for(i=0;i<args.length;i++)
	{
		// wenn es den div nicht gibt -> überspringen
		if(!document.getElementById(args[i])) continue;
			
		// parent, container + inhalt
		frame		= args[i];
		container 	= document.getElementById(frame);
		
		
		
		//parentDiv	= container.parentNode;
		content		= container.getElementsByTagName('div')[0];
		
				
		// masse und positionen der bereiche
		containerHeight = container.offsetHeight;
		containerWidth 	= container.offsetWidth;
		containerRight	= container.offsetLeft + container.offsetWidth;
		containerTop	= container.offsetTop;
		contentHeight 	= content.offsetHeight;	
		contentWidth 	= content.offsetWidth;	
		
		if(containerHeight < 50) continue;
		if(contentHeight+50 <= containerHeight) continue;
		
		

		
		content.style.position = 'absolute';
		content.style.top = '0px';
		content.style.width = (contentWidth-10)+'px';
		
		// bereich, der den ganzen scrollbalken mit allem enthält
		scrollArea = document.createElement('div');
		scrollArea.style.position = 'absolute';		
		scrollArea.style.top = '0';
		scrollArea.style.left = (containerWidth-20)+'px';
		scrollArea.style.backgroundColor = '#fff';
		scrollArea.style.width = '20px';
		scrollArea.style.height = '100%';
		container.appendChild(scrollArea);
		
		
		// bereich für den Scrollbereich
		scrollbar = document.createElement('div');
		scrollbar.style.position = 'absolute';
		scrollbar.style.top	= '0';
		scrollbar.style.right = '0';
		scrollbar.style.borderLeft = '1px solid #ccc';
		scrollbar.style.width = '10px';
		scrollbar.style.backgroundColor = '#ddd';
		scrollbar.style.height = '100%';
		scrollArea.appendChild(scrollbar);

		
		// slider
		slider = document.createElement('div');
		slider.style.position = 'absolute';
		slider.style.top = '0';
		slider.style.left = '0';
		slider.style.width = '100%';
		slider.style.height = '50px';
		slider.style.backgroundColor = '#999';
		slider.style.cursor	= 'pointer';
		slider.id = 'slider_'+container.id;
		slider.onmousedown = function() { dragstart(this); };
		scrollbar.appendChild(slider);
		
		
		
		
		// ab jetzt scrollbalken einblenden

		// nach-oben-link
		p = document.createElement('p');
		p.setAttribute('style', 'margin-top:20px;padding-top:0;padding-bottom:0;margin-bottom:0;height:16px;');
		a = document.createElement('a');
		a.href = 'javascript:;';
		//a.id = 'top_'+container.id;
		a.cid = container.id;
		a.onclick = function()
		{
			c = this.parentNode.parentNode;
			s = document.getElementById('slider_'+this.cid);
			
			c.style.top = 0;
			s.style.top = 0;
		}
		a.appendChild(document.createTextNode('To Top of Frame'));
		p.appendChild(a);
		content.appendChild(p);


		container.mySlider = slider;
		container.myContentDiv = content;
		container.myMaxScroll = containerHeight-content.offsetHeight-50;
		container.onmouseover = function()
		{ 
			gMouseContainer = this;
		}
		container.onmouseout = function()
		{
			gMouseContainer = null;
		}

		
	}
}

//Das Objekt, das gerade bewegt wird.
var dragobjekt = null;
var scrollobjekt = null;
var scrollContainer = null;

// Position, an der das Objekt angeklickt wurde.
//var dragx = 0;
var dragy = 0;

// Mausposition
//var posx = 0;
var posy = 0;

var miny = 0;
var maxy = 0;

function draginit() {
	// Initialisierung der Überwachung der Events
	document.onmousemove = drag;
	document.onmouseup = dragstop;
}


function dragstart(element) {
	//Wird aufgerufen, wenn ein Objekt bewegt werden soll.
	dragobjekt = element;
	//dragx = posx - dragobjekt.offsetLeft;
	dragy = posy - dragobjekt.offsetTop;
	maxy = dragobjekt.parentNode.offsetHeight - dragobjekt.offsetHeight;
	
	id = element.id.substring(7);
	scrollcontainer = document.getElementById(id);
	scrollobjekt = scrollcontainer.getElementsByTagName('div')[0];
}


function dragstop() {
	//Wird aufgerufen, wenn ein Objekt nicht mehr bewegt werden soll.
	dragobjekt=null;
	scrollobjekt=null;
	scrollcontainer=null;
}


function drag(ereignis) {
	//Wird aufgerufen, wenn die Maus bewegt wird und bewegt bei Bedarf das Objekt.

	//posx = document.all ? window.event.clientX : ereignis.pageX;
	
	posy = document.all ? window.event.clientY : ereignis.pageY;
	
	if(dragobjekt != null) {
		//dragobjekt.style.left = (posx - dragx) + "px";
		t = posy - dragy;
		if(t < miny) t = 0;
		if(t > maxy) t = maxy;
		
		a = scrollobjekt.offsetHeight+50 - scrollcontainer.offsetHeight;
		s = a/maxy * t;
		if(a > 0) 
		{
			scrollobjekt.style.top = -s + 'px';
			dragobjekt.style.top = t + "px";
		}
	}
}