code: function (date) {
              var evt = {
                  date : date,
                  cancelDefault : false
              };
              this.evalCallback(this._cfg.onDateSelect, evt);
              if (evt.cancelDefault !== true) {
                  var cfg = this._cfg;
                  var dateToChange = this._dateToChange;
                  var dateToKeep = this._dateToKeep;
                  var properties = {};
                  var tmp;
                  properties[dateToChange] = date;
                  properties[dateToKeep] = cfg[dateToKeep];
                  if (properties.fromDate > properties.toDate) {
                      tmp = properties.fromDate;
                      properties.fromDate = properties.toDate;
                      properties.toDate = tmp;
                  } else {
                      tmp = dateToKeep;
                      dateToKeep = dateToChange;
                      dateToChange = tmp;
                  }
                  this.setProperty("fromDate", properties.fromDate);
                  this.setProperty("toDate", properties.toDate);
                  this._dateToChange = dateToChange;
                  this._dateToKeep = dateToKeep;
                  this._subTplModuleCtrl.setRanges(this._getRanges());
                  this.evalCallback(cfg.onchange);
              }
          }
docs: Calls the onDateSelect callback for the given date and implements the default behavior (which is to
  alternatively set the fromDate and toDate properties), if the default behavior is not cancelled in the
  callback.
  @param {Date} date