не очень кроссбраузерно. в ие < 9 точно работать не будет правильно, там не поддерживается третий параметр в setTimeout.
сможешь переделать так, чтобы работало везде?