// 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		if ( document.all && ! HTMLArea.is_safari )	{		var value =			showModalDialog( url, init, "resizable: no; help: no; status: no; scroll: no" );				if ( action )			action(value);	}	else		Dialog._geckoOpenModal( url, action, init );}Dialog._parentEvent = function( ev ){	if ( Dialog._modal && !Dialog._modal.closed )	{		Dialog._modal.focus();				// we get here in Mozilla only, anyway, so we can safely use		// the DOM version.		ev.preventDefault();		ev.stopPropagation();	}}// 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, "ha_dialog",			      "toolbar=no,menubar=no,personalbar=no,width=10,height=10," +			      "scrollbars=no,resizable=no" );	Dialog._modal = dlg;	Dialog._arguments = init;		// make up a function to be called when the Dialog ends.	Dialog._return = function( val )	{		if ( val && action )			action( val );				relwin( window );				// release other frames		for ( i = 0; i < window.frames.length; relwin( window.frames[ i++ ] ) );				Dialog._modal = null;	};	// capture some window's events	function capwin( w )	{		w.addEventListener( "click", Dialog._parentEvent, true );		w.addEventListener( "mousedown", Dialog._parentEvent, true );		w.addEventListener( "focus", Dialog._parentEvent, true );	}		// release the captured events	function relwin( w )	{		w.removeEventListener( "focus", Dialog._parentEvent, true );		w.removeEventListener( "mousedown", Dialog._parentEvent, true );		w.removeEventListener( "click", Dialog._parentEvent, true );	}		capwin( window );		var i;		// capture other frames	for ( i = 0; i < window.frames.length; i++ )	{		capwin( window.frames[ i ] );	}};
