/* auteur: COSMOS 2000 */
/* Date de création: 10/04/2004 */
function checkNumber(input, min, max, msg)
{
    msg = msg + " donnée invalide dans la case: " + input.value;
    var str = input.value;
    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(form)
{
	monthArray = new MakeArray(12);
  var leapyear = (form.year.value%4 != 0? 0: (form.year.value == 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(form.month.value)];
}
function dayValue(day)
{
  dayArray = new MakeArray(7);
  dayArray[1] = "Dimanche";
  dayArray[2] = "Lundi";
	dayArray[3] = "Mardi";
	dayArray[4] = "Mercredi";
	dayArray[5] = "Jeudi";
	dayArray[6] = "Vendredi";
	dayArray[7] = "Samedi";
	return dayArray[day];
}
function computeForm(form)
{
    if ((form.month.value == null || form.month.value.length == 0) ||
        (form.day.value == null || form.day.value.length == 0) ||
        (form.year.value == null || form.year.value.length == 0)) {
        return;
    }
		var leap = (form.year.value%4 != 0? 0: (form.year.value == 0? 0: 1));
    if (!checkNumber(form.month, 1, 12, "Month") ||
        !checkNumber(form.day, 1, monthLength(parseFloat(form.month.value), leap), "Day") ||
        !checkNumber(form.year, 0, 99, "Year")) {
        form.dayOfWeek.value = "Invalid";
        return;
    }
  var P = Math.floor(form.year.value/12);
  var Q = form.year.value%12;
  var R = Math.floor(Q/4);
  var Doomsday = (P + Q + R +3) % 7;
	form.doomsday.value = dayValue(Doomsday+1);
	form.monthValue.value = parseFloat(form.month.value) + "/" + monthValue(form);
	var dayNumber = (form.day.value - monthValue(form) + Doomsday + 14)%7;
  form.dayOfWeek.value = dayValue(dayNumber+1);
}
function clearForm(form)
{
    form.month.value = "";
    form.day.value = "";
    form.year.value = "";
    form.doomsday.value = "";
    form.monthValue.value = "";
    form.dayOfWeek.value = "";
}