docs: function getContainer() {
  		renderTo = optionsChart.renderTo;
  		containerId = PREFIX + idCounter++;
  
  		if (isString(renderTo)) {
  			renderTo = doc.getElementById(renderTo);
  		}
  
  		// remove previous chart
  		renderTo.innerHTML = '';
  
  		// If the container doesn't have an offsetWidth, it has or is a child of a node
  		// that has display:none. We need to temporarily move it out to a visible
  		// state to determine the size, else the legend and tooltips won't render
  		// properly
  		if (!renderTo.offsetWidth) {
  			renderToClone = renderTo.cloneNode(0);
  			css(renderToClone, {
  				position: ABSOLUTE,
  				top: '-9999px',
  				display: ''
  			});
  			doc.body.appendChild(renderToClone);
  		}
  
  		// get the width and height
  		getChartSize();
  
  		// create the inner container
  		chart.container = container = createElement(DIV, {
  				className: 'highcharts-container' +
  					(optionsChart.className ? ' ' + optionsChart.className : ''),
  				id: containerId
  			}, extend({
  				position: RELATIVE,
  				overflow: HIDDEN, // needed for context menu (avoid scrollbars) and
  					// content overflow in IE
  				width: chartWidth + PX,
  				height: chartHeight + PX,
  				textAlign: 'left'
  			}, optionsChart.style),
  			renderToClone || renderTo
  		);
  
  		chart.renderer = renderer =
  			optionsChart.forExport ? // force SVG, used for SVG export
  				new SVGRenderer(container, chartWidth, chartHeight, true) :
  				new Renderer(container, chartWidth, chartHeight);
  
  		// Issue 110 workaround:
  		// In Firefox, if a div is positioned by percentage, its pixel position may land
  		// between pixels. The container itself doesn't display this, but an SVG element
  		// inside this container will be drawn at subpixel precision. In order to draw
  		// sharp lines, this must be compensated for. This doesn't seem to work inside
  		// iframes though (like in jsFiddle).
  		var subPixelFix, rect;
  		if (isFirefox && container.getBoundingClientRect) {
  			subPixelFix = function () {
  				css(container, { left: 0, top: 0 });
  				rect = container.getBoundingClientRect();
  				css(container, {
  					left: (-(rect.left - pInt(rect.left))) + PX,
  					top: (-(rect.top - pInt(rect.top))) + PX
  				});
  			};
  
  			// run the fix now
  			subPixelFix();
  
  			// run it on resize
  			addEvent(win, 'resize', subPixelFix);
  
  			// remove it on chart destroy
  			addEvent(chart, 'destroy', function () {
  				removeEvent(win, 'resize', subPixelFix);
  			});
  		}
  	}