/*
*   Die folgende Funktion erzeugt automatisch kleine Grafiken
*   vor oder nach HTML-Elementen einer bestimmten Klasse
*
*   Dies ist leider mit JavaScript noetig, da der Internet-Explorer
*   die CSS-Eigenschaften "before" und "after" nicht unterstuetzt.
*
*   Es werden folgende Klassen beruecksichtigt:
*      1. ext (fuer externe Links)
*      2. top (Pfeile für Links zum Seitenanfang)
*      3. down (Pfeile bei Zusammenfassungen)
*
*   (Funktion zuletzt geaendert von Johannes Imo am 15.12.2005)
*
*/


// Funktion zum Extrahieren aller Elemente mit einem
// bestimmten "class"-Attribut
function getElementsByClassName (c) {
	var result = new Array();
	var j = 0;
	var objs = document.getElementsByTagName("*");
	for (i = 0; i < objs.length; i++) {
		if (objs[i].className == c) {
			result[j] = objs[i];
			j++;
		}
	}
	return result;
}


// Diese Funktion fuegt zu allen Elemente der Klasse "classname"
// eine Grafik (Quellpfad "source" und Alternativtext "alttext")
// ein. Das Flag "before" gibt an, ob die Grafik davor oder dahinter
// eingefügt werden soll. Space gibt den Leerraum in Pixeln zwischen
// Text und Grafik an.
function addicons (classname, source, alttext, space, before) {

	// hole alle Elemente der entsprechenden Klasse
	var objs = getElementsByClassName(classname);

	// iteriere ueber alle Elemente
	for (i = 0; i < objs.length; i++) {

		// Erzeuge Bild-Knoten
		var img = document.createElement("img");

		// Setze Quellpfad
		var src = document.createAttribute("src");
		src.nodeValue = source;
		img.setAttributeNode(src);

		// Setze Alternativtext
		var alt = document.createAttribute("alt");
		alt.nodeValue = alttext;
		img.setAttributeNode(alt);

		// Entferne Bildrahmen
		img.style.border = "none 0px";

		// Setze Abstaende zum Text
		img.style.padding = "0";
		img.style.marginTop = "0";
		img.style.marginBottom = "0px";
		if (before) {
			img.style.marginRight = space + "px";
			img.style.marginLeft = "0px";
		}
		else {
			img.style.marginLeft = space + "px";
			img.style.marginRight = "0px";
		}

		// Fuege Bild ein
		if (before)
		{
			objs[i].insertBefore(img, objs[i].firstChild);
		}
		else
		{
			objs[i].appendChild(img);
		}
	}
}

// Diese Funktion muss im HTML-Code bei "onload" aufgerufen werden
function initIcons () {
	addicons("ext", "http://www.uni-stuttgart.de/akachor/img/linkexternicon.gif", "Externer Link", 3, true);
	addicons("top", "http://www.uni-stuttgart.de/akachor/img/up.gif", "Zum Seitenanfang", 5, true);
	addicons("down", "http://www.uni-stuttgart.de/akachor/img/down.gif", "Zu dieser Aktion", 5, true);
}
