// insert_at_cursor():
// fuegt an der aktiven Stelle einen Text in ein Feld (spezifiziert durch id) ein.
// der Text kann außerdem zB: [fett]|[/fett] beinhalte, wobei | dann durch default_txt ersetzt wird.
// mit focus kann definiert werden, ob der focus zum feld springt (null) oder nicht
// scrolling definiert, ob nach einfuegen irgendwo hin gescrollt werden soll. null scrollt, alles andere nicht.
// focus definiert, ob der Focus neu gesetzt werden soll. null focusiert, alles andere nicht.
	
	function insert_at_cursor(id, myValue, focus, scrolling) {
		var myField = document.getElementById(id);
		var tscrolling = myField.scrollTop;
		var lscrolling = myField.scrollLeft + myValue;
		var default_txt = 'Ihr Text';
		var sel = get_selection(id);
		var endPos = -1;

		if(sel === false){
			if (document.selection) {
				myField.focus();
				sel = document.selection.createRange();
				sel.text = myValue;
			} else {
				if (myField.selectionStart || myField.selectionStart == '0') {
					var startPos = myField.selectionStart;
					endPos = myField.selectionEnd;
					myField.value = myField.value.substring(0, startPos)
					+ myValue
					+ myField.value.substring(endPos, myField.value.length);
				} else {
					myField.value = myField.value + myValue;
				}
			}
		} else {
			sel_text = '';
			if(sel.text != null){
				replace = myValue.split('|').join(sel.text);
				sel_text = sel.text;
			} else {
				replace = myValue.split('|').join(sel);
				sel_text = sel;
			}
			
			if(sel_text != ''){
				if (myField.selectionStart || myField.selectionStart == '0') {
					var startPos = myField.selectionStart;
					endPos = myField.selectionEnd;
					myField.value = myField.value.substring(0, startPos) +
					replace + myField.value.substring(endPos, myField.value.length);
				} else {
					txt = str_replace(sel_text, replace, myField.value);
					myField.value = txt;
				}
			} else {
				range = document.selection.createRange();
   				if (myField.selectionStart || myField.selectionStart == '0') {
					var startPos = myField.selectionStart;
					var endPos = myField.selectionEnd;
					myField.value = myField.value.substring(0, startPos)
					+ myValue.split('|').join(default_txt);
					+ myField.value.substring(endPos, myField.value.length);
				} else {
					myField.value = myField.value + myValue.split('|').join(default_txt);
				}
			}
		}

		if(scrolling == null){		
			myField.scrollTop = tscrolling;
			myField.scrollLeft = lscrolling;
			if(myField.selectionStart != null && myField.selectionEnd != null && endPos != null){
				myField.selectionStart = endPos + myValue.length;
				myField.selectionEnd = endPos + myValue.length;
			}
		}
		
		if(focus == null){
			myField.focus();
			scroll_to_element(myField);
			myField.focus();
		}
	}




