rem: var recur = ev.data.recurrenceRule;  if (recur) { var freq = recur.frequency; var opts = {}; opts.instanceOnly = false; opts.masterEvent = false; 
add: for (var i = 0; i < changedProps.length; i++) {  if (changedProps[i][0] == 'recurrenceRule') { changedRecur = true; } }   if (changedRecur) {  alert('Not yet implemented'); return;  var opts = self.recurringEventOptions; dojo.event.topic.publish('/calEvent', { 'action': 'save', 'qualifier': opts.ALL_FUTURE_EVENTS, data: ev }); }   else { var recur = ev.data.recurrenceRule;   if (recur) { var freq = recur.frequency; var opts = {}; opts.instanceOnly = false; opts.masterEvent = false; 
context:     function saveEventChangesConfirm(ev) {                // Don't bother going through the edit process if nothing         // has actually changed        var changedProps = ev.hasChanged();        if (!changedProps) {            return false;        }                var recur = ev.data.recurrenceRule;        // Recurrence is a ball-buster        if (recur) {            var freq = recur.frequency;            var opts = {};            opts.instanceOnly = false;            opts.masterEvent = false;            // Check to see if editing a recurrence instance to go            // beyond the recurrence interval -- in that case only            // mod is possible. No 'all,' no 'all future.'            function isOutOfIntervalRange() {                 var ret = false;                var dt = ev.data.start;                var dtOrig = ev.dataOrig.start;                var origDate = new Date(dtOrig.getFullYear(), dtOrig.getMonth(),                     dtOrig.getDate());                var newDate = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());                var unit = ranges[freq][0];                var bound = ranges[freq][1];                var diff = Date.diff(unit, origDate, newDate);                ret = (diff >= bound || diff <= (bound * -1)) ? true : false;                return ret;            }            if (ev.data.masterEvent) {                opts.masterEvent = true;            }            else {                opts.instanceOnly = isOutOfIntervalRange();            }            Cal.showDialog(cosmo.view.cal.dialog.getProps('saveRecurConfirm', opts));        }        else {            saveEventChanges(ev);        }    }
meta: 1859	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/1859/ee0447aad3a2f59664b678f8a790520c2102d8df/cal.js/buggy/src/webapp/js/cosmo/view/cal.js