docs: function(){
  			// First we need the width of the yLabels, assuming the xLabels aren't rotated
  
  			// To do that we need the base line at the top and base of the chart, assuming there is no x label rotation
  			this.startPoint = (this.display) ? this.fontSize : 0;
  			this.endPoint = (this.display) ? this.height - (this.fontSize * 1.5) - 5 : this.height; // -5 to pad labels
  
  			// Apply padding settings to the start and end point.
  			this.startPoint += this.padding;
  			this.endPoint -= this.padding;
  
  			// Cache the starting height, so can determine if we need to recalculate the scale yAxis
  			var cachedHeight = this.endPoint - this.startPoint,
  				cachedYLabelWidth;
  
  			// Build the current yLabels so we have an idea of what size they'll be to start
  			/*
  			 *	This sets what is returned from calculateScaleRange as static properties of this class:
  			 *
  				this.steps;
  				this.stepValue;
  				this.min;
  				this.max;
  			 *
  			 */
  			this.calculateYRange(cachedHeight);
  
  			// With these properties set we can now build the array of yLabels
  			// and also the width of the largest yLabel
  			this.buildYLabels();
  
  			this.calculateXLabelRotation();
  
  			while((cachedHeight > this.endPoint - this.startPoint)){
  				cachedHeight = this.endPoint - this.startPoint;
  				cachedYLabelWidth = this.yLabelWidth;
  
  				this.calculateYRange(cachedHeight);
  				this.buildYLabels();
  
  				// Only go through the xLabel loop again if the yLabel width has changed
  				if (cachedYLabelWidth < this.yLabelWidth){
  					this.calculateXLabelRotation();
  				}
  			}
  
  		}