Потрачено на эту работу было дофига времени. Не идеально, но мне нравится.

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