Пока не отображается на странице, завтра доделаю.

Остальное, что просили, вроде работает. Не тестил.