						  /* <![CDATA[ */
						
						  var idTextfeld    = 'nachricht';       // ID der <textarea>
						  var idColorpicker = 'colorpicker';     // ID der Tabelle
						
						  var rangeIE = null;
						
						  function insertProperty(prop,val)
						  {
							insertText('[' + prop + '=' + val + ']', '[\/' + prop + ']');
						  }
						
						  // IE/Gecko-Weiche zum Einfügen von Text ins Textfeld
						  function insertText(vor, nach)
						  {
							 var textfeld = document.getElementById(idTextfeld);
							 textfeld.focus();                                         // falls Cursor außerhalb war
						
							 if(typeof document.selection != 'undefined')              // für IE, auch Opera
							 {
							   insertIE(textfeld, vor, nach);
							 }
							 else if (typeof textfeld.selectionStart != 'undefined')   // Geckos (FF)
							 {
							   insertGecko(textfeld, vor, nach);
							 }
						  }
						
						  // Im "textfeld" Portionen "vor" und "nach" einfügen (IE)
						  function insertIE(textfeld, vor, nach)
						  {
							 if(!rangeIE) rangeIE = document.selection.createRange();
						
							 // nichts weiter tun, falls wir nicht im Textfeld sind
							 if(rangeIE.parentElement().id != idTextfeld) { rangeIE = null; return; }
						
							 var alterText = rangeIE.text;
						
							 // Auswahl um BBC ergänzen
							 rangeIE.text = vor + alterText + nach;
						
							 // Cursor neu setzen (wie SelfHTML)
							 if (alterText.length == 0)
							   rangeIE.move('character', -nach.length);
							 else
							   rangeIE.moveStart('character', rangeIE.text.length);
							
							 rangeIE.select();
							 rangeIE = null;
						  }
						
						  // Im "textfeld" Portionen "vor" und "nach" einfügen (Geckos)
						  function insertGecko(textfeld, vor, nach)
						  {
							 von = textfeld.selectionStart;
							 bis = textfeld.selectionEnd;
						
							 // Text zerlegen
							 anfang = textfeld.value.slice(0,   von);
							 mitte  = textfeld.value.slice(von, bis);
							 ende   = textfeld.value.slice(bis);        // der Rest des Strings
						
							 // BBC einfügen und ins Textfeld schreiben
							 textfeld.value = anfang + vor + mitte + nach + ende;
						
							 // Cursor neu setzen
							 if(bis - von == 0)
							 {
							   textfeld.selectionStart = von + vor.length;
							   textfeld.selectionEnd   = textfeld.selectionStart;
							 }
							 else
							 {
							   textfeld.selectionEnd   = bis + vor.length + nach.length;
							   textfeld.selectionStart = textfeld.selectionEnd;
							 }
						  };
						
						  // Im IE die Textauswahl merken (onMouseDown im Farbwähler)
						  function getSelectionIE()
						  {
							if (document.selection)
							{
							  document.getElementById(idTextfeld).focus();
							  rangeIE = document.selection.createRange();
							}
						  }
						
						  /* ========= Ab hier: Farbwähler =================================== */
						
						  // Farbtabelle erzeugen und in Container-Div schreiben bzw. Tabelle löschen
						  function generateColorTable(idContainer)
						  {
							if(document.getElementById(idColorpicker))
							{
							  document.getElementById(idContainer).innerHTML = ''; return;
							}
						
							var strTabelle = '<table id="'+idColorpicker+'" cellspacing="0">'+"\n";
						
							// Eine 3-fache for-Schleife durch den RGB-Farbraum:
							for(var r=0; r<257; r+=64)
							{
							  strTabelle += "<tr>\n";
						
							  for(var g=0; g<257; g+=64)
								for(var b=0; b<257; b+=64)
								   strTabelle += '<td style="background:rgb('+r+','+g+','+b+')" '
												 + 'onclick="pickBgColor(this)" '
												 + 'onmousedown="getSelectionIE()"><\/td>'+"\n";
						
							  strTabelle += "<\/tr>\n";
							}
						
							strTabelle += "<\/table>\n";
						
							document.getElementById(idContainer).innerHTML += strTabelle;    // "+=", ggf. "="
						  }
						

						  // Hintergrundfarbe des <td>-Elements auslesen und als [color=..] einfügen
						  function pickBgColor(elem)
						  {
							insertProperty('color', elem.style.backgroundColor);
						  }
						  
						  /* ]]> */
						
