// Parametrar

var	sense1	= 15	// zon 1 (i %)
var	sense2	= 3	// zon 2 (in %)
var	speed1	= 10	// hastighet i zon 1
var	speed2	= 0	// hastighet i zon 2
var	stime	= 50		// tidsvärde för scollen

// Variabler
var	scrolling	= false
var	scrollfast
var	richtung
var	y_mem	= -1
var	myWin

// Stoppar scrollen
function stopp_scrolling()
{
	scrolling	= false
	y_mem		= -1
}

// Aktiverar och genomför scrollen
function start_scrolling(initial)
{
	if(!scrolling)
		return

	// Hittar dokumentets scrollposition
	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)

	// Scrollar
	myWin.scrollTo(dx, dy)
	y_mem	= dy

	// Kör scrollfunktionen
	setTimeout("start_scrolling(false)", stime)
}

// Söker pekarens position
function zeige(e)
{
	// Pekarens position
	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

	// Variabler
	var	s1	= Math.round(wh * sense1 / 100)
	var	s2	= Math.round(wh * sense2 / 100)
	var	now_scroll

	// Bestämmer om det ska scrollas
	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
	}

	// Ändrar scrollstatus
	if(now_scroll != scrolling)
	{
		y_mem	= -1
		scrolling	= now_scroll
		if(scrolling)
			start_scrolling(true)
	}
}

// Startar pekarkontrollen
function init()
{
	myWin	= window

	if(myWin.Event)
		myWin.document.captureEvents(Event.MOUSEMOVE)

	myWin.document.onmousemove	= zeige
}
