Вот чем дальше, чем меньше мне нравится то, что у меня получилось. И всё же выложу:

читать дальше