whole_func_string: function getPreviewCss(ed, fmt) {
  		var name, previewElm, dom = ed.dom, previewCss = '', parentFontSize, previewStylesName;
  
  		previewStyles = ed.settings.preview_styles;
  
  		// No preview forced
  		if (previewStyles === false)
  			return '';
  
  		// Default preview
  		if (!previewStyles)
  			previewStyles = 'font-family font-size font-weight text-decoration text-transform color background-color';
  
  		// Removes any variables since these can't be previewed
  		function removeVars(val) {
  			return val.replace(/%(\w+)/g, '');
  		};
  
  		// Create block/inline element to use for preview
  		name = fmt.block || fmt.inline || 'span';
  		previewElm = dom.create(name);
  
  		// Add format styles to preview element
  		each(fmt.styles, function(value, name) {
  			value = removeVars(value);
  
  			if (value)
  				dom.setStyle(previewElm, name, value);
  		});
  
  		// Add attributes to preview element
  		each(fmt.attributes, function(value, name) {
  			value = removeVars(value);
  
  			if (value)
  				dom.setAttrib(previewElm, name, value);
  		});
  
  		// Add classes to preview element
  		each(fmt.classes, function(value) {
  			value = removeVars(value);
  
  			if (!dom.hasClass(previewElm, value))
  				dom.addClass(previewElm, value);
  		});
  
  		// Add the previewElm outside the visual area
  		dom.setStyles(previewElm, {position: 'absolute', left: -0xFFFF});
  		ed.getBody().appendChild(previewElm);
  
  		// Get parent container font size so we can compute px values out of em/% for older IE:s
  		parentFontSize = dom.getStyle(ed.getBody(), 'fontSize', true);
  		parentFontSize = /px$/.test(parentFontSize) ? parseInt(parentFontSize, 10) : 0;
  
  		each(previewStyles.split(' '), function(name) {
  			var value = dom.getStyle(previewElm, name, true);
  
  			// If background is transparent then check if the body has a background color we can use
  			if (name == 'background-color' && /transparent|rgba\s*\([^)]+,\s*0\)/.test(value)) {
  				value = dom.getStyle(ed.getBody(), name, true);
  
  				// Ignore white since it's the default color, not the nicest fix
  				if (dom.toHex(value).toLowerCase() == '#ffffff') {
  					return;
  				}
  			}
  
  			// Old IE won't calculate the font size so we need to do that manually
  			if (name == 'font-size') {
  				if (/em|%$/.test(value)) {
  					if (parentFontSize === 0) {
  						return;
  					}
  
  					// Convert font size from em/% to px
  					value = parseFloat(value, 10) / (/%$/.test(value) ? 100 : 1);
  					value = (value * parentFontSize) + 'px';
  				}
  			}
  
  			previewCss += name + ':' + value + ';';
  		});
  
  		dom.remove(previewElm);
  
  		return previewCss;
  	}
func_code_string: function getPreviewCss(ed, fmt) {
  		var name, previewElm, dom = ed.dom, previewCss = '', parentFontSize, previewStylesName;
  
  		previewStyles = ed.settings.preview_styles;
  
  		// No preview forced
  		if (previewStyles === false)
  			return '';
  
  		// Default preview
  		if (!previewStyles)
  			previewStyles = 'font-family font-size font-weight text-decoration text-transform color background-color';
  
  		// Removes any variables since these can't be previewed
  		function removeVars(val) {
  			return val.replace(/%(\w+)/g, '');
  		};
  
  		// Create block/inline element to use for preview
  		name = fmt.block || fmt.inline || 'span';
  		previewElm = dom.create(name);
  
  		// Add format styles to preview element
  		each(fmt.styles, function(value, name) {
  			value = removeVars(value);
  
  			if (value)
  				dom.setStyle(previewElm, name, value);
  		});
  
  		// Add attributes to preview element
  		each(fmt.attributes, function(value, name) {
  			value = removeVars(value);
  
  			if (value)
  				dom.setAttrib(previewElm, name, value);
  		});
  
  		// Add classes to preview element
  		each(fmt.classes, function(value) {
  			value = removeVars(value);
  
  			if (!dom.hasClass(previewElm, value))
  				dom.addClass(previewElm, value);
  		});
  
  		// Add the previewElm outside the visual area
  		dom.setStyles(previewElm, {position: 'absolute', left: -0xFFFF});
  		ed.getBody().appendChild(previewElm);
  
  		// Get parent container font size so we can compute px values out of em/% for older IE:s
  		parentFontSize = dom.getStyle(ed.getBody(), 'fontSize', true);
  		parentFontSize = /px$/.test(parentFontSize) ? parseInt(parentFontSize, 10) : 0;
  
  		each(previewStyles.split(' '), function(name) {
  			var value = dom.getStyle(previewElm, name, true);
  
  			// If background is transparent then check if the body has a background color we can use
  			if (name == 'background-color' && /transparent|rgba\s*\([^)]+,\s*0\)/.test(value)) {
  				value = dom.getStyle(ed.getBody(), name, true);
  
  				// Ignore white since it's the default color, not the nicest fix
  				if (dom.toHex(value).toLowerCase() == '#ffffff') {
  					return;
  				}
  			}
  
  			// Old IE won't calculate the font size so we need to do that manually
  			if (name == 'font-size') {
  				if (/em|%$/.test(value)) {
  					if (parentFontSize === 0) {
  						return;
  					}
  
  					// Convert font size from em/% to px
  					value = parseFloat(value, 10) / (/%$/.test(value) ? 100 : 1);
  					value = (value * parentFontSize) + 'px';
  				}
  			}
  
  			previewCss += name + ':' + value + ';';
  		});
  
  		dom.remove(previewElm);
  
  		return previewCss;
  	}
func_documentation_string: Generates a preview for a format