Bueno, me aleje y volví a retomarlo. Y al final lo he consiguido. Por si a alguien le es útil.
Código HTML:
<html>
<head>
<title></title>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<script language="JavaScript" type="text/javascript">
function listaord () {
var txtarea = document.getElementById("t");
var opcion= new Array();
var i
var suma = 0
var selLargo = txtarea.textLength;
var selEmpz = txtarea.selectionStart;
var selFin = txtarea.selectionEnd;
var s1 = (txtarea.value).substring(0,selEmpz);
var s2 = (txtarea.value).substring(selEmpz, selFin);
var s3 = (txtarea.value).substring(selFin, selLargo);
var abre = "[LIST=1]\n";
var cierra = "[/LIST]";
txtarea.value = s1 + abre + cierra + s3;
for (i=0; i<=opcion.length; i++) {
opcion[i]=prompt("Ingresa los elementos de la lista de uno en uno","");
if ((opcion[i]== null) || (opcion[i]== "undefined") || (opcion[i] == "") || (opcion[i] ==' ')) {
var Cursor = s1.length + abre.length + suma + cierra.length;
return(Cursor);
}
txtarea.value = s1 + abre;
for (j=0; j<=i; j++) {
txtarea.value += "[*]" + opcion[j] + "\n";
}
txtarea.value += cierra + s3;
suma += (opcion[i].length+4);
}
}
function PosicionCursor(pos) {
var txtarea = document.getElementById("t");
if (txtarea .createTextRange) {
var rango = txtarea .createTextRange();
rango.collapse(true);
rango.moveEnd('character', pos);
rango.moveStart('character', pos);
rango.select();
}
else if (txtarea .setSelectionRange) {
txtarea .focus();
txtarea .setSelectionRange(pos,pos);
}
}
function Lista()
{
PosicionCursor(listaord());
}
</script>
</head>
<body>
<form name="p">
<textarea id="t" name="t" rows="10" cols="50"></textarea>
<br><br>
<input type="button" value="LOrdenada" onclick="Lista();" >
</form>
</body>
</html>
Gracias a todos aquellos que se interesaron por mi post