function getSelectedText()
{
	if (window.getSelection)
	{
		return window.getSelection();
	}
	else if (document.getSelection)
	{
		return document.getSelection();
	}
	else if (document.selection)
	{
		return document.selection.createRange().text;
	}
}

function insert(textareaName, aTag, eTag)
{
	var input = document.forms["content"].elements[textareaName];
	input.focus();
	/* für neuere auf Gecko basierende Browser */
	if(typeof input.selectionStart != 'undefined')
	{
		/* Einfügen des Formatierungscodes */
		var start = input.selectionStart;
		var end = input.selectionEnd;
		var insText = input.value.substring(start, end);
		input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
		/* Anpassen der Cursorposition */
		var pos;
		if (insText.length == 0)
		{
			pos = start + aTag.length;
		}
		else
		{
			pos = start + aTag.length + insText.length + eTag.length;
		}
		input.selectionStart = pos;
		input.selectionEnd = pos;
	}
	/* für Internet Explorer */
	else if(typeof document.selection != 'undefined')
	{
		/* Einfügen des Formatierungscodes */
		var range = document.selection.createRange();
		var insText = range.text;
		range.text = aTag + insText + eTag;
		/* Anpassen der Cursorposition */
		range = document.selection.createRange();
		if (insText.length == 0)
		{
			range.move('character', -eTag.length);
		} else
		{
			range.moveStart('character', aTag.length + insText.length + eTag.length);      
		}
		range.select();
	}
}

