function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}

//------------------------------ eigener kram -----------------------------------

function scroller(name,NS_obj,IE_obj,links,oben,clip_width,clip_height,unten)
// das Objekt fuer einen Scrollbereich
// NS_obj ist ein Layer, IE_obj ein DIV-Tag
// name ist der Name des Objekts
   {
   	this.NS_obj = (document.layers) ? eval(NS_obj):null;
	this.IE_obj = (document.all) ? eval(IE_obj):null;
	this.links = links;
	this.oben = oben;
	this.clip_width = clip_width;
	this.clip_height = clip_height;
	this.max_unten = unten;
	this.scroll_oben=0;
	this.scroll_unten=0;
	this.pos_oben=0;
	this.name = name;
	this.scrollTimer = null;
   }

function init_scroller()
// die 2 Scrollbereiche erstellen (wird bei BODY-onLoad aufgerufen
{
/*	if (IE4) {
        startL = document.body.scrollLeft;
        startT = document.body.scrollTop;
        endL = (startL + document.body.offsetWidth) - puzzWidth;
        endT = (startT + document.body.offsetHeight) - puzzHeight;
    }
    else {*/
        startL = window.innerWidth/2 -90;
		if (startL < 298) startL = 294;
		startT = 147;
//    }

	scroller_links = new scroller("scroller_links",'document.layers[0]','Layer1',startL,startT,103,140,275);
	scroller_mitte = new scroller("scroller_mitte",'document.layers[1]','Layer2',startL+105,startT,103,89,170);
	scroller_rechts = new scroller("scroller_rechts",'document.layers[2]','Layer3',startL+210,startT,103,89,170);
    init_scroll(scroller_links);
	init_scroll(scroller_mitte);
    init_scroll(scroller_rechts);

}

// die Funktionen zum Scrollen von beiden Bereichen gleichzeitig
// (werden von den Pfeilen am Slider aufgerufen)
function scroll_up_all(){ scroll_up(scroller_links); scroll_up(scroller_mitte); scroll_up(scroller_rechts);}
function scroll_down_all(){ scroll_down(scroller_links); scroll_down(scroller_mitte); scroll_down(scroller_rechts);}
function stop_scroll_all(){ stop_scroll(scroller_links); stop_scroll(scroller_mitte); stop_scroll(scroller_rechts);}

function init_scroll(welchen)
// einen Scrollbereich auf Start setzen
{	with (welchen) {	
	scroll_oben = 0;
	scroll_unten = clip_height+0;
	// clippingbereich
	
	// jeweils die Startwerte setzen
	if (document.all)  // IE
	{	//max_unten = IE_obj.clientHeight;
		IE_obj.style.pixelTop = oben;
		IE_obj.style.pixelLeft = links;
		IE_obj.style.clip = "rect(0px "+clip_width+"px "+clip_height+"px 0px)";
		pos_oben = IE_obj.style.pixelTop;
	} else if (document.layers) // NS
		{	//max_unten = NS_obj.document.height;
			NS_obj.top = oben-6;
			NS_obj.left = links;
			NS_obj.clip.left = 0;
			NS_obj.clip.top = 0;
			NS_obj.clip.right = clip_width;
			NS_obj.clip.bottom = clip_height;
			pos_oben = NS_obj.top;
		};
} }

move=2;

function scroll_down(welchen)
// einen Bereich um 2 Pixel nach unten scrollen

{	//alert("x");
	with (welchen) { 
	if (scroll_unten < welchen.max_unten) 
	// wenn nicht schon ganz unten, dann scrollen
	{	pos_oben -= move;
		scroll_oben += move;
		scroll_unten +=move;
	}

	// neuen clippingbereich festlegen
	if (document.all) 
	{	IE_obj.style.clip = "rect("+scroll_oben+"px "+clip_width+"px "+scroll_unten+"px 0px)";
		IE_obj.style.pixelTop = pos_oben;
	}	else if (document.layers)
	{	NS_obj.top = pos_oben + 2;	
		NS_obj.clip.top = scroll_oben;
		NS_obj.clip.bottom = scroll_unten;
	}
	// damit weiter gescrollt wird, in 50 ms wieder aufrufen (damit Geschwindigkeit regulieren)
	scrollTimer = setTimeout("scroll_down("+name+")",50);
} }

function scroll_up(welchen)
// analog zu scroll_down nur eben nach oben
{	with (welchen) {
	if (scroll_oben > 0) 
	{	pos_oben += move;
		scroll_oben -= move;
		scroll_unten -= move;
	}
	if (document.all) 
	{	IE_obj.style.clip = "rect("+scroll_oben+"px "+clip_width+"px "+scroll_unten+"px 0px)";
		IE_obj.style.pixelTop = pos_oben;
	} else if (document.layers)
		{	NS_obj.top = pos_oben + 2;	
			NS_obj.clip.top = scroll_oben;
			NS_obj.clip.bottom = scroll_unten;
		}
	scrollTimer = setTimeout("scroll_up("+name+")",50);
} }

function stop_scroll(welchen)
// zum Stoppen einfach den Timer fuer den naechsten Scroll-Aufruf loeschen
{
	if (welchen.scrollTimer) clearTimeout(welchen.scrollTimer);
}

