Hola dieguicho.
Estudiando tu problema he encontrado que el problema es que la variable que estás usando "imageNum" te lleva cuenta del estado de uno de los checkboxes, pero tendrías que usar dos variables distintas para controlar dos checks.
Te propongo una solución que no depende de una variable externa sino que pregunta por la imagen almacenada dentro del elemento. De este modo te va a funcionar si amplias el modelo a diecisiete checks.
Código PHP:
<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
<!--
image1 = new Image();
image1.src = "unchecked.gif";
image2 = new Image();
image2.src = "checked.gif";
function cambiar(id) {
if ( document.getElementById('checkbox_'+id).src != image1.src ) {
document.getElementById('checkbox_'+id).src = image1.src;
} else {
document.getElementById('checkbox_'+id).src = image2.src;
}
}
-->
</SCRIPT>
</head>
<body>
<a href="Javascript:cambiar('1')""><img id="checkbox_1" name="checkbox_1" src="unchecked.gif" width="40" height="35" border="0"></a>
<a href="Javascript:cambiar('2')""><img id="checkbox_2" name="checkbox_2" src="unchecked.gif" width="40" height="35" border="0"></a>
</body>
</html>
Nota: donde dice java script, debería decir JavaScript.
Saludos.