// JavaScript Document
var str;
function getElementsByClassName(className, tag, elm)
{
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++)
	{
		current = elements[i];
		if(testClass.test(current.className))
		{
			returnElements.push(current);
		}
	}
	return returnElements;
}
function setimg(ref,img)
{
	document.images[ref].src = img.src;
}
function setcursor(target,pointer)
{
	document.getElementById(target).style.cursor = pointer;
}

function getPosition(obj,height)
{
	var pos = { x:0, y:0 };
	do
	{
		if(obj.offsetTop!=height)
		{
			pos.x += obj.offsetLeft;
			pos.y += obj.offsetTop;
		}
	} while (obj = obj.offsetParent);
	return pos;
}

function makeShadow(className, background, direct, classx)
{
	if(classx==null) classx=className;
	var elements = getElementsByClassName(className);
	str=elements;
	var length = elements.length;
	if(elements=="") return;
	for(var i=0;i<length;i++)
	{
		//Erkennung der Positionsreferenz:
		var xs=0;
		elemx=elements[i];
		if(elemx.ownerDocument && elemx.ownerDocument.defaultView && elemx.ownerDocument.defaultView.getComputedStyle) var elpos = elemx.ownerDocument.defaultView.getComputedStyle(elemx,null).position;
		else if(elemx.currentStyle) var elpos = elemx.currentStyle.position;
		while((elpos!="absolute" && elpos!="relative" && elemx.localName!="BODY" && xs<=80)||elemx.className.search(classx+"-hidden")!=(-1))
		{
			elemx = elemx.parentNode;
			if(elemx.ownerDocument && elemx.ownerDocument.defaultView && elemx.ownerDocument.defaultView.getComputedStyle) var elpos = elemx.ownerDocument.defaultView.getComputedStyle(elemx,null).position;
			else if(elemx.currentStyle) var elpos = elemx.currentStyle.position;
			xs++;
		}
		if(xs>=80) alert("Schattenberechnung abgebrochen: Zu viele Ebenen!")
		var parr = elemx;
		if(!direct)
		{
			var mainpos = getPosition(parr);
			//Elemente erstellen
			var pos = getPosition(elements[i]);
			var height=Number(elements[i].height)+2;
			var width=Number(elements[i].width)+2;
			var left=pos.x-mainpos.x-1;
			var top=pos.y-mainpos.y-1;
			if(height && width && left && top)
			{
				var elemshadow = document.createElement("div");
				elemshadow.className=classx+"-box";
				elemshadow.style.position = "absolute";
				elemshadow.style.left = left+"px";
				elemshadow.style.top = top+"px";
				elemshadow.style.height = height+"px";
				elemshadow.style.width = width+"px";
				var Name = document.createAttribute("name");
				Name.nodeValue=classx+"_"+i;
				elemshadow.setAttributeNode(Name);
			}
			else alert(elements[i].localName);
		}
		else
		{
			elemshadow=elements[i];
			elemshadow.className+=" "+classx+"-box";
		}
		if(background!=null)
		{
			var elembg = document.createElement("img");
			elembg.src=background;
			elembg.className=classx+"-box-background";
		}
		else var elembg = null;
		var elembottomshadow = document.createElement("div");
		elembottomshadow.className=classx+"-bottom";
		elemshadow.appendChild(elembottomshadow);
		var elemtopshadow = document.createElement("div");
		elemtopshadow.className=classx+"-top";
		elemshadow.appendChild(elemtopshadow);
		var elemleftshadow = document.createElement("div");
		elemleftshadow.className=classx+"-left";
		elemshadow.appendChild(elemleftshadow);
		var elemrightshadow = document.createElement("div");
		elemrightshadow.className=classx+"-right";
		elemshadow.appendChild(elemrightshadow);
		var elemtlshadow = document.createElement("div");
		elemtlshadow.className=classx+"-top-left-edge";
		elemshadow.appendChild(elemtlshadow);
		var elemblshadow = document.createElement("div");
		elemblshadow.className=classx+"-bottom-left-edge";
		elemshadow.appendChild(elemblshadow);
		var elemtrshadow = document.createElement("div");
		elemtrshadow.className=classx+"-top-right-edge";
		elemshadow.appendChild(elemtrshadow);
		var elembrshadow = document.createElement("div");
		elembrshadow.className=classx+"-bottom-right-edge";
		elemshadow.appendChild(elembrshadow);
		if(background!=null) elemshadow.appendChild(elembg);
		//parr.insertBefore(elemshadow,parr.firstChild);
		if(parr!=elemshadow) parr.appendChild(elemshadow);
	}
	var c = elemx.children;
	if(!direct)
	{
		for(var i=0;i<c.length;i++)
		{
			if(c[i].className.search(classx+"-box")==(-1))
			{
				c[i].style.zIndex="100";
				c[i].style.position="relative";
				c[i].style.left="0";
				c[i].style.top="0";
			}
		}
	}
}
