var scrollDir = 0;
var scrollPos = 0;
var scrollSpeed = 0;
var page = null;
var SCROLL_MAX = 500;
var START_SPEED = 0.3;
var BRAKE_FACTOR = 0.87;
var BRAKE_FACTOR_BORDER = 0.65;
var BRAKE_START_BORDER = 12;
var MAX_SPEED = 3;
var horizontal = 0;



// Page, Scroll-Max, Horizontal
function loop(p, m, h) {

	if(page == null) {
		scrollTo(p, 0, 0);
	}
	
	
	if (p != null) {
		page = p;
		SCROLL_MAX = m;
				
		if(h) {
			horizontal = 1;
		}
	}


	setTimeout('loop()', 30);
	if (scrollSpeed != 0) {
		if(scrollPos > -50 && scrollPos <= SCROLL_MAX) {
			scrollTo(page, horizontal ? scrollPos : 0 , horizontal ? 0 : scrollPos);
			scrollPos += scrollSpeed;
		}

	}



	if(scrollPos < 0) {
		scrollPos = 0;
		scrollSpeed = 0;
	} else if(scrollPos >= SCROLL_MAX) {
		scrollPos = SCROLL_MAX;
		scrollSpeed = 0;
	}




	// nach unten
	if(scrollDir > 0) {

		if(scrollSpeed < scrollDir*MAX_SPEED) {
			scrollSpeed += START_SPEED;

		} else {
			scrollSpeed -= START_SPEED;
		}
	}

	// nach oben
	if(scrollDir < 0) {
		if(scrollSpeed > scrollDir*MAX_SPEED) {
			scrollSpeed -= START_SPEED;

		} else {
 			scrollSpeed += START_SPEED;
 		}
	 }

	// aus
	if(scrollDir == 0) {
		scrollSpeed *= BRAKE_FACTOR;
	}
	// oben soft stoppen
	if(scrollDir < 0 && scrollSpeed*-1*BRAKE_START_BORDER > scrollPos) {
		scrollSpeed *= BRAKE_FACTOR_BORDER;
	}
	// unten soft stoppen
	if(scrollDir > 0 && scrollSpeed*BRAKE_START_BORDER > SCROLL_MAX-scrollPos) {
		scrollSpeed *= BRAKE_FACTOR_BORDER;
	}
}





function scrollTo(divtoscroll, x, y) {
	$(divtoscroll).css("top", (y*-1));
	$(divtoscroll).css("left", (x*-1));
}


function scroll(d) {
	scrollDir = d;
}


function stop() {
	scrollDir = 0;
}


function test() {
}