function insertEmoticon(e, theSmilie, targetId) {
  var event = e || window.event;
  //event = window.event;
  var targetElement;
  if ( document.getElementById && document.getElementById(targetId) != null ) {
    targetElement = document.getElementById(targetId);
    }
  else {
    alert("Vanwege een technische fout\nkan de emoticon niet toegevoegd worden.");
    if (event.preventDefault) { // Firefox
      event.preventDefault();
      }
    else { // IE
      event.returnValue = false;
      }
    return;
    }
  // let erop dat er ook text geselecteerd kan zijn!
  if (targetElement.setSelectionRange) { // W3C/Mozilla
    var cursorStartPosition = targetElement.selectionStart;
    var targetValue = targetElement.value.substring(0, targetElement.selectionStart);
    targetValue += theSmilie;
    targetValue += targetElement.value.substring(targetElement.selectionEnd, targetElement.value.length);
    targetElement.value = targetValue;
    targetElement.focus();
    var cursorPosition = cursorStartPosition + theSmilie.length;
    targetElement.setSelectionRange(cursorPosition, cursorPosition);
    }
  else {
    if (document.selection && document.selection.createRange) { // IE
      targetElement.focus();
      document.selection.createRange();
      var range = document.selection.createRange();
      range.text = theSmilie;
      }
    else { // als niets werkt
      targetElement.value += theSmilie;
      }
    targetElement.focus();
    }
  //updateGbPreview(targetElement);
  if (event.preventDefault) { // Firefox
    event.preventDefault();
    }
  else { // IE
    event.returnValue = false;
    }
  return;
  } 