

// das objekt selbst

function BitstyleScroller () {

	var obj = new Object();

	obj.objBar = null;

	obj.objOuterHeight = 0;
	obj.objInnerHeight = 0;
	obj.scrollRange = 0;

	obj.scrollStart = 0;
	obj.scrollStop = 0;

	obj.origX;

	obj.Init											= BitstyleScrollerInit;
	obj.handleMouseDown					= BitstyleScrollerHandleMouseDown;
	obj.handleMouseUp						= BitstyleScrollerHandleMouseUp;
	obj.handleMouseMove					= BitstyleScrollerHandleMouseMove;


	// 
	obj.objOuter = document.getElementById('' + arguments[0]);
	obj.objInner = document.getElementById('' + arguments[1]);

	return obj;
}

// innerhalb des objektes

function BitstyleScrollerInit() {
	if (!this.objOuter || !this.objInner) return false;

	this.objOuterHeight = this.objOuter.offsetHeight;
	this.objInnerHeight = this.objInner.offsetHeight;
	this.scrollRange = (this.objOuterHeight - this.objInnerHeight) * -1;
	
	// nur wenn inhalt größer, dann anzeigen
	if (this.scrollRange>0)
	{
		// alter scroller wech
		this.objOuter.style.overflow = "hidden";
		
		/// scrollbar bauen
		this.objBar = document.createElement('div');
		this.objBar.className = 'scrollItem';
		this.objBar.style.position = "absolute";
		this.objBar.style.left = "440px";
		this.objBar.style.top = "50px";
		this.objBar.style.width = "15px";
		this.objBar.style.height = "52px";
		this.objBar.style.backgroundImage = 'url(/bilder/scrollbar.gif)';
		this.objBar.style.cursor = "pointer";
		this.objBar.cRef = this;
			
			tmp = document.createElement('img');
			tmp.src = '/bilder/scrollbar.gif';
			tmp.onmousedown = function() { return false; }
			tmp.ondrag = function() { return false; }
		this.objBar.appendChild(tmp);

		this.objBarPosY = 50;
		this.scrollStart = 50;
		this.scrollStop = 230;
		this.scrolling = false;
		this.saveY = 0;

		this.objBar.onmousedown			= BitstyleScrollerBarMouseDown;
		this.objBar.onmouseup				= BitstyleScrollerBarMouseUp;
		this.objBar.onmousemove			= BitstyleScrollerOuterMouseMove;

		this.objOuter.cRef						= this;
		this.objOuter.onmouseup			= BitstyleScrollerBarMouseUp;
		this.objOuter.onmousemove		= BitstyleScrollerOuterMouseMove;

		objBarBg = document.createElement('div');
		objBarBg.style.backgroundImage = 'url(/bilder/scrollbar.bg.gif)';
		objBarBg.style.width = '3px';
		objBarBg.style.height = '230px';
		objBarBg.style.position = 'absolute';
		objBarBg.style.top = '50px';
		objBarBg.style.left = '446px';


		// an übergeordneten hängen, damit Outer auch tiefer sitzen kann, ohne dass scroller mit moved
		this.objOuter.parentNode.appendChild(objBarBg);
		this.objOuter.parentNode.appendChild(this.objBar);
	}
}

function BitstyleScrollerHandleMouseMove() {
	if (this.scrolling)
	{
		// bar bewegen (ist praktisch index)
		diffMouse = MouseY - this.origY;
		this.objBarPosY = this.saveY + diffMouse;
		if (this.objBarPosY < this.scrollStart) this.objBarPosY = this.scrollStart;
		if (this.objBarPosY > this.scrollStop) this.objBarPosY = this.scrollStop;
		this.objBar.style.top = this.objBarPosY + "px";

		// content bewegen, in relation zu bar
		barRange = this.scrollStart - this.scrollStop;
		barRelPos = (this.objBarPosY - this.scrollStart) / barRange;
		derWert = this.scrollRange * barRelPos;
		this.objInner.style.top =  derWert + "px";
	}
}

function BitstyleScrollerHandleMouseDown() {
	this.scrolling									= true;
	this.origY										= MouseY;
	this.saveY										= this.objBarPosY;
}

function BitstyleScrollerHandleMouseUp() {
	this.scrolling									= false;
}


// aus den elementen hinein ins objekt

function BitstyleScrollerBarMouseDown() {
	this.cRef.handleMouseDown();
	return false;
}

function BitstyleScrollerBarMouseUp() {
	this.cRef.handleMouseUp();
	return false;
}

function BitstyleScrollerOuterMouseMove() {
	this.cRef.handleMouseMove();
}

