var idTextfeld    = 'eintrag';       // ID der <textarea>

var rangeIE = null;

function insertBBCodeProperty(prop,val)
{
	insertBBCodeText('[' + prop + '=' + val + ']', '[\/' + prop + ']');
}

// IE/Gecko-Weiche zum Einfügen von Text ins Textfeld
function insertBBCodeText(vor, nach)
{
		var textfeld = document.getElementById(idTextfeld);
		textfeld.focus();                                         // falls Cursor außerhalb war

		if(typeof document.selection != 'undefined')              // für IE, auch Opera
		{
			insertBBCodeIE(textfeld, vor, nach);
		}
		else if (typeof textfeld.selectionStart != 'undefined')   // Geckos (FF)
		{
			insertBBCodeGecko(textfeld, vor, nach);
		}
}

// Im "textfeld" Portionen "vor" und "nach" einfügen (IE)
function insertBBCodeIE(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 insertBBCodeGecko(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 getBBCodeSelectionIE()
{
	if (document.selection)
	{
		document.getElementById(idTextfeld).focus();
		rangeIE = document.selection.createRange();
	}
}

