rem: return(!untilDateIsBeforeEndDate); 
add:  var missingField = false;   if (getElementValue("repeat-numberoftimes-radio", "selected") && !hasPositiveIntegerValue("repeat-numberoftimes-textbox")) { setElementValue("repeat-numberoftimes-warning", false, "hidden"); missingField = true; } else setElementValue("repeat-numberoftimes-warning", true, "hidden");  if (getElementValue("repeat-checkbox", "checked")) { if (!hasPositiveIntegerValue("repeat-length-field")) { setElementValue("repeat-interval-warning", false, "hidden"); missingField = true; } else setElementValue("repeat-interval-warning", true, "hidden"); }  else { missingField = false; setElementValue("repeat-numberoftimes-warning", true, "hidden"); setElementValue("repeat-interval-warning", true, "hidden"); }  return (!untilDateIsBeforeEndDate && !missingField); 
context: function checkSetRecur(){    var endDate        = getElementValue("end-datetime");    var recur          = getElementValue("repeat-checkbox", "checked");    var recurUntil     = getElementValue("repeat-until-radio", "selected");    var recurUntilDate = getElementValue("repeat-end-date-picker");    var untilDateIsBeforeEndDate =      ( recur && recurUntil &&         // until date is less than end date if total milliseconds time is less        recurUntilDate.getTime() < endDate.getTime() &&         // if on same day, ignore time of day for now        // (may change in future for repeats within a day, such as hourly)        !( recurUntilDate.getFullYear() == endDate.getFullYear() &&           recurUntilDate.getMonth() == endDate.getMonth() &&           recurUntilDate.getDate() == endDate.getDate() ) );    setRecurError(untilDateIsBeforeEndDate);    return(!untilDateIsBeforeEndDate);}
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9421/6f146011d2a81f890de4a9d04b7798dda10fb943/eventDialog.js/clean/calendar/resources/content/eventDialog.js