Tengo el siguiente código:

Código :

if (h1.editable) {
inputTextListener = new Object();
inputTextListener.focusOut = function() {
sum1 = parseFloat(h1.text);
var partir = h1.text.split('.');
if (partir.length == 1) {
trace("Número entero");
   } 
else if (partir.length == 2 && partir[0] != "" && partir[1] != "") {
trace("Número decimal");
}
 else {
     mialerta = new Alerta();
    mialerta.onCierra = function() {
   if (mialerta.getRespuesta()) {
trace("Apretaste aceptar");
   } 
else {
trace("No apretaste aceptar");
}
};
mialerta.setInformacion("El dato intoducido es erróneo\nACEPTAR");
}
   
if (isNaN(sum1)) {
mialerta = new Alerta();
mialerta.onCierra = function() {
if (mialerta.getRespuesta()) {
trace("Apretaste aceptar");
} 
else {
trace("No apretaste aceptar");
}
};
mialerta.setInformacion("Ha escrito más de una coma decimal o bien ha dejado el dato en blanco\nACEPTAR");
}
};
h1.addEventListener("focusOut", inputTextListener);
} 
else {
   sum1 = 0;
   alto1 = 0;
}


Con este codigo consigo que lo que el usuario introduzca sea un número entero o decimal y en caso de que sea NaN(espacios en blanco,...) nos de un aviso.
Mi pregunta es ¿cómo puedo hacer que una vez que sale la alerta y el usuario la acepta o la cierra el foco se quede en ese mismo textinput hasta que corrija el fallo.
Teniendo en cuenta que el código debe sufrir las menos alteraciones posibles
Gracias

[moderador]Editado para agregar etiquetas code, para mejor lectura[/moderador]