Hallo,
Event-Handler solltest du immer so registrieren:
element.onevent = funktion;
Das heißt
vali.onclick = calc;
Das Setzen als Attribut, indem man onclick einen String zuweist, ist nicht so zuverlässig. (Geht zur Not mit setAttribute, funktioniert dann aber nicht in allen Browsern.)
Mathias