First off, there is no need to make a
<div id="myCheckbox0" class="checkboxArea"></div>
Add the checkbox.gif as the background for the label. Sure, that means changind the mark up you have there, but if it's possible, it's the best option.
Secondly, it's a JS problem. And the fact that you rely on the div above to tell you if the check box was checked. Which means two things: if no JS no visual style for your check box, and the wrong handle on the wrong type of element for an event in a form.
Look at what happens (or rather at what doesn't hapen) when View->Page Style->No Style, in FF, for example. Click on label (the class for div changes), click on check box (the class for div doesn't change).
All in all it's the wrong style (with JS) and the wrong approach.