Lo que pasa es que el check no trabaja con value si no mas bien con la propiedad checked, por lo cual tendrias que hacer una pequeña modificacion...
Código:
if(formulario.elements[i].type=='text'){
if((formulario.elements[i].style.display!='none')&&formulario.elements[i].value == "")){
// cambio de color el fondo a rojo y la letra
formulario.elements[i].style.backgroundColor = '#ff0000';
formulario.elements[i].style.color = '#ffffff';
//cambio el valor de la variable boleana porque el campo esta vacio
retorno = 0;
}else{
//si el campo esta relleno de texto le cambio el color a verde
formulario.elements[i].style.backgroundColor = '#91E148';
}
}else{
/*es un input pero no de tipo text, por ejemplo hiddem, radioy checkbox, etc*/
if(formulario.elements[i].checked){
/*lo que desees hacer...*/
}
}
Pruebalo haber como va...