//	--------------------------------------------------------------------------------
//	Layer anzeigen / ausblenden
//	--------------------------------------------------------------------------------

	function	mdl_showLayer(layer)			// Layer anzeigen
	{
		if	(IE4)
		{
			layer.style.visibility	=	"visible";
		}
		if	(NS4)
		{
			layer.visibility		=	"show";
		}
	}

	function	mdl_hideLayer(layer)			// Layer ausblenden
	{
		if	(IE4)
		{
			layer.style.visibility	=	"hidden";
		}
		if	(NS4)
		{
			layer.visibility		=	"hide";
		}
	}

	function	mdl_inheritLayer(layer)			// Eigenschaft des übergeordneten Layer übernehmen
	{
		if	(IE4)
		{
			layer.style.visibility	=	"inherit";
		}
		if	(NS4)
		{
			layer.visibility		=	"inherit";
		}
	}

	function	mdl_getVisibility(layer)			//	Ist der Layer sichtbar?
	{
		if	(IE4)
		{
			return	layer.style.visibility;
		}
		if	(NS4)
		{
			if	(layer.visibility=="show")
				return	"visible";
			if	(layer.visibility=="hide")
				return	"hidden";
		}
	}	

//	--------------------------------------------------------------------------------
//	Layer Positionen
//	--------------------------------------------------------------------------------

	function	mdl_moveLayerTo(layer,x,y)		// Layer absolut positionieren
	{
		if	(IE4)
		{
			layer.style.left	=	x;
			layer.style.top		=	y;
		}
		if	(NS4)
		{
			layer.moveTo(x,y);
		}
	}

	function	mdl_moveLayerBy(layer,x,y)		// Layer absolut positionieren
	{
		if	(IE4)
		{
			layer.style.pixelLeft	+=	x;
			layer.style.pixelTop	+=	y;
		}
		if	(NS4)
		{
			layer.moveBy(x,y);
		}
	}

	function	mdl_getLayerLeft(layer)			// Linke Seite des Layers
	{
		if	(IE4)
			return	layer.style.pixelLeft;
		if	(NS4)
			return	layer.left;
	}

	function	mdl_getLayerRight(layer)			// Linke Seite des Layers
	{
		return	mdl_getLayerLeft(layer) + mdl_getLayerWidth(layer);
	}

	function	mdl_getLayerTop(layer)			// Oberkante des Layers
	{
		if	(IE4)
			return	layer.style.pixelTop;
		if	(NS4)
			return	layer.top;
	}

	function	mdl_getLayerBottom(layer)			// Linke Seite des Layers
	{
		return	mdl_getLayerTop(layer) + mdl_getLayerHeight(layer);
	}

//	--------------------------------------------------------------------------------
//	Funktionen für Breite und Höhe
//	--------------------------------------------------------------------------------

	function	mdl_getLayerWidth(layer)
	{
		if	(IE4)
			if	(layer.style.pixelWidth)
				return layer.style.pixelWidth;
			else
				return layer.clientWidth;
		if	(NS4)
			if	(layer.document.width)
				return	layer.document.width;
			else
				return	layer.clip.right-layer.clip.left;
	}

	function	mdl_getLayerHeight(layer)
	{
		if	(IE4)
			if	(layer.style.pixelHeight)
				return layer.style.pixelHeight;
			else
				return layer.clientHeight;
		if	(NS4)
			if	(layer.document.height)
				return	layer.document.height;
			else
				return	layer.clip.bottom-layer.clip.top;
	}

//	--------------------------------------------------------------------------------
//	Funktionen für z-index
//	--------------------------------------------------------------------------------

	function	mdl_setZIndex(layer,z)
	{
		if	(IE4)
			layer.style.zIndex	=	z;
		if	(NS4)
			layer.zIndex		=	z;
	}

	function	mdl_getZIndex(layer)
	{
		if	(IE4)
			return layer.style.zIndex;
		if	(NS4)
			return	layer.zIndex;
	}

