sto cercando di formattare il testo in una text area

mi manca decisamente qualcosa però...

ho la seguente funzione:

<script >
function rectesto(tagformatta) {

testo = document.getElementById("descr").firstChild.nodeVa lue;
testo = ' <'+tagformatta+'>'+document.selection.createRange( ).text+'</'+tagformatta +'>'

document.form.descr.value+=testo
}

</script>

ma in questa maniera aggiungo al testo della textarea la parola o la frase che seleziono formattata....devo invece formattare la parola o la frase che seleziono lasciandola dov'è...

es:
1) questo è sbagliato questo
2) questo è giusto

con lo script che uso se seleziono 'questo' e richiamo la funzione passandogli come parametro 'B'...mi ritrovo nella situazione 1)...vorrei ottenere la 2)...
ma come faccio a recuperare il testo prima la selezione e quello che viene dopo?