// Copyright 2006-2007 javascript-array.com

var timeout	= 500;
var closetimer	= 0;
var ddmenuitem	= 0;
var ddmenuitem1	= 0;
var ddmenuitem2	= 0;

// open hidden layer
function mopen(id, id2, id3)
{	
	// cancel close timer
	mcancelclosetime();

	// close old layer
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
	if(ddmenuitem1) ddmenuitem1.style.visibility = 'hidden';
	if(ddmenuitem2) ddmenuitem2.style.visibility = 'hidden';

	// get new layer and show it
	ddmenuitem = document.getElementById(id);
	ddmenuitem.style.visibility = 'visible';

	ddmenuitem1 = document.getElementById(id2);
	ddmenuitem1.style.visibility = 'visible';
	
	ddmenuitem2 = document.getElementById(id3);
	ddmenuitem2.style.visibility = 'visible';

}
// close showed layer
function mclose()
{
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
	
	if(ddmenuitem1) ddmenuitem1.style.visibility = 'hidden';
	
	if(ddmenuitem2) ddmenuitem2.style.visibility = 'hidden';
}

// go close timer
function mclosetime()
{
	closetimer = window.setTimeout(mclose, timeout);
}

// cancel close timer
function mcancelclosetime()
{
	if(closetimer)
	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

// close layer when click-out
document.onclick = mclose; 




var intScrollGap = 5;     // Anzahl der Pixel, um die das Scrollfenster pro Einheit verschoben wird
var intScrollDelay = 50;  // Millisekunden (1000 entspricht 1 Sekunde)

var blnScroll = false;    // true, wenn gerade gescrollt wird
var objScroll;            // Objekt des Scrollfensters
var intScrHeight;         // Höhe des Scrollfensters
var objHolder;            // Objekt des Holderfensters
var intScrHeight;         // Höhe des Scrollfensters
var hTimer                // Handle für Timeout



// Initialisiert die Scrollerelemente
function startScroller(strScrollID, strHolderID, strUp){
	// Scroller aktivieren
	blnScroll = true;
  // Objekt des Scrollfensters
  objScroll = document.getElementById(strScrollID);
  // Höhe des Scrollfensters
  intScrHeight = parseInt(objScroll.offsetHeight);
  //alert(intScrHeight);
  // Objekt des HolderFensters
  objHolder = document.getElementById(strHolderID);

  // Scroller starten
  (strUp == "up") ? scrollUp() : scrollDown();
}

// Gibt die Scrollerelemente wieder frei
function stopScroller(strScrollID, strHolderID){
	// Scroller deaktivieren
	blnScroll = false;
  // Objekt des Scrollfensters zurücksetzen
  objScroll = null;
  // Objekt des HolderFensters zurücksetzen
  objHolder = null;
  // Timerhandle zurücksetzen
  window.clearTimeout(hTimer);
}

// Nach oben scrollen
function scrollUp(){
	// Ermittelt die höchste y-Koordinate der Scrollbox
  var intOuterTop = parseInt(objScroll.style.top);
  var intOuterHeight = parseInt(objScroll.style.height);
  var intHolderHeight = parseInt(objHolder.style.height);

  // Falls noch gescrollt werden soll
/*	if(blnScroll && (Math.abs(intOuterTop-parseInt(objHolder.offsetTop))+parseInt(objHolder.offsetHeight)<=(parseInt(objScroll.offsetHeight)+intBottom))){
  	objScroll.style.top = (intOuterTop - intScrollGap) + "px";
    hTimer = window.setTimeout("scrollUp()", intScrollDelay);
  }*/
  
  var tmp = intOuterTop;
  tmp = tmp * -1;
  
  if ((tmp + intHolderHeight) < intOuterHeight)
  {  
  	objScroll.style.top = (intOuterTop - intScrollGap) + "px";
  	hTimer = window.setTimeout("scrollUp()", intScrollDelay);
  }
  
}

// Nach unten scrollen
function scrollDown(){
	
	//alert('hier');
	// Ermittelt die höchste y-Koordinate der Scrollbox
	var intOuterTop = parseInt(objScroll.style.top);

  // Falls noch nach unten gescrollt werden soll
	if(blnScroll && (intOuterTop<0)){
  	objScroll.style.top = (intOuterTop + intScrollGap) + "px";
    hTimer = window.setTimeout("scrollDown()", intScrollDelay);
  }
}

