
function C_Scroller ( fenster, inhalt, slider, sliderOrgY ) {
	this.fenster = fenster;
	this.inhalt = inhalt;
	this.slider = slider;
	this.sliderOrgY = sliderOrgY;
	this.inhaltOrgY = this.inhalt.style.top;
	this.inhaltActY = Number(this.inhaltOrgY);
	
	this.sliderTrackHeight = this.fenster.offsetHeight - this.slider.offsetHeight;
	this.inhaltTrackHeight = this.inhalt.offsetHeight - this.fenster.offsetHeight;
	
	this.move_intv = -1;
	this.snitch_intv = -1;
	this.lineHeight = 10;
	
}

C_Scroller.prototype.sliderMoved = function ( sliderY ) {
	this.inhaltActY = this.inhaltOrgY - this.inhaltTrackHeight * (sliderY-this.sliderOrgY) / this.sliderTrackHeight;
	this.inhalt.style.top = this.inhaltActY;
}

C_Scroller.prototype.pfeilClicked = function ( way ) {
	if( way == 0 ) {
		window.clearInterval( this.move_intv );
		this.move_intv = -1;
		if( this.pfeilWasClicked ) {
			if( !this.dragGesperrt) {
				this.snitchSlider(1);
				dd.elements["slider"].setDraggable(true);
			}
		}
	} else {
		if( this.move_intv == -1 ) {
			this.way = way;
			this.move_intv = window.setInterval( move_f, 50 );
		}
		this.pfeilWasClicked = true;
		dd.elements["slider"].setDraggable(false);
	}
}

C_Scroller.prototype.snitchSlider = function ( stat ) {
	if( stat == 1 ) {
		this.pfeilWasClicked = false;
		if( this.snitch_intv == -1 ) {
			this.sliderZielY = Math.round(((this.inhaltOrgY - this.inhaltActY)*this.sliderTrackHeight/this.inhaltTrackHeight)+this.sliderOrgY);
			this.snitch_intv = window.setInterval( snitch_f, 50 );
		}
	}
}

function snitch_f () {
	var diff = scroller.sliderZielY - dd.elements["slider"].y;
	dd.elements["slider"].moveBy( 0,Math.round(diff/3) );
	if( Math.abs(diff/3) < .4 ) {
		window.clearInterval( scroller.snitch_intv );
		scroller.snitch_intv = -1;
	}
}

function move_f () {
	scroller.inhaltActY += scroller.way * scroller.lineHeight;
	scroller.inhaltActY = scroller.inhaltActY > scroller.inhaltOrgY ? scroller.inhaltOrgY-.01 : scroller.inhaltActY < -scroller.inhaltTrackHeight ? -scroller.inhaltTrackHeight : scroller.inhaltActY;
	scroller.inhalt.style.top = scroller.inhaltActY;
}

