Devi risalire ai singoli valori dei name.

Supponendo di avere SEMPRE:
<form name="qualcosa" ...>
<input name="qualcos'altro" ...onblur="percorso(this);">
la chiamata a percorso avviene sempre all'interno di un form

Puoi fare:
codice:
function percorso(ogg) {
  var perc = "";
  var n = ogg.name;
  perc = n + "." +perc;

  n = ogg.form.namel
  perc = n + "." +perc;

  perc = "document." + perc;
  alert(perc);
}
Nota che la variabile perc e` una stringa, non un oggetto, mentre this individua sempre un oggetto mentre document.calendario.giorno individua un oggetto se usata in maniera appropriata.


Nota che nel tuo
window.document.forms.calendario.giorno.value

window e document sono alternativi (non serve specificarli ambedue)
forms e` una collezione, per cui la tua sintassi non e` corretta. Quella corretta e`:
document.forms['calendario'].giorno.value
oppure:
document.calendario.giorno.value