
//Arrays/functions for date output formatting
function makeArray(len){
for (var i = 0; i < len; i++) this[i]=null;
this.length = len;
}
function makeArray() {
    for (i = 0; i<makeArray.arguments.length; i++)
        this[i + 1] = makeArray.arguments[i];
}
var months = new makeArray('Januar','Februar','März','April',
                           'Mai','Juni','Juli','August','September',
                           'Oktober','November','Dezember');
function y2k(number) { return (number < 1000) ? number + 1900 : number; }
function PregEvent(theForm) {

//Form verifying:
if (theForm.Year.value  == "")  {
           alert ("Bitte eine Jahreszahl angeben!");
        return;
}
if (("" + parseInt(theForm.Year.value)) != theForm.Year.value)  {
           alert ("Bitte nur Zahlenwerte eingeben!");
        return;
}
if (theForm.Year.value < 1000){
           alert ("Bitte eine vierstellige Jahreszahl eingeben");
        return;
}

//Data output:

//Set Up Last Mens Date into MS
var v_LastMensDate = Date.UTC(theForm.Year.value, theForm.Month.options[theForm.Month.selectedIndex].value, theForm.Date.options[theForm.Date.selectedIndex].value);

//Calculate day of fertilization
var v_FertDateMS = v_LastMensDate + (theForm.Cycle.options[theForm.Cycle.selectedIndex].value *  86400000) - 1209600000;
var v_FertDateFormatted = new Date(v_FertDateMS)
theForm.FertDate.value = months[v_FertDateFormatted.getMonth() + 1]  + " " + v_FertDateFormatted.getDate()  + ", " +  y2k(v_FertDateFormatted.getYear());

//Calculate 4 week event
var v_4weeksMS = v_FertDateMS + 1209600000;
var v_4weeksFormatted = new Date(v_4weeksMS)
theForm.EstDate4W.value = months[v_4weeksFormatted.getMonth() + 1]  + " " + v_4weeksFormatted.getDate()  + ", " +  y2k(v_4weeksFormatted.getYear());

//Calculate 6-7 week event
var v_6_7weeksMS = v_FertDateMS + 1879800000;
var v_6_7weeksFormatted = new Date(v_6_7weeksMS)
theForm.EstDate6_7W.value = months[v_6_7weeksFormatted.getMonth() + 1]  + " " + v_6_7weeksFormatted.getDate()  + ", " +  y2k(v_6_7weeksFormatted.getYear());

//Calculate 9 week event
var v_9weeksMS = v_FertDateMS + 2419200000;
var v_9weeksFormatted = new Date(v_9weeksMS)
theForm.EstDate9W.value = months[v_9weeksFormatted.getMonth() + 1]  + " " + v_9weeksFormatted.getDate()  + ", " +  y2k(v_9weeksFormatted.getYear());

//Calculate 11-13 week event
var v_11_13weeksMS = v_FertDateMS + 3698000000;
var v_11_13weeksFormatted = new Date(v_11_13weeksMS)
theForm.EstDate11_13W.value = months[v_11_13weeksFormatted.getMonth() + 1]  + " " + v_11_13weeksFormatted.getDate()  + ", " +  y2k(v_11_13weeksFormatted.getYear());

//Calculate 15 week event
var v_15weeksMS = v_FertDateMS + 6602000000;
var v_15weeksFormatted = new Date(v_15weeksMS)
theForm.EstDate15W.value = months[v_15weeksFormatted.getMonth() + 1]  + " " + v_15weeksFormatted.getDate()  + ", " +  y2k(v_15weeksFormatted.getYear());

//Calculate 13 week 2 day event
var v_13weeksMS = v_FertDateMS + 4230500000;
var v_13weeksFormatted = new Date(v_13weeksMS)
theForm.EstDate13W.value = months[v_13weeksFormatted.getMonth() + 1]  + " " + v_13weeksFormatted.getDate()  + ", " +  y2k(v_13weeksFormatted.getYear());

//Calculate 15-20 week event
var v_15_20weeksMS = v_FertDateMS + 4912600000;
var v_15_20weeksFormatted = new Date(v_15_20weeksMS)
theForm.EstDate15_20W.value = months[v_15_20weeksFormatted.getMonth() + 1]  + " " + v_15_20weeksFormatted.getDate()  + ", " +  y2k(v_15_20weeksFormatted.getYear());

//Calculate 15-20 week event
var v_15_20weeksMS = v_FertDateMS + 4912600000;
var v_15_20weeksFormatted = new Date(v_15_20weeksMS)
theForm.EstDate15_20W.value = months[v_15_20weeksFormatted.getMonth() + 1]  + " " + v_15_20weeksFormatted.getDate()  + ", " +  y2k(v_15_20weeksFormatted.getYear());

//Calculate 18-20 week event
var v_18_20weeksMS = v_FertDateMS + 9676800000;
var v_18_20weeksFormatted = new Date(v_18_20weeksMS)
theForm.EstDate18_20W.value = months[v_18_20weeksFormatted.getMonth() + 1]  + " " + v_18_20weeksFormatted.getDate()  + ", " +  y2k(v_18_20weeksFormatted.getYear());

//Calculate 20-22 week event
var v_20_22weeksMS = v_FertDateMS + 10354800000;
var v_20_22weeksFormatted = new Date(v_20_22weeksMS)
theForm.EstDate20_22W.value = months[v_20_22weeksFormatted.getMonth() + 1]  + " " + v_20_22weeksFormatted.getDate()  + ", " +  y2k(v_20_22weeksFormatted.getYear());

//Calculate 23-24 week event
var v_23_24weeksMS = v_FertDateMS + 12700800000;
var v_23_24weeksFormatted = new Date(v_23_24weeksMS)
theForm.EstDate23_24W.value = months[v_23_24weeksFormatted.getMonth() + 1]  + " " + v_23_24weeksFormatted.getDate()  + ", " +  y2k(v_23_24weeksFormatted.getYear());

//Calculate 37 week event
var v_37weeksMS = v_FertDateMS + 19401000000;
var v_37weeksFormatted = new Date(v_37weeksMS)
theForm.EstDate37W.value = months[v_37weeksFormatted.getMonth() + 1]  + " " + v_37weeksFormatted.getDate()  + ", " +  y2k(v_37weeksFormatted.getYear());

//Calculate 40 week event
var v_40weeksMS = v_FertDateMS + 22982400000;
var v_40weeksFormatted = new Date(v_40weeksMS)
theForm.EstDate40W.value = months[v_40weeksFormatted.getMonth() + 1]  + " " + v_40weeksFormatted.getDate()  + ", " +  y2k(v_40weeksFormatted.getYear());
}


