//************************************************** ******** **************************************************//
//************************************************** BB_CODES **************************************************//
//************************************************** ******** **************************************************//



//************************* ADD_LINK *************************//
function bb_add_link(target_form, target_textarea)
{
var linkname = prompt("Bitte geben Sie einen Namen für den Link an", "");

	if(linkname != "" && linkname != null)
	{
	var url = prompt("Bitte geben Sie die URL an", "http://");

		if(url != "" && url != null)
		{
		var aTag = "[url=" + url + "]" + linkname;
		var eTag = "[/url]";
		bb_code_insert(aTag, eTag, target_form, target_textarea);
		}
		else
		{
		return false;
		}
	
	}
	else
	{
	return false;
	}
}
//************************* ADD_LINK *************************//



//************************* ADD_IMG *************************//
function bb_add_img(target_form, target_textarea)
{
var url = prompt("Bitte geben Sie die URL des Bildes an", "http://");

	if(url != "" && url != null)
	{
	var aTag = "[img]" + url;
	var eTag = "[/img]";

	bb_code_insert(aTag, eTag, target_form, target_textarea);
	}
	else
	{
	return false;
	}
}
//************************* ADD_IMG *************************//



//************************* ADD_FILE *************************//
function bb_add_file(url, linkname, target_form, target_textarea)
{
var aTag = "[url=" + url + "]" + linkname;
var eTag = "[/url]";

bb_code_insert(aTag, eTag, target_form, target_textarea);
}
//************************* ADD_FILE *************************//



//************************* BB_CODE_INSERT *************************//
function bb_code_insert(aTag, eTag, target_form, target_textarea)
{
var input = document.forms[target_form].elements[target_textarea];
input.focus();

	/* für Internet Explorer */
	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();
	
	}

	/* für neuere auf Gecko basierende Browser */
	else 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 die übrigen Browser */
	else
	{

	/* Abfrage der Einfügeposition */
	var pos;
	var re = new RegExp('^[0-9]{0,3}$');

		while(!re.test(pos))
		{
		pos = prompt("Einfügen an Position (0.." + input.value.length + "):", "0");
		}

		if(pos > input.value.length)
		{
		pos = input.value.length;
		}
	
	/* Einfügen des Formatierungscodes */
	var insText = prompt("Bitte geben Sie den zu formatierenden Text ein:");
	input.value = input.value.substr(0, pos) + aTag + insText + eTag + input.value.substr(pos);
	}

}
//************************* BB_CODE_INSERT *************************//



//************************************************** ******** **************************************************//
//************************************************** BB_CODES **************************************************//
//************************************************** ******** **************************************************//
