Hola:
Y mi versión, sustituyendo la nueva línea con estas otras:
vale = true;
with (obj.form){
for (var i = 0, total = algo.length; i < total; i++) vale = (vale && algo[i].checked);
todos.checked = vale;
}
Siempre considerándolos como elementos de formulario...
Hola flaviovich: Siempre me ha parecido bien que haya más puntos de vista. Es evidente que la idea es la misma.
Saludos