| Цитата: | 
	| Спасибо. Всё работает. Но я не понимаю смысл этих строк if (a != c) {b = 0;a = c};
 b ^= 1;
 c.checked = b
 
 Больше всего не понимаю зачем b возводить в первую степень.
 | 
	
Это побитовое отрицание, а не степень. Если b равна нулю, то станет единица и наоборот. Полная версия такого кода:
if (b === 0)
	b = 1;
else
	b = 0;
Далее:
Мы проверяем, на какой элемент кликнули в последний раз, а на какой сейчас. Если они совпадают, то меняем checked.