En lugar de poner la llamada a la función al clicar el botón, se lo pones cuando cambie el valor de fecha final:
en lugar de:
<input type="button" value="Calcular"
onclick="calcula()">
pones:
<input ... name="fecha1" ...
onchange="calcula()">
a ver si te sirve