home *** CD-ROM | disk | FTP | other *** search
- // htmlArea v3.0 - Copyright (c) 2003-2004 interactivetools.com, inc.
- // This copyright notice MUST stay intact for use (see license.txt).
- //
- // Portions (c) dynarch.com, 2003-2004
- //
- // A free WYSIWYG editor replacement for <textarea> fields.
- // For full source code and docs, visit http://www.interactivetools.com/
- //
- // Version 3.0 developed by Mihai Bazon.
- // http://dynarch.com/mishoo
- //
- // $Id: dialog.js,v 1.5 2004/03/03 11:22:40 mschering Exp $
-
- // Though "Dialog" looks like an object, it isn't really an object. Instead
- // it's just namespace for protecting global symbols.
-
- function Dialog(url, action, init) {
- if (typeof init == "undefined") {
- init = window; // pass this window object by default
- }
- Dialog._geckoOpenModal(url, action, init);
- };
-
- Dialog._parentEvent = function(ev) {
- setTimeout( function() { if (Dialog._modal && !Dialog._modal.closed) { Dialog._modal.focus() } }, 50);
- if (Dialog._modal && !Dialog._modal.closed) {
- HTMLArea._stopEvent(ev);
- }
- };
-
-
- // should be a function, the return handler of the currently opened dialog.
- Dialog._return = null;
-
- // constant, the currently opened dialog
- Dialog._modal = null;
-
- // the dialog will read it's args from this variable
- Dialog._arguments = null;
-
- Dialog._geckoOpenModal = function(url, action, init) {
- var dlg = window.open(url, "hadialog",
- "toolbar=no,menubar=no,personalbar=no,width=10,height=10," +
- "scrollbars=no,resizable=yes");
- Dialog._modal = dlg;
- Dialog._arguments = init;
-
- // capture some window's events
- function capwin(w) {
- HTMLArea._addEvent(w, "click", Dialog._parentEvent);
- HTMLArea._addEvent(w, "mousedown", Dialog._parentEvent);
- HTMLArea._addEvent(w, "focus", Dialog._parentEvent);
- };
- // release the captured events
- function relwin(w) {
- HTMLArea._removeEvent(w, "click", Dialog._parentEvent);
- HTMLArea._removeEvent(w, "mousedown", Dialog._parentEvent);
- HTMLArea._removeEvent(w, "focus", Dialog._parentEvent);
- };
- capwin(window);
- // capture other frames
- for (var i = 0; i < window.frames.length; capwin(window.frames[i++]));
- // make up a function to be called when the Dialog ends.
- Dialog._return = function (val) {
- if (val && action) {
- action(val);
- }
- relwin(window);
- // capture other frames
- for (var i = 0; i < window.frames.length; relwin(window.frames[i++]));
- Dialog._modal = null;
- };
- };
-