function modify_code(First, Last) {
  var input = document.forms['formular'].elements['html_code'];
  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 = First + insText + Last;
    /* Anpassen der Cursorposition */
    range = document.selection.createRange();
    if (insText.length == 0) {
      range.move('character', -Last.length);
    } else {
      range.moveStart('character', First.length + insText.length + Last.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) + First + insText + Last + input.value.substr(end);
    /* Anpassen der Cursorposition */
    var pos;
    if (insText.length == 0) {
      pos = start + First.length;
    } else {
      pos = start + First.length + insText.length + Last.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) + First + insText + Last + input.value.substr(pos);
  }
}

/* ------------------------------------------------------------------------------------------- */

function write_smile(Smile) {
  var input = document.forms['formular'].elements['html_code'];
  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 = Smile;
    /* Anpassen der Cursorposition */
    range = document.selection.createRange();
    if (insText.length == 0) {
      range.move('character', -Smile.length);
    } else {
      range.moveStart('character', Smile.length + insText.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) + Smile + input.value.substr(end);
    /* Anpassen der Cursorposition */
    var pos;
    if (insText.length == 0) {
      pos = start + Smile.length;
    } else {
      pos = start + Smile.length + insText.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) + Smile + input.value.substr(pos);
  }
}

/* ------------------------------------------------------------------------------------------- */

function input_elements(Typ) {
	switch(Typ) {
	
		case "Link":
			LinkName = prompt("Gib den Namen des Links ein (Optional)","");
			LinkUrl = prompt("Gib die Adresse des Links ein (mit http://)","http://");
			if(LinkName) {		
				ToInsert = "[URL=" + LinkUrl + "]" + LinkName + "[/URL]";
				}
			else {
				if(LinkUrl)
					{
					ToInsert = "[URL]" + LinkUrl + "[/URL]";
					}
				}
			break;
			
		case "eMail":
			eMail = prompt("Gib die E-Mail Adresse ein","");
			if(eMail) {
				ToInsert = "[EMAIL]" + eMail + "[/EMAIL]";
				}
			break;
			
		case "Picture":
			Picture = prompt("Gib die URL deines Bildes ein (mit http://)","http://");
			if(Picture) {
				ToInsert = "[IMG]" + Picture + "[/IMG]";
				}
			break;
			
		case "Quote":
			Quote = prompt("Gib den zu zitierenden Text ein","");
			if(Quote) {
				ToInsert = "[QUOTE]" + Quote + "[/QUOTE]";
				}
			break;
			
		case "Code":
			Code = prompt("Gib den Code ein","");
			if(Code) {
				ToInsert = "[CODE]" + Code + "[/CODE]";
				}
			break;
			
		case "List":
			ListType = prompt("Gib den Typ deiner Liste ein. '1' für eine nummerierte oder '2' für eine Punktliste","");
			switch(ListType) {
				case "1":
				var TagStart = "[LIST=NUM]\n";
				var TagEnd = "[/LIST=NUM]";
				break;
				case "2":
				var TagStart = "[LIST=PUNKT]\n";
				var TagEnd = "[/LIST=PUNKT]";
				break;
				default:
				break;
				}
				
			if(ListType == "1" || ListType == "2") {
				var ListEntry = "Value";
				var ListIndex = "";
				while(ListEntry != "" && ListEntry != null) {
					ListEntry = prompt("Gib Ein Element für deine Liste ein. Gebe nicht ein oder drücke Cancel oder Abbrechen um die Liste fertigzustellen","");
					if(ListEntry != "" && ListEntry != null) {
						ListIndex = ListIndex + "[*]" + ListEntry + "[/*]\n";
						}
					} 
				}
				
			if(TagStart != null && ListIndex != null && ListIndex != "" && TagStart != null) {
				ToInsert = TagStart + ListIndex + TagEnd;
				}
							
		default:
		break;
		}
  if(ToInsert) {  
  var input = document.forms['formular'].elements['html_code'];
  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 = ToInsert;
    /* Anpassen der Cursorposition */
    range = document.selection.createRange();
    if (insText.length == 0) {
      range.move('character', -ToInsert.length);
    } else {
      range.moveStart('character', ToInsert.length + insText.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) + ToInsert + input.value.substr(end);
    /* Anpassen der Cursorposition */
    var pos;
    if (insText.length == 0) {
      pos = start + ToInsert.length;
    } else {
      pos = start + ToInsert.length + insText.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) + ToInsert + input.value.substr(pos);
  }
}
}