includes/clientside/tinymce/plugins/paste/js/pasteword.js
changeset 1193 e3b94bd055dc
parent 476 f26a69c40431
--- a/includes/clientside/tinymce/plugins/paste/js/pasteword.js	Mon Dec 21 15:41:05 2009 -0500
+++ b/includes/clientside/tinymce/plugins/paste/js/pasteword.js	Tue Dec 22 13:09:59 2009 -0500
@@ -1,56 +1,51 @@
 tinyMCEPopup.requireLangPack();
 
-function saveContent() {
-	var html = document.getElementById("frmData").contentWindow.document.body.innerHTML;
+var PasteWordDialog = {
+	init : function() {
+		var ed = tinyMCEPopup.editor, el = document.getElementById('iframecontainer'), ifr, doc, css, cssHTML = '';
 
-	if (html == ''){
-		tinyMCEPopup.close();
-		return false;
-	}
-
-	tinyMCEPopup.execCommand('mcePasteWord', false, html);
-	tinyMCEPopup.close();
-}
+		// Create iframe
+		el.innerHTML = '<iframe id="iframe" src="javascript:\'\';" frameBorder="0" style="border: 1px solid gray"></iframe>';
+		ifr = document.getElementById('iframe');
+		doc = ifr.contentWindow.document;
 
-function onLoadInit() {
-	tinyMCEPopup.resizeToInnerSize();
+		// Force absolute CSS urls
+		css = [ed.baseURI.toAbsolute("themes/" + ed.settings.theme + "/skins/" + ed.settings.skin + "/content.css")];
+		css = css.concat(tinymce.explode(ed.settings.content_css) || []);
+		tinymce.each(css, function(u) {
+			cssHTML += '<link href="' + ed.documentBaseURI.toAbsolute('' + u) + '" rel="stylesheet" type="text/css" />';
+		});
 
-	// Fix for endless reloading in FF
-	window.setTimeout(createIFrame, 10);
-}
+		// Write content into iframe
+		doc.open();
+		doc.write('<html><head>' + cssHTML + '</head><body class="mceContentBody" spellcheck="false"></body></html>');
+		doc.close();
 
-function createIFrame() {
-	document.getElementById('iframecontainer').innerHTML = '<iframe id="frmData" name="frmData" class="sourceIframe" src="blank.htm" height="280" width="400" frameborder="0" style="background-color:#FFFFFF; width:100%;" dir="ltr" wrap="soft"></iframe>';
-}
-
-var wHeight=0, wWidth=0, owHeight=0, owWidth=0;
+		doc.designMode = 'on';
+		this.resize();
 
-function initIframe(doc) {
-	var dir = tinyMCEPopup.editor.settings.directionality;
-
-	doc.body.dir = dir;
+		window.setTimeout(function() {
+			ifr.contentWindow.focus();
+		}, 10);
+	},
 
-	// Remove Gecko spellchecking
-	if (tinymce.isGecko)
-		doc.body.spellcheck = tinyMCEPopup.getParam("gecko_spellcheck");
+	insert : function() {
+		var h = document.getElementById('iframe').contentWindow.document.body.innerHTML;
 
-	resizeInputs();
-}
+		tinyMCEPopup.editor.execCommand('mceInsertClipboardContent', false, {content : h, wordContent : true});
+		tinyMCEPopup.close();
+	},
 
-function resizeInputs() {
-	if (!tinymce.isIE) {
-		wHeight = self.innerHeight - 80;
-		wWidth = self.innerWidth - 18;
-	} else {
-		wHeight = document.body.clientHeight - 80;
-		wWidth = document.body.clientWidth - 18;
-	}
+	resize : function() {
+		var vp = tinyMCEPopup.dom.getViewPort(window), el;
+
+		el = document.getElementById('iframe');
 
-	var elm = document.getElementById('frmData');
-	if (elm) {
-		elm.style.height = Math.abs(wHeight) + 'px';
-		elm.style.width  = Math.abs(wWidth) + 'px';
+		if (el) {
+			el.style.width  = (vp.w - 20) + 'px';
+			el.style.height = (vp.h - 90) + 'px';
+		}
 	}
-}
+};
 
-tinyMCEPopup.onInit.add(onLoadInit);
+tinyMCEPopup.onInit.add(PasteWordDialog.init, PasteWordDialog);