Вход Регистрация
Файл: mailist/wys/jscripts/tiny_mce/tiny_mce_popup.js
Строк: 408
<?php
// Some global instances, this will be filled later
var tinyMCE nulltinyMCELang null;

function 
TinyMCE_Popup() {
};

TinyMCE_Popup.prototype = {
    
findWin : function(w) {
        var 
c;

        
// Check parents
        
w;
        while (
&& (c.parent) != null) {
            if (
typeof(c.tinyMCE) != "undefined")
                return 
c;
        }

        
// Check openers
        
w;
        while (
&& (c.opener) != null) {
            if (
typeof(c.tinyMCE) != "undefined")
                return 
c;
        }

        
// Try top
        
if (typeof(top.tinyMCE) != "undefined")
            return 
top;

        return 
null;
    },

    
init : function() {
        var 
win window.opener window.opener window.dialogArgumentsc;
        var 
instretitledivElm;

        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 references
        
tinyMCE 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 selection
        
if (this.storeSelection)
            
inst.selectionBookmark inst.selection.getBookmark(true);

        
// Setup dir
        
if (tinyMCELang.lang_dir)
            
document.dir tinyMCELang.lang_dir;

        
// Setup title
        
re = 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(windowdivElm.innerHTML);
        }

        
// Output Popup CSS class
        
document.write('<link href="' tinyMCE.getParam("popups_css") + '" rel="stylesheet" type="text/css">');

        if (
tinyMCE.getParam("popups_css_add")) {
            
tinyMCE.getParam("popups_css_add");

            
// Is relative
            
if (c.indexOf('://') == -&& c.charAt(0) != '/')
                
tinyMCE.documentBasePath "/" c;

            
document.write('<link href="' '" rel="stylesheet" type="text/css">');
        }

        
tinyMCE.addEvent(window"load"this.onLoad);
    },

    
onLoad : function() {
        var 
dirielmsbody document.body;

        if (
tinyMCE.getWindowArg('mce_replacevariables'true))
            
body.innerHTML tinyMCE.applyTemplate(body.innerHTMLtinyMCE.windowArgs);

        
dir tinyMCE.selectedInstance.settings.directionality;
        if (
dir == "rtl" && document.forms && document.forms.length 0) {
            
elms document.forms[0].elements;
            for (
i=0i<elms.lengthi++) {
                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;
        else
            eval(
str);
    },

    
resizeToInnerSize : function() {
        var 
idocbodyoldMarginwrapperiframenodesdxdy;

        
// Netscape 7.1 workaround
        
if (this.isWindow && tinyMCE.isNS71) {
            
window.resizeBy(010);
            return;
        }

        if (
this.isWindow) {
            
doc document;
            
body doc.body;

            if (
body.style.display == 'none')
                
body.style.display 'block';

            
// Remove margin
            
oldMargin body.style.margin;
            
body.style.margin '0';

            
// Create wrapper
            
wrapper doc.createElement("div");
            
wrapper.id 'mcBodyWrapper';
            
wrapper.style.display 'none';
            
wrapper.style.margin '0';

            
// Wrap body elements
            
nodes doc.body.childNodes;
            for (
i=nodes.length-1i>=0i--) {
                if (
wrapper.hasChildNodes())
                    
wrapper.insertBefore(nodes[i].cloneNode(true), wrapper.firstChild);
                else
                    
wrapper.appendChild(nodes[i].cloneNode(true));

                
nodes[i].parentNode.removeChild(nodes[i]);
            }

            
// Add wrapper
            
doc.body.appendChild(wrapper);

            
// Create iframe
            
iframe document.createElement("iframe");
            
iframe.id "mcWinIframe";
            
iframe.src document.location.href.toLowerCase().indexOf('https') == -"about:blank" tinyMCE.settings.default_document;
            
iframe.width "100%";
            
iframe.height "100%";
            
iframe.style.margin '0';

            
// Add iframe
            
doc.body.appendChild(iframe);

            
// Measure iframe
            
iframe 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(dxdy);

            
// Hide iframe and show wrapper
            
body.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 
elmwidthheightxydxdy;

        if (
isOpera)
            return;

        if (
isMSIE) {
            try { 
window.resizeTo(1010); } catch (e) {}

            
elm document.body;
            
width elm.offsetWidth;
            
height elm.offsetHeight;
            
dx = (elm.scrollWidth width) + 4;
            
dy elm.scrollHeight height;

            try { 
window.resizeBy(dxdy); } catch (e) {}
        } else {
            
window.scrollBy(10001000);
            if (
window.scrollX || window.scrollY 0) {
                
window.resizeBy(window.innerWidth 2window.innerHeight 2);
                
window.sizeToContent();
                
window.scrollTo(00);
                
parseInt(screen.width 2.0) - (window.outerWidth 2.0);
                
parseInt(screen.height 2.0) - (window.outerHeight 2.0);
                
window.moveTo(xy);
            }
        }
    },

    
getWindowArg : function(namedefault_value) {
        return 
tinyMCE.getWindowArg(namedefault_value);
    },

    
restoreSelection : function() {
        var 
inst;

        if (
this.storeSelection) {
            
inst tinyMCE.selectedInstance;

            
inst.getWin().focus();

            if (
inst.selectionBookmark)
                
inst.selection.moveToBookmark(inst.selectionBookmark);
        }
    },

    
execCommand : function(commanduser_interfacevalue) {
        var 
inst tinyMCE.selectedInstance;

        
this.restoreSelection();
        
inst.execCommand(commanduser_interfacevalue);

        
// Store selection
        
if (this.storeSelection)
            
inst.selectionBookmark inst.selection.getBookmark(true);
    },

    
close : function() {
        
tinyMCE.closeWindow(window);
    },

    
pickColor : function(eelement_id) {
        
tinyMCE.selectedInstance.execCommand('mceColorPicker'true, {
            
element_id element_id,
            
document document,
            
window window,
            
store_selection false
        
});
    },

    
openBrowser : function(element_idtypeoption) {
        var 
cb tinyMCE.getParam(optiontinyMCE.getParam("file_browser_callback"));
        var 
url document.getElementById(element_id).value;

        
tinyMCE.setWindowArg("window"window);
        
tinyMCE.setWindowArg("document"document);

        
// Call to external callback
        
if (eval('typeof(tinyMCEPopup.windowOpener.' cb ')') == "undefined")
            
alert("Callback function: " cb " could not be found.");
        else
            eval(
"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 instance
var tinyMCEPopup = new TinyMCE_Popup();

tinyMCEPopup.init();
?>
Онлайн: 1
Реклама