Znasz się trochę na JS czy chcesz gotowca? Jeżeli o drugie to nie znam, a jeżeli to pierwsze i chcesz to sam napisać mogę dać Ci kilka wskazówek "jak to się robi"

--edit--
@down: o "label" nie pomyślałem

Jedyny problem to podmiana obrazków
--edit2--
@down:
Chyba nie do końca się zrozumieliśmy

Jak mniemam nie jest to dla Ciebie problemem, ale dla autora tematu być może tak, dlatego napisałem, że z użyciem label pozostaje to zagadnienie.
Osobiście zostawiłbym zwykły checkbox z napisem obok( HTML ), a za pomocą JS usunął napis, zrobił checkbox-a niewidzialnym, a następnie utworzył przez DOM obrazek, który zmieniałby się i naszego chceckbox-a. Dzięki temu zarówno ludzie bez JS jak i z JS, będą mogli bardzo wygodnie korzystać ze strony. Oczywiście wszystko zależy jak to ma
dokładnie wyglądać.