Ho un probelma con un codice javascript associato a un checkbox

Se inizialmente il checkbox non è selzionato nessun problema, funziona tutto a meraviglia, se invece ha l'attributo checked settato a checked:
-la visualizzazione iniziale è corretta
-quando deseleziono il checkbox i capi day[day], day[month] e day[year] vengono correttamente modificati, mentre time e type[] rimangono come se il checkbox fosse selezionato
- se riseleziono la visualizzazione è esatta
- se deseleziono nuovamente la visualizzazione è esatta

Ecco il codice, spero che possiate aiutarmi!!
codice:
function NoScad(){

	ElCheck=document.getElementById('senzaScad');
	if(ElCheck.checked==true){
		vDay="00";
		vMonth="00";
		vYear="0000";
		incombente=1;
		stato=true;
		ora="00:00";
		tipo="hidden";
	}
	else{
		var data = new Date();
		vDay=data.getDate();
		if (vDay < 10) vDay = "0" + vDay;
		vMonth=data.getMonth()+1;
		if (vMonth < 10) vMonth = "0" + vMonth;
		vYear=data.getFullYear();
		incombente=0;
		stato=false;
		tipo="text";
	}

	arrCaselleInput = document.getElementsByTagName("input");
	for (i = 0; i < arrCaselleInput.length; i++)
	{
		switch (arrCaselleInput[i].name) 
		{  
		    case "day[day]":
			arrCaselleInput[i].type = tipo;
			arrCaselleInput[i].value = vDay;
			
		      break;
		    case "day[month]":
			arrCaselleInput[i].type = tipo;
			arrCaselleInput[i].value = vMonth;
			
		      break;
			case "day[year]":
			arrCaselleInput[i].type = tipo;
			arrCaselleInput[i].value = vYear;
			
		      break;
			case "time":
			arrCaselleInput[i].type = tipo;
			arrCaselleInput[i].value = ora;
			
		      break;
		}
	}
	
	// se selezionato senza scadenza automaticamente incombente
	arrSelect = parent.document.getElementsByTagName("SELECT");
	for (i = 0; i < arrSelect.length; i++)
	{
		switch (arrSelect[i].name) 
		{  
		    case "type[]":
				arrSelect[i].disabled = stato;
				arrSelect[i].value = incombente;
				
		    break;

		}
	}
	
}