code: function showCalendar(anchor) {
              try {
                  this.$freezeCalendar = true;
                  this.hideCalendar();
  
                  var calendar = this.getCalendar();
                  this.$anchor = anchor;
  
                  var c = this.getCanvas(),
                      w = c.getLayer("win"),
                      p = zebkit.layout.toParentOrigin(0, 0, anchor, c);
  
                  calendar.toPreferredSize();
  
                  p.y = p.y + anchor.height;
                  if (p.y + calendar.height > w.height - w.getBottom()) {
                      p.y = p.y - calendar.height - anchor.height - 1;
                  }
  
                  if (p.x + calendar.width > w.width - w.getRight()) {
                      p.x -= (p.x + calendar.width - w.width + w.getRight());
                  }
  
                  calendar.setLocation(p.x, p.y);
                  ui.showWindow(this, "mdi", calendar);
  
                  ui.activateWindow(calendar);
                  calendar.monthDays.requestFocus();
  
                  if (this.calendarShown !== undefined) {
                      this.calendarShown(this.calendar);
                  }
              } finally {
                  this.$freezeCalendar = false;
              }
  
              return this;
          }
docs: Show calendar as popup window for the given anchor component
  @param  {zebkit.ui.Panel} anchor an anchor component.
  @chainable
  @method showCalendar