whole_func_string: function(s, tb, o, p) {
  			var t = this, ed = t.editor, lo = s.theme_advanced_toolbar_location, sl = s.theme_advanced_statusbar_location, n, ic, etb, c;
  
  			if (s.readonly) {
  				n = DOM.add(tb, 'tr');
  				n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});
  				return ic;
  			}
  
  			// Create toolbar container at top
  			if (lo == 'top')
  				t._addToolbars(tb, o);
  
  			// Create external toolbar
  			if (lo == 'external') {
  				n = c = DOM.create('div', {style : 'position:relative'});
  				n = DOM.add(n, 'div', {id : ed.id + '_external', 'class' : 'mceExternalToolbar'});
  				DOM.add(n, 'a', {id : ed.id + '_external_close', href : 'javascript:;', 'class' : 'mceExternalClose'});
  				n = DOM.add(n, 'table', {id : ed.id + '_tblext', cellSpacing : 0, cellPadding : 0});
  				etb = DOM.add(n, 'tbody');
  
  				if (p.firstChild.className == 'mceOldBoxModel')
  					p.firstChild.appendChild(c);
  				else
  					p.insertBefore(c, p.firstChild);
  
  				t._addToolbars(etb, o);
  
  				ed.onMouseUp.add(function() {
  					var e = DOM.get(ed.id + '_external');
  					DOM.show(e);
  
  					DOM.hide(lastExtID);
  
  					var f = Event.add(ed.id + '_external_close', 'click', function() {
  						DOM.hide(ed.id + '_external');
  						Event.remove(ed.id + '_external_close', 'click', f);
  						return false;
  					});
  
  					DOM.show(e);
  					DOM.setStyle(e, 'top', 0 - DOM.getRect(ed.id + '_tblext').h - 1);
  
  					// Fixes IE rendering bug
  					DOM.hide(e);
  					DOM.show(e);
  					e.style.filter = '';
  
  					lastExtID = ed.id + '_external';
  
  					e = null;
  				});
  			}
  
  			if (sl == 'top')
  				t._addStatusBar(tb, o);
  
  			// Create iframe container
  			if (!s.theme_advanced_toolbar_container) {
  				n = DOM.add(tb, 'tr');
  				n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});
  			}
  
  			// Create toolbar container at bottom
  			if (lo == 'bottom')
  				t._addToolbars(tb, o);
  
  			if (sl == 'bottom')
  				t._addStatusBar(tb, o);
  
  			return ic;
  		}
func_code_string: function(s, tb, o, p) {
  			var t = this, ed = t.editor, lo = s.theme_advanced_toolbar_location, sl = s.theme_advanced_statusbar_location, n, ic, etb, c;
  
  			if (s.readonly) {
  				n = DOM.add(tb, 'tr');
  				n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});
  				return ic;
  			}
  
  			// Create toolbar container at top
  			if (lo == 'top')
  				t._addToolbars(tb, o);
  
  			// Create external toolbar
  			if (lo == 'external') {
  				n = c = DOM.create('div', {style : 'position:relative'});
  				n = DOM.add(n, 'div', {id : ed.id + '_external', 'class' : 'mceExternalToolbar'});
  				DOM.add(n, 'a', {id : ed.id + '_external_close', href : 'javascript:;', 'class' : 'mceExternalClose'});
  				n = DOM.add(n, 'table', {id : ed.id + '_tblext', cellSpacing : 0, cellPadding : 0});
  				etb = DOM.add(n, 'tbody');
  
  				if (p.firstChild.className == 'mceOldBoxModel')
  					p.firstChild.appendChild(c);
  				else
  					p.insertBefore(c, p.firstChild);
  
  				t._addToolbars(etb, o);
  
  				ed.onMouseUp.add(function() {
  					var e = DOM.get(ed.id + '_external');
  					DOM.show(e);
  
  					DOM.hide(lastExtID);
  
  					var f = Event.add(ed.id + '_external_close', 'click', function() {
  						DOM.hide(ed.id + '_external');
  						Event.remove(ed.id + '_external_close', 'click', f);
  						return false;
  					});
  
  					DOM.show(e);
  					DOM.setStyle(e, 'top', 0 - DOM.getRect(ed.id + '_tblext').h - 1);
  
  					// Fixes IE rendering bug
  					DOM.hide(e);
  					DOM.show(e);
  					e.style.filter = '';
  
  					lastExtID = ed.id + '_external';
  
  					e = null;
  				});
  			}
  
  			if (sl == 'top')
  				t._addStatusBar(tb, o);
  
  			// Create iframe container
  			if (!s.theme_advanced_toolbar_container) {
  				n = DOM.add(tb, 'tr');
  				n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});
  			}
  
  			// Create toolbar container at bottom
  			if (lo == 'bottom')
  				t._addToolbars(tb, o);
  
  			if (sl == 'bottom')
  				t._addStatusBar(tb, o);
  
  			return ic;
  		}
func_documentation_string: Internal functions