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;
		}
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;
			}

			
			if (lo == 'top')
				t._addToolbars(tb, o);

			
			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);

					
					DOM.hide(e);
					DOM.show(e);
					e.style.filter = '';

					lastExtID = ed.id + '_external';

					e = null;
				});
			}

			if (sl == 'top')
				t._addStatusBar(tb, o);

			
			if (!s.theme_advanced_toolbar_container) {
				n = DOM.add(tb, 'tr');
				n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});
			}

			
			if (lo == 'bottom')
				t._addToolbars(tb, o);

			if (sl == 'bottom')
				t._addStatusBar(tb, o);

			return ic;
		}
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 ; }
Internal functions
Internal functions