Duvida com javaScript(campos checkBox)

Pessoal,
eu tenho uma função javaScript para selecionar todas as minhas opções em um checkBox

function selecionaTodos() { var checkTodos = document.getElementById('todos'); var arrayCheck = document.getElementsByName('<%=Form.CAMPO_CHECKBOX_CODIGO_SERVICO%>'); if (checkTodos.checked == true) { for ( i = 0 ; arrayCheck.length > i ; i++ ) { arrayCheck[i].checked = true; } } else { for ( i = 0 ; arrayCheck.length > i ; i++ ) { arrayCheck[i].checked = false; } } }

o meu problema é que quando acontece uma exceção e a página é requerida novamente
o campo checkTodos retorna false(sem estar marcado), mesmo as opçoes se manterem marcadas.
eu pensei em algo nesse sentido

for ( i = 0 ; arrayCheck.length  > i ; i++ ){
   if(arrayCheck[i].checked == true){
      checkTodos.checked = true;
   }
}

porem ainda nao funcionou, talvez por algum erro de sintaxe, msm porque eu nao
conheço mto de javaScript.
Se alguem souber como arrumar ajudaria mto.
vlw

Qual o evento que dispara essa função?