Hallo Felix,
btn.checked=!btn.checked;
Was _genau_ soll diese Zeile bewirken? Wenn Sie etwas umkehren soll, dann doch wohl nur "checked" zu "" und - naja, eben umgekehrt, oder?
Mein Vorschlag (ungeprüft!):
btn.checked = (btn.checked == "") ? "checked" : "";
Gültige Werte für die Eigenschaft "checked" eines Javascript-INPUT-Element-Objekts sind true oder false (Nicht zu verwechseln mit gültigen Werten für das HTML-Attribut, das ist in XHTML nur 'checked' und wenn es nicht checked ist lässt man das ganze Attribut weg.). Beim Elementobjekt ist alles, was nicht false, undefined, 0 oder Null ist, true. Zum Umdrehen der Eigenschaft würde ich Fabiennnes Lösung bevorzugen.
Gruß Gernot