// JavaScript Document
function checkNumber(input, min, max, msg)
{
    msg = msg + " field has invalid data: " + input.value;
    var str = input;

    for (var i = 0; i < str.length; i++) {
        var ch = str.substring(i, i + 1)
        if ((ch < "0" || "9" < ch) && ch != '.') {
            alert(msg);
            return false;
        }
    }
    var num = parseFloat(str)
    if (num < min || max < num) {
        alert(msg + " not in range [" + min + ".." + max + "]");
        return false;
    }
    input.value = str;
    return true;
}

function computeField(input)
{
  if (input.value != null && input.value.length != 0)
	input.value = "" + eval(input.value);
  computeForm(input.form);
}

function MakeArray(size)
{
	this.length = size;
  for(var i = 1; i <= size; i++)
	{
		this[i] = 0;
	}
	return this;
}

function monthLength(month, leap)
{
	monthLengthArray = new MakeArray(12);

	monthLengthArray[1] = 31;
	monthLengthArray[2] = 28 + leap;
	monthLengthArray[3] = 31;
	monthLengthArray[4] = 30;
	monthLengthArray[5] = 31;
	monthLengthArray[6] = 30;
	monthLengthArray[7] = 31;
	monthLengthArray[8] = 31;
	monthLengthArray[9] = 30;
	monthLengthArray[10] = 31;
	monthLengthArray[11] = 30;
	monthLengthArray[12] = 31;

	return monthLengthArray[month];
}

function monthValue(lmes,lanno)
{
	monthArray = new MakeArray(12);
  var leapyear = (lanno%4 != 0? 0: (lanno == 0? 0: 1));

	if(leapyear>0)
	{
		monthArray[1] = 4;
		monthArray[2] = 1;
	}
	else
	{
		monthArray[1] = 3;
		monthArray[2] = 0;
	}
  monthArray[3] = 0;
	monthArray[4] = 4;
	monthArray[5] = 9;
	monthArray[6] = 6;
	monthArray[7] = 11;
	monthArray[8] = 8;
	monthArray[9] = 5;
	monthArray[10] = 10;
	monthArray[11] = 7;
	monthArray[12] = 12;

	return monthArray[parseFloat(lmes)];
}

function dayValue(day)
{
	dayArray = new MakeArray(7);

  dayArray[1] = "Sunday";
  dayArray[2] = "Monday";
	dayArray[3] = "Tuesday";
	dayArray[4] = "Wednesday";
	dayArray[5] = "Thursday";
	dayArray[6] = "Friday";
	dayArray[7] = "Saturday";

	return dayArray[day];
}

function compute(dia, mes, anno)
{
    if ((dia == null || dia == 0) ||
        (mes == null || mes == 0) ||
        (anno == null || anno == 0)) {
        return;
    }
		var leap = (anno%4 != 0? 0: (anno == 0? 0: 1));
    if (!checkNumber(mes, 1, 12, "Month") ||
        !checkNumber(dia, 1, monthLength(parseFloat(mes), leap), "Day") ||
        !checkNumber(anno, 0, 99, "Year")) {
        resultado = "Invalid";
        return;
    }
  var P = Math.floor(anno/12);
  var Q = anno%12;
  var R = Math.floor(Q/4);
  var Doomsday = (P + Q + R +3) % 7;

	var sdoomsday;
	var smes;
	sdoomsday = dayValue(Doomsday+1);
	smes = parseFloat(mes) + "/" + monthValue(mes,anno);
	var dayNumber = (dia - monthValue(mes,anno) + Doomsday + 14)%7;
	var resultado = dayNumber+1;
	//var resultado = dayValue(dayNumber);  aki recibo el dia
  	//form.dayOfWeek.value = dayValue(dayNumber+1);  aki recibo el dia
/*	alert(resultado);*/
	return resultado;
}

function clearForm(form)
{
    form.month.value = "";
    form.day.value = "";
    form.year.value = "";
    form.doomsday.value = "";
    form.monthValue.value = "";
    form.dayOfWeek.value = "";
}

