rem: var h, d, t1, t2, t3, t4, t5, c, s; 
add: var h, d, t1, t2, t3, t4, t5, c, s, nb; 
context: TinyMCE_Engine.prototype._cleanupHTML = function(inst, doc, config, elm, visual, on_save, on_submit, inn) {	var h, d, t1, t2, t3, t4, t5, c, s;	if (!tinyMCE.getParam('cleanup'))		return elm.innerHTML;	on_save = typeof(on_save) == 'undefined' ? false : on_save;	c = inst.cleanup;	s = inst.settings;	d = c.settings.debug;	if (d)		t1 = new Date().getTime();	if (tinyMCE.getParam("convert_fonts_to_spans"))		tinyMCE.convertFontsToSpans(doc);	if (tinyMCE.getParam("fix_list_elements"))		tinyMCE._fixListElements(doc);	if (tinyMCE.getParam("fix_table_elements"))		tinyMCE._fixTables(doc);	// Call custom cleanup code	tinyMCE._customCleanup(inst, on_save ? "get_from_editor_dom" : "insert_to_editor_dom", doc.body);	if (d)		t2 = new Date().getTime();	c.settings.on_save = on_save;	//for (var i=0; i<100; i++)	c.idCount = 0;	c.serializationId++;	c.serializedNodes = new Array();	c.sourceIndex = -1;	if (s.cleanup_serializer == "xml")		h = c.serializeNodeAsXML(elm, inn);	else		h = c.serializeNodeAsHTML(elm, inn);	if (d)		t3 = new Date().getTime();	// Post processing	h = h.replace(/<\/?(body|head|html)[^>]*>/gi, '');	h = h.replace(new RegExp(' (rowspan="1"|colspan="1")', 'g'), '');	h = h.replace(/<p><hr \/><\/p>/g, '<hr />');	h = h.replace(/<p>(&nbsp;|&#160;)<\/p><hr \/><p>(&nbsp;|&#160;)<\/p>/g, '<hr />');	h = h.replace(/<td>\s*<br \/>\s*<\/td>/g, '<td>&nbsp;</td>');	h = h.replace(/<p>\s*<br \/>\s*<\/p>/g, '<p>&nbsp;</p>');	h = h.replace(/<p>\s*(&nbsp;|&#160;)\s*<br \/>\s*(&nbsp;|&#160;)\s*<\/p>/g, '<p>&nbsp;</p>');	h = h.replace(/<p>\s*(&nbsp;|&#160;)\s*<br \/>\s*<\/p>/g, '<p>&nbsp;</p>');	h = h.replace(/<p>\s*<br \/>\s*&nbsp;\s*<\/p>/g, '<p>&nbsp;</p>');	h = h.replace(new RegExp('<a>(.*?)<\\/a>', 'g'), '$1');	h = h.replace(/<p([^>]*)>\s*<\/p>/g, '<p$1>&nbsp;</p>');	// Clean body	if (/^\s*(<br \/>|<p>&nbsp;<\/p>|<p>&#160;<\/p>|<p><\/p>)\s*$/.test(h))		h = '';	// If preformatted	if (s.preformatted) {		h = h.replace(/^<pre>/, '');		h = h.replace(/<\/pre>$/, '');		h = '<pre>' + h + '</pre>';	}	// Gecko specific processing	if (tinyMCE.isGecko) {		h = h.replace(/<o:p _moz-userdefined="" \/>/g, '');		h = h.replace(/<td([^>]*)>\s*<br \/>\s*<\/td>/g, '<td$1>&nbsp;</td>');	}	if (s.force_br_newlines)		h = h.replace(/<p>(&nbsp;|&#160;)<\/p>/g, '<br />');	// Call custom cleanup code	h = tinyMCE._customCleanup(inst, on_save ? "get_from_editor" : "insert_to_editor", h);	// Remove internal classes	if (on_save) {		h = h.replace(new RegExp(' ?(mceItem[a-zA-Z0-9]*|' + s.visual_table_class + ')', 'g'), '');		h = h.replace(new RegExp(' ?class=""', 'g'), '');	}	if (s.remove_linebreaks && !c.settings.indent)		h = h.replace(/\n|\r/g, ' ');	if (d)		t4 = new Date().getTime();	if (on_save && c.settings.indent)		h = c.formatHTML(h);	// If encoding (not recommended option)	if (on_submit && (s.encoding == "xml" || s.encoding == "html"))		h = c.xmlEncode(h);	if (d)		t5 = new Date().getTime();	if (c.settings.debug)		tinyMCE.debug("Cleanup in ms: Pre=" + (t2-t1) + ", Serialize: " + (t3-t2) + ", Post: " + (t4-t3) + ", Format: " + (t5-t4) + ", Sum: " + (t5-t1) + ".");	return h;};
meta: 2801	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/2801/3c26150e1a64cb09ec99f84b07fc866d3e28d08d/TinyMCE_Cleanup.class.js/clean/jscripts/tiny_mce/classes/TinyMCE_Cleanup.class.js