function initializeWindowButtons() { var okButton = $("okButton"); var cancelButton = $("cancelButton"); Event.observe(okButton, "click", onEditorOkClick, false); Event.observe(cancelButton, "click", onEditorCancelClick, false); } function initializeFormValues() { $("repeatType").value = parent$("repeatType").value; if ($("repeatType").value == 0) { $('recurrence_form').setRadioValue('dailyRadioButtonName', parent$("repeat1").value); $('dailyDaysField').value = parent$("repeat2").value; } else if ($("repeatType").value == 1) { $('weeklyWeeksField').value = parent$("repeat1").value; $('recurrence_form').setCheckBoxListValues('weeklyCheckBoxName', parent$("repeat2").value); } else if ($("repeatType").value == 2) { $('monthlyMonthsField').value = parent$("repeat1").value; $('recurrence_form').setRadioValue('monthlyRadioButtonName', parent$("repeat2").value); $('monthlyRepeat').value = parent$("repeat3").value; $('monthlyDay').value = parent$("repeat4").value; $('recurrence_form').setCheckBoxListValues('monthlyCheckBoxName', parent$("repeat5").value); } else { $('yearlyYearsField').value = parent$("repeat1").value; $('recurrence_form').setRadioValue('yearlyRadioButtonName', parent$("repeat2").value); $('yearlyDayField').value = parent$("repeat3").value; $('yearlyMonth1').value = parent$("repeat4").value; $('yearlyRepeat').value = parent$("repeat5").value; $('yearlyDay').value = parent$("repeat6").value; $('yearlyMonth2').value = parent$("repeat7").value; } $('recurrence_form').setRadioValue('rangeRadioButtonName', parent$("range1").value); if (parent$("range1").value == 1) { $('rangeAppointmentsField').value = parent$("range2").value; } else if (parent$("range1").value == 2) { $('endDate').value = parent$("range2").value; } } function onEditorOkClick(event) { preventDefault(event); var v; parent$("repeatType").value = $("repeatType").value; if ($("repeatType").value == 0) { parent$("repeat1").value = $('recurrence_form').getRadioValue('dailyRadioButtonName'); parent$("repeat2").value = $('dailyDaysField').value; // We check if the dailyDaysField really contains an integer v = parseInt(parent$("repeat2").value); if (parent$("repeat1").value == 0 && (isNaN(v) || v <= 0)) { window.alert("Please specify a numerical value in the Days field greater or equal to 1."); return false; } } else if ($("repeatType").value == 1) { parent$("repeat1").value = $('weeklyWeeksField').value; parent$("repeat2").value = $('recurrence_form').getCheckBoxListValues('weeklyCheckBoxName'); // We check if the weeklyWeeksField really contains an integer v = parseInt(parent$("repeat1").value); if (isNaN(v) || v <= 0) { window.alert("Please specify a numerical value in the Week(s) field greater or equal to 1."); return false; } } else if ($("repeatType").value == 2) { parent$("repeat1").value = $('monthlyMonthsField').value; parent$("repeat2").value = $('recurrence_form').getRadioValue('monthlyRadioButtonName'); parent$("repeat3").value = $('monthlyRepeat').value; parent$("repeat4").value = $('monthlyDay').value; parent$("repeat5").value = $('recurrence_form').getCheckBoxListValues('monthlyCheckBoxName'); // We check if the monthlyMonthsField really contains an integer v = parseInt(parent$("repeat1").value); if (isNaN(v) || v <= 0) { window.alert("Please specify a numerical value in the Month(s) field greater or equal to 1."); return false; } } else { parent$("repeat1").value = $('yearlyYearsField').value; parent$("repeat2").value = $('recurrence_form').getRadioValue('yearlyRadioButtonName'); parent$("repeat3").value = $('yearlyDayField').value; parent$("repeat4").value = $('yearlyMonth1').value; parent$("repeat5").value = $('yearlyRepeat').value; parent$("repeat6").value = $('yearlyDay').value; parent$("repeat7").value = $('yearlyMonth2').value; // We check if the yearlyYearsField really contains an integer v = parseInt(parent$("repeat1").value); if (isNaN(v) || v <= 0) { window.alert("Please specify a numerical value in the Year(s) field greater or equal to 1."); return false; } } parent$("range1").value = $('recurrence_form').getRadioValue('rangeRadioButtonName'); if (parent$("range1").value == 1) { parent$("range2").value = $('rangeAppointmentsField').value; // We check if the rangeAppointmentsField really contains an integer v = parseInt(parent$("range2").value); if (isNaN(v) || v <= 0) { window.alert("Please specify a numerical value in the Appointment(s) field greater or equal to 1."); return false; } } else if (parent$("range1").value == 2) { parent$("range2").value = $('endDate').value; } window.close(); } function onEditorCancelClick(event) { preventDefault(event); window.close(); } function onRecurrenceLoadHandler() { initializeWindowButtons(); initializeFormValues(); } FastInit.addOnLoad(onRecurrenceLoadHandler);