// Variablen fuer die ggf. notwendigen Browserweichen setzen
var sUserAgent = navigator.userAgent;
var isIE   = ((sUserAgent.indexOf("compatible") > (-1)) && (sUserAgent.indexOf("MSIE") > (-1)));
var isWin  = ((navigator.platform == "Win64")  || (navigator.platform == "Win32")  || (navigator.platform == "Windows"));
var isMac  = ((navigator.platform == "Mac68K") || (navigator.platform == "MacPPC") || (navigator.platform == "Macintosh"));
var isUnix = ((navigator.platform == "X11") && (!isMac) && (!isWin));
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

// Events muessen global abgefangen werden, da sonst Kollisionen
// auftreten koennen. Dazu gibt es global das EventUtil-Objekt
// mit seinen Methoden = Funktionen
var EventUtil = new Object;

// Parameter der Funktion addEventHandler
// oTarget    = das Objekt, das ueberwacht werden soll
// sEventType = der Event-Typ (click, mousemove, etc.)
// fnHandler  = der Funktionsname, unter dem der Event feuert

EventUtil.addEventHandler = function(oTarget, sEventType, fnHandler) {
  // AT.log("EventUtil.addEventHandler() start");
  // AT.log(oTarget + "|" + sEventType + "|" + fnHandler);
  if(oTarget.addEventListener)   { // DOM-kompatibel
    oTarget.addEventListener(sEventType, fnHandler, false);
  } else if(oTarget.attachEvent) { // MSIE
    oTarget.attachEvent("on"+sEventType, fnHandler);
  } else                         { // Andere, z.B. Opera
    oTarget["on"+sEventType] = fnHandler;
  }
  // AT.log("EventUtil.addEventHandler() end");
}

// Parameter der Funktion removeEventHandler
// oTarget    = das Objekt, dessen Ueberwachung entfernt werden soll
// sEventType = der Event-Typ (click, mousemove, etc.)
// fnHandler  = der Funktionsname, unter dem der Event bisher feuerte
EventUtil.removeEventHandler = function(oTarget, sEventType, fnHandler) {
  if(oTarget.removeEventListener)   { // DOM-kompatibel
    oTarget.removeEventListener(sEventType, fnHandler, false);
  } else if(oTarget.detachEvent) {    // MSIE
    oTarget.detachEvent("on"+sEventType, fnHandler);
  } else                         {    // Andere, z.B. Opera
    oTarget["on"+sEventType] = null;
  }
}

// Parameter der Funktion formatEvent
// oEvent = Event
EventUtil.formatEvent = function(oEvent) {
  if(isIE && isWin) {
    oEvent.charCode       = (oEvent.type == "keypress") ? oEvent.keyCode : 0;
    oEvent.eventPhase     = 2;
    oEvent.isChar         = (oEvent.charCode > 0);
    oEvent.pageX          = oEvent.clientX + document.body.scrollLeft;
    oEvent.pageY          = oEvent.clientY + document.body.scrollTop;
    oEvent.preventDefault = function() {
      this.returnValue = false;
    };
    if(oEvent.type == "mouseout") {
        oEvent.relatedTarget = oEvent.toElement;
    } else if (oEvent.type == "mouseover") {
        oEvent.relatedTarget = oEvent.fromElement;
    }
    oEvent.stopPropagation = function() {
        this.cancelBubble = true;
    };
    oEvent.target = oEvent.srcElement;
    oEvent.time = (new Date).getTime;
  }
  return oEvent;
}

selStart = 0;
selEnd   = 0;

