Подлиза уже как-то раз притаскивал нечто подобное:

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