function addLoadEvent(func) {
		var oldonload = window.onload;
		if (typeof window.onload != 'function') {
				window.onload = func;
			} else {
					window.onload = function() {
							oldonload();
							func();
						}
				}
	}
	
function insertAfter(newElement,targetElement) {
		var parent = targetElement.parentNode;
		if (parent.lastChild == targetElement) {
				parent.appendChild(newElement);
			} else {
					parent.insertBefore(newElement,targetElement.nextSibling);
				}
	}
	
function addClass(element,value) {
		if (!document.className) {
				element.className = value;
			} else {
					newClassName = element.className;
					newClassName+= " ";
					newClassName+= value;
					element.className = newClassName;
				}
	}
	
function highlightPage() {
		if (!document.getElementsByTagName) return false;
		if (!document.getElementById) return false;
		if (!document.getElementById("nav-meta")) return false;
		var nav = document.getElementById("nav-meta");
		var links = nav.getElementsByTagName("a");
		for (var i=0; i<links.length; i++) {
				var linkurl = links[i].getAttribute("href");
				var currenturl = window.location.href;
				if (currenturl.indexOf(linkurl) != -1) {
						links[i].className = "here";
					}
			}
	}
function getElementByClass(theClassName) {
        var returnElems = new Array();
	var allElems = document.getElementsByTagName('*');
	for (var i = 0; i < allElems.length; i++) {
		var thisElem = allElems[i];
		if (thisElem.className && thisElem.className.search(theClassName) != -1) {
                       // hier einen Callback auf die gewünschte Funktion reinschreiben oder
                       // die Funktionalität direkt programmieren
                       // Alternativ kann ein Array angelegt werden, das hier mit den
                       // Treffern gefüllt und zurückgegeben wird
                       returnElems.push(thisElem);
		}
	}
        return returnElems;
}
addLoadEvent(highlightPage);