rem: customUndoLevels = tinyMCE.settings['custom_undo_redo_levels']; 
add: customUndoLevels = tinyMCE.settings.custom_undo_redo_levels; 
context: 	add : function(l) {		var b, customUndoLevels, newHTML, inst = this.instance, i, ul, ur;		if (l) {			this.undoLevels[this.undoLevels.length] = l;			return true;		}		if (this.typingUndoIndex != -1) {			this.undoIndex = this.typingUndoIndex;			if (tinyMCE.typingUndoIndex != -1)				tinyMCE.undoIndex = tinyMCE.typingUndoIndex;		}		newHTML = tinyMCE.trim(inst.getBody().innerHTML);		if (this.undoLevels[this.undoIndex] && newHTML != this.undoLevels[this.undoIndex].content) {			//tinyMCE.debug(newHTML, this.undoLevels[this.undoIndex].content);			tinyMCE.dispatchCallback(inst, 'onchange_callback', 'onChange', inst);			// Time to compress			customUndoLevels = tinyMCE.settings['custom_undo_redo_levels'];			if (customUndoLevels != -1 && this.undoLevels.length > customUndoLevels) {				for (i=0; i<this.undoLevels.length-1; i++)					this.undoLevels[i] = this.undoLevels[i+1];				this.undoLevels.length--;				this.undoIndex--;				// Todo: Implement global undo/redo logic here			}			b = inst.undoBookmark;			if (!b)				b = inst.selection.getBookmark();			this.undoIndex++;			this.undoLevels[this.undoIndex] = {				content : newHTML,				bookmark : b			};			// Remove all above from global undo/redo			ul = tinyMCE.undoLevels;			for (i=tinyMCE.undoIndex + 1; i<ul.length; i++) {				ur = ul[i].undoRedo;				if (ur.undoIndex == ur.undoLevels.length -1)					ur.undoIndex--;				ur.undoLevels.length--;			}			// Add global undo level			tinyMCE.undoLevels[tinyMCE.undoIndex++] = inst;			tinyMCE.undoLevels.length = tinyMCE.undoIndex;			this.undoLevels.length = this.undoIndex + 1;			return true;		}		return false;	},
meta: 3891	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/3891/e8e3862e104280a24076077196c7b5713720de70/tiny_mce_src.js/buggy/plugins/editors/tinymce/jscripts/tiny_mce/tiny_mce_src.js