function tagIt(aTag,eTag,idTag)
{
  var input = document.getElementById(idTag);
  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 = 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);
    /* 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
  {
    input.value = input.value + aTag + eTag;
  }
}

function linkschr(idTag) {
  var link = prompt("Linkadresse", "http://");
  var name = prompt("Linkbezeichnung", "");
  if(name == "")
    name = link;
  if(link != "" && link != "http://" && link != null)
  document.getElementById(idTag).value += "[a href=\"" + link + "\"]" + name + "[/a]";
}

function addsmiley(id, idTag) {
  document.getElementById(idTag).value += id;
}

function limiter(id, cnt, max) {
  var txt = document.getElementById(id).value;
  var rest = 200-txt.length;
  if(txt.length > 200) {
    document.getElementById(id).value = txt.substr(0,200);
    rest = 0;
  }
  document.getElementById(cnt).innerHTML = "noch "+rest+" Zeichen";
}

function cite(src, tarea) {
  document.getElementById(tarea).value += "[cite] (von "+document.getElementById('thuser'+src).innerHTML+")\n"+stripHTML(document.getElementById('thtext'+src).innerHTML)+"[/cite]";
  window.location = "#textarea"
}

function stripHTML(oldString) {
  return oldString.replace(/<\S[^><]*>/g, "");
}

function setPreview(art) {
  if(art == 1) {
    if(document.getElementsByName('back')[0].value == 'CB627B') {
      document.getElementById('bgleft').style.backgroundColor = '';
      document.getElementById('bgright').style.backgroundColor = '';
      document.getElementById('bgleft').style.backgroundImage = "url(gfx/"+ourActScheme+"/bg.png)";
      document.getElementById('bgright').style.backgroundImage = "url(gfx/"+ourActScheme+"/bg.png)";
    }
    else {
      document.getElementById('bgleft').style.backgroundImage = '';
      document.getElementById('bgright').style.backgroundImage = '';
      document.getElementById('bgleft').style.backgroundColor = '#'+document.getElementsByName("back")[0].value;
      document.getElementById('bgright').style.backgroundColor = '#'+document.getElementsByName("back")[0].value;
    }
  }
  else if(art == 2) {
    document.getElementById('innerbg').style.backgroundColor = '#'+document.getElementsByName("inback")[0].value;
  }
  else if(art == 3) {
    var fonts = new Array('Georgia1, Georgia, serif', 'Times New Roman, Times, serif', 'Arial, Helvetica, sans-serif', 'Verdana, Tahoma, Geneva, sans-serif', 'Comic Sans MS, Comic Sans MS5, cursive', 'Courier New, Courier New, Courier6, monospace');
    var sel = document.getElementsByName("font")[0].options[document.getElementsByName("font")[0].selectedIndex].text;
    var font = fonts[3];
    if(sel == 'Georgia')
      font = fonts[0];
    if(sel == 'Times New Roman')
      font = fonts[1];
    if(sel == 'Arial')
      font = fonts[2];
    if(sel == 'Comic Sans')
      font = fonts[4];
    if(sel == 'Courier New')
      font = fonts[5];
    document.getElementById('schrift1').style.fontFamily = font;
    document.getElementById('schrift2').style.fontFamily = font;
    document.getElementById('schrift3').style.fontFamily = font;
    document.getElementById('link').style.fontFamily = font;
  }
  else if(art == 4) {
    document.getElementById('schrift1').style.color = '#'+document.getElementsByName("fontc")[0].value;
    document.getElementById('schrift2').style.color = '#'+document.getElementsByName("fontc")[0].value;
    document.getElementById('schrift3').style.color = '#'+document.getElementsByName("fontc")[0].value;
  }
  else if(art == 5) {
    document.getElementById('link').style.color = '#'+document.getElementsByName("link")[0].value;
  }
  else if(art == 7) {
    document.getElementById('light1').style.backgroundColor = '#'+document.getElementsByName("main2")[0].value;
    document.getElementById('light2').style.backgroundColor = '#'+document.getElementsByName("main2")[0].value;
  }
}

var lastSetDesign = 0;

function setLastDesign(nr) {
  lastSetDesign = nr;
}

function setDesign(nr, name) {
if(nr != lastSetDesign) {
  document.getElementById('dprev'+lastSetDesign).style.opacity = 0.8;
  document.getElementById('dprev'+lastSetDesign).style.filter = 'alpha(opacity=80)';
  document.getElementById('dprev'+nr).style.opacity = 1.0;
  document.getElementById('dprev'+nr).style.filter = 'alpha(opacity=100)';
  document.getElementById('design').value = name;
  lastSetDesign = nr;

  var req = null;
  try{
    req = new XMLHttpRequest();
  }
  catch (ms){
    try{
      req = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (nonms){
      try{
        req = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (failed){
        req = null;
      }
    }
  }

  if (req == null)
    alert("Error creating request object!");

  //anfrage erstellen (GET, url ist localhost,
  //request ist asynchron
  req.open("GET", 'gadgets/schemes.php?id='+escape(name), true);

  //Beim abschliessen des request wird diese Funktion ausgeführt
  req.onreadystatechange = function (){
  var w = document.getElementById("designschema");
    switch(req.readyState) {
      case 4:
        if(req.status!=200) {
          w.innerHTML = "<font>Konnte Schemen nicht laden!</font>";
        }else{
          w.innerHTML = req.responseText;
        }
        break;

      default:
        return false;
        break;
     }
  }

  req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  req.send(null);
  setScheme(name, -1, -1);
}
}

function updateScheme(name) {
  var scheme = document.getElementsByName("scheme")[0].options[document.getElementsByName("scheme")[0].selectedIndex].text;
  setScheme(name, scheme, -1);
}

var ourActScheme;

function setScheme(name, scheme, gid) {
  var req = null;
  try{
    req = new XMLHttpRequest();
  }
  catch (ms){
    try{
      req = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (nonms){
      try{
        req = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (failed){
        req = null;
      }
    }
  }

  if (req == null)
    alert("Error creating request object!");

  //anfrage erstellen (GET, url ist localhost,
  //request ist asynchron
  req.open("GET", 'gadgets/schemesettings.php?id='+escape(name)+'&scheme='+escape(scheme)+'&gid='+gid, true);

  //Beim abschliessen des request wird diese Funktion ausgeführt
  req.onreadystatechange = function (){
    switch(req.readyState) {
      case 4:
        if(req.status!=200) {
          ;
        }else{
          var text = req.responseText;
          document.getElementsByName("font")[0].selectedIndex = text.substr(0, 1);
          document.getElementsByName("fontc")[0].value = text.substr(3, 6);
          document.getElementsByName("link")[0].value = text.substr(11, 6);
          document.getElementsByName("hover")[0].value = text.substr(19, 6);
          document.getElementsByName("main2")[0].value = text.substr(27, 6);
          document.getElementsByName("back")[0].value = text.substr(35, 6);
          document.getElementsByName("inback")[0].value = text.substr(43, 6);
          ourActScheme = text.substr(51);
          setPreview(1);setPreview(2);setPreview(3);setPreview(4);setPreview(5);setPreview(7);
        }
        break;

      default:
        return false;
        break;
     }
  }

  req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  req.send(null);
}
