Теперь оно частично работает =)

Критика и вопросы приветствуются, многое можно понять по комментариям.