function tinyLH(elems, abs) {
 if(!(navigator.userAgent.match("Safari"))) {
  if(document.all) { isIE = true; }
  for(var i = 0; i < elems.length; i++) {
    var el = document.getElementById(elems[i]);
    el.style.display = "none";
    var ifr = document.createElement("iframe");
    ifr.frameborder  = "0";
    ifr.style.width  = "550px";
    if((abs['width'] != null) && (abs['width'] != "")) {
      ifr.style.width  = abs['width'];
    }
    ifr.style.height = "300px";
    if((abs['height'] != null) && (abs['height'] != "")) {
      ifr.style.height  = abs['height'];
    }
    ifr.id = elems[i]+"_iframe";
    ifr.setAttribute("backid", elems[i], false);
    el.parentNode.insertBefore(ifr, el);
    idiv = document.createElement("div");
    iHtm = "";
    if(abs['bold']) {
      iHtm += "<div id=\""+elems[i]+"_textBold\" class=\"icn textBold\" title=\"fett\"><a href=\"javascript:void(0);\" onclick=\"formatByExecCommand('"+elems[i]+"', 'Bold'); return false;\"><span>fett</span></a></div>";
    }
    if(abs['italics']) {
      iHtm += "<div id=\""+elems[i]+"_textItalic\" class=\"icn textItalic\" title=\"kursiv\"><a href=\"javascript:void(0);\" onclick=\"formatByExecCommand('"+elems[i]+"', 'Italic'); return false;\"><span>kursiv</span></a></div>";
    }
/*
    if(abs['doBackColor']) {
      iHtm += "<div id=\""+elems[i]+"_textHilite\" class=\"icn textHilite\" title=\"farblich unterstreichen\"><a href=\"javascript:void(0);\" onclick=\"formatByExecCommand('"+elems[i]+"', 'hilitecolor','','"+abs['backColor']+"'); return false;\"><span>farblich unterstreichen</span></a></div>";
    }
    if(abs['doBackColor2']) {
      iHtm += "<div id=\""+elems[i]+"_textHilite2\" class=\"icn textHilite\" title=\"farblich unterstreichen (2te Farbe)\"><a href=\"javascript:void(0);\" onclick=\"formatByExecCommand('"+elems[i]+"', 'hilitecolor','','"+abs['backColor2']+"'); return false;\"><span>farblich unterstreichen (Farbe 2)</span></a></div>";
    }
*/
    if(abs['doFontColor']) {
      iHtm += "<div id=\""+elems[i]+"_textRed\" class=\"icn textRed\" title=\"farbig auszeichnen\"><a href=\"javascript:void(0);\" onclick=\"formatByExecCommand('"+elems[i]+"', 'ForeColor','','"+abs['fontColor']+"'); return false;\"><span>farbig auszeichnen</span></a></div>";
    }
    if(abs['doFontColor2']) {
      iHtm += "<div id=\""+elems[i]+"_textRed2\" class=\"icn textRed\" title=\"farbig auszeichnen (Farbe 2)\"><a href=\"javascript:void(0);\" onclick=\"formatByExecCommand('"+elems[i]+"', 'ForeColor','','"+abs['fontColor2']+"'); return false;\"><span>farbig auszeichnen (Farbe 2)</span></a></div>";
    }
    if(abs['strike']) {
      iHtm += "<div id=\""+elems[i]+"_textStrike\" class=\"icn textStrike\" title=\"durchstreichen\"><a href=\"javascript:void(0);\" onclick=\"formatByExecCommand('"+elems[i]+"', 'StrikeThrough'); return false;\"><span>durchstreichen</span></a></div>";
    }
    if(abs['headlines']) {
      iHtm += "<div id=\""+elems[i]+"_headlines\" class=\"icn\">";
      iHtm += "<select onchange=\"formatByExecCommand('"+elems[i]+"', 'FormatBlock', false, this.options[this.selectedIndex].value);\">";
      iHtm += "<option value='&lt;p&gt;'>keine Headline</option>";
      iHtm += "<option value='&lt;h1&gt;'>Headline 1</option>";
      iHtm += "<option value='&lt;h2&gt;'>Headline 2</option>";
      iHtm += "<option value='&lt;h3&gt;'>Headline 3</option>";
      iHtm += "<option value='&lt;h4&gt;'>Headline 4</option>";
      iHtm += "<option value='&lt;h5&gt;'>Hinterleger</option>";
      iHtm += "</select>";
      iHtm += "</div>";
    }
    if(abs['remFormat']) {
      iHtm += "<div id=\""+elems[i]+"_remFormat\" class=\"icn textUnformat\" title=\"Formatierung aufheben\"><a href=\"javascript:void(0);\" onclick=\"formatByExecCommand('"+elems[i]+"', 'removeformat'); return false;\"><span>Formatierung aufheben</span></a></div>";
    }
    iHtm += "<div class=\"spacer\"></div>";
    if(abs['undo']) {
      iHtm += "<div id=\""+elems[i]+"_undo\" class=\"icn undo\" title=\"rückgängig\"><a href=\"javascript:void(0);\" onclick=\"formatByExecCommand('"+elems[i]+"', 'undo'); return false;\"><span>rückgängig</span></a></div>";
    }
    if(abs['redo']) {
      iHtm += "<div id=\""+elems[i]+"_redo\" class=\"icn redo\" title=\"wiederherstellen\"><a href=\"javascript:void(0);\" onclick=\"formatByExecCommand('"+elems[i]+"', 'redo'); return false;\"><span>wiederherstellen</span></a></div>";
    }
    iHtm += "<div class=\"spacer\"></div>";
    if(abs['doLink']) {
      iHtm += "<div id=\""+elems[i]+"_doLink\" class=\"icn doLink\" title=\"Link erstellen\"><a href=\"javascript:void(0);\" onclick=\"formatByExecCommand('"+elems[i]+"', 'createLink'); return false;\"><span>Link erstellen</span></a></div>";
    }
    if(abs['unLink']) {
      iHtm += "<div id=\""+elems[i]+"_unLink\" class=\"icn unLink\" title=\"Link entfernen\"><a href=\"javascript:void(0);\" onclick=\"formatByExecCommand('"+elems[i]+"', 'Unlink'); return false;\"><span>Link entfernen</span></a></div>";
    }
    iHtm += "<div class=\"spacer\"></div>";
    if(abs['image']) {
      iHtm += "<div id=\""+elems[i]+"_image\" class=\"icn image\" title=\"Bild hinzufügen\"><a href=\"javascript:void(0);\" onclick=\"preImage('"+elems[i]+"'); return false;\"><span>Bild hinzufügen</span></a></div>";
    }
    if(abs['youtube']) {
      iHtm += "<div id=\""+elems[i]+"_image\" class=\"icn youtube\" title=\"youtube-Video hinzufügen\"><a href=\"javascript:void(0);\" onclick=\"formatByExecCommand('"+elems[i]+"', 'youtube'); return false;\"><span>youtube hinzufügen</span></a></div>";
    }
    iHtm += "<div id=\""+elems[i]+"_break\" class=\"icn break\" title=\"Starken Umbruch erzwingen\"><a href=\"javascript:void(0);\" onclick=\"formatByExecCommand('"+elems[i]+"', 'break'); return false;\"><span>Starken Umbruch erzwingen</span></a></div>";
    idiv.className = "toolbar";
    idiv.style.width = "550px";
    if((abs['width'] != null) && (abs['width'] != "")) {
      idiv.style.width = abs['width'];
    }
    idiv.innerHTML = iHtm;
    var cont = el.value;
//    cont = cont.replace(/\n/g, "<br />");
    cont = cont.replace(/<object/g, "[mp3Object]<object");
    cont = cont.replace(/object>/g, "object>[/mp3Object]");
    appContent = ifr.contentWindow;
    doH5 = "";
    if(abs['doBackColor']) {
      doH5 = "background-color:"+abs['backColor'];
    }
    appContent.document.open();
    appContent.document.write('<html><head><style>img { float:left; border: 0; margin-right: 5px;};\n h5 { '+doH5+'; };</style></head><body style="font-family:Verdana; font-size:70%">'+cont+'</body></html>');
    appContent.document.close();
    appContent.document.designMode = "On";
	  appContent.focus();
    if(!isIE) {
      formatByExecCommand(elems[i], 'styleWithCSS', false, false)
    }
    ifr.parentNode.insertBefore(idiv, ifr);
  }
  var ins = document.getElementsByTagName("form");
  for(var i = 0; i < ins.length; i++) {
    EventUtil.addEventHandler(ins[i], "submit", writeBack);
//    ins[i].onsubmit = function() { writeBack(); }
  }
 }
}

