| 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
 | 
  
    | 2 | <html>
 | 
  
    | 3 |   <head>
 | 
  
    | 4 |     <title>Fullscreen HTMLArea</title>
 | 
  
    | 5 |     <script type="text/javascript">
 | 
  
    | 6 |       _editor_url = window.opener._editor_url;
 | 
  
    | 7 |       _editor_lang = window.opener._editor_lang;
 | 
  
    | 8 |       var BASE = window.opener.document.baseURI || window.opener.document.URL;
 | 
  
    | 9 |       var head = document.getElementsByTagName("head")[0];
 | 
  
    | 10 |       var base = document.createElement("base");
 | 
  
    | 11 |       base.href = BASE;
 | 
  
    | 12 |       head.appendChild(base);
 | 
  
    | 13 |     </script>
 | 
  
    | 14 | 
 | 
  
    | 15 |     <script type="text/javascript" src="../htmlarea.js"></script>
 | 
  
    | 16 | 
 | 
  
    | 17 |     <script type="text/javascript">
 | 
  
    | 18 | 	// load HTMLArea scripts that are present in the opener frame
 | 
  
    | 19 | 	var scripts = window.opener.HTMLArea._scripts;
 | 
  
    | 20 | 	for (var i = 4; i < scripts.length; ++i) {
 | 
  
    | 21 |            document.write("<scr" + "ipt type='text/javascript' src='" + scripts[i] + "'></scr" + "ipt>");
 | 
  
    | 22 |         }
 | 
  
    | 23 |     </script>
 | 
  
    | 24 | 
 | 
  
    | 25 |     <!-- browser takes a coffee break here -->
 | 
  
    | 26 |     <script type="text/javascript">
 | 
  
    | 27 | var parent_object  = null;
 | 
  
    | 28 | var editor	   = null;	// to be initialized later [ function init() ]
 | 
  
    | 29 | 
 | 
  
    | 30 | /* ---------------------------------------------------------------------- *\
 | 
  
    | 31 |    Function    : 
 | 
  
    | 32 |    Description : 
 | 
  
    | 33 | \* ---------------------------------------------------------------------- */
 | 
  
    | 34 | 
 | 
  
    | 35 | function _CloseOnEsc(ev) {
 | 
  
    | 36 | 	ev || (ev = window.event);
 | 
  
    | 37 | 	if (ev.keyCode == 27) {
 | 
  
    | 38 | 		// update_parent();
 | 
  
    | 39 | 		window.close();
 | 
  
    | 40 | 		return;
 | 
  
    | 41 | 	}
 | 
  
    | 42 | }
 | 
  
    | 43 | 
 | 
  
    | 44 | /* ---------------------------------------------------------------------- *\
 | 
  
    | 45 |    Function    : resize_editor
 | 
  
    | 46 |    Description : resize the editor when the user resizes the popup
 | 
  
    | 47 | \* ---------------------------------------------------------------------- */
 | 
  
    | 48 | 
 | 
  
    | 49 | function resize_editor() {  // resize editor to fix window
 | 
  
    | 50 | 	var newHeight;
 | 
  
    | 51 | 	if (document.all) {
 | 
  
    | 52 | 		// IE
 | 
  
    | 53 | 		newHeight = document.body.offsetHeight - editor._toolbar.offsetHeight;
 | 
  
    | 54 | 		if (newHeight < 0) { newHeight = 0; }
 | 
  
    | 55 | 	} else {
 | 
  
    | 56 | 		// Gecko
 | 
  
    | 57 | 		newHeight = window.innerHeight - editor._toolbar.offsetHeight;
 | 
  
    | 58 | 	}
 | 
  
    | 59 | 	if (editor.config.statusBar) {
 | 
  
    | 60 | 		newHeight -= editor._statusBar.offsetHeight;
 | 
  
    | 61 | 	}
 | 
  
    | 62 | 	editor._textArea.style.height = editor._iframe.style.height = newHeight + "px";
 | 
  
    | 63 | }
 | 
  
    | 64 | 
 | 
  
    | 65 | /* ---------------------------------------------------------------------- *\
 | 
  
    | 66 |    Function    : init
 | 
  
    | 67 |    Description : run this code on page load
 | 
  
    | 68 | \* ---------------------------------------------------------------------- */
 | 
  
    | 69 | 
 | 
  
    | 70 | function init() {
 | 
  
    | 71 | 	parent_object	   = opener.HTMLArea._object;
 | 
  
    | 72 | 	var config	   = HTMLArea.cloneObject( parent_object.config );
 | 
  
    | 73 | 	config.width	   = "100%";
 | 
  
    | 74 | 	config.height	   = "auto";
 | 
  
    | 75 | 
 | 
  
    | 76 | 	// change maximize button to minimize button
 | 
  
    | 77 | 	config.btnList["popupeditor"] = [ 'Minimize Editor', _editor_url + 'images/fullscreen_minimize.gif', true,
 | 
  
    | 78 | 					  function() { window.close(); } ];
 | 
  
    | 79 | 
 | 
  
    | 80 | 	// generate editor and resize it
 | 
  
    | 81 | 	editor = new HTMLArea("editor", config);
 | 
  
    | 82 | 
 | 
  
    | 83 | 	// register the plugins, if any
 | 
  
    | 84 | 	for (var i in parent_object.plugins) {
 | 
  
    | 85 | 		var plugin = parent_object.plugins[i];
 | 
  
    | 86 | 		editor.registerPlugin2(plugin.name, plugin.args);
 | 
  
    | 87 | 	}
 | 
  
    | 88 | 	// and restore the original toolbar
 | 
  
    | 89 |         config.toolbar = parent_object.config.toolbar;
 | 
  
    | 90 | 	editor.generate();
 | 
  
    | 91 | 	editor._iframe.style.width = "100%";
 | 
  
    | 92 | 	editor._textArea.style.width = "100%";
 | 
  
    | 93 | 	resize_editor();
 | 
  
    | 94 | 
 | 
  
    | 95 | 	editor.doctype = parent_object.doctype;
 | 
  
    | 96 | 
 | 
  
    | 97 | 	// set child window contents and event handlers, after a small delay
 | 
  
    | 98 | 	setTimeout(function() {
 | 
  
    | 99 | 			   editor.setHTML(parent_object.getInnerHTML());
 | 
  
    | 100 | 
 | 
  
    | 101 | 			   // switch mode if needed
 | 
  
    | 102 | 			   if (parent_object._mode == "textmode") { editor.setMode("textmode"); }
 | 
  
    | 103 | 
 | 
  
    | 104 | 			   // continuously update parent editor window
 | 
  
    | 105 | 			   setInterval(update_parent, 500);
 | 
  
    | 106 | 
 | 
  
    | 107 | 			   // setup event handlers
 | 
  
    | 108 | 			   document.body.onkeypress = _CloseOnEsc;
 | 
  
    | 109 | 			   editor._doc.body.onkeypress = _CloseOnEsc;
 | 
  
    | 110 | 			   editor._textArea.onkeypress = _CloseOnEsc;
 | 
  
    | 111 | 			   window.onresize = resize_editor;
 | 
  
    | 112 | 		   }, 333);			 // give it some time to meet the new frame
 | 
  
    | 113 | }
 | 
  
    | 114 | 
 | 
  
    | 115 | /* ---------------------------------------------------------------------- *\
 | 
  
    | 116 |    Function    : update_parent
 | 
  
    | 117 |    Description : update parent window editor field with contents from child window
 | 
  
    | 118 |    \* ---------------------------------------------------------------------- */
 | 
  
    | 119 | 
 | 
  
    | 120 | function update_parent() {
 | 
  
    | 121 | 	// use the fast version
 | 
  
    | 122 | 	parent_object.setHTML(editor.getInnerHTML());
 | 
  
    | 123 | }
 | 
  
    | 124 | 
 | 
  
    | 125 |     </script>
 | 
  
    | 126 |     <style type="text/css"> html, body { height: 100%; margin: 0px; border: 0px; background-color: buttonface; } </style>
 | 
  
    | 127 |   </head>
 | 
  
    | 128 |   <body scroll="no" onload="setTimeout(function(){init();}, 500)" onunload="update_parent()">
 | 
  
    | 129 |     <form style="margin: 0px; border: 1px solid; border-color: threedshadow threedhighlight threedhighlight threedshadow;">
 | 
  
    | 130 |       <textarea name="editor" id="editor" style="width:100%; height:300px"> </textarea>
 | 
  
    | 131 |     </form>
 | 
  
    | 132 |   </body>
 | 
  
    | 133 | </html>
 |