function supportInsert(textareaName)
{
	try
	{
		var input = document.forms["content"].elements[textareaName];
		if((typeof document.selection != 'undefined') || (typeof input.selectionStart != 'undefined'))
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	catch(e)
	{
		//window.alert(e);
		return false;
	}
}

function parseColor(textareaName, colorname)
{
	if(supportInsert(textareaName))
	{
		insert(textareaName, "[COLOR=" + colorname + "]", "[/COLOR]");
	}
	else
	{
		text = prompt("Bitte den Text eingeben:\n(Zum Abbrechen nichts eingeben!)", "");
		if (text != "")
		{
			if (text == undefined)
			{
				//do nothing
			}
			else
			{
				text = "[COLOR=" + colorname + "]" + text + "[/COLOR]";
				document.forms["content"].elements[textareaName].value += text;
			}
		}
		document.forms["content"].elements[textareaName].focus();
	}
}

function parseSize(textareaName, size)
{
	if(supportInsert(textareaName))
	{
		insert(textareaName, "[SIZE=" + size + "]", "[/SIZE]");
	}
	else
	{
		text = prompt("Bitte den Text eingeben:\n(Zum Abbrechen nichts eingeben!)", "");
		if (text != "")
		{
			if (text == undefined)
			{
				//do nothing
			}
			else
			{
				text = "[SIZE=" + size + "]" + text + "[/SIZE]";
				document.forms["content"].elements[textareaName].value += text;
			}
		}
		document.forms["content"].elements[textareaName].focus();
	}
}

function parseBold(textareaName)
{
	if(supportInsert(textareaName))
	{
		insert(textareaName, "[B]", "[/B]");
	}
	else
	{
		text = prompt("Bitte den Text eingeben:\n(Zum Abbrechen nichts eingeben!)", "");
		if (text != "")
		{
			if (text == undefined)
			{
				//do nothing
			}
			else
			{
				text = "[B]" + text + "[/B]";
				document.forms["content"].elements[textareaName].value += text;
			}
		}
		document.forms["content"].elements[textareaName].focus();
	}
}

function parseItalic(textareaName)
{
	if(supportInsert(textareaName))
	{
		insert(textareaName, "[I]", "[/I]");
	}
	else
	{
		text = prompt("Bitte den Text eingeben:\n(Zum Abbrechen nichts eingeben!)", "");
		if (text != "")
		{
			if (text == undefined)
			{
				//do nothing
			}
			else
			{
				text = "[I]" + text + "[/I]";
				document.forms["content"].elements[textareaName].value += text;
			}
		}
		document.forms["content"].elements[textareaName].focus();
	}
}

function parseUnderline(textareaName)
{
	if(supportInsert(textareaName))
	{
		insert(textareaName, "[U]", "[/U]");
	}
	else
	{
		text = prompt("Bitte den Text eingeben:\n(Zum Abbrechen nichts eingeben!)", "");
		if (text != "")
		{
			if (text == undefined)
			{
				//do nothing
			}
			else
			{
				text = "[U]" + text + "[/U]";
				document.forms["content"].elements[textareaName].value += text;
			}
		}
		document.forms["content"].elements[textareaName].focus();
	}
}

function parseImage(textareaName)
{
	if(supportInsert(textareaName))
	{
		insert(textareaName, "[IMG]", "[/IMG]");
	}
	else
	{
		text = prompt("Bitte ein Link zu einem Bild eingeben:\n(Zum Abbrechen nichts eingeben!)", "");
		if (text != "")
		{
			if (text == undefined)
			{
				//do nothing
			}
			else
			{
				text = "[IMG]" + text + "[/IMG]";
				document.forms["content"].elements[textareaName].value += text;
			}
		}
		document.forms["content"].elements[textareaName].focus();
	}
}

function parseLink(textareaName)
{
	text = prompt("Bitte einen Link (URL) eingeben:\n(Zum Abbrechen nichts eingeben!)", "");
	if (text != "")
	{
		if (text == undefined)
		{
			//do nothing
		}
		else
		{
			text2 = prompt("Bitte eine Beschriftung zu dem Link (URL) eingeben:\n(Nichts eingeben, um keine Beschriftung zu verwenden!)", "");
			if (text2 != "")
			{
				if (text2 == undefined)
				{
					text = "[URL]" + text + "[/URL]";
					document.forms["content"].elements[textareaName].value += text;
				}
				else
				{
					text = "[URL=" + text + "]" + text2 + "[/URL]";
					document.forms["content"].elements[textareaName].value += text;
				}
			}
			else
			{
				text = "[URL]" + text + "[/URL]";
				document.forms["content"].elements[textareaName].value += text;
			}
		}
	}
	document.forms["content"].elements[textareaName].focus();
}

function parseAlign(textareaName, alignment)
{
	if(supportInsert(textareaName))
	{
		insert(textareaName, "[ALIGN=" + alignment + "]", "[/ALIGN]");
	}
	else
	{
		text = prompt("Bitte den Text eingeben:\n(Zum Abbrechen nichts eingeben!)", "");
		if (text != "")
		{
			if (text == undefined)
			{
				//do nothing
			}
			else
			{
				text = "[ALIGN=" + alignment + "]" + text + "[/ALIGN]";
				document.forms["content"].elements[textareaName].value += text;
			}
		}
		document.forms["content"].elements[textareaName].focus();
	}
}

function parseList(textareaName, type)
{
	var listObjects = new Array();
	var text = prompt("Bitte den ersten Listeneintrag eingeben:\n(Zum Abbrechen nichts eingeben!)", "");
	if (text != "")
	{
		if (text == undefined)
		{
			//do nothing
		}
		else
		{
			listObjects.push(text);
			
			while (true)
			{
				text = prompt("Bitte den naechsten Listeneintrag eingeben:\n(Wenn fertig, nichts eingeben!)", "");
				if (text == undefined)
				{
					break;
				}
				else if (text != "")
				{
					listObjects.push(text);
				}
				else
				{
					break;
				}
			}
			
			if (type == 1)
			{
				text = "[LIST=1]\n";
			}
			else
			{
				text = "[LIST]\n";
			}
			
			for (var i = 0; i < listObjects.length; i++)
			{
				text += "[*]" + listObjects[i] + "\n";
			}
			
			text += "[/LIST]\n";
			
			document.forms["content"].elements[textareaName].value += text;
		}
	}
	document.forms["content"].elements[textareaName].focus();
}