docs: function (update) {
              if (!this.options) {
                  return;
              }
  
              this.calc_count++;
  
              if (this.calc_count === 10 || update) {
                  this.calc_count = 0;
                  this.coords.w_rs = this.$cache.rs.outerWidth(false);
  
                  this.calcHandlePercent();
              }
  
              if (!this.coords.w_rs) {
                  return;
              }
  
              this.calcPointerPercent();
              var handle_x = this.getHandleX();
  
  
              if (this.target === "both") {
                  this.coords.p_gap = 0;
                  handle_x = this.getHandleX();
              }
  
              if (this.target === "click") {
                  this.coords.p_gap = this.coords.p_handle / 2;
                  handle_x = this.getHandleX();
  
                  if (this.options.drag_interval) {
                      this.target = "both_one";
                  } else {
                      this.target = this.chooseHandle(handle_x);
                  }
              }
  
              switch (this.target) {
                  case "base":
                      var w = (this.options.max - this.options.min) / 100,
                          f = (this.result.from - this.options.min) / w,
                          t = (this.result.to - this.options.min) / w;
  
                      this.coords.p_single_real = this.toFixed(f);
                      this.coords.p_from_real = this.toFixed(f);
                      this.coords.p_to_real = this.toFixed(t);
  
                      this.coords.p_single_real = this.checkDiapason(this.coords.p_single_real, this.options.from_min, this.options.from_max);
                      this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);
                      this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);
  
                      this.coords.p_single_fake = this.convertToFakePercent(this.coords.p_single_real);
                      this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);
                      this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);
  
                      this.target = null;
  
                      break;
  
                  case "single":
                      if (this.options.from_fixed) {
                          break;
                      }
  
                      this.coords.p_single_real = this.convertToRealPercent(handle_x);
                      this.coords.p_single_real = this.calcWithStep(this.coords.p_single_real);
                      this.coords.p_single_real = this.checkDiapason(this.coords.p_single_real, this.options.from_min, this.options.from_max);
  
                      this.coords.p_single_fake = this.convertToFakePercent(this.coords.p_single_real);
  
                      break;
  
                  case "from":
                      if (this.options.from_fixed) {
                          break;
                      }
  
                      this.coords.p_from_real = this.convertToRealPercent(handle_x);
                      this.coords.p_from_real = this.calcWithStep(this.coords.p_from_real);
                      if (this.coords.p_from_real > this.coords.p_to_real) {
                          this.coords.p_from_real = this.coords.p_to_real;
                      }
                      this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);
                      this.coords.p_from_real = this.checkMinInterval(this.coords.p_from_real, this.coords.p_to_real, "from");
                      this.coords.p_from_real = this.checkMaxInterval(this.coords.p_from_real, this.coords.p_to_real, "from");
  
                      this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);
  
                      break;
  
                  case "to":
                      if (this.options.to_fixed) {
                          break;
                      }
  
                      this.coords.p_to_real = this.convertToRealPercent(handle_x);
                      this.coords.p_to_real = this.calcWithStep(this.coords.p_to_real);
                      if (this.coords.p_to_real < this.coords.p_from_real) {
                          this.coords.p_to_real = this.coords.p_from_real;
                      }
                      this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);
                      this.coords.p_to_real = this.checkMinInterval(this.coords.p_to_real, this.coords.p_from_real, "to");
                      this.coords.p_to_real = this.checkMaxInterval(this.coords.p_to_real, this.coords.p_from_real, "to");
  
                      this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);
  
                      break;
  
                  case "both":
                      if (this.options.from_fixed || this.options.to_fixed) {
                          break;
                      }
  
                      handle_x = this.toFixed(handle_x + (this.coords.p_handle * 0.001));
  
                      this.coords.p_from_real = this.convertToRealPercent(handle_x) - this.coords.p_gap_left;
                      this.coords.p_from_real = this.calcWithStep(this.coords.p_from_real);
                      this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);
                      this.coords.p_from_real = this.checkMinInterval(this.coords.p_from_real, this.coords.p_to_real, "from");
                      this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);
  
                      this.coords.p_to_real = this.convertToRealPercent(handle_x) + this.coords.p_gap_right;
                      this.coords.p_to_real = this.calcWithStep(this.coords.p_to_real);
                      this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);
                      this.coords.p_to_real = this.checkMinInterval(this.coords.p_to_real, this.coords.p_from_real, "to");
                      this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);
  
                      break;
  
                  case "both_one":
                      if (this.options.from_fixed || this.options.to_fixed) {
                          break;
                      }
  
                      var real_x = this.convertToRealPercent(handle_x),
                          from = this.result.from_percent,
                          to = this.result.to_percent,
                          full = to - from,
                          half = full / 2,
                          new_from = real_x - half,
                          new_to = real_x + half;
  
                      if (new_from < 0) {
                          new_from = 0;
                          new_to = new_from + full;
                      }
  
                      if (new_to > 100) {
                          new_to = 100;
                          new_from = new_to - full;
                      }
  
                      this.coords.p_from_real = this.calcWithStep(new_from);
                      this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);
                      this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);
  
                      this.coords.p_to_real = this.calcWithStep(new_to);
                      this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);
                      this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);
  
                      break;
              }
  
              if (this.options.type === "single") {
                  this.coords.p_bar_x = (this.coords.p_handle / 2);
                  this.coords.p_bar_w = this.coords.p_single_fake;
  
                  this.result.from_percent = this.coords.p_single_real;
                  this.result.from = this.convertToValue(this.coords.p_single_real);
                  this.result.from_pretty = this._prettify(this.result.from);
  
                  if (this.options.values.length) {
                      this.result.from_value = this.options.values[this.result.from];
                  }
              } else {
                  this.coords.p_bar_x = this.toFixed(this.coords.p_from_fake + (this.coords.p_handle / 2));
                  this.coords.p_bar_w = this.toFixed(this.coords.p_to_fake - this.coords.p_from_fake);
  
                  this.result.from_percent = this.coords.p_from_real;
                  this.result.from = this.convertToValue(this.coords.p_from_real);
                  this.result.from_pretty = this._prettify(this.result.from);
                  this.result.to_percent = this.coords.p_to_real;
                  this.result.to = this.convertToValue(this.coords.p_to_real);
                  this.result.to_pretty = this._prettify(this.result.to);
  
                  if (this.options.values.length) {
                      this.result.from_value = this.options.values[this.result.from];
                      this.result.to_value = this.options.values[this.result.to];
                  }
              }
  
              this.calcMinMax();
              this.calcLabels();
          }