whole_func_string: function() {
  			var ed = this.editor, formObj, os, i, elementId;
  
  			formObj = tinymce.DOM.get(ed.id).form || tinymce.DOM.getParent(ed.id, 'form');
  
  			if (ed.getParam("save_enablewhendirty") && !ed.isDirty())
  				return;
  
  			tinyMCE.triggerSave();
  
  			// Use callback instead
  			if (os = ed.getParam("save_onsavecallback")) {
  				if (ed.execCallback('save_onsavecallback', ed)) {
  					ed.startContent = tinymce.trim(ed.getContent({format : 'raw'}));
  					ed.nodeChanged();
  				}
  
  				return;
  			}
  
  			if (formObj) {
  				ed.isNotDirty = true;
  
  				if (formObj.onsubmit == null || formObj.onsubmit() != false)
  					formObj.submit();
  
  				ed.nodeChanged();
  			} else
  				ed.windowManager.alert("Error: No form element found.");
  		}
func_code_string: function() {
  			var ed = this.editor, formObj, os, i, elementId;
  
  			formObj = tinymce.DOM.get(ed.id).form || tinymce.DOM.getParent(ed.id, 'form');
  
  			if (ed.getParam("save_enablewhendirty") && !ed.isDirty())
  				return;
  
  			tinyMCE.triggerSave();
  
  			// Use callback instead
  			if (os = ed.getParam("save_onsavecallback")) {
  				if (ed.execCallback('save_onsavecallback', ed)) {
  					ed.startContent = tinymce.trim(ed.getContent({format : 'raw'}));
  					ed.nodeChanged();
  				}
  
  				return;
  			}
  
  			if (formObj) {
  				ed.isNotDirty = true;
  
  				if (formObj.onsubmit == null || formObj.onsubmit() != false)
  					formObj.submit();
  
  				ed.nodeChanged();
  			} else
  				ed.windowManager.alert("Error: No form element found.");
  		}
func_documentation_string: Private methods