// Parameter
var	sense1	= 40;	// Sensibilitaetszone 1 (in %)
var	sense2	= 20;	// Sensibilitaetszone 2 (in %)
var	speed1	= 2;	// Scrollgeschwindigkeit in Zone 1
var	speed2	= 5;	// Scrollgeschwindigkeit in Zone 2
var	stime	= 50;	// Timer zum Scrollen

// Interne Variablen
var	scrolling	= false;
var	scrollfast;
var	richtung;
var	y_mem	= -1;
var	myWin	= window;

// Autoscroll
var	y	= 0;
var	weiter	= 1;
var	max_y	= 300;
var     max_f   = 300;
var scroller=-1;
var scrollerStart=-1;
var langsam     = true;
function Scrollen_init() {
	if(myWin.Event)
		myWin.document.captureEvents(Event.MOUSEMOVE);

	myWin.document.onmousemove	= zeige;
	max_y = myWin.innerHeight != null ? myWin.innerHeight : myWin.document.body.clientHeight
	max_f = myWin.document.height ? myWin.document.height : myWin.document.body.scrollHeight;
	Scrollen()
}
function Scrollen() {
	if (weiter == 1) {
		scrolling = false;
		y_mem = -1;
                zeit = 100;
		myWin.scrollTo(0, y);
		if (y > max_f - max_y) { y = -1; langsam = true;} // parseInt(10, 10) }
		y = y + 1;
                if(langsam || y == 1) {zeit = 10000; langsam = false;}
		myWin.clearTimeout(scroller);
		scroller = myWin.setTimeout("Scrollen()", zeit);
	}
}
function Scrollen_stop() {
	weiter = 0;
}
function Scrollen_weiter() {
	weiter = 1;
	y = (myWin.pageYOffset != null) ? myWin.pageYOffset : myWin.document.body.scrollTop;
	myWin.clearTimeout(scroller);
	scroller = myWin.setTimeout("Scrollen()",10000);
}

// Scroll aktivieren und durchfuehren
function start_scrolling(initial)
{
	if(!scrolling)
		return;

	// Dokumentposition ermitteln
	var	dy	= (myWin.pageYOffset != null) ? myWin.pageYOffset : myWin.document.body.scrollTop;
	if((y_mem != dy) && !initial)
		return;
	var	dx	= (myWin.pageXOffset != null) ? myWin.pageXOffset : myWin.document.body.scrollLeft;
	dy	+= richtung * (scrollfast ? speed2 : speed1);

	// Scrollen
	myWin.scrollTo(dx, dy);
	y_mem	= dy;

	// Funktion erneut aufrufen
	clearTimeout(scrollerStart);
	scrollerStart = setTimeout("start_scrolling(false)", stime);
}

// Auswertung der Mausposition
function zeige(e)
{
	// Mausposition und Dokumentdaten
	var	y	= myWin.Event ? e.pageY : myWin.event.clientY;
	if(myWin.Event)
		y	-= - (myWin.pageYOffset != null) ? myWin.pageYOffset : myWin.document.body.scrollTop;
	var	wh	= myWin.innerHeight ? myWin.innerHeight : myWin.document.body.clientHeight;
	var	dh	= myWin.document.height ? myWin.document.height : myWin.document.body.scrollHeight;

	// Zwischenvariablen
	var	s1	= Math.round(wh * sense1 / 100);
	var	s2	= Math.round(wh * sense2 / 100);
	var	now_scroll

	// Scrollnotwendigkeit ermitteln
	if((y < s1) || (y > (wh - s1)))
	{
		now_scroll	= true;
		richtung	= (y < s1) ? -1 : 1;
		scrollfast	= ((y < s2) || (y > (wh - s2))) ? true : false;
	}
	else
	{
		now_scroll	= false;
		scrolling	= false;
	}

	// Scrollstatus geaendert?
	if(now_scroll != scrolling)
	{
		y_mem	= -1;
		scrolling	= now_scroll;
		if(scrolling)
			start_scrolling(true);
	}
}
// Scrollen()
