docs: function(values) {
      var max = Number.MIN_VALUE,
          min = Number.MAX_VALUE,
          val,
          cc,
          attrs = {};
  
      if (!(this.scale instanceof jvm.OrdinalScale) && !(this.scale instanceof jvm.SimpleScale)) {
        if (!this.params.min || !this.params.max) {
          for (cc in values) {
            val = parseFloat(values[cc]);
            if (val > max) max = values[cc];
            if (val < min) min = val;
          }
          if (!this.params.min) {
            this.scale.setMin(min);
          }
          if (!this.params.max) {
            this.scale.setMax(max);
          }
          this.params.min = min;
          this.params.max = max;
        }
        for (cc in values) {
          val = parseFloat(values[cc]);
          if (!isNaN(val)) {
            attrs[cc] = this.scale.getValue(val);
          } else {
            attrs[cc] = this.elements[cc].element.style.initial[this.params.attribute];
          }
        }
      } else {
        for (cc in values) {
          if (values[cc]) {
            attrs[cc] = this.scale.getValue(values[cc]);
          } else {
            attrs[cc] = this.elements[cc].element.style.initial[this.params.attribute];
          }
        }
      }
  
      this.setAttributes(attrs);
      jvm.$.extend(this.values, values);
    }