function writeBack() {
  var ifrs = document.getElementsByTagName("iframe");
  for(var i = 0; i < ifrs.length; i++) {
    if((ifrs[i].getAttribute("backid") != null) && (ifrs[i].getAttribute("backid") != "")) {
      var tb = document.getElementById(ifrs[i].getAttribute("backid"));
      var inner = ifrs[i].contentWindow.document.body.innerHTML;
      inner = inner.replace(/\[mp3Object\]/gi, "");
      inner = inner.replace(/\[\/mp3Object\]/gi, "");
      tb.value = inner;
    }
  }
  return true;
}

function preImage(elem) {
  var uid = document.getElementById("uid").value;
  window.open('/mediaUp/index.php?uid='+uid+'&oType=blogging&cbVar='+elem, 'upload_2', 'width=500, height=400, top=100, left=100');
}

function mediaCallback_LH(callbackVar, elems, type, ffile, size) {
  if(type == "file") {
    var elem = "http://62.112.139.233/files"+elems;
    if((elems.substr(elems.length-3, elems.length-1)).toLowerCase() == "mp3") { 
      if(!isIE) {
        var iElem = '<br style="clear:both"/>[mp3Object]<object width="200" height="20" data="/media/dewplayer.swf?mp3='+elem+'&bgcolor=FAF9F7" type="application/x-shockwave-flash"><param value="/media/dewplayer.swf?mp3='+elem+'&bgcolor=FAF9F7" name="movie"/><param value="FAF9F7" name="bgcolor"/></object>[/mp3Object]<br style="clear:both"/>';
        formatByExecCommand(callbackVar, "insertHTML", null, iElem);
      } else {
        alert("Dieses Kommando steht im Internet Explorer leider nicht zur Verfügung.");
      }
    } else {
      //Keine mp3 fehler ausgeben!
      //alert("Unbekannter Typ.");
    }
  }
  if((type == "folder") || (type == "fileseq") || ( (type == "file") && ((elems.substr(elems.length-3, elems.length-1)).toLowerCase() != "mp3"))) {
    var w = 250;
    var h = 0;
    if(size != null) {
      var w = size[0];
      var h = size[1];
      if(w > 0) {
        h = (250/w)*h;
      }
      w = 250;
    }
    if((type == "folder") || (type == "fileseq")) {
      if(type == "folder") {
        if(!isIE) {
          var elem = "http://62.112.139.233/files/"+ffile;
          var iElem = "<br style='clear:both'/><span style='font-weight:normal;float:left;border:1px solid #CCC;margin-right:5px;padding:5px;text-align:center;'><img style='margin:0;cursor:pointer;' src='"+elem+"' onclick=\"window.open('/gallery/index.php?type=folder";
          iElem += "&folder="+elems;
          iElem += "', 'gallery', 'width=500,height=400,scrollbars=0,toolbar=0,location=0,directories=0,status=0,menubar=0,resizable=0')\"";
          if(h > 0) {
            iElem += " width='"+w+"' height='"+h+"'";
          }
          iElem += "/><br style='clear:both'/><span style='font-family:Arial,sans-serif;font-size:9px;'>Klicken Sie auf das Bild,<br />um die Galerie anzuzeigen.</span></span>";
//          [galleryFolderObject="'+elems+'"]';
          formatByExecCommand(callbackVar, "insertHTML", null, iElem);
        } else {
          alert("Das Einfügen von Bildergalerien steht leider nur im Firefox zur Verfügung.");
        }
      } else {
        if(!isIE) {
          var elem = "http://62.112.139.233/files/"+ffile;
          var iElem = "<br style='clear:both'/><span style='font-weight:normal;float:left;border:1px solid #CCC;margin-right:5px;padding:5px;text-align:center;'><img style='margin:0;cursor:pointer;' src='"+elem+"' onclick=\"window.open('/gallery/index.php?type=seq";
          for(var ii = 0; ii < elems.length; ii++) {
            iElem += "&f"+(ii)+"="+elems[ii];
          }
          iElem += "', 'gallery', 'width=500,height=400,scrollbars=0,toolbar=0,location=0,directories=0,status=0,menubar=0,resizable=0')\"";
          if(h > 0) {
            iElem += " width='"+w+"' height='"+h+"'";
          }
          iElem += "/><br style='clear:both'/><span style='font-family:Arial,sans-serif;font-size:9px;'>Klicken Sie auf das Bild,<br />um die Galerie anzuzeigen.</span></span>";
          formatByExecCommand(callbackVar, "insertHTML", null, iElem);
        } else {
          alert("Das Einfügen von Bildergalerien steht leider nur im Firefox zur Verfügung.");
        }
      }
    } else {
      var elem = "http://62.112.139.233/files"+elems;
      if(!isIE) {
        var iElem = "<br style='clear:both'/><img style='float:left;margin:0;border:1px solid #CCC;margin-right:5px' src='"+elem+"'";
        if(h > 0) {
          iElem += " width='"+w+"' height='"+h+"'";
        }
        iElem += "/>";
        formatByExecCommand(callbackVar, "insertHTML", null, iElem);
      } else {
        formatByExecCommand(callbackVar, "InsertImage", null, elem);
      }
    }
  }
}

