function getPos(eb,el,which) {
    var iPos=0
    while (el.offsetParent!=null) {
      iPos+=el["offset"+which]
      el = el.offsetParent
      el.onfocus = new Function("displayToolbar("+eb.id+",null,false)")
    }
    return iPos
  }

  function displayToolbar(eb,ed, how) {
    how=true;
    if (how) eb.style.display = "block"
    else eb.style.display = "none"
    if (ed!=null) {
      eb.style.pixelTop = getPos(ed,"Top") + ed.offsetHeight + 1
      eb.style.pixelLeft = getPos(eb,ed,"Left")
    }
  }
  /*
   Text formatieren
   Übergabe:
   	- Editor
   	- Kommando
   	- Parameter (optional)
  */
  function doFormat(editor,what,value) {
    editor.execCommand(what, value)
    /*arguments[1])*/
  }

  function swapMode(editor,b) {
    editor.swapModes()
    b.value = editor.format + " Mode"

  }

  function setContent() {
    for(i=0;i<editorlist.length;i++) {
    	editorlist[i].setContent(editorlist[i]._default,charsetlist[i]);
    }
  }
//---------------------------

function MM_swapImgRestore() {
  if (document.MM_swapImgData != null)
    for (var i=0; i<(document.MM_swapImgData.length-1); i+=2)
      document.MM_swapImgData[i].src = document.MM_swapImgData[i+1];
}

function MM_preloadImages() {
  if (document.images) {
    var imgFiles = MM_preloadImages.arguments;
    if (document.preloadArray==null) document.preloadArray = new Array();
    var i = document.preloadArray.length;
    with (document) for (var j=0; j<imgFiles.length; j++) if (imgFiles[j].charAt(0)!="#"){
      preloadArray[i] = new Image;
      preloadArray[i++].src = imgFiles[j];
  } }
}

function MM_swapImage() {
  var i,j=0,objStr,obj,swapArray=new Array,oldArray=document.MM_swapImgData;
  for (i=0; i < (MM_swapImage.arguments.length-2); i+=3) {
    objStr = MM_swapImage.arguments[(navigator.appName == 'Netscape')?i:i+1];
    if ((objStr.indexOf('document.layers[')==0 && document.layers==null) ||
        (objStr.indexOf('document.all[')   ==0 && document.all   ==null))
      objStr = 'document'+objStr.substring(objStr.lastIndexOf('.'),objStr.length);
    obj = eval(objStr);
    if (obj != null) {
      swapArray[j++] = obj;
      swapArray[j++] = (oldArray==null || oldArray[j-1]!=obj)?obj.src:oldArray[j];
      obj.src = MM_swapImage.arguments[i+2];
  } }
  document.MM_swapImgData = swapArray; //used for restore
}


// erspart den aufruf von unterschiedlichen Funktionen für jedes Kommando

function tbMouseDown(){

    	var editorframe, imagebutton;

  	if (event.srcElement.tagName != "IMG" || event.srcElement.className=="mseditorSeparator")
  		return;
  	imagebutton = event.srcElement;
    	editorframe = imagebutton.parentElement.FRAME;

    	// wenn kommando möglich, dann button down anzeigen
    	if(eval(editorframe+'.queryCommandEnabled(\''+imagebutton.COMMAND+'\');'))
		imagebutton.className = "mseditorButtonDown";

	eval(editorframe+'.execCommand(\''+imagebutton.COMMAND+'\');')
}

function tbMouseUp(){

  	if (event.srcElement.tagName != "IMG" || event.srcElement.className=="mseditorSeparator")
  		return;
  	event.srcElement.className = "mseditorButtonMouseOver";
}

function tbMouseOver(){

  	var editorframe, imagebutton;

	if (event.srcElement.tagName != "IMG" || event.srcElement.className=="mseditorSeparator")
		return;
	imagebutton = event.srcElement;
	editorframe = imagebutton.parentElement.FRAME;

	// Kommando wird durch dokument oder auswahl unterstützt
    	if(eval(editorframe+'.queryCommandEnabled(\''+imagebutton.COMMAND+'\');'))
    		imagebutton.className = "mseditorButtonMouseOver";
}

function tbMouseOut(){

	if (event.srcElement.tagName != "IMG" || event.srcElement.className=="mseditorSeparator")
		return;
	event.srcElement.className = "mseditorButton";
}

// evets der select felder fontsize,paragraph und fontname

function tbChangeSelect() {

	var editorframe, selectfield, value;

  	if (event.srcElement.tagName != "SELECT")
  		return;
  	selectfield = event.srcElement;
  	value =	selectfield.options[selectfield.selectedIndex].text;

    	editorframe = selectfield.parentElement.FRAME;

	eval(editorframe+'.execCommand(\''+selectfield.COMMAND+'\',\''+value+'\');')

}

// wird vom mseditor-iframe aufgerufen nachdem die inhaltseite msarea.html geladen wurde um den inhalt zu setzen

function setMSEditorContent(editorframe,text){

	editorframe.contentWindow.editor.document.body.innerHTML = text;

}


