Definir a posição do cursor de texto em uma área de texto

Estou trabalhando em um editor BBCode e aqui está o código:

var txtarea = document.getElementById("editor_area");

            function boldText() {
                var start = txtarea.selectionStart;
                var end = txtarea.selectionEnd;
                var sel = txtarea.value.substring(start, end);
                var finText = txtarea.value.substring(0, start) + '[b]' + sel + '[/b]' + txtarea.value.substring(end);
                txtarea.value = finText;
                txtarea.focus();
            }

Tudo está bem, exceto uma coisa que é a posição do cursor de texto. Quando clico no botão boldText, ele define a posição do cursor no final da área de texto !!

Na verdade, eu quero poder definir a posição do cursor em um determinado índice. Eu quero algo como isto:

txtarea.setFocusAt(20);

questionAnswers(2)

yourAnswerToTheQuestion