
var xspeed=50;
var loop, timer, loaded, DocumentHeight;
var Merker=false;
var firstMove=false;
var mouseOffsetY = -24;
var mouseOffsetX = -14;
var amount = 0;


function moveIt(x,y){
	this.x=x;this.y=y
	this.css.left=this.x
	this.css.top=this.y
}

function goDown(move){
	if(this.y>(-this.scrollHeight+oCont.clipHeight)) {
		this.moveIt(0,this.y-move)
		step=(this.y-move)/(-this.scrollHeight+oCont.clipHeight)
		scrollbar_move(step)
		if(loop) setTimeout(this.obj+".down("+move+")",xspeed)
	}
}

function goUp(move){
	if(this.y<0) {
		this.moveIt(0,this.y-move)
		step=(this.y-move)/(-this.scrollHeight+oCont.clipHeight)
		scrollbar_move(step)
		if(loop) setTimeout(this.obj+".up("+move+")",xspeed)
	}
}

function scrolling(xspeed){
	if(loaded){
		loop=true;
		firstMove=true;
		if(xspeed>0) oScroll.down(xspeed)
		else oScroll.up(xspeed)
	}
}

function noScroll(){
	loop=false;
	if(timer) clearTimeout(timer)
}

function scrollbar_move(step) {
	if (step<0) step=0
	if (step>1) step=1
	oScrollbar.css.top=oScrollbar.topposition+(step*oScrollbar.laufweite)
}

function get_scrollbar(e) {
	if((document.layers && e.which!=1) || (document.all && event.button!=1)) return true;
	getMouse(e);
	
	if (firstMove) {
		if((mouseY + 120 >= parseInt(oScrollbar.css.top) && mouseY <= parseInt(oScrollbar.css.top)+120) && (mouseX >= oScrollbar.leftposition && mouseX + mouseOffsetX <= oScrollbar.leftposition)){
			Merker = true;
			return false;
		}
	} else {
		if((mouseY + 120 >= oScrollbar.topposition && mouseY <= oScrollbar.topposition + 120) && (mouseX >= oScrollbar.leftposition && mouseX + mouseOffsetX <= oScrollbar.leftposition)){
			Merker = true;
			firstMove=true;
			return false;
		}
	}
}

function drag(e) {

	if(Merker) {
		getMouse(e);

		moveCont(mouseY);

		amount = Math.abs(oScroll.y);

		if (is.ie || is.DOM) return false;
	}

	if(is.ns4 || is.ns6){
		temp123= e.pageX;
		temp124 = e.pageY;
	}
	if(is.ie){
		temp123 = event.x;
		temp124 = event.y;		
	}
	var topPosition = parseInt(temp124)-parseInt(dummyLyr.top);
	var leftPosition = parseInt(temp123)-parseInt(dummyLyr.left);
	if(topPosition < 30 || topPosition > 220 || leftPosition < subNaviLyrLft || leftPosition > parseInt(subNaviLyrLft)+180) {
		subNaviLyr.visibility = "hidden";
		if(selectedSubNavi!=""){
			selectedSubNaviLyr.visibility = "visible";
		}
	}
}

function lost_scrollbar(e) {
	Merker=false;

}

function getMouse(e){
	if(is.ns4){
		mouseY = e.pageY;
		mouseX = e.pageX;
		return;
	}else if(is.ie4 || is.ie5up){
		mouseY = event.clientY + document.body.scrollTop;
		mouseX = event.clientX + document.body.scrollLeft;
		return;
	}else if(is.DOM){
		mouseY = e.pageY;
		mouseX = e.pageX;
		return;
	}
}

