Сейчас попробовал вытащить функцию из ещё одного эдитора, с некоторыми недостатками, но более простого - и эта функция не стреляет...
function insertTag(element, start, end) { //изменён порядок параметров
if (document.selection) {
element.focus();
sel = document.selection.createRange();
sel.text = start + sel.text + end;
} else if (element.selectionStart || element.selectionStart == '0') {
element.focus();
var startPos = element.selectionStart;
var endPos = element.selectionEnd;
element.value = element.value.substring(0, startPos) + start + element.value.substring(startPos, endPos) + end + element.value.substring(endPos, element.value.length);
} else {
element.value += start + end;
}
}