function checkBrowser(){
	this.ver=navigator.appVersion;
	this.dom=document.getElementById?1:0;
	this.ie6=((this.ver.indexOf("MSIE 6")>-1 || this.ver.indexOf("MSIE 7")>-1 || this.ver.indexOf("MSIE 8")>-1) && this.dom)?1:0;
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
	this.ie4=(document.all && !this.dom)?1:0;
	this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5)
	return this
}
bw=new checkBrowser()

var speed=50
var loop, timer
var loaded;
var Merker=false;
var firstMove=false;
var mouse_pos;

function makeObj(obj,nest){		//Object constructor
	if (!nest) {nest=''}
		else {nest='document.'+nest+'.'}
	this.el=0;
	this.css=0;
	if (bw.dom) {
		this.el=document.getElementById(obj);
		this.css=document.getElementById(obj).style;
		this.scrollHeight=this.el.offsetHeight;
		this.clipHeight=this.el.offsetHeight;
		}
	if (bw.ie4) {
		this.el=document.all[obj];
		this.css=document.all[obj].style;
		this.scrollHeight=this.el.offsetHeight;
		this.clipHeight=this.el.offsetHeight;
		}
	if (bw.ns4) {
		this.el=eval(nest+'document.'+obj);
		this.css=eval(nest+'document.'+obj);
		this.scrollHeight=this.css.document.height;
		this.clipHeight=this.css.clip.height;
		}
	this.up=goUp;this.down=goDown;
	this.moveIt=moveIt; this.x; this.y;
    this.obj = obj+ "Object";
    eval(this.obj + "=this")
    return this
	}
function moveIt(x,y){
	this.x=x;this.y=y
	this.css.left=this.x
	this.css.top=this.y	//Höhe von Scrolling -> Gesamthöhe-Cliphöhe
	}
function goDown(move){	//Makes the object go up
	if(this.y>(-this.scrollHeight+oCont.clipHeight)) {
		this.moveIt(0,this.y-move)
		step=(this.y-move)/(-this.scrollHeight+oCont.clipHeight)
		knubbel_move(step)
		if(loop) setTimeout(this.obj+".down("+move+")",speed)
		}
	}
function goUp(move){	//Makes the object go down
	if(this.y<0) {
		this.moveIt(0,this.y-move)
		step=(this.y-move)/(-this.scrollHeight+oCont.clipHeight)
		knubbel_move(step)
		if(loop) setTimeout(this.obj+".up("+move+")",speed)
		}
	}
function scroll(speed){	//Calls the scrolling functions. Also checks whether the page is loaded or not.
	if(loaded){
		loop=true;
		firstMove=true;
		if(speed>0) oScroll.down(speed)
		else oScroll.up(speed)
		}
	}
function noScroll(){	//Stops the scrolling (called on mouseout)
	loop=false
	if(timer) clearTimeout(timer)
	}
function knubbel_move(step) {
	if (step<0) step=0
	if (step>1) step=1
	oKnubbel.css.top=oKnubbel.topposition+(step*oKnubbel.laufweite)
	}


function get_knubbel(e) {
	if((document.layers && e.which!=1) || (document.all && event.button!=1)) return true; // Rechte Mausbutton
	getMouse(e);
	
	// Activation du Drag
	if(bw.ns4){
		document.captureEvents(Event.MOUSEMOVE);
		}
	document.onmousemove = drag;

if (firstMove) {
		if((mouseY>=parseInt(oKnubbel.css.top) && mouseY<=parseInt(oKnubbel.css.top)+37) && (mouseX>=oKnubbel.leftposition && mouseX<=oKnubbel.leftposition+26)){
			Merker = true;
			return false;
			}
		}
	else {
		if((mouseY>=oKnubbel.topposition && mouseY<=oKnubbel.topposition+37) && (mouseX>=oKnubbel.leftposition && mouseX<=oKnubbel.leftposition+26)){
			Merker = true;
			firstMove=true;
			return false;
			}
		}
	}
function drag(e) {
	if (Merker) {
		getMouse(e);
		if (mouseY>=oKnubbel.topposition && mouseY<=oKnubbel.bottomposition) {
			oKnubbel.css.top=mouseY;
			knubbel_position=(mouseY-oKnubbel.topposition)/(oKnubbel.laufweite);
			if (knubbel_position<0) knubbel_position=0;
			if (knubbel_position>1) knubbel_position=1;
			drag_content=knubbel_position*(oScroll.scrollHeight-oCont.clipHeight);
			oScroll.moveIt(0,-drag_content);
			}
		else if (mouseY<oKnubbel.topposition) {
			oKnubbel.css.top=oKnubbel.topposition;
			oScroll.moveIt(0,0);
			}
		else if (mouseY>oKnubbel.bottomposition) {
			oKnubbel.css.top=oKnubbel.bottomposition;
			oScroll.moveIt(0,-oScroll.scrollHeight+oCont.clipHeight);
			}
		// if (bw.ie4 || bw.ie5) return false;
		return false;
		}
	}
function lost_knubbel(e) {
	// window.alert("essai");
	Merker=false;
	if(bw.ns4){
		document.releaseEvents(Event.MOUSEMOVE);
		}
	window.onmousemove=null
	return false;
	}




var decalageX=0;
var decalageY=0;

function getMouse(e){
	if (document.body) {
		decalageX=parseInt((document.body.clientWidth-documentWidth)/2);
		if (decalageX<0) decalageX=0;
		decalageY=parseInt((document.body.clientHeight-documentHeight)/2);
		if (decalageY<0) decalageY=0;
	} else {
		decalageY=0;
		decalageX=0;
	}

	if(bw.ns4){
		mouseY = e.pageY-decalageY;
		mouseX = e.pageX-decalageX;
		}
	else if(bw.ie4 || bw.ie5 || bw.ie6){
		mouseY = event.clientY + document.body.scrollTop-decalageY;
		mouseX = event.clientX + document.body.scrollLeft-decalageX;
		}
	else if(bw.dom){
		mouseY = e.pageY-decalageY;
		mouseX = e.pageX-decalageX;
		}
	}

function wheel(e)
{
	if (!e) e = window.event;
	// window.alert(e.wheelDelta/10);
	scroll(-e.wheelDelta/10);
	noScroll();
}

function scrollInit(left_knubbel,start_knubbel,hoehe_knubbel){	//Makes the object
	oContainer=new makeObj('container');
	oCont=new makeObj('divCont')
	oKnubbel=new makeObj('knubbel');
	oScroll=new makeObj('textbox','divCont')
	oScroll.moveIt(0,0)
	oCont.css.visibility='visible'
	if (start_knubbel) oKnubbel.topposition=start_knubbel
	else oKnubbel.topposition=0;
	if (left_knubbel) oKnubbel.leftposition=left_knubbel
	else oKnubbel.leftposition=0;
	if (hoehe_knubbel) oKnubbel.bottomposition=oKnubbel.topposition+hoehe_knubbel
	else oKnubbel.bottomposition=oKnubbel.topposition+0;
	oKnubbel.laufweite=oKnubbel.bottomposition-oKnubbel.topposition
	loaded=true;
	if(bw.ns4){
		document.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP);
		}
	document.onmousewheel = wheel;
	document.onmousedown = get_knubbel;
	document.onmouseup = lost_knubbel;
	scroll(1);
	scroll(-1);
	noScroll();
	}
