Show:
                            /**
                             * The DatePicker Component
                             *
                             * @module aui-datepicker
                             * @submodule aui-datepicker-popover
                             */
                            
                            var Lang = A.Lang,
                            
                                _DOCUMENT = A.one(A.config.doc);
                            
                            /**
                             * A base class for `DatePickerPopover`.
                             *
                             * @class A.DatePickerPopover
                             * @param {Object} config Object literal specifying widget configuration
                             *     properties.
                             * @constructor
                             */
                            
                            function DatePickerPopover() {}
                            
                            /**
                             * Static property used to define the default attribute configuration for the
                             * `DatePickerPopover`.
                             *
                             * @property ATTRS
                             * @type {Object}
                             * @static
                             */
                            DatePickerPopover.ATTRS = {
                            
                                /**
                                 * Sets the initial visibility.
                                 *
                                 * @attribute autoHide
                                 * @default true
                                 * @type {Boolean}
                                 */
                                autoHide: {
                                    validator: Lang.isBoolean,
                                    value: true
                                },
                            
                                /**
                                 * Stores the configuration of the `Popover` instance.
                                 *
                                 * @attribute popover
                                 * @default {}
                                 * @writeOnce
                                 */
                                popover: {
                                    setter: '_setPopover',
                                    value: {},
                                    writeOnce: true
                                },
                            
                                /**
                                 * Defines the CSS classname of the `Popover`.
                                 *
                                 * @attribute popoverCssClass
                                 * @default A.getClassName('datepicker-popover')
                                 * @type {String}
                                 */
                                popoverCssClass: {
                                    validator: Lang.isString,
                                    value: A.getClassName('datepicker-popover')
                                }
                            };
                            
                            A.mix(DatePickerPopover.prototype, {
                                popover: null,
                            
                                /**
                                 * Sets the `Popover` alignment.
                                 *
                                 * @method alignTo
                                 * @param node
                                 */
                                alignTo: function(node) {
                                    var instance = this,
                                        popover = instance.getPopover();
                            
                                    popover.set('align.node', node);
                                },
                            
                                /**
                                 * Returns an existent `Popover` instance or creates a new one if it
                                 * doesn't exists.
                                 *
                                 * @method getPopover
                                 * @return {Popover}
                                 */
                                getPopover: function() {
                                    var instance = this,
                                        popover = instance.popover;
                            
                                    if (!popover) {
                                        popover = new A.Popover(instance.get('popover'));
                            
                                        popover.get('boundingBox').on(
                                            'clickoutside', instance._onPopoverClickOutside, instance);
                            
                                        popover.get('boundingBox').on(
                                            'keydown', instance._handleKeyEvent, instance);
                            
                                        instance.popover = popover;
                                    }
                            
                                    return popover;
                                },
                            
                                /**
                                 * Hides the `Popover`.
                                 *
                                 * @method hide
                                 */
                                hide: function() {
                                    var instance = this;
                            
                                    instance.getPopover().hide();
                                },
                            
                                /**
                                 * Shows the `Popover`.
                                 *
                                 * @method show
                                 */
                                show: function() {
                                    var instance = this;
                            
                                    instance.getPopover().show();
                                },
                            
                                /**
                                 * Sets the `popover` value by merging its object with another properties.
                                 *
                                 * @method _handleKeyEvent
                                 */
                                _handleKeyEvent: function(event) {
                                    var instance = this;
                            
                                    if (event.isKey('esc')) {
                                        event.stopPropagation();
                            
                                        instance.hide();
                                    }
                                },
                            
                                /**
                                 * Checks if the active input is focused.
                                 *
                                 * @method _isActiveInputFocused
                                 * @protected
                                 * @return {Boolean}
                                 */
                                _isActiveInputFocused: function() {
                                    var instance = this,
                                        activeInput = instance.get('activeInput');
                            
                                    return (activeInput === _DOCUMENT.get('activeElement'));
                                },
                            
                                /**
                                 * Fires when there's a click outside of the `Popover`.
                                 *
                                 * @method _onPopoverClickOutside
                                 * @param event
                                 * @protected
                                 */
                                _onPopoverClickOutside: function(event) {
                                    var instance = this,
                                        target = event.target,
                                        activeInput = instance.get('activeInput');
                            
                                    if (activeInput && (!instance._isActiveInputFocused() && !activeInput.contains(target))) {
                                        instance.hide();
                                    }
                                },
                            
                                /**
                                 * TODO. Wanna help? Please send a Pull Request.
                                 *
                                 * @method _setPopover
                                 * @param val
                                 * @protected
                                 */
                                _setPopover: function(val) {
                                    var instance = this;
                            
                                    return A.merge({
                                        bodyContent: '',
                                        cssClass: instance.get('popoverCssClass'),
                                        constrain: true,
                                        hideOn: [
                                            {
                                                node: _DOCUMENT,
                                                eventName: 'key',
                                                keyCode: 'esc'
                                            }
                                        ],
                                        position: 'bottom',
                                        render: true,
                                        triggerShowEvent: 'click',
                                        triggerToggleEvent: null,
                                        visible: false
                                    }, val);
                                }
                            }, true);
                            
                            A.DatePickerPopover = DatePickerPopover;