Alterar valor de input text ou textArea + expressão regular + add o cursor no final do input

Estou tentando alterar o valor de um campo de texto, que siga o padrão de uma expressão regular, isso está fazendo porém gostaria que quando atingisse o limite do campo o cursor o acompanhasse, este problema ocorre somente no firefox. Tenho o seguinte código para que estou fazendo para teste:

<html> 
    <head> 
        <title>Testando Posições Inputs JavaScript</title> 
        <style type="text/css"> 
            .maisculo { 
                text-transform: uppercase !important; 
            } 
        </style> 
        <script type="text/javascript"> 
            function upperCase(id) { 
                var element = document.getElementById(id); 
                var text = element.value; 
                text = text.replace(new RegExp('[ÁÀÂÃ]','gi'), 'A'); 
                text = text.replace(new RegExp('[ÉÈÊ]','gi'), 'E'); 
                text = text.replace(new RegExp('[ÍÌÎ]','gi'), 'I'); 
                text = text.replace(new RegExp('[ÓÒÔÕ]','gi'), 'O'); 
                text = text.replace(new RegExp('[ÚÙÛ]','gi'), 'U'); 
                text = text.replace(new RegExp('[Ç]','gi'), 'C'); 
                text = text.replace(new RegExp('[^a-zA-Z0-9 ]+'), ''); 
                element.value = text.toUpperCase(); 
            } 
        </script> 
    </head> 
    <body> 
        <input type="text" 
               id="texto" 
               name="texto" 
               style="width: 400px;" 
               class="maisculo" 
               onkeyup="upperCase(this.id)"/> 
    </body> 
</html> 

Agradeço desde já a qualquer ajuda que possa vir.
[]'s