/* ------------------------------------------------------------------------------
 *  File: 			dhtmlcenter_scroll.js
 *  Projekt: 			Creativware - Internet
 *  Author: 			dhtmlCenter und PB
 *  Date: 				2002-05-02
 * ------------------------------------------------------------------------------
 *  Description: 		erlaubt das graphische Scrollen eines Layers
 *				mit Scrollmarke und zwei verschachtelten Layern
 *  Last Mofification
 *
 * ------------------------------------------------------------------------------
*/

// Variablen zum Scrollen


var boolOk = false;	       // zu Beginn kein Scrollen wird true bei Mausover über Scrollstreifen 
var boolGeht = true    	      //  wird false, wenn Scrollereignis ausgelöst wird
var help;  		     // Variable zum Setzen eines Intervalls für die Bewegung der Scrollmarke 
var loop, timer		    // boolean Variable, ob weiter gescrollt werden soll 
var intNeupositionMarke   // Variable die auf die aktuelle Position der Scrollmarke gesetzt wird
var intAltpositionMarke  // Variable wird auf Anfangsposition der Scrollmarke gesetzt

var intPosMarke = -636;               // top-Position der Marke, wie sie im div Tag eingetragen ist
var intScrollstreifenlaenge = 164;   // Height der Scrollstreifengrafik hat immer anderes Vorzeichen als intPosMarke
var intPixelvonoben = 270 	 // wird auf den intNeupos Wert gesetzt, wenn auf oberen Bereich der Scrolleiste Mouseover Event ausgelöst wird, dazu Zeile 286 aktivieren und Wert ablesen
var doubleScrollFaktor = 1.9;   // Verhältnis zwischen Bewegung der Marke und Bewegung des Textes


var intIntervallzeit = 200;         // Intervalzeit in Millisekunden  	
var speed = 30;		           // Scrollgeschwindigkeit  
var intStepMarke =4;		  // Schrittweite der Scrollmarke in Pixeln
var positionMarke; 		 // Position der Scrollmarke wird erhöht
positionMarke = intPosMarke;

//-------------------------------------------------------------------------------
// zuerst Code nach dhtml-Center
// ermittelt die Browserversion

function lib_bwcheck()				
{   this.ver=navigator.appVersion
	this.agent=navigator.userAgent
	this.dom=document.getElementById?1:0
	this.opera5=(navigator.userAgent.indexOf("Opera")>-1 && document.getElementById)?1:0
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0;
	this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
	this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
	this.ie=this.ie4||this.ie5||this.ie6
	this.mac=this.agent.indexOf("Mac")>-1
	this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0;
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)
	return this
}
var bw=lib_bwcheck()


//----------------------------------------------------------------------------------
//Zugriff auf Layer je nach Browser wird konstruiert

function makeObj(obj,nest){			
    nest=(!nest) ? "":'document.'+nest+'.'
	this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0;
  	this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0;
	this.scrollHeight=bw.ns4?this.css.document.height:this.el.offsetHeight
	this.clipHeight=bw.ns4?this.css.clip.height:this.el.offsetHeight
	this.up=goUp;this.down=goDown;
	this.moveIt=moveIt; this.x=0; this.y=0;
    this.obj = obj + "Object"
    eval(this.obj + "=this")
    return this
}

var px = bw.ns4||window.opera?"":"px";


//----------------------------------------------------------------------------------------
//  dhtml Funktion zum Verschieben eines Layers

function moveIt(x,y){				
	this.x = x
	this.y = y
	this.css.left = this.x+px
	this.css.top = this.y+px
}

//----------------------------------------------------------------------------------------
//Funktion zum Scrollen nach unten

 


function goDown(move){				// Scrollfunktion zum Scrollen nach unten
	if (this.y>-this.scrollHeight+oCont.clipHeight){
		this.moveIt(0,this.y-move)
			if (loop)
			{
			if ( positionMarke < intPosMarke+intScrollstreifenlaenge)
			positionMarke = parseInt( positionMarke + intStepMarke);
			setTimeout(this.obj+".down("+move+")",speed)
			help=setInterval ("CW_dhtml_setY('divMarke',positionMarke)",intIntervallzeit);
			}
	}
}

//---------------------------------------------------------------------------------------
function goUp(move){
	if (this.y<0){
		this.moveIt(0,this.y-move)
		if (loop)
		{
		if ( positionMarke > intPosMarke)
    		positionMarke = parseInt (positionMarke - intStepMarke) ;
		setTimeout(this.obj+".up("+move+")",speed)
		help=setInterval ("CW_dhtml_setY('divMarke',positionMarke)",intIntervallzeit);
		}

	}
}

//---------------------------------------------------------------------------------------
// bestimmt ob nach unten oder oben gescrollt werden soll  und startet die Scrollschleife 

function scroll(speed){
	if (scrolltextLoaded)
	{

		loop = true;
		if (speed > 0)
		{
		oScroll.down(speed)
		}
		else
		{
		oScroll.up(speed)
		}
	}
}

//---------------------------------------------------------------------------------------
// beendet die Scroll-Schleife 

function noScroll(){
	loop = false
	if (timer) clearTimeout(timer)
	clearInterval(help);
	

}

//---------------------------------------------------------------------------------------
// Startfunktion zum Scrollen 

var scrolltextLoaded = false

