

var BigElements = "-H1 -H2 -H3 -H4 -BIG"; 	// Hier Textgröße verdoppeln
var KeepElements = "-TEXTAREA";	// Diese Elemente aussparen

function walkTree(start)					// Geht von einem Knoten aus alle Knoten durch und
	{												// ersetzt Textknoten durch Bilder
	var History = new Array(start);
	while(History.length>0)
		{

		Element = History.pop();
		if((Element.hasChildNodes()) && (KeepElements.indexOf("-" + Element.parentNode.nodeName) == -1))
			{
			for(i=0;i<Element.childNodes.length;i++)
				{
				History.push(Element.childNodes[i]);
				}
			}
		else
			{

			if((Element.nodeType == 3) && !(Element.nodeValue.match(/^\s+$/))) // Ist ein Textnode & steht was drin:
				{

				var Words = Element.nodeValue.split(" ");	// An Wörtern teilen
				Element.nodeValue = "";							// Originaltext löschen

				for(i=0;i<Words.length;i++)					// Wörter der Reihe nach durchgehen
					{

					Buffer = document.createElement("span");		// Container mit class "nobr" erzeugen
					BufferClass = document.createAttribute("class");
					BufferClass.nodeValue = "nobr";
					Buffer.setAttributeNode(BufferClass);

					for(ii=0;ii<Words[i].length;ii++)				// Buchstaben der Reihe nach durch
						{
						var Char = Words[i].charAt(ii);

						if(Char.charCodeAt(0)>31)						// Nur druckbare Zeichen bitte
							{
							ImgAlt = document.createAttribute("alt");	// Bildknoten
							ImgAlt.nodeValue = Char;

							if(Char=="/") {Char = "slash"}							// Ausnahmen
							else if(Char=="?") {Char = "qm"}
							else if(Char==".") {Char = "dot"}
							else
								{
								Char = encodeURIComponent(Char);	// Normalfall: HEX-Kodierung
								}

							ImgSrc = document.createAttribute("src");			// Attribute des Bildes
							ImgSrc.nodeValue = "alphabet/" +Char+ ".gif";

							ImgAlign = document.createAttribute("align");
							ImgAlign.nodeValue = "absbottom";

							ImgBorder = document.createAttribute("border");
							ImgBorder.nodeValue = "0";

							Img = document.createElement("img"); // neues Bild erzeugen
							Img.setAttributeNode(ImgAlt);
							Img.setAttributeNode(ImgSrc);
							Img.setAttributeNode(ImgAlign);
							Img.setAttributeNode(ImgBorder);

							if(BigElements.indexOf("-" + Element.parentNode.nodeName) != -1)	// Ist Elementname in der BIG-List?
								{
								ImgHeight = document.createAttribute("height");				// Dann doppelte Höhe
								ImgHeight.nodeValue = "32";
								Img.setAttributeNode(ImgHeight);
								}

							Buffer.appendChild(Img);										// Buchstaben-IMG an Container anfügen
							}
						}
						Element.parentNode.insertBefore(Buffer, Element);		// Wort einfügen

						if(i<Words.length-1)					// Danach ein Leerzeichen für den Umbruch
							{										// aber nur wenn's nicht das letzte Wort ist.
							Text = document.createTextNode(" ");
							Element.parentNode.insertBefore(Text, Element);
							}
					}

				}

			}

		}
	}