function formatByExecCommand(which, sCommand, bUserInterface, vValue, dontSelect) {
  var link = "";
  var doNothing = false;
  if(sCommand == "createLink") {
    link = prompt("Bitte geben Sie die Adresse ein:");
    if(link != "") { 
      if(link.substr(0, 4) != "http") { link = "http://"+link; }
      vValue = link; 
    }
  }
  if(sCommand == "break") {
    vValue = "<br style='clear:both' />"; 
    if(!isIE) {
      sCommand = "insertHTML";
    } else {
      alert("Dieses Kommando steht im Internet Explorer leider nicht zur Verfügung.");
    }
  }
  if(sCommand == "youtube") {
    link = prompt("Bitte geben Sie die youTube-Kennung ein (Bsp:2Uaw2CdjU3c):");
    if(link.length > 2) { 
      vValue = "[youtube]"+link+"[/youtube]"; 
    }
    if(!isIE) {
      sCommand = "insertHTML";
    } else {
      alert("Dieses Kommando steht im Internet Explorer leider nicht zur Verfügung.");
    }
  }
  if(!doNothing) {
    var appContent = document.getElementById(which+"_iframe").contentWindow;
    var y = 0;
    if (appContent.pageYOffset) { y = appContent.pageYOffset; } else if (appContent.document.body && appContent.document.body.scrollTop) { y = appContent.document.body.scrollTop; }
    bUserInterface = (typeof bUserInterface == 'undefined') ? false : bUserInterface;
    vValue = (typeof vValue == 'undefined') ? false : vValue;
    // eventuell notwendige befehlskonvertierungen fuer verschiedene browser
    if (isIE) { if (sCommand == 'hilitecolor') { sCommand = 'BackColor'; }}

    appContent.document.execCommand(sCommand, bUserInterface, vValue);

    if(isIE) {
      appContent.scrollTo(0, y+110);
    }
  }
}
