// Ensure that the shared div and calendar exist.
if (!date_selector_calendar.panel) {
date_selector_calendar.panel = new YAHOO.widget.Panel('date_selector_calendar_panel',
- {visible: false, close: false, draggable: false});
+ {visible: false, draggable: false});
var div = document.createElement('div');
date_selector_calendar.panel.setBody(div);
date_selector_calendar.panel.render(document.body);
date_selector_calendar.panel.showEvent.subscribe(function() {
date_selector_calendar.panel.fireEvent('changeContent');
});
+ date_selector_calendar.panel.hideEvent.subscribe(date_selector_calendar.release_current);
date_selector_calendar.calendar = new YAHOO.widget.Calendar(div,
{iframe: false, hide_blank_weeks: true, start_weekday: firstdayofweek});
clearTimeout(date_selector_calendar.repositiontimeout);
date_selector_calendar.repositiontimeout = null;
}
- date_selector_calendar.repositiontimeout = setTimeout(
- function() {date_selector_calendar.fix_position();}, 500);
+ date_selector_calendar.repositiontimeout = setTimeout(date_selector_calendar.fix_position, 500);
}
date_selector_calendar.fix_position = function() {
}
}
+date_selector_calendar.release_current = function() {
+ if (date_selector_calendar.currentowner) {
+ date_selector_calendar.currentowner.release_calendar();
+ }
+}
+
+date_selector_calendar.prototype.focus_event = function(e, me) {
+
+}
+
date_selector_calendar.prototype.focus_event = function(e, me) {
date_selector_calendar.cancel_any_timeout();
if (me.enablecheckbox == null || me.enablecheckbox.checked) {
}
date_selector_calendar.prototype.blur_event = function(e, me) {
- date_selector_calendar.hidetimeout = setTimeout(function() {me.release_calendar();}, 200);
+ date_selector_calendar.hidetimeout = setTimeout(date_selector_calendar.release_current, 300);
}
date_selector_calendar.prototype.handle_select_change = function(e, me) {
if (date_selector_calendar.currentowner) {
var currentcontainer = date_selector_calendar.currentowner.fieldset;
var eventarget = YAHOO.util.Event.getTarget(event);
- if (!YAHOO.util.Dom.isAncestor(currentcontainer, eventarget)) {
+ if (YAHOO.util.Dom.isAncestor(currentcontainer, eventarget)) {
+ setTimeout(function() {date_selector_calendar.cancel_any_timeout()}, 100);
+ } else {
date_selector_calendar.currentowner.release_calendar();
}
}