Hola:
Tal vez pueda ponerse en 2 líneas:
document.getElementById('nuevapromo').style.visibi lity=(document.getElementById('checkpromo').checke d)?"visible":"hidden";
document.getElementById('promoexist').style.visibi lity=(document.getElementById('checkpromo').checke d)?"hidden":"visible";
Aunque las líneas pueden ser más pequeñas con un alias:
function tag(id) {return document.getElementById(id);}
Ahora sería:
tag('nuevapromo').style.visibility=(tag('checkprom o').checked)?"visible":"hidden";
tag('promoexist').style.visibility=(tag('checkprom o').checked)?"hidden":"visible";
También se podría usar una variable con el resultado del "chequeo)
var ok = tag('checkpromo').checked;
Ahora las 2 líneas serían:
tag('nuevapromo').style.visibility=(ok)?"visible": "hidden";
tag('promoexist').style.visibility=(ok)?"hidden":" visible";
También podría hacerse una asignación directa si tenemos un array de visibilidades:
var v = new Array(); v[false] = "hidden"; v[true] = "visible";
Con esto quedaría:
tag('nuevapromo').style.visibility=v[ok];
tag('promoexist').style.visibility=v[!ok];
Saludos