add:        if (args.job) {   var self = this;   args.job.finalize = function finalize() {   self.onAccept();  var item = window.calendarItem;   window.close();  return item; } } 
context: function onLoad(){    var args = window.arguments[0];    window.onAcceptCallback = args.onOk;    window.calendarItem = args.calendarEvent;    window.originalItem = args.calendarEvent;    window.mode = args.mode;    window.recurrenceInfo = null;    if (window.calendarItem.calendar && window.calendarItem.calendar.readOnly) {        gReadOnlyMode = true;    }    /* add calendars to the calendar menulist */    var calendarList = document.getElementById("item-calendar");    var calendars = getCalendarManager().getCalendars({});    for (i in calendars) {        var calendar = calendars[i];        var menuitem = calendarList.appendItem(calendar.name, i);        menuitem.calendar = calendar;    }    loadDialog(window.calendarItem);    // figure out what the title of the dialog should be and set it    updateTitle();    // hide rows based on if this is an event or todo    updateStyle();    // update the accept button    updateAccept();    // update datetime pickers    updateDueDate();    updateEntryDate();    // update datetime pickers    updateAllDay();    // update recurrence button    updateRecurrence();    // update our size!    window.sizeToContent();    document.getElementById("item-title").focus();    opener.setCursor("auto");    self.focus();}
meta: 8395	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/8395/8a8fb1e50f1a74dbb1713b031761c84e92fa5b69/calendar-event-dialog.js/buggy/calendar/base/content/calendar-event-dialog.js