Come ti diceva darkhero, occhio a <form name="invia">. Occhio anche a <script language="javascript">: si tratta di una scrittura deprecata. Oggi si usa: <script type="text/javascript">[…]</script>.
Dal tipo di codice si vede che usi un libro datato. Provo ad ammodernartelo un po'. Magari dagli un'occhiata…

codice:
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Caselle di Testo</title>
<script type="text/javascript">
function numbersOnly (oKeyEvent) {
    return oKeyEvent.charCode === 0 || /\d/.test(String.fromCharCode(oKeyEvent.charCode));
}

function controlla () {
    var nom = document.invia.nome.value;
    var cognom = document.invia.cognome.value;
    var ann = parseFloat(document.invia.anno.value);
    var tipo = (new Date()).getFullYear() - ann < 18 ? "minorenne" : "maggiorenne";
      
    alert ("Ciao" + nom + " " + cognom + ".Tu sei " + tipo);

}
</script>
</head>
<body>
<h3>Benvenuto</h3>
<form name="invia">
<p>
    Nome: <input type="text" name="nome" /><br />
    Cognome: <input type="text" name="cognome" /><br />
    Anno di Nascita: <input type="text" name="anno" size="4" maxlength="4" onkeypress="return numbersOnly(event);" onpaste="return false;" />
</p>
<p>
    <input type="button" value="invia" onClick="controlla();">
</p>
</form>
</body>
</html>