docs: function (htmlElem, properties, cfg) {
                  var cfgWrap = (cfg == null) ? {} : ariaUtilsJson.copy(cfg, false);
                  var elem = this._getHTMLElement(htmlElem), startProps = {}, endProps = {};
                  if (elem == null) {
                      this.$logWarn(this.INVALID_HTML_ELEMENT);
                      return null;
                  }
  
                  if (properties) {
                      for (var i = 0, l = properties.length; i < l; i++) {
                          if (ariaUtilsArray.indexOf(["height", "width", "opacity"], properties[i]) != -1) {
                              // startProps[properties[i]] = aria.utils.Dom.getStyle(elem, properties[i]);
  
                              var currentValue = this._getProperty(elem, properties[i]);
                              startProps[properties[i]] = {
                                  value : parseFloat(currentValue) || 0,
                                  unit : this._getUnit(currentValue, properties[i]),
                                  fullValue : currentValue
                              };
                              endProps[properties[i]] = 0;
                          }
                      }
                  }
                  if (ariaUtilsObject.isEmpty(startProps)) {
                      var opacity = aria.utils.Dom.getStyle(elem, "opacity");
                      startProps.opacity = {
                          value : opacity,
                          fullValue : opacity
                      };
                      endProps.opacity = 0;
                  }
                  startProps.display = aria.utils.Dom.getStyle(elem, "display");
                  elem.ATEffects = startProps;
  
                  cfgWrap.hide = true;
  
                  return this.animate(elem, endProps, cfgWrap);
              }