function calculate() {
month = document.form.month.selectedIndex;
month = document.form.month.options[month].value;
day = document.form.day.selectedIndex;
day = document.form.day.options[day].value;
year = document.form.year.value;

var oyear=year
var dob = " "+ year +", "+month + ",  "+day;
var thenx = new Date(dob);
var year=thenx.getYear();
if (year<100) year="19" + thenx.getYear();
else year=thenx.getYear();

if (year > 1969) wyear=year;
else {
if (oyear<1900) {
if (oyear>1800) {
wrelyear= (eval(oyear)-1801)%(28);
wyear = wrelyear+1981;
}
else wyear = 1970 
}
else
if (oyear>1900) {wrelyear= (eval(oyear)-1901)%(28); 
wyear= wrelyear+1985
}
else 
if (oyear==1900) {wyear= 1990;
   }              
}
var dob = " "+ wyear +", "+month + ",  "+day;
var thenx = new Date(dob);

var theday = thenx.getDay()+1;
var date=thenx.getDate();

var weekday = new Array(6);
weekday[1]="Domenica";
weekday[2]="Lunedì";
weekday[3]="Martedì";
weekday[4]="Mercoledì";
weekday[5]="Giovedì";
weekday[6]="Venerdì";
weekday[7]="Sabato";

if (day != date) alert("Scusami!  La data inserita sembra incorretta, verifica!"+day+" ..."+date+"::"+oyear+"..."+year+" "+dob+"=="+wyear+".-.-"+thenx+" "+day+" "+month);
else {
dayborn = weekday[theday];
document.form.count2.value=" " + dayborn;
dob = dayborn + ", " + month + " " + date + ", " + oyear + ".";
alert("Il " + date + " " + month + " " + oyear + " era di " + dayborn);
   }
}



function makeObject()
{
   return this;
}

function checkNumber(numStr, fieldName)
{
	msg = fieldName + " il campo ha un dato invalido: " + numStr.value;
	str = numStr.value;
	for (var i=0; i < str.length; i++)
	{
		var ch = str.substring(i,i+1);
		if ( (ch < "0" || ch > "9") && ch != '.')
		{
			alert(msg);
			return false;
		}
	}
	return true;
}

function mmdd2ddd(mm, dd)
// transform MMDD to DDD (Julian Date)
{
    var month = new makeObject();
    for(i=1; i < 13; i++)
       month[i] = 31;
    month[2] = 28; month[4] = 30; month[6] = 30; 
    month[9] = 30; month[11] = 30;
    // month.length = 13;

    var ddd = 1.0 * dd;  // 0 + form.bdd.value --> char concat!! 
    for(i=1; i < mm; i++)
       ddd += month[i];
    return ddd;
}

function leap(cyy, cddd, byy, bddd)
{
   var moredays = 0;
   // Were you born in leap year, before Feb. 29 (31+29=60)?
   if (byy%4 == 0 && bddd <60)
      moredays++;
   for(y=byy+1; y <cyy; y++)
      if (y%4 == 0)
         moredays++;
   // This year is a leap year and today is after Feb. 29 (31+29=60)?
   if (cyy%4 == 0 && cddd > 60)
      moredays++;
   return moredays;
}

function getLastday()
{
  // No random function javascript???
  var now = new Date();
  var minutes = now.getMinutes();
  var seconds = now.getSeconds();
  return (minutes*seconds)%365;
}

function computeForm(form)
{
	// all three fields must be filled in, otherwise -> error 
	if ( (form.bmm.value == null || form.bmm.value.length == 0) || 
	     (form.bdd.value == null || form.bdd.value.length == 0) || 
	     (form.byy.value == null || form.byy.value.length == 0) ||
	     (form.eyy.value == null || form.byy.value.length == 0) 
       ) 
	{
		alert("Attenzione devi compilare tutti i 4 campi!");
		return;
	}

	if ( (form.age.value != null && form.age.value.length != 0) )
    {  alert("Il campo deve essere vuoto"); return; }
	if ( (form.ndays.value != null && form.ndays.value.length != 0) )
    {  alert("Il campo deve essere vuoto"); return; }
	if ( (form.ldays.value != null && form.ldays.value.length != 0) )
	{  alert("Il campo deve essere vuoto"); return; }

    var now = new Date();
    var cmm = now.getMonth(); cmm += 1;
    var cdd = now.getDate();
    var cyy = now.getYear();

	// calculate number of days lived
	if (checkNumber(form.bmm,"Month") && 
	    checkNumber(form.bdd,"Date") && 
	    checkNumber(form.byy,"Year") && 
	    checkNumber(form.eyy,"Age")) 
    {
      if(form.bmm.value < 1 || form.bmm.value > 12)
	  {  alert("Mese errato!"); return; }
      if(form.bdd.value < 1 || form.bdd.value > 31)
	  {  alert("Giorno errato!"); return; }
      if(form.byy.value > cyy)
	  {  alert("Anno errato!"); return; }
      if(form.byy.value < (cyy-form.byy.value))
	  {  alert("Gli anni inseriti sono errati!"); return; }
    }


    // form.outs.value = " " + cmm + "/" + cdd + "/" + cyy;

    var bddd = mmdd2ddd(form.bmm.value, form.bdd.value);
    var cddd = mmdd2ddd(cmm, cdd);

		var nd = (cyy-form.byy.value)*365 + (cddd - bddd);
        var age = (nd - (nd%365)) / 365;
        nd += leap(cyy, cddd, form.byy.value, bddd)
		form.ndays.value = nd;
		form.age.value = age;

        // get the day of your death
        var lday = getLastday();
        // form.outs.value = lday;
		var ld = (form.eyy.value*365 - nd) + (lday - cddd);
		form.ldays.value = ld;

}

function clearForm(form)
{
	form.bmm.value="";
	form.bdd.value="";
	form.byy.value="";
	form.ndays.value="";
	form.ldays.value="";
	form.age.value="";
	form.eyy.value="";
}

function conferma()
{

}