function scrolltextInit(){
	oCont = new makeObj('divScrollTextCont')
	oScroll = new makeObj('divText','divScrollTextCont')
	oScroll.moveIt(0,0)
	oCont.css.visibility = "visible"
	scrolltextLoaded = true
}

//if (bw.bw) onload = scrolltextInit  steht jetzt im body-Tag


//---------------------------------------------------------------------------------------
//  Ende Code dhtml- Center


function CW_dhtml_support() // prüft ob überhaupt DHTML unterstützt wird
{
return (document.layers || document.all || document.getElementById)
}


function CW_dhtml_obj(id) // liefert eine der drei unterschiedlichen Zugriffe zurück; id ="ID-Name"
{
   if (document.layers)
   {
   return document.layers[id];
   }
   else if (document.all)
   {
   return document.all[id];
   }
   else if (document.getElementById)
   {
   return document.getElementById(id);
   }
}


function CW_dhtml_style(id)  // hängt zusätzlich noch style an, wenn nötig
{
   if (document.layers)
   {
   return CW_dhtml_obj(id)
   }
   else if (document.layers || document.getElementById)
   {
   return CW_dhtml_obj(id).style;
   }
}

function CW_dhtml_getY(id) // bestimmt die Y Position eines Objekts
{

if (CW_dhtml_support())
	{
	if (document.layers || document.getElementById)
	{
	return CW_dhtml_style(id).top;
	}
	else
	{
	return CW_dhtml_style(id).posTop;
	}
	}
}



function CW_dhtml_setY(id,n) // setzt ein Objekt an eine bestimmte Y-Position n
{
if (CW_dhtml_support())
	{
	if (document.layers)
	CW_dhtml_style(id).top = n;
	else if (document.getElementById)
	CW_dhtml_style(id).top = n + "px";
	else
	CW_dhtml_style(id).posTop = n + "px";
	}
}



function mausstart ()   // wird aufgerufen, wenn sich die Maus über der Scrolleiste befindet
{
  //alert ('mausstart')
	if (boolGeht)	
	{
	 boolOk = true;	    // nur bei Mouseover über der Scrolleiste ist Scrollen erlaubt, daher wird 'boolOk'  auf true gesetzt
	 boolGeht = false   // damit keine weiteren Ereignisse ausgelöst werden können wird boolGeht auf false gesetzt.  
	}
	else
	{
	 boolOk = false;		
	 boolGeht= true;
	}
}


function mausstop()  // wird aufgerufen, wenn die Maus die Scrolleiste verläßt 
{
//alert('mausstop')
boolOk = false;
boolGeht = true;
}


function marke_init() 	// Startfunktion zum Scrollen, muss im Body aufgerufen werden
{
intAltpositionMarke = getMarke();
//alert (intAltpositionMarke);

if (navigator.appName == "Microsoft Internet Explorer")
document.onmousemove=anim
else
	{
	document.captureEvents(Event.MOUSEMOVE)
	document.onmousemove=anim
	}
}

function anim(e)
{
  //alert('anim betreten')
    if (boolOk)			// Abfrage, os sich die Maus auch über der Scolleiste befindet
  {
   if ( navigator.appName == "Microsoft Internet Explorer" )
   intNeupos= event.clientY;   // intNeupos liefert die Position an der die Maus auf der Scrolleiste bewegt wurde
   else
   intNeupos= e.pageY
   //alert (intNeupos)	   // um Wert in den unteren Klammern zu bestimmen aktivieren und oben auf Scrolleiste klicken, Wert ablesen und in Zeile 26 eintragen
   intNeupositionMarke =getMarke()
   //alert (intNeupositionMarke)
   //intPixelvonoben = getTop()
   //alert (intPixelvonoben)
   if (intNeupos < (intPixelvonoben+ intScrollstreifenlaenge -5) && intNeupos > (intPixelvonoben)) // Werte: intNeupos-Positionen unten und oben
   {
    positionMarke = intPosMarke -intPixelvonoben+ intNeupos;
    CW_dhtml_setY('divMarke',positionMarke);         
    CW_dhtml_setY('divText', doubleScrollFaktor * (intPixelvonoben-intNeupos));  
    }
  }
}

function getTop()		// bestimmt die Position der Scrolleiste in Bildschirmkoordinaten
{
 return (divMitte.offsetTop);
}

function getMarke()	       // bestimmt die Position der Scroll-Marke in Bildschirmkoordinaten
{
return (divMarke.offsetTop);
}

//----------------------------------------------------------------------------------------
// Bildaustausch Scrollgrafiken 


Hin_nav = new Array();
Weg_nav = new Array();
	for (i=0;i<3;i++)
	{
	 Hin_nav[i]=new Image;
	 Weg_nav[i]=new Image;
	 }

        Hin_nav[0].src ="../Common/img/img_Scroll_oben1_blau.gif";
	Hin_nav[1].src ="../Common/img/img_Scroll_unten1_blau.gif";
	Weg_nav[0].src ="../Common/img/img_Scroll_oben_blau.gif";
	Weg_nav[1].src ="../Common/img/img_Scroll_unten_blau.gif";




function maushin(pict,numb)
{
if (document.images)
document.images[pict].src=Hin_nav[numb].src;
//alert ('Funktion maushin gestartet')
}

function mausweg(pict,numb)
{

if (document.images)
document.images[pict].src=Weg_nav[numb].src;
//alert ('Funktion mausweg gestartet')

}