//	--------------------------------------------------------------------------------
//	Funktionen für Clipping
//	--------------------------------------------------------------------------------

	function	mdl_clipLayer(layer,left,top,right,bottom)						// Layer clippen
	{
		if	(IE4)
		{
			layer.style.clip	=	'rect('+top+' '+right+' '+bottom+' '+left+')';
		}
		if	(NS4)
		{
			layer.clip.top		=	top;
			layer.clip.left		=	left;
			layer.clip.bottom	=	bottom;
			layer.clip.right	=	right;
		}
	}

// Clip Positionen holen, wird z.B. fuer Sctrolling benoetigt

	function	mdl_getLayerClipLeft(layer)
	{
		if	(IE4)
		{
			var	clipstring	=	layer.style.clip;
			if	(clipstring)
			{
				cliparray	=	mdl_parseClipping(clipstring);
				return	cliparray[3];
			}
			else
				return	0;
		}
		if	(NS4)
		{
			return	layer.clip.left;
		}
	}

	function	mdl_getLayerClipTop(layer)
	{
		if	(IE4)
		{
			var	clipstring	=	layer.style.clip;
			if	(clipstring)
			{
				cliparray	=	mdl_parseClipping(clipstring);
				return	cliparray[0];
			}
			else
				return	0;
		}
		if	(NS4)
		{
			return	layer.clip.top;
		}
	}

	function	mdl_getLayerClipRight(layer)
	{
		if	(IE4)
		{
			var	clipstring	=	layer.style.clip;
			if	(clipstring)
			{
				cliparray	=	mdl_parseClipping(clipstring);
				return	cliparray[1];
			}
			else
				return	layer.style.pixelWidth;
		}
		if	(NS4)
		{
			return	layer.clip.right;
		}
	}

	function	mdl_getLayerClipBottom(layer)
	{
		if	(IE4)
		{
			var	clipstring	=	layer.style.clip;
			if	(clipstring)
			{
				cliparray	=	mdl_parseClipping(clipstring);
				return	cliparray[2];
			}
			else
				return	layer.style.pixelHeight;
		}
		if	(NS4)
		{
			return	layer.clip.bottom;
		}
	}


	function	mdl_parseClipping(clipstring)			// den Clipping String des IE parsen
{
  var cliparray = new Array();
  var i;

  i = clipstring.indexOf("(");
  cliparray[0] = parseInt(clipstring.substring(i + 1, clipstring.length));
  i = clipstring.indexOf(" ", i + 1);
  cliparray[1] = parseInt(clipstring.substring(i + 1, clipstring.length));
  i = clipstring.indexOf(" ", i + 1);
  cliparray[2] = parseInt(clipstring.substring(i + 1, clipstring.length));
  i = clipstring.indexOf(" ", i + 1);
  cliparray[3] = parseInt(clipstring.substring(i + 1, clipstring.length));
  return cliparray;
}

//	--------------------------------------------------------------------------------
//	Funktionen für Scrolling
//	--------------------------------------------------------------------------------

	function	mdl_ScrollLayerBy(layer,dx,dy)
	{
		var	clipLeft	=	mdl_getLayerClipLeft(layer);
		var	clipTop		=	mdl_getLayerClipTop(layer);
		var	clipRight	=	mdl_getLayerClipRight(layer);
		var	clipBottom	=	mdl_getLayerClipBottom(layer);

		mdl_moveLayerBy(layer,dx,dy);
		mdl_clipLayer(layer,clipLeft-dx,clipTop-dy,clipRight-dx,clipBottom-dy);
	}

//	--------------------------------------------------------------------------------
//	Funktionen um den Inhalt auszutauschen
//	--------------------------------------------------------------------------------

	function	mdl_changeLayerContent(layer,content)
{
		if	(IE4)
		{
			layer.innerHTML	=	content;
		}
		if	(NS4)
		{
			layer.document.open();
			layer.document.write(content);
			layer.document.close();
		}
}

//	--------------------------------------------------------------------------------
//	Funktionen für Hintergrund
//	--------------------------------------------------------------------------------

	function	mdl_setBgColor(layer,col)
	{
		if	(IE4)
			layer.style.backgroundColor	=	col;
		if	(NS4)
			layer.bgColor				=	col;
	}

	function	mdl_setBgImage(layer,image)
	{
		if	(IE4)
			layer.style.backgroundImage	=	'url('+image+')';
		if	(NS4)
			layer.background.src		=	image;
	}


