Tach!
if ( obj.value > 0 || obj.checked ) anz_wuensche++; else anz_wuensche--;
Diese Bedingung ist nur false, wenn value <= 0 ist. Sollte da vielleicht ein && stehen?
Selbst wenn man das nicht anhand des Codes sieht, Browser haben Debugger an Bord. Beim Fehlersuchen hilft es, schrittweise durch den Code zu gehen und zuzuschauen was passiert. Nutze die Möglichkeiten und übe dich in deren Umgang!
dedlfix.