function makeObj(obj,nest){
	 if (!nest) {nest=''}
	 else {nest='document.'+nest+'.'}
	this.el=0;
	this.css=0;
	if (is.DOM) {
		this.el=document.getElementById(obj);
		this.css=document.getElementById(obj).style;
		this.scrollHeight=this.el.offsetHeight;
		this.clipHeight=this.el.offsetHeight;
	}
	if (is.ie4) {
		this.el=document.all[obj];
		this.css=document.all[obj].style;
		this.scrollHeight=this.el.offsetHeight;
		this.clipHeight=this.el.offsetHeight;
	}
	if (is.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.obj = obj+ "Object";
	eval(this.obj + "=this");
	return this;
}

function scrollInit(left_scrollbar,start_scrollbar,hoehe_scrollbar){
	oCont=new makeObj('scrollRahmenLayer');
	oScrollbar=new makeObj('scrollerLayer');
	oScrollbarBg=new makeObj('scrollerBgLayer');
	oScroll=new makeObj('mainTextLayer','scrollRahmenLayer');
	if(is.ns4)document.scrollRahmenLayer.document.mainTextLayer.visibility = "visible";
	if(is.DOM) document.getElementById('mainTextLayer').style.visibility = "visible";
	if(is.ie4) document.all.mainTextLayer.style.visibility = "visible";
	oScroll.moveIt(0,0);
	oCont.css.visibility='visible';
	oScrollbarBg.css.visibility = "visible";

	dummyLyr = eval(doc + bracketLeft + '"dummyLayer"' + bracketRight + sty);
	dummyLyr.left = available_width/2-470;
	dummyLyr.top = available_height/2-310;

	oScrollbar.topposition = parseInt(dummyLyr.top)+start_scrollbar;
	oScrollbar.leftposition = parseInt(dummyLyr.left)+left_scrollbar;
	oScrollbar.bottomposition = oScrollbar.topposition + hoehe_scrollbar;
	oScrollbar.laufweite = oScrollbar.bottomposition - oScrollbar.topposition;
	loaded=true;
	scrolling(1);
	scrolling(-1);
	noScroll();
	if(oScroll.clipHeight > oCont.clipHeight+1) {
		oScrollbar.css.visibility='visible';
		oScrollbarBg.css.visibility='visible';
	} else {
		oScrollbar.css.visibility='hidden';
		oScrollbarBg.css.visibility='hidden';
	}
}


function scrollJumpTo(aName) {
	aName = (aName.substring(1,aName.length));
	if (aName.indexOf('_Toc') != -1) {
		if (is.ns4) {
			var aYpos = document.scrollRahmenLayer.document.mainTextLayer.document.anchors[aName].y;
		} else if (is.ie4) {
			var aYpos = document.all[aName].offsetTop;
		} else if (is.DOM) {
			if (is.ns6) {
				var aYpos = document.anchors[aName].offsetTop;
			} else {
				var aYpos = document.getElementById(aName).offsetTop;
			}
		}

		aYpos = ((((aYpos*100) / (oScroll.clipHeight-oCont.clipHeight)) * oScrollbar.laufweite) /100) + oScrollbar.topposition + oScrollbar.clipHeight/2;

		moveCont(aYpos);

		amount = Math.abs(oScroll.y);
	}
}


function scrollWheel(e) {
	switch (event.wheelDelta) {
		case (-120):amount+=15;break;
		case (-240):amount+=25;break;
		case (-360):amount+=35;break;
		case (-480):amount+=45;break;
		case (120) :amount-=15;break;
		case (240) :amount-=25;break;
		case (360) :amount-=35;break;
		case (480) :amount-=45;break;
		default:amount += 15;
	}

	if (amount < 0) amount = 0;
	if (amount > oScroll.clipHeight-oCont.clipHeight) amount = oScroll.clipHeight-oCont.clipHeight;

	wYpos = ((((amount*100) / (oScroll.clipHeight-oCont.clipHeight)) * oScrollbar.laufweite) /100) + oScrollbar.topposition + oScrollbar.clipHeight/2;

	moveCont(wYpos);
}

function moveCont(myVal) {
	if (myVal + mouseOffsetY >= oScrollbar.topposition && myVal + mouseOffsetY <= oScrollbar.bottomposition) {
		oScrollbar.css.top = myVal+mouseOffsetY;
		scrollbar_position = (myVal + mouseOffsetY - oScrollbar.topposition)/(oScrollbar.laufweite);
		if (scrollbar_position < 0) scrollbar_position = 0;
		if (scrollbar_position > 1) scrollbar_position = 1;
		drag_content = scrollbar_position * (oScroll.scrollHeight - oCont.clipHeight-1);
		oScroll.moveIt(0,-drag_content);
	} else if (myVal + mouseOffsetY<oScrollbar.topposition) {
		oScrollbar.css.top=oScrollbar.topposition;
		oScroll.moveIt(0,0);
	} else if (myVal + mouseOffsetY>oScrollbar.bottomposition) {
		oScrollbar.css.top=oScrollbar.bottomposition;
		oScroll.moveIt(0,-oScroll.scrollHeight+oCont.clipHeight+1);
	}
}


function divSrc(wert) {

	if (is.ns4){
		document.scrollRahmenLayer.document.mainTextLayer.src = wert;
	}
	if (is.ie4){
		document.iframe1.location.href=wert;
	}
	if (is.DOM){
		document.getElementById('iframe1').src=wert;
	}
}


function cp2Div(myWindow, myDestination){
	myDest = (is.ie4) ? document.all[myDestination] : (is.DOM) ? document.getElementById(myDestination) : '';
	if (!is.ns4){
		myDest.innerHTML = myWindow.document.body.innerHTML;
		myDest.style.height = myWindow.document.body.scrollHeight;
		if (is.ie4 && initscroll) setTimeout('initscroll()',1000);
	}
}