Mi sembra una complicazione eccessiva per un problema cosi' semplice... ti propongo un'alternativa, non ottimmizzata perche' didattica, ma utilizzabile.

codice:
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
function popola_gg(mese) {
	var newData = new Date()
	anno = newData.getFullYear(); // anno attuale
	var newData = new Date(anno,mese,0); // l'ultimo del mese richiesto
	var maxg = newData.getDate();
	g = document.mioForm.gg;
	g.options.length=0;
	for (var i=0;i<maxg;i++) {
		g.options[i] = new Option(i+1,i+1)
	}
}
//-->
</SCRIPT>
</HEAD>
<BODY onload="popola_gg(1);">
<form name="mioForm">
<select name="mm" onchange="popola_gg(this.options[this.selectedIndex].value);">
<option value=1>Gennaio</option>
<option value=2>Febbraio</option>
<option value=3>Marzo</option>
<option value=4>Aprile</option>
...
<option value=11>Novembre</option>
<option value=12>Dicembre</option>
</select>
<select name="gg">
</select>
</form>
</BODY>