Blame | Last modification | View Log | RSS feed
// Some global instances, this will be filled latervar tinyMCE = null, tinyMCELang = null;function TinyMCE_Popup() {};TinyMCE_Popup.prototype = {findWin : function(w) {var c;// Check parentsc = w;while (c && (c = c.parent) != null) {if (typeof(c.tinyMCE) != "undefined")return c;}// Check openersc = w;while (c && (c = c.opener) != null) {if (typeof(c.tinyMCE) != "undefined")return c;}// Try topif (typeof(top.tinyMCE) != "undefined")return top;return null;},init : function() {var win = window.opener ? window.opener : window.dialogArguments, c;var inst, re, title, divElm;if (!win)win = this.findWin(window);if (!win) {alert("tinyMCE object reference not found from popup.");return;}window.opener = win;this.windowOpener = win;this.onLoadEval = "";// Setup parent referencestinyMCE = win.tinyMCE;tinyMCELang = win.tinyMCELang;inst = tinyMCE.selectedInstance;this.isWindow = tinyMCE.getWindowArg('mce_inside_iframe', false) == false;this.storeSelection = (tinyMCE.isRealIE) && !this.isWindow && tinyMCE.getWindowArg('mce_store_selection', true);if (this.isWindow)window.focus();// Store selectionif (this.storeSelection)inst.selectionBookmark = inst.selection.getBookmark(true);// Setup dirif (tinyMCELang.lang_dir)document.dir = tinyMCELang.lang_dir;// Setup titlere = new RegExp('{|\\\$|}', 'g');title = document.title.replace(re, "");if (typeof(tinyMCELang[title]) != "undefined") {divElm = document.createElement("div");divElm.innerHTML = tinyMCELang[title];document.title = divElm.innerHTML;if (typeof(tinyMCE.setWindowTitle) != 'undefined')tinyMCE.setWindowTitle(window, divElm.innerHTML);}// Output Popup CSS classdocument.write('<link href="' + tinyMCE.getParam("popups_css") + '" rel="stylesheet" type="text/css">');if (tinyMCE.getParam("popups_css_add")) {c = tinyMCE.getParam("popups_css_add");// Is relativeif (c.indexOf('://') == -1 && c.charAt(0) != '/')c = tinyMCE.documentBasePath + "/" + c;document.write('<link href="' + c + '" rel="stylesheet" type="text/css">');}tinyMCE.addEvent(window, "load", this.onLoad);},onLoad : function() {var dir, i, elms, body = document.body;if (tinyMCE.getWindowArg('mce_replacevariables', true))body.innerHTML = tinyMCE.applyTemplate(body.innerHTML, tinyMCE.windowArgs);dir = tinyMCE.selectedInstance.settings.directionality;if (dir == "rtl" && document.forms && document.forms.length > 0) {elms = document.forms[0].elements;for (i=0; i<elms.length; i++) {if ((elms[i].type == "text" || elms[i].type == "textarea") && elms[i].getAttribute("dir") != "ltr")elms[i].dir = dir;}}if (body.style.display == 'none')body.style.display = 'block';// Execute real onload (Opera fix)if (tinyMCEPopup.onLoadEval !== '')eval(tinyMCEPopup.onLoadEval);},executeOnLoad : function(str) {if (tinyMCE.isOpera)this.onLoadEval = str;elseeval(str);},resizeToInnerSize : function() {var i, doc, body, oldMargin, wrapper, iframe, nodes, dx, dy;// Netscape 7.1 workaroundif (this.isWindow && tinyMCE.isNS71) {window.resizeBy(0, 10);return;}if (this.isWindow) {doc = document;body = doc.body;if (body.style.display == 'none')body.style.display = 'block';// Remove marginoldMargin = body.style.margin;body.style.margin = '0';// Create wrapperwrapper = doc.createElement("div");wrapper.id = 'mcBodyWrapper';wrapper.style.display = 'none';wrapper.style.margin = '0';// Wrap body elementsnodes = doc.body.childNodes;for (i=nodes.length-1; i>=0; i--) {if (wrapper.hasChildNodes())wrapper.insertBefore(nodes[i].cloneNode(true), wrapper.firstChild);elsewrapper.appendChild(nodes[i].cloneNode(true));nodes[i].parentNode.removeChild(nodes[i]);}// Add wrapperdoc.body.appendChild(wrapper);// Create iframeiframe = document.createElement("iframe");iframe.id = "mcWinIframe";iframe.src = document.location.href.toLowerCase().indexOf('https') == -1 ? "about:blank" : tinyMCE.settings.default_document;iframe.width = "100%";iframe.height = "100%";iframe.style.margin = '0';// Add iframedoc.body.appendChild(iframe);// Measure iframeiframe = document.getElementById('mcWinIframe');dx = tinyMCE.getWindowArg('mce_width') - iframe.clientWidth;dy = tinyMCE.getWindowArg('mce_height') - iframe.clientHeight;// Resize window// tinyMCE.debug(tinyMCE.getWindowArg('mce_width') + "," + tinyMCE.getWindowArg('mce_height') + " - " + dx + "," + dy);window.resizeBy(dx, dy);// Hide iframe and show wrapperbody.style.margin = oldMargin;iframe.style.display = 'none';wrapper.style.display = 'block';}},resizeToContent : function() {var isMSIE = (navigator.appName == "Microsoft Internet Explorer");var isOpera = (navigator.userAgent.indexOf("Opera") != -1);var elm, width, height, x, y, dx, dy;if (isOpera)return;if (isMSIE) {try { window.resizeTo(10, 10); } catch (e) {}elm = document.body;width = elm.offsetWidth;height = elm.offsetHeight;dx = (elm.scrollWidth - width) + 4;dy = elm.scrollHeight - height;try { window.resizeBy(dx, dy); } catch (e) {}} else {window.scrollBy(1000, 1000);if (window.scrollX > 0 || window.scrollY > 0) {window.resizeBy(window.innerWidth * 2, window.innerHeight * 2);window.sizeToContent();window.scrollTo(0, 0);x = parseInt(screen.width / 2.0) - (window.outerWidth / 2.0);y = parseInt(screen.height / 2.0) - (window.outerHeight / 2.0);window.moveTo(x, y);}}},getWindowArg : function(name, default_value) {return tinyMCE.getWindowArg(name, default_value);},restoreSelection : function() {var inst;if (this.storeSelection) {inst = tinyMCE.selectedInstance;inst.getWin().focus();if (inst.selectionBookmark)inst.selection.moveToBookmark(inst.selectionBookmark);}},execCommand : function(command, user_interface, value) {var inst = tinyMCE.selectedInstance;this.restoreSelection();inst.execCommand(command, user_interface, value);// Store selectionif (this.storeSelection)inst.selectionBookmark = inst.selection.getBookmark(true);},close : function() {tinyMCE.closeWindow(window);},pickColor : function(e, element_id) {tinyMCE.selectedInstance.execCommand('mceColorPicker', true, {element_id : element_id,document : document,window : window,store_selection : false});},openBrowser : function(element_id, type, option) {var cb = tinyMCE.getParam(option, tinyMCE.getParam("file_browser_callback"));var url = document.getElementById(element_id).value;tinyMCE.setWindowArg("window", window);tinyMCE.setWindowArg("document", document);// Call to external callbackif (eval('typeof(tinyMCEPopup.windowOpener.' + cb + ')') == "undefined")alert("Callback function: " + cb + " could not be found.");elseeval("tinyMCEPopup.windowOpener." + cb + "(element_id, url, type, window);");},importClass : function(c) {var n;window[c] = function() {};for (n in window.opener[c].prototype)window[c].prototype[n] = window.opener[c].prototype[n];window[c].constructor = window.opener[c].constructor;}};// Setup global instancevar tinyMCEPopup = new TinyMCE_Popup();tinyMCEPopup.init();