var agt = navigator.userAgent.toLowerCase();
var is_major = parseInt(navigator.appVersion);
var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_ie4up = (is_ie && (is_major >= 4 ));
var is_gecko = (agt.indexOf('gecko') != -1);
var submitformzielid = "main";

function setid(req) { Spry.Utils.setInnerHTML(submitformzielid, req.xhRequest.responseText); }

function pos(textEl) {
	if ( textEl.selectionStart || textEl.selectionStart == '0') { 
		var startPos = textEl.selectionStart;
		var endPos = textEl.selectionEnd;
		textEl.caretPos = textEl.value.substring(startPos, endPos);
	}
	else if ( document.selection ) {
		if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
	}
}

function smilie(formularname,text) {
	if (document.getElementById(formularname).text.createTextRange && document.getElementById(formularname).text.caretPos) {
		var caretPos = document.getElementById(formularname).text.caretPos;
		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
		document.getElementById(formularname).text.focus();
	} else if (is_gecko) {
		var edit = document.getElementById(formularname).text;
		edit.value = edit.value.substring(0, edit.selectionStart) + edit.value.substring(edit.selectionStart, edit.selectionEnd) + text + edit.value.substring(edit.selectionEnd, edit.value.length); 
	} else {
		document.getElementById(formularname).text.value  += text;
		document.getElementById(formularname).text.focus();
	}
}


function insert(formularname,aTag, eTag) {
	var input = document.getElementById(formularname).elements['text'];
	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);
	}
}