Виталий: А может все-таки объясните подробно, на примере приведенного в ответе кода, почему он не эквивалентен функции setTimeout?
Всегда думал, что эти две функции вполне могут взаимно заменяться - таймаут очисткой интервала, а интервал рекурсивным таймаутом.
Krasnodar_etc: Лучше в первого и последнего вообще не рисовать границы, а имитировать их тем самым псевдолементом. Т.е. сделать наоборот =)
В общем, как я и сказал - решение требует доработки.