whole_func_string: function(pl, o) {
  			var t = this, ed = t.editor, dom = ed.dom, styleProps;
  
  			if (ed.settings.paste_enable_default_filters == false) {
  				return;
  			}
  			
  			if (o.wordContent) {
  				// Remove named anchors or TOC links
  				each(dom.select('a', o.node), function(a) {
  					if (!a.href || a.href.indexOf('#_Toc') != -1)
  						dom.remove(a, 1);
  				});
  
  				if (getParam(ed, "paste_convert_middot_lists")) {
  					t._convertLists(pl, o);
  				}
  
  				// Process styles
  				styleProps = getParam(ed, "paste_retain_style_properties"); // retained properties
  
  				// Process only if a string was specified and not equal to "all" or "*"
  				if ((tinymce.is(styleProps, "string")) && (styleProps !== "all") && (styleProps !== "*")) {
  					styleProps = tinymce.explode(styleProps.replace(/^none$/i, ""));
  
  					// Retains some style properties
  					each(dom.select('*', o.node), function(el) {
  						var newStyle = {}, npc = 0, i, sp, sv;
  
  						// Store a subset of the existing styles
  						if (styleProps) {
  							for (i = 0; i < styleProps.length; i++) {
  								sp = styleProps[i];
  								sv = dom.getStyle(el, sp);
  
  								if (sv) {
  									newStyle[sp] = sv;
  									npc++;
  								}
  							}
  						}
  
  						// Remove all of the existing styles
  						dom.setAttrib(el, 'style', '');
  
  						if (styleProps && npc > 0)
  							dom.setStyles(el, newStyle); // Add back the stored subset of styles
  						else // Remove empty span tags that do not have class attributes
  							if (el.nodeName == 'SPAN' && !el.className)
  								dom.remove(el, true);
  					});
  				}
  			}
  
  			// Remove all style information or only specifically on WebKit to avoid the style bug on that browser
  			if (getParam(ed, "paste_remove_styles") || (getParam(ed, "paste_remove_styles_if_webkit") && tinymce.isWebKit)) {
  				each(dom.select('*[style]', o.node), function(el) {
  					el.removeAttribute('style');
  					el.removeAttribute('data-mce-style');
  				});
  			} else {
  				if (tinymce.isWebKit) {
  					// We need to compress the styles on WebKit since if you paste <img border="0" /> it will become <img border="0" style="... lots of junk ..." />
  					// Removing the mce_style that contains the real value will force the Serializer engine to compress the styles
  					each(dom.select('*', o.node), function(el) {
  						el.removeAttribute('data-mce-style');
  					});
  				}
  			}
  		}
func_code_string: function(pl, o) {
  			var t = this, ed = t.editor, dom = ed.dom, styleProps;
  
  			if (ed.settings.paste_enable_default_filters == false) {
  				return;
  			}
  			
  			if (o.wordContent) {
  				// Remove named anchors or TOC links
  				each(dom.select('a', o.node), function(a) {
  					if (!a.href || a.href.indexOf('#_Toc') != -1)
  						dom.remove(a, 1);
  				});
  
  				if (getParam(ed, "paste_convert_middot_lists")) {
  					t._convertLists(pl, o);
  				}
  
  				// Process styles
  				styleProps = getParam(ed, "paste_retain_style_properties"); // retained properties
  
  				// Process only if a string was specified and not equal to "all" or "*"
  				if ((tinymce.is(styleProps, "string")) && (styleProps !== "all") && (styleProps !== "*")) {
  					styleProps = tinymce.explode(styleProps.replace(/^none$/i, ""));
  
  					// Retains some style properties
  					each(dom.select('*', o.node), function(el) {
  						var newStyle = {}, npc = 0, i, sp, sv;
  
  						// Store a subset of the existing styles
  						if (styleProps) {
  							for (i = 0; i < styleProps.length; i++) {
  								sp = styleProps[i];
  								sv = dom.getStyle(el, sp);
  
  								if (sv) {
  									newStyle[sp] = sv;
  									npc++;
  								}
  							}
  						}
  
  						// Remove all of the existing styles
  						dom.setAttrib(el, 'style', '');
  
  						if (styleProps && npc > 0)
  							dom.setStyles(el, newStyle); // Add back the stored subset of styles
  						else // Remove empty span tags that do not have class attributes
  							if (el.nodeName == 'SPAN' && !el.className)
  								dom.remove(el, true);
  					});
  				}
  			}
  
  			// Remove all style information or only specifically on WebKit to avoid the style bug on that browser
  			if (getParam(ed, "paste_remove_styles") || (getParam(ed, "paste_remove_styles_if_webkit") && tinymce.isWebKit)) {
  				each(dom.select('*[style]', o.node), function(el) {
  					el.removeAttribute('style');
  					el.removeAttribute('data-mce-style');
  				});
  			} else {
  				if (tinymce.isWebKit) {
  					// We need to compress the styles on WebKit since if you paste <img border="0" /> it will become <img border="0" style="... lots of junk ..." />
  					// Removing the mce_style that contains the real value will force the Serializer engine to compress the styles
  					each(dom.select('*', o.node), function(el) {
  						el.removeAttribute('data-mce-style');
  					});
  				}
  			}
  		}
func_documentation_string: Various post process items.