la funzione js sotto riportata sostituisce delle immagini al posto di imput checkbox.
quando si clicca sopra applica un seconda immagine a seconda se il checkbox sia checked e viceversa.
ho notato un bug con firefox relativo al caso in cui i checkbox presenti nella form c'è ne siano solo 1.
di fatto dopo un primo click tutti i successivi non fanno ciò che checkChange() chiede; bisogna perforza cliccare su di un altro elemento checkbox.

se vedete qualcosa di anomalo....

_______________________________________________

var CheckBox;
var imgFalse = '/icone/check_link_disable.gif';
var imgTrue = '/icone/check_link.gif';

function replaceChecks() {

CheckBox = document.getElementsByTagName('input');

for(var i=0; i < CheckBox.length; i++) {

if(CheckBox[i].getAttribute('type') == 'checkbox') {

var img = document.createElement('img');

if(CheckBox[i].checked) {
img.src = imgTrue;
} else {
img.src = imgFalse;
}

img.id = 'checkImage'+i;
img.onclick = new Function('checkChange('+i+')');
CheckBox[i].parentNode.insertBefore(img, CheckBox[i]);

CheckBox[i].style.display='none';
}
}
}

function checkChange(i) {

if(CheckBox[i].checked) {
CheckBox[i].checked = '';
document.getElementById('checkImage'+i).src=imgFal se;
} else {
CheckBox[i].checked = 'checked';
document.getElementById('checkImage'+i).src=imgTru e;
}
}

ovviamente al body unload deve partire replaceChecks();