code: function(options)
          {
              if (!this._o) {
                  this._o = extend({}, defaults, true);
              }
  
              var opts = extend(this._o, options, true);
  
              opts.isRTL = !!opts.isRTL;
  
              opts.field = (opts.field && opts.field.nodeName) ? opts.field : null;
  
              opts.bound = !!(opts.bound !== undefined ? opts.field && opts.bound : opts.field);
  
              opts.trigger = (opts.trigger && opts.trigger.nodeName) ? opts.trigger : opts.field;
  
              var nom = parseInt(opts.numberOfMonths, 10) || 1;
              opts.numberOfMonths = nom > 4 ? 4 : nom;
  
              if (!isDate(opts.minDate)) {
                  opts.minDate = false;
              }
              if (!isDate(opts.maxDate)) {
                  opts.maxDate = false;
              }
              if ((opts.minDate && opts.maxDate) && opts.maxDate < opts.minDate) {
                  opts.maxDate = opts.minDate = false;
              }
              if (opts.minDate) {
                  setToStartOfDay(opts.minDate);
                  opts.minYear  = opts.minDate.getFullYear();
                  opts.minMonth = opts.minDate.getMonth();
              }
              if (opts.maxDate) {
                  setToStartOfDay(opts.maxDate);
                  opts.maxYear  = opts.maxDate.getFullYear();
                  opts.maxMonth = opts.maxDate.getMonth();
              }
  
              if (isArray(opts.yearRange)) {
                  var fallback = new Date().getFullYear() - 10;
                  opts.yearRange[0] = parseInt(opts.yearRange[0], 10) || fallback;
                  opts.yearRange[1] = parseInt(opts.yearRange[1], 10) || fallback;
              } else {
                  opts.yearRange = Math.abs(parseInt(opts.yearRange, 10)) || defaults.yearRange;
                  if (opts.yearRange > 100) {
                      opts.yearRange = 100;
                  }
              }
  
              return opts;
          }
docs: configure functionality