code: function () {
  		var titleOffset = 0,
  			title = this.title,
  			subtitle = this.subtitle,
  			options = this.options,
  			titleOptions = options.title,
  			subtitleOptions = options.subtitle,
  			autoWidth = this.spacingBox.width - 44; // 44 makes room for default context button
  
  		if (title) {
  			title
  				.css({ width: (titleOptions.width || autoWidth) + PX })
  				.align(extend({ y: 15 }, titleOptions), false, 'spacingBox');
  			
  			if (!titleOptions.floating && !titleOptions.verticalAlign) {
  				titleOffset = title.getBBox().height;
  
  				// Adjust for browser consistency + backwards compat after #776 fix
  				if (titleOffset >= 18 && titleOffset <= 25) {
  					titleOffset = 15; 
  				}
  			}
  		}
  		if (subtitle) {
  			subtitle
  				.css({ width: (subtitleOptions.width || autoWidth) + PX })
  				.align(extend({ y: titleOffset + titleOptions.margin }, subtitleOptions), false, 'spacingBox');
  			
  			if (!subtitleOptions.floating && !subtitleOptions.verticalAlign) {
  				titleOffset = mathCeil(titleOffset + subtitle.getBBox().height);
  			}
  		}
  
  		this.titleOffset = titleOffset; // used in getMargins
  	}
docs: Lay out the chart titles and cache the full offset height for use in getMargins