Index: typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js
===================================================================
--- typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js	(révision 10426)
+++ typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js	(copie de travail)
@@ -4924,422 +4924,4 @@
 		};
 	}
 });
-
-/**
- * HTMLArea.Dialog class
- *********************************************
- * THIS OBJECT IS DEPRECATED AS OF TYPO3 4.4 *
- *********************************************
- */
-HTMLArea.Dialog = HTMLArea.Base.extend({
-
-	/**
-	 * HTMLArea.Dialog constructor
-	 *
-	 * @param	object		plugin: reference to the invoking plugin
-	 * @param	string		buttonId: buttonId triggering the opening of the dialog
-	 * @param	string		url: url of the html document to load into the dialog window
-	 * @param	function	action: function to be executed when the the dialog ends
-	 * @param	object		arguments: object of variable type to be passed to the dialog
-	 * @param	object		dimensions: object giving the width and height of the dialog window
-	 * @param	string		showScrollbars: specifies by "yes" or "no" whether or not the dialog window should have scrollbars
-	 * @param	object		dialogOpener: reference to the opener window
-	 *
-	 * @return	boolean		true if the dialog window was opened
-	 */
-	constructor : function (plugin, buttonId, url, action, arguments, dimensions, showScrollbars, dialogOpener) {
-		this.window = window.window ? window.window : window.self;
-		this.plugin = plugin;
-		this.buttonId = buttonId;
-		this.action = action;
-		if (typeof(arguments) !== "undefined") {
-			this.arguments = arguments;
-		}
-		this.plugin.dialog = this;
-
-		if (HTMLArea.Dialog[this.plugin.name] && HTMLArea.Dialog[this.plugin.name].hasOpenedWindow() && HTMLArea.Dialog[this.plugin.name].plugin != this.plugin) {
-			HTMLArea.Dialog[this.plugin.name].close();
-		}
-		HTMLArea.Dialog[this.plugin.name] = this;
-		this.dialogWindow = window.open(url, this.plugin.name + "Dialog", "toolbar=no,location=no,directories=no,menubar=no,resizable=yes,top=" + dimensions.top + ",left=" + dimensions.left + ",dependent=yes,dialog=yes,chrome=no,width=" + dimensions.width + ",height=" + dimensions.height + ",scrollbars=" + showScrollbars);
-		if (!this.dialogWindow) {
-			this.plugin.appendToLog("openDialog", "Dialog window could not be opened with url " + url);
-			return false;
-		}
-
-		if (typeof(dialogOpener) !== "undefined") {
-			this.dialogWindow.opener = dialogOpener;
-			this.dialogWindow.opener.openedDialog = this;
-		}
-		if (!this.dialogWindow.opener) {
-			this.dialogWindow.opener = this.window;
-		}
-		return true;
-	},
-	/**
-	 * Adds OK and Cancel buttons to the dialogue window
-	 *
-	 * @return	void
-	 */
-	addButtons : function() {
-		var self = this;
-		var div = this.document.createElement("div");
-		this.content.appendChild(div);
-		div.className = "buttons";
-		for (var i = 0; i < arguments.length; ++i) {
-			var btn = arguments[i];
-			var button = this.document.createElement("button");
-			div.appendChild(button);
-			switch (btn) {
-				case "ok":
-					button.innerHTML = this.plugin.localize("OK");
-					button.onclick = function() {
-						try {
-							self.callFormInputHandler();
-						} catch(e) { };
-						return false;
-					};
-					break;
-				case "cancel":
-					button.innerHTML = this.plugin.localize("Cancel");
-					button.onclick = function() {
-						self.close();
-						return false;
-					};
-					break;
-			}
-		}
-	},
-
-	/**
-	 * Call the form input handler
-	 *
-	 * @return	boolean		false
-	 */
-	callFormInputHandler : function() {
-		var tags = ["input", "textarea", "select"];
-		var params = new Object();
-		for (var ti = tags.length; --ti >= 0;) {
-			var tag = tags[ti];
-			var els = this.content.getElementsByTagName(tag);
-			for (var j = 0; j < els.length; ++j) {
-				var el = els[j];
-				var val = el.value;
-				if (el.nodeName.toLowerCase() == "input") {
-					if (el.type == "checkbox") {
-						val = el.checked;
-					}
-				}
-				params[el.name] = val;
-			}
-		}
-		this.action(this, params);
-		return false;
-	},
-
-	/**
-	 * Cheks if the dialogue has an open dialogue window
-	 *
-	 * @return	boolean		true if the dialogue has an open window
-	 */
-	hasOpenedWindow : function () {
-		return this.dialogWindow && !this.dialogWindow.closed;
-	},
-
-	/**
-	 * Initialize the dialog window: load the stylesheets, localize labels, resize if required, etc.
-	 * This function MUST be invoked from the dialog window in the onLoad event handler
-	 *
-	 * @param	boolean		noResize: if true the window in not resized, but may be centered
-	 *
-	 * @return	void
-	 */
-	initialize : function (noLocalize, noResize, noStyle) {
-		this.dialogWindow.HTMLArea = HTMLArea;
-		this.dialogWindow.dialog = this;
-			// Capture unload and escape events
-		this.captureEvents();
-			// Get stylesheets for the dialog window
-		if (!noStyle) this.loadStyle();
-			// Localize the labels of the popup window
-		if (!noLocalize) this.localize();
-			// Resize the dialog window to its contents
-		if (!noResize) this.resize(noResize);
-	},
-	/**
-	 * Load the stylesheets in the dialog window
-	 *
-	 * @return	void
-	 */
-	loadStyle : function () {
-		var head = this.dialogWindow.document.getElementsByTagName("head")[0];
-		var link = this.dialogWindow.document.createElement("link");
-		link.rel = "stylesheet";
-		link.type = "text/css";
-		link.href = HTMLArea.editorCSS;
-		if (link.href.indexOf("http") == -1 && !Ext.isIE) link.href = HTMLArea.hostUrl + link.href;
-		head.appendChild(link);
-	},
-
-	/**
-	 * Localize the labels contained in the dialog window
-	 *
-	 * @return	void
-	 */
-	localize : function () {
-		var label;
-		var types = ["input", "label", "option", "select", "legend", "span", "td", "button", "div", "h1", "h2", "a"];
-		for (var type = 0; type < types.length; ++type) {
-			var elements = this.dialogWindow.document.getElementsByTagName(types[type]);
-			for (var i = elements.length; --i >= 0;) {
-				var element = elements[i];
-				if (element.firstChild && element.firstChild.data) {
-					label = this.plugin.localize(element.firstChild.data);
-					if (label) element.firstChild.data = label;
-				}
-				if (element.title) {
-					label = this.plugin.localize(element.title);
-					if (label) element.title = label;
-				}
-					// resetting the selected option for Mozilla
-				if (types[type] == "option" && element.selected ) {
-					element.selected = false;
-					element.selected = true;
-				}
-			}
-		}
-		label = this.plugin.localize(this.dialogWindow.document.title);
-		if (label) this.dialogWindow.document.title = label;
-	},
-
-	/**
-	 * Resize the dialog window to its contents
-	 *
-	 * @param	boolean		noResize: if true the window in not resized, but may be centered
-	 *
-	 * @return	void
-	 */
-	resize : function (noResize) {
-		var buttonConfiguration = this.plugin.editorConfiguration.buttons[this.plugin.editorConfiguration.convertButtonId[this.buttonId]];
-		if (!this.plugin.editorConfiguration.dialogueWindows.doNotResize
-				&& (!buttonConfiguration  || !buttonConfiguration.dialogueWindow || !buttonConfiguration.dialogueWindow.doNotResize)) {
-				// Resize if allowed
-			var dialogWindow = this.dialogWindow;
-			var doc = dialogWindow.document;
-			var content = doc.getElementById("content");
-				// As of Google Chrome build 1798, window resizeTo and resizeBy are completely erratic: do nothing
-			if (Ext.isGecko || ((Ext.isIE || Ext.isOpera || (Ext.isWebKit && !Ext.isChrome)) && content)) {
-				var self = this;
-				setTimeout( function() {
-					if (!noResize) {
-						if (content) {
-							self.resizeToContent(content);
-						} else if (dialogWindow.sizeToContent) {
-							dialogWindow.sizeToContent();
-						}
-					}
-					self.centerOnParent();
-				}, 75);
-			} else if (!noResize) {
-				var body = doc.body;
-				if (Ext.isIE) {
-					var innerX = (doc.documentElement && doc.documentElement.clientWidth) ? doc.documentElement.clientWidth : body.clientWidth;
-					var innerY = (doc.documentElement && doc.documentElement.clientHeight) ? doc.documentElement.clientHeight : body.clientHeight;
-					var pageY = Math.max(body.scrollHeight, body.offsetHeight);
-					if (innerY == pageY) {
-						dialogWindow.resizeTo(body.scrollWidth, body.scrollHeight + 80);
-					} else {
-						dialogWindow.resizeBy((innerX < body.scrollWidth) ? (Math.max(body.scrollWidth, body.offsetWidth) - innerX) : 0, (body.scrollHeight - body.offsetHeight));
-					}
-					// As of Google Chrome build 1798, window resizeTo and resizeBy are completely erratic: do nothing
-				} else if (Ext.isSafari || Ext.isOpera) {
-					dialogWindow.resizeTo(dialogWindow.innerWidth, body.offsetHeight + 10);
-					if (dialogWindow.innerHeight < body.scrollHeight) {
-						dialogWindow.resizeBy(0, (body.scrollHeight - dialogWindow.innerHeight) + 10);
-					}
-				}
-				this.centerOnParent();
-			} else {
-				this.centerOnParent();
-			}
-		} else {
-			this.centerOnParent();
-		}
-	},
-
-	/**
-	 * Resize the Opera dialog window to its contents, based on size of content div
-	 *
-	 * @param	object		content: reference to the div (may also be form) section containing the contents of the dialog window
-	 *
-	 * @return	void
-	 */
-	resizeToContent : function(content) {
-		var dialogWindow = this.dialogWindow;
-		var doc = dialogWindow.document;
-		var docElement = doc.documentElement;
-		var body = doc.body;
-		var width = 0, height = 0;
-
-		var contentWidth = content.offsetWidth;
-		var contentHeight = content.offsetHeight;
-		if (Ext.isGecko || Ext.isWebKit) {
-			dialogWindow.resizeTo(contentWidth, contentHeight + (Ext.isWebKit ? 40 : (Ext.isGecko2 ? 75 : 95)));
-		} else {
-			dialogWindow.resizeTo(contentWidth + 200, contentHeight + 200);
-			if (dialogWindow.innerWidth) {
-				width = dialogWindow.innerWidth;
-				height = dialogWindow.innerHeight;
-			} else if (docElement && docElement.clientWidth) {
-				width = docElement.clientWidth;
-				height = docElement.clientHeight;
-			} else if (body && body.clientWidth) {
-				width = body.clientWidth;
-				height = body.clientHeight;
-			}
-			dialogWindow.resizeTo(contentWidth + ((contentWidth + 200 ) - width), contentHeight + ((contentHeight + 200) - (height - 16)));
-		}
-	},
-
-	/**
-	 * Center the dialogue window on the parent window
-	 *
-	 * @return	void
-	 */
-	centerOnParent : function () {
-		var buttonConfiguration = this.plugin.editorConfiguration.buttons[this.plugin.editorConfiguration.convertButtonId[this.buttonId]];
-		if (!this.plugin.editorConfiguration.dialogueWindows.doNotCenter && (!buttonConfiguration  || !buttonConfiguration.dialogueWindow || !buttonConfiguration.dialogueWindow.doNotCenter)) {
-			var dialogWindow = this.dialogWindow;
-			var doc = dialogWindow.document;
-			var body = doc.body;
-				// Center on parent if allowed
-			if (!Ext.isIE) {
-				var x = dialogWindow.opener.screenX + (dialogWindow.opener.outerWidth - dialogWindow.outerWidth) / 2;
-				var y = dialogWindow.opener.screenY + (dialogWindow.opener.outerHeight - dialogWindow.outerHeight) / 2;
-			} else {
-				var W = body.offsetWidth;
-				var H = body.offsetHeight;
-				var x = (screen.availWidth - W) / 2;
-				var y = (screen.availHeight - H) / 2;
-			}
-				// As of build 1798, Google Chrome moveTo breaks the window dimensions: do nothing
-			if (!Ext.isChrome) {
-				try {
-					dialogWindow.moveTo(x, y);
-				} catch(e) { }
-			}
-		}
-	},
-
-	/**
-	 * Perform the action function when the dialog end
-	 *
-	 * @return	void
-	 */
-	performAction : function (val) {
-		if (val && this.action) {
-			this.action(val);
-		}
-	},
-
-	/**
-	 * Bring the focus on the dialog window
-	 *
-	 * @return	void
-	 */
-	focus : function () {
-		if (this.hasOpenedWindow()) {
-			this.dialogWindow.focus();
-		}
-	},
-	/**
-	 * Close the dialog window
-	 *
-	 * @return	void
-	 */
-	close : function () {
-		if (this.dialogWindow) {
-			try {
-				if (this.dialogWindow.openedDialog) {
-					this.dialogWindow.openedDialog.close();
-				}
-			} catch(e) { }
-			HTMLArea.Dialog[this.plugin.name] = null;
-			if (!this.dialogWindow.closed) {
-				this.dialogWindow.dialog = null;
-				if (Ext.isWebKit || Ext.isIE) {
-					this.dialogWindow.blur();
-				}
-				this.dialogWindow.close();
-					// Safari 3.1.2 does not set the closed flag
-				if (!this.dialogWindow.closed) {
-					this.dialogWindow = null;
-				}
-			}
-				// Opera unload event may be triggered after the editor iframe is gone
-			if (this.plugin.editor._iframe) {
-				this.plugin.editor.toolbar.update();
-			}
-		}
-		return false;
-	},
-
-	/**
-	 * Make function reference in order to avoid memory leakage in IE
-	 *
-	 * @param	string		functionName: the name of the dialog function to be invoked
-	 *
-	 * @return	function	function definition invoking the specified function of the dialog
-	 */
-	makeFunctionReference : function (functionName) {
-		var self = this;
-		return (function(arg1, arg2) {
-			self[functionName](arg1, arg2);});
-	},
-
-	/**
-	 * Escape event handler
-	 *
-	 * @param	object		ev: the event
-	 *
-	 * @return	boolean		false if the event was handled
-	 */
-	closeOnEscape : function(event) {
-		var ev = event.browserEvent;
-		if (ev.keyCode == 27) {
-			if (!Ext.isIE) {
-				var parentWindow = ev.currentTarget.defaultView;
-			} else {
-				var parentWindow = ev.srcElement.parentNode.parentNode.parentWindow;
-			}
-			if (parentWindow && parentWindow.dialog) {
-					// If the dialogue window as an onEscape function, invoke it
-				if (typeof(parentWindow.onEscape) == "function") {
-					parentWindow.onEscape(ev);
-				}
-				if (parentWindow.dialog) {
-					parentWindow.dialog.close();
-				}
-				return false;
-			}
-		}
-		return true;
-	},
-	/**
-	 * Capture unload and escape events
-	 *
-	 * @return	void
-	 */
-	captureEvents : function (skipUnload) {
-			// Capture unload events on the dialogue window and the editor frame
-		if (!Ext.isIE && this.plugin.editor._iframe.contentWindow) {
-			Ext.EventManager.on(this.plugin.editor._iframe.contentWindow, 'unload', this.close, this, {single: true});
-		}
-		if (!skipUnload) {
-			Ext.EventManager.on(this.dialogWindow, 'unload', this.close, this, {single: true});
-		}
-			// Capture escape key on the dialogue window
-		Ext.EventManager.on(this.dialogWindow.document, 'keypress', this.closeOnEscape, this, {single: true});
-	 }
-});
 }
