
function insert(startTag, endTag, attributes, nobrackets) {
  var input = document.getElementById("eingabe");
  input.focus();
  
  //Tag Vorbereiten START
	if(nobrackets == "true"){
		var aTag = startTag;
	} else {
		var aTag = "<"+startTag;
		if(attributes != ""){
		for(i=0; i<attributes.length;i++){
			aTag += attributes[i];
		}
		}
		aTag += ">";
	}
	if(nobrackets == "true"){
		var eTag = endTag;
	} else {
		var eTag = "<"+endTag+">";
	}
  //Tag Vorbereiten ENDE	
  /* für Internet Explorer */
  if(typeof document.selection != 'undefined') {
    /* Einfügen des Formatierungscodes */
    var range = document.selection.createRange();
    var insText = range.text;
	//testend
    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);

	//checkOtherTags(input, start, startTag, attributes);
    /* 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);
  }
}

function checkOtherTags(input, start, startTag, attributes){
	//testtext
	var testText = input.value.substring(0,start);
	var anfang = ""
	while(testText.search("<") >= 0){
		anfang += testText.substr(0,testText.search("<"));
		testText = testText.substr(testText.search("<")+1, testText.length);
		if(testText.search("<") >= 0){ anfang += "<";}
	}
	//inhalt auslesen
	inhalt = testText.substr(0,testText.search(">"));
	alert("INHALT"+inhalt);
	var qq=eval('/'+startTag+'/');

	if(inhalt.search(startTag) >=0){
		inhalt = inhalt.replace(qq,"");
		//prüfen ob attribut o
		if(inhalt != ""){
			for(i=0; i<attributes.length;i++){
				aTag += attributes[i];
			}			
		}
	}
	alert(anfang+"RET: <"+inhalt+">");
	//testtext ende
}

function color(){
	var farbe 		= document.getElementById("farbe").value;
	var starttag 	= "font";
	var endtag 		= "/font";
	var attributes 	= new Array();
	attributes[0] 	= " color=\""+farbe+"\"";
	insert(starttag, endtag, attributes);
}


function delFormat($type){
	var input = document.getElementById("eingabe");
	input.value = input.value.replace(/<\/?b>/g,"");
	input.value = input.value.replace(/<\/?u>/g,"");
	input.value = input.value.replace(/<\/?em>/g,"");
	input.value = input.value.replace(/<\/?i>/g,"");
	input.value = input.value.replace(/<font color="#{0,1}[0-9A-Ea-e]{0,6}"\>/g,"");
	input.value = input.value.replace(/<font face="[A-Za-z ]{0,}"\>/g,"");
	input.value = input.value.replace(/<a href="[A-Za-z:=\".\/ ]*"\>/g,"");
	input.value = input.value.replace(/<\/a>/g,"");
	input.value = input.value.replace(/<\/font>/g,"");
	input.value = input.value.replace(/<\/?h[1-3]{1}>/g,"");
	
}

function setFont(){
	var schriftart = document.getElementById("schriftart").options[document.getElementById("schriftart").selectedIndex].value;
	var starttag = "font";
	var endtag = "/font";
	var attributes = new Array();
	attributes[0] = " face=\""+schriftart+"\"";
	insert(starttag, endtag, attributes);
}

function insertLink(){
	var linkname=prompt("Bitte Text eingeben, der als Link angezeigt werden soll:","");
	var linkurl=prompt("Bitte Adresse eingeben, auf die verlinkt wird:","http://");
	if (linkname == "" || linkurl == "" || linkname == null || linkurl == null) {
		alert("Ungültige Eingabe: Bitte sowohl einen Text als auch eine Adresse eingeben!");
	} else {
		document.getElementById("eingabe").value=document.getElementById("eingabe").value + '<a href=\"' + linkurl + "\" class=\"link\">" + linkname + "</a>";
		document.getElementById("eingabe").focus();
	}
}

function insertResults(){
	var runde=prompt("Bitte Runde von der die Ergebnisse ausgegeben werden sollen angeben:","");
	var saison=prompt("Bitte Saison der anzuzeigenden Runde angeben (Bsp: 200809):","");
	if (runde == "" || saison == "" || runde == null || saison == null) {
		alert("Ungültige Eingabe: Bitte sowohl eine Runde als auch eine Saison eingeben!");
	} else {
		document.getElementById("eingabe").value=document.getElementById("eingabe").value + '\n' + ":::" + "INPUT_RESULTS:::" + runde + ":::" + saison + ":::";
		document.getElementById("eingabe").focus();
	}
}

/** 
maps simple Tags without any attribute
*/
function tagMapper(tag){
	var endtag = "/"+tag;
	insert(tag, endtag, "","");
}

function smileMapper(smile){
	var endtag = smile+"::";
	insert("::",endtag,"","true");
	document.getElementById("eingabe").focus();
}

/** 
sets text to preview area
*/
function setText(){
	var feld 	= document.getElementById("eingabe").value;
	feld 		= feld.replace(/\n/g,"<br>");
	document.getElementById("vorschau").innerHTML = feld;
}



//CARET POSITION IN IE http://www.csie.ntu.edu.tw/~b88039/html/jslib/caret.html