//	--------------------------------------------------------------------------------
//	Fenstergroesse
//	--------------------------------------------------------------------------------

	function	mdl_getWindowHeight()
	{
		if	(NS4)
			return	window.innerHeight;
		if	(IE4)
			return	document.body.clientHeight;
		return	false;
	}

	function	mdl_getWindowWidth()
	{
		if	(NS4)
			return	window.innerWidth;
		if	(IE4)
			return	document.body.clientWidth;
		return	false;
	}

//	--------------------------------------------------------------------------------
//	Scrollpositionen
//	--------------------------------------------------------------------------------

	function mdl_getPageScrollY()
	{
		if (NS4)
			return window.pageYOffset;
		if (IE4)
			return document.body.scrollTop;
		return -1;
	}

//	--------------------------------------------------------------------------------
//	Pfad auf einen Layer holen (wichtig für alle anderen Funktionen
//	--------------------------------------------------------------------------------

	function	mdl_getLayer(layername)
	{
		if	(IE4)
			return	eval('document.all.'+layername);
		if	(NS4)
			return	mdl_findLayer(layername,document);
	}

	function	mdl_findLayer(layername,ds)				//	Routine, um den 'Pfad' zum Layer unter NS zu bestimmen
	{
		for	(var i=0;i<ds.layers.length;i++)			//	Die Layer des aktuellen 'document' Objekts durchsuchen
		{
			var	layer		=	ds.layers[i];
			if	(layer.name	== layername)				// Ist der aktuelle Layer der gesuchte?
				return	layer;

			if	(layer.document.layers.length>0)		// Wenn nicht, enthält er weitere Layer
			{
				var	layer	=	mdl_findLayer(layername,layer);	// Dann such dort, mit einem neuen document Objekt
				if	(layer!="not_found")
					return	layer;						// In tieferer Ebene gefunden
			}
		}
		return	"not_found";							//	Layer nicht gefunden ;-[
	}


//	--------------------------------------------------------------------------------
//	Pfad auf einen Layer holen (wichtig für alle anderen Funktionen
//	--------------------------------------------------------------------------------

	function	mdl_getImage(name)
	{
		if	(NS4)
		{
			return mdl_findImage(name,document);
		}
		if	(IE4)
			return eval('document.all.' + name);
		return null;
	}

	function	mdl_findImage(name,doc)
	{
		var i, img;

		for (i=0; i< doc.images.length; i++)
			if (doc.images[i].name==name)
				return doc.images[i];
		for (i=0; i<doc.layers.length; i++)
		{
			if ((img = mdl_findImage(name, doc.layers[i].document)) != null)
			{
				img.container = doc.layers[i];
				return img;
			}
		}
		return null;
}

//	--------------------------------------------------------------------------------
//	Pfad auf einen Layer holen (wichtig für alle anderen Funktionen
//	--------------------------------------------------------------------------------

	function	mdl_getImageX(img)
	{
		var x, obj;

		if	(NS4)
		{
			if (img.container != null)
				return img.container.pageX + img.x;
			else
				return img.x;
		}
		if	(IE4)
		{
			x = 0;
			obj = img;
			while (obj.offsetParent != null)
			{
				x += obj.offsetLeft;
				obj = obj.offsetParent;
			}
			x += obj.offsetLeft;
			return x;
		}
	return -1;
	}


	function	mdl_getImageY(img)
	{
		var x, obj;

		if	(NS4)
		{
			if (img.container != null)
				return img.container.pageY + img.y;
			else
				return img.y;
		}
		if	(IE4)
		{
			x = 0;
			obj = img;
			while (obj.offsetParent != null)
			{
				x += obj.offsetTop;
				obj = obj.offsetParent;
			}
			x += obj.offsetLeft;
			return x;
		}
	return -1;
	}

//	Browser überprüfen

	var	NS4	=	(navigator.appName.indexOf("Netscape") >= 0 && parseFloat(navigator.appVersion) >= 4) ? 1 : 0;
	var IE4 =	(document.all) ? 1 : 0;
	var IE5 =	(IE4 && navigator.appVersion.indexOf("5.") >= 0) ? 1 : 0;
