Вход Регистрация
Файл: mailist/wys/jscripts/tiny_mce/utils/mclayer.js
Строк: 138
<?php
/**
 * $Id: mclayer.js 162 2007-01-03 16:16:52Z spocke $
 *
 * Moxiecode floating layer script.
 *
 * @author Moxiecode
 * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
 */

function MCLayer(id) {
    
this.id id;
    
this.settings = new Array();
    
this.blockerElement null;
    
this.isMSIE navigator.appName == "Microsoft Internet Explorer";
    
this.events false;
    
this.autoHideCallback null;
}

MCLayer.prototype = {
    
moveRelativeTo : function(repa) {
        var 
rep this.getAbsPosition(re);
        var 
parseInt(re.offsetWidth);
        var 
parseInt(re.offsetHeight);
        var 
xy;

        switch (
p) {
            case 
"tl":
                break;

            case 
"tr":
                
rep.absLeft w;
                
rep.absTop;
                break;

            case 
"bl":
                break;

            case 
"br":
                break;
        }

        
this.moveTo(xy);
    },

    
moveBy : function(dxdy) {
        var 
this.getElement();
        var 
parseInt(e.style.left);
        var 
parseInt(e.style.top);

        
e.style.left = (dx) + "px";
        
e.style.top = (dy) + "px";

        
this.updateBlocker();
    },

    
moveTo : function(xy) {
        var 
this.getElement();

        
e.style.left "px";
        
e.style.top "px";

        
this.updateBlocker();
    },

    
show : function() {
        
MCLayer.visibleLayer this;

        
this.getElement().style.display 'block';
        
this.updateBlocker();
    },

    
hide : function() {
        
this.getElement().style.display 'none';
        
this.updateBlocker();
    },

    
setAutoHide : function(scb) {
        
this.autoHideCallback cb;
        
this.registerEventHandlers();
    },

    
getElement : function() {
        return 
document.getElementById(this.id);
    },

    
updateBlocker : function() {
        if (!
this.isMSIE)
            return;

        var 
this.getElement();
        var 
this.getBlocker();
        var 
this.parseInt(e.style.left);
        var 
this.parseInt(e.style.top);
        var 
this.parseInt(e.offsetWidth);
        var 
this.parseInt(e.offsetHeight);

        
b.style.left 'px';
        
b.style.top 'px';
        
b.style.width 'px';
        
b.style.height 'px';
        
b.style.display e.style.display;
    },

    
getBlocker : function() {
        if (!
this.blockerElement) {
            var 
documentd.createElement("iframe");

            
b.style.cssText 'display: none; left: 0px; position: absolute; top: 0';
            
b.src 'javascript:false;';
            
b.frameBorder '0';
            
b.scrolling 'no';

            
d.body.appendChild(b);
            
this.blockerElement b;
        }

        return 
this.blockerElement;
    },

    
getAbsPosition : function(n) {
        var 
= {absLeft 0absTop 0};

        while (
n) {
            
p.absLeft += n.offsetLeft;
            
p.absTop += n.offsetTop;
            
n.offsetParent;
        }

        return 
p;
    },

    
registerEventHandlers : function() {
        if (!
this.events) {
            var 
document;

            
this.addEvent(d'mousedown'MCLayer.prototype.onMouseDown);

            
this.events true;
        }
    },

    
addEvent : function(onh) {
        if (
o.attachEvent)
            
o.attachEvent("on" nh);
        else
            
o.addEventListener(nhfalse);
    },

    
onMouseDown : function(e) {
        
typeof(e) == "undefined" window.event e;
        var 
document.body;
        var 
MCLayer.visibleLayer;

        if (
l) {
            var 
mx l.isMSIE e.clientX b.scrollLeft e.pageX;
            var 
my l.isMSIE e.clientY b.scrollTop e.pageY;
            var 
el l.getElement();
            var 
parseInt(el.style.left);
            var 
parseInt(el.style.top);
            var 
parseInt(el.offsetWidth);
            var 
parseInt(el.offsetHeight);

            if (!(
mx && mx && my && my h)) {
                
MCLayer.visibleLayer null;

                if (
l.autoHideCallback && l.autoHideCallback(lemxmy))
                    return 
true;

                
l.hide();
            }
        }
    },

    
addCSSClass : function(ec) {
        
this.removeCSSClass(ec);
        var 
this.explode(' 'e.className);
        
a[a.length] = c;
        
e.className a.join(' ');
    },

    
removeCSSClass : function(ec) {
        var 
this.explode(' 'e.className), i;

        for (
i=0i<a.lengthi++) {
            if (
a[i] == c)
                
a[i] = '';
        }

        
e.className a.join(' ');
    },

    
explode : function(ds) {
        var 
ar s.split(d);
        var 
oar = new Array();

        for (var 
0i<ar.lengthi++) {
            if (
ar[i] != "")
                
oar[oar.length] = ar[i];
        }

        return 
oar;
    },

    
parseInt : function(s) {
        if (
== null || == '')
            return 
0;

        return 
parseInt(s);
    }
}
?>
Онлайн: 0
Реклама