function setfocus (text){
	if(typeof(text.createTextRange) != 'undefined'){
		text.caretPos = document.selection.createRange().duplicate();
	}
}

function doublereplace (text1, text2, textarea){
	var sText = textarea.value.substr(textarea.selectionStart, textarea.selectionEnd - textarea.selectionStart);

	if(textarea.createTextRange && textarea.caretPos){
		var caretPos = textarea.caretPos;
		if(caretPos.text){
			caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text1 + caretPos.text + text2 + ' ' : text1 + caretPos.text + text2;
			caretPos.select();
			textarea.focus();
		}else{
			eingabe(text1,text2,textarea);
		}
	}else if(textarea.selectionStart || textarea.selectionStart == '0'){
 		var startPos = textarea.selectionStart;
		var endPos = textarea.selectionEnd;
		var scrollTop = textarea.scrollTop;
		var myText = (textarea.value).substring(startPos, endPos);
		if(!myText){
			myText = sText;
		}

		if(myText){
			if(myText.charAt(myText.length - 1) == " "){
				subst = text1 + myText.substring(0, (myText.length - 1)) + text2 + " ";
			}else{
				subst = text1 + myText + text2;
			}
			textarea.value = textarea.value.substring(0, startPos) + subst +
			textarea.value.substring(endPos, textarea.value.length);
			textarea.focus();

			var cPos=startPos+(text1.length+myText.length+text2.length);
			textarea.selectionStart=cPos;
			textarea.selectionEnd=cPos;
			textarea.scrollTop=scrollTop;
		}else{
			eingabe(text1,text2,textarea);
		}
	}else{
		eingabe(text1,text2,textarea);
	}
	if(textarea.createTextRange) textarea.caretPos = document.selection.createRange().duplicate();
}

function replace (text, textarea){
	if (textarea.createTextRange && textarea.caretPos){
		var caretPos = textarea.caretPos;

		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
		caretPos.select();
		textarea.focus();
	}else if(textarea.selectionStart || textarea.selectionStart == '0'){
		var sText = textarea.value.substr(textarea.selectionStart, textarea.selectionEnd - textarea.selectionStart);
 		var startPos = textarea.selectionStart;
		var endPos = textarea.selectionEnd;
		var scrollTop = textarea.scrollTop;
		var myText = (textarea.value).substring(startPos, endPos);
		if(!myText){
			myText = sText;
		}

		if(myText.charAt(myText.length - 1) == " "){
			subst = text + myText.substring(0, (myText.length - 1)) + " ";
		}else{
			subst = text + myText;
		}
		textarea.value = textarea.value.substring(0, startPos) + subst +
		textarea.value.substring(endPos, textarea.value.length);
		textarea.focus();

		var cPos=startPos+(text.length+myText.length);
		textarea.selectionStart=cPos;
		textarea.selectionEnd=cPos;
		textarea.scrollTop=scrollTop;
	}else{
		textarea.value += text;
		textarea.focus(textarea.value.length - 1);
	}
	if(textarea.createTextRange) textarea.caretPos = document.selection.createRange().duplicate();
}

function eingabe (bbcode, bbcode2, textarea2){
	if(bbcode == "[b]" && bbcode2 == "[/b]"){
                txt=prompt("Text der Fett sein soll.","Text");
                if(txt!=null){
			AddTxt = bbcode + txt + bbcode2;
			replace(AddTxt,textarea2);
                }
	}else if(bbcode == "[i]" && bbcode2 == "[/i]"){
                txt=prompt("Text der kursiv sein soll.","Text");
                if(txt!=null){
			AddTxt = bbcode + txt + bbcode2;
			replace(AddTxt,textarea2);
                }
	}else if(bbcode == "[center]" && bbcode2 == "[/center]"){
                txt=prompt("Text, der zentriert werden soll.","Text");
                if(txt!=null){
			AddTxt = bbcode + txt + bbcode2;
			replace(AddTxt,textarea2);
                }
	}else if(bbcode == "[left]" && bbcode2 == "[/left]"){
                txt=prompt("Text, der LINKS dargestellt werden soll.","Text");
                if(txt!=null){
			AddTxt = bbcode + txt + bbcode2;
			replace(AddTxt,textarea2);
                }
	}else if(bbcode == "[right]" && bbcode2 == "[/right]"){
                txt=prompt("Text, der RECHTS dargestellt werden soll.","Text");
                if(txt!=null){
			AddTxt = bbcode + txt + bbcode2;
			replace(AddTxt,textarea2);
                }
	}else if(bbcode == "[s]" && bbcode2 == "[/s]"){
                txt=prompt("Text, der durchgestrichen werden soll.","Text");
                if(txt!=null){
			AddTxt = bbcode + txt + bbcode2;
			replace(AddTxt,textarea2);
                }
	}else if(bbcode == "[sub]" && bbcode2 == "[/sub]"){
                txt=prompt("Text, der runtergestellt werden soll.","Text");
                if(txt!=null){
			AddTxt = bbcode + txt + bbcode2;
			replace(AddTxt,textarea2);
                }
	}else if(bbcode == "[sup]" && bbcode2 == "[/sup]"){
                txt=prompt("Text, der hochgestellt werden soll.","Text");
                if(txt!=null){
			AddTxt = bbcode + txt + bbcode2;
			replace(AddTxt,textarea2);
                }
	}else if(bbcode == "[td]" && bbcode2 == "[/td]"){
		AddTxt = bbcode + bbcode2;
		replace(AddTxt,textarea2);
	}else if(bbcode == "[tr]" && bbcode2 == "[/tr]"){
		AddTxt = bbcode + bbcode2;
		replace(AddTxt,textarea2);
	}else if(bbcode == "[table]" && bbcode2 == "[/table]"){
		AddTxt = bbcode + bbcode2;
		replace(AddTxt,textarea2);
	}else if(bbcode == "[tt]" && bbcode2 == "[/tt]"){
                txt=prompt("Text, der als Schreibmachinentext dargestellt werden soll.","Text");
                if(txt!=null){
			AddTxt = bbcode + txt + bbcode2;
			replace(AddTxt,textarea2);
                }
	}else if(bbcode == "[ftp]" && bbcode2 == "[/ftp]"){
                txt=prompt("Bitte gebe den FTP-Link ein.","Text");
                if(txt!=null){
			AddTxt = bbcode + txt + bbcode2;
			replace(AddTxt,textarea2);
                }
	}else if(bbcode == "[u]" && bbcode2 == "[/u]"){
                txt=prompt("Text, der unterstrichen werden soll.","Text");
                if(txt!=null){
			AddTxt = bbcode + txt + bbcode2;
			replace(AddTxt,textarea2);
                }
	}else if(bbcode == "[email]" && bbcode2 == "[/email]"){
                txt2=prompt("Welcher Name soll anstatt der E-Mailadresse angezeigt werden?\nWird dieses Feld freigelassen, so wird die E-Mailadresse angezeigt.","");
                if (txt2!=null) {
                        txt=prompt("Bitte geben Sie die E-Mailadresse ein.","name@domain.de");
                        if (txt!=null) {
                                if (txt2=="") {
                                        AddTxt="[email]"+txt+"[/email]";

                                } else {
                                        AddTxt="[email="+txt+"]"+txt2+"[/email]";
                                }
				replace(AddTxt,textarea2);
                        }
                }
	}else if(bbcode == "[size]" && bbcode2 == "[/size]"){
                txt=prompt("Text, der unterstrichen werden soll.","Text");
                if(txt!=null){
			AddTxt = bbcode + txt + bbcode2;
			replace(AddTxt,textarea2);
                }
	}else if(bbcode == "[quote]" && bbcode2 == "[/quote]"){
                txt=prompt("Text aus einem anderen Posting, der zitiert werden soll.","Text");
                if(txt!=null){
			AddTxt = bbcode + txt + bbcode2;
			replace(AddTxt,textarea2);
                }
	}else if(bbcode == "[move]" && bbcode2 == "[/move]"){
                txt=prompt("Text, der von rechts nach links laufen soll.","Text");
                if(txt!=null){
			AddTxt = bbcode + txt + bbcode2;
			replace(AddTxt,textarea2);
                }
	}else if(bbcode == "[pre]" && bbcode2 == "[/pre]"){
                txt=prompt("Text, der unverändert dargestellt werden soll.","Text");
                if(txt!=null){
			AddTxt = bbcode + txt + bbcode2;
			replace(AddTxt,textarea2);
                }
	}else if(bbcode == "[shadow=blue,255,400]" && bbcode2 == "[/shadow]"){
                txt2=prompt("Welche farbe,dicke,breite soll Shadow haben ?","blue,255,400");
                if (txt2!=null) {
                        txt=prompt("Bitte geben Sie den Text ein, der SHADOW dargestellt werden soll.","Text");
                        if (txt!=null){
                                if(txt2==""){
                                        AddTxt="[SHADOW=blue,255,400]"+txt+"[/SHADOW]";
					replace(AddTxt,textarea2);
                                }else{
                                        AddTxt="[SHADOW="+txt2+"]"+txt+"[/SHADOW]";
					replace(AddTxt,textarea2);
                                }
                        }
                }
	}else if(bbcode == "[glow=red,2,400]" && bbcode2 == "[/glow]"){
                txt2=prompt("Welche farbe,dicke,breite soll Glow haben ?","red,2,400");
                if (txt2!=null) {
                        txt=prompt("Bitte geben Sie den Text ein, der GLOWED dargestellt werden soll.","Text");
                        if (txt!=null) {
                                if (txt2=="") {
                                        AddTxt="[glow=red,2,400]"+txt+"[/glow]";
					replace(AddTxt,textarea2);
                                } else {
                                        AddTxt="[glow="+txt2+"]"+txt+"[/glow]";
					replace(AddTxt,textarea2);
                                }
                        }
                }
	}else if(bbcode == "[url]" && bbcode2 == "[/url]"){
                txt2=prompt("Welchen Namen soll der Link erhalten?\nWird dieses Feld freigelassen, so wird die URL angezeigt.","");
                if (txt2!=null) {
                        txt=prompt("Bitte geben Sie die Link-URL ein.","http://");
                        if (txt!=null) {
                                if (txt2=="") {
                                        AddTxt="[url]"+txt+"[/url]";
					replace(AddTxt,textarea2);
                                } else {
                                        AddTxt="[url="+txt+"]"+txt2+"[/url]";
					replace(AddTxt,textarea2);
                                }
                        }
                }
	}else if(bbcode == "[img]" && bbcode2 == "[/img]"){
                txt=prompt("Bitte geben Sie die URL der Grafik ein.","Text");
                if(txt!=null){
			AddTxt = bbcode + txt + bbcode2;
			replace(AddTxt,textarea2);
                }
	}else if(bbcode == "[code]" && bbcode2 == "[/code]"){
                txt=prompt("Text, der als Programmcode dargestellt werden soll.","Text");
                if(txt!=null){
			AddTxt = bbcode + txt + bbcode2;
			replace(AddTxt,textarea2);
                }
	}else if(bbcode == "[flash=200,200]" && bbcode2 == "[/flash]"){
                txt2=prompt("Flash Tag\n [flash=200,200]http://...[/flash]","200,200");
                if (txt2!=null) {
                        txt=prompt("Bitte geben Sie die URL zum FlashVideo ein, der dargestellt werden soll.","http://");
                        if (txt!=null) {
				AddTxt="[flash="+txt2+"]"+txt+"[/flash]";
				replace(AddTxt,textarea2);
                        }
                }
	}else if(bbcode == "[list][*]" && bbcode2 == "[/*][/list]"){
                txt=prompt("Art der Liste\n ('A' für alphabetisch, '1' für nummeriert) Frei lassen für normale Bullets","");
                while ((txt!="") && (txt!="A") && (txt!="a") && (txt!="1") && (txt!=null)) {
                        txt=prompt("FEHLER!\nZulässige Werte sind 'A', '1' und nix eintragen","");
                }
                if (txt!=null) {
                        if (txt=="") {
                                AddTxt="[list]\r";
                        } else {
                                AddTxt="[list="+txt+"]\r";
                        }
                        txt="1";
                        while ((txt!="") && (txt!=null)) {
                                txt=prompt("Listeneintrag:\nFeld leer lassen, um die Liste zu beenden.","");
                                if (txt!="") {
                                        AddTxt+="[*]"+txt+"\r";
                                }
                        }
                        AddTxt+="[/list]";
			replace(AddTxt,textarea2);
                }
	}else if(bbcode == "[sound]" && bbcode2 == "[/sound]"){
                txt=prompt("URL, der als Sound ausgegeben werden soll.\n(z.B.: WAV, MP3 oder OGG)","Text");
                if(txt!=null){
			AddTxt = bbcode + txt + bbcode2;
			replace(AddTxt,textarea2);
                }
	}else if(bbcode2 == "[/size]"){
                txt=prompt("Text der in der ausgewählten Größe dargestellt werden soll:","Text");
                if (txt!=null) {
                        AddTxt= bbcode + txt + bbcode2;
			replace(AddTxt,textarea2);
                }
	}else if(bbcode2 == "[/font]"){
                txt=prompt("Text der in der ausgewählten Schriftart dargestellt werden soll:","Text");
                if (txt!=null) {
                        AddTxt= bbcode + txt + bbcode2;
			replace(AddTxt,textarea2);
                }
	}else if(bbcode2 == "[/color]"){
                txt=prompt("Text der farbig sein soll:","Text");
                if (txt!=null) {
                        AddTxt= bbcode + txt + bbcode2;
			replace(AddTxt,textarea2);
                }
	}else{
		textarea2.value += bbcode + bbcodde2;
		textarea2.focus(textarea2.value.length - 1);
	}
}

function quoteSelection(){
	theSelection = false;
	if(window.getSelection){
		theSelection = window.getSelection();
	}else if (document.getSelection){
		theSelection = document.getSelection();
	}else if (document.selection){
		theSelection = document.selection.createRange().text;
	}
	if(theSelection){
		replace('[quote]' + theSelection + '[/quote]\n',document.creator.message);
		document.creator.message.focus();
		theSelection = '';
		return;
	}
}