docs: function (value, point) {
  		var pos,
  			stops = this.stops,
  			from,
  			to,
  			color,
  			dataClasses = this.dataClasses,
  			dataClass,
  			i;
  
  		if (dataClasses) {
  			i = dataClasses.length;
  			while (i--) {
  				dataClass = dataClasses[i];
  				from = dataClass.from;
  				to = dataClass.to;
  				if ((from === UNDEFINED || value >= from) && (to === UNDEFINED || value <= to)) {
  					color = dataClass.color;
  					if (point) {
  						point.dataClass = i;
  					}
  					break;
  				}	
  			}
  
  		} else {
  
  			if (this.isLog) {
  				value = this.val2lin(value);
  			}
  			pos = 1 - ((this.max - value) / ((this.max - this.min) || 1));
  			i = stops.length;
  			while (i--) {
  				if (pos > stops[i][0]) {
  					break;
  				}
  			}
  			from = stops[i] || stops[i + 1];
  			to = stops[i + 1] || from;
  
  			// The position within the gradient
  			pos = 1 - (to[0] - pos) / ((to[0] - from[0]) || 1);
  
  			color = this.tweenColors(
  				from.color, 
  				to.color,
  				pos
  			);
  		}
  		return color;
  	}