Перемещения начала и конца объекта TextRange

Исходный код этого примера:
<script>
function ToAndFro(c)
{
   // Создание объекта TextRange
var tr=document.documentElement.createTextRange();
   // Содержимое элемента "o"
var o = eval(c);
tr.moveToElementText(o);
   // Сдвиг начала на 1 вперед
tr.moveStart("word",1);
   // Сохранение содержимого
var St = tr.text;
   // Содержимое элемента "o"
tr.moveToElementText(o);
   // Сдвиг конца на 1 вперед
tr.moveEnd("word",1);
   // Сохранение содержимого
var En = tr.text;
   // Содержимое элемента "o"
tr.moveToElementText(o);
   // Сдвиг начала на 1 назад
tr.moveStart("word",-1);
   // Сохранение содержимого
var St1 = tr.text;
   // Содержимое элемента "o"
tr.moveToElementText(o);
   // Сдвиг конца на 1 назад
tr.moveEnd("word",-1);
   // Сохранение содержимого
var En1 = tr.text;
   // Вывод результатов
    alert('tr.moveStart("word",1) = '+St+
'\ntr.moveEnd("word",1) = '+En+
'\ntr.moveStart("word",-1) = '+St1+
'\ntr.moveEnd("word",-1) = '+En1);
}
</script>

<textarea id="a" onmouseover="ToAndFro('a')">Наведите сюда указатель мышки</textarea>

.