-
+ 44359902D6BADC7E5DE6F3FE1A265DEC2D56E9D28B06936F6FC6D9D09834A520B253EC4AB42E90FF07CEF113CAC46EBA253864A3FFF3226B29593495C86A5348
mp-wp/wp-includes/js/tinymce/utils/mclayer.js
(0 . 0)(1 . 209)
131903 /**
131904 * $Id: mclayer.js 520 2008-01-07 16:30:32Z spocke $
131905 *
131906 * Moxiecode floating layer script.
131907 *
131908 * @author Moxiecode
131909 */
131910
131911 function MCLayer(id) {
131912 this.id = id;
131913 this.settings = new Array();
131914 this.blockerElement = null;
131915 this.isMSIE = navigator.appName == "Microsoft Internet Explorer";
131916 this.events = false;
131917 this.autoHideCallback = null;
131918 }
131919
131920 MCLayer.prototype = {
131921 moveRelativeTo : function(re, p, a) {
131922 var rep = this.getAbsPosition(re);
131923 var w = parseInt(re.offsetWidth);
131924 var h = parseInt(re.offsetHeight);
131925 var x, y;
131926
131927 switch (p) {
131928 case "tl":
131929 break;
131930
131931 case "tr":
131932 x = rep.absLeft + w;
131933 y = rep.absTop;
131934 break;
131935
131936 case "bl":
131937 break;
131938
131939 case "br":
131940 break;
131941 }
131942
131943 this.moveTo(x, y);
131944 },
131945
131946 moveBy : function(dx, dy) {
131947 var e = this.getElement();
131948 var x = parseInt(e.style.left);
131949 var y = parseInt(e.style.top);
131950
131951 e.style.left = (x + dx) + "px";
131952 e.style.top = (y + dy) + "px";
131953
131954 this.updateBlocker();
131955 },
131956
131957 moveTo : function(x, y) {
131958 var e = this.getElement();
131959
131960 e.style.left = x + "px";
131961 e.style.top = y + "px";
131962
131963 this.updateBlocker();
131964 },
131965
131966 show : function() {
131967 MCLayer.visibleLayer = this;
131968
131969 this.getElement().style.display = 'block';
131970 this.updateBlocker();
131971 },
131972
131973 hide : function() {
131974 this.getElement().style.display = 'none';
131975 this.updateBlocker();
131976 },
131977
131978 setAutoHide : function(s, cb) {
131979 this.autoHideCallback = cb;
131980 this.registerEventHandlers();
131981 },
131982
131983 getElement : function() {
131984 return document.getElementById(this.id);
131985 },
131986
131987 updateBlocker : function() {
131988 if (!this.isMSIE)
131989 return;
131990
131991 var e = this.getElement();
131992 var b = this.getBlocker();
131993 var x = this.parseInt(e.style.left);
131994 var y = this.parseInt(e.style.top);
131995 var w = this.parseInt(e.offsetWidth);
131996 var h = this.parseInt(e.offsetHeight);
131997
131998 b.style.left = x + 'px';
131999 b.style.top = y + 'px';
132000 b.style.width = w + 'px';
132001 b.style.height = h + 'px';
132002 b.style.display = e.style.display;
132003 },
132004
132005 getBlocker : function() {
132006 if (!this.blockerElement) {
132007 var d = document, b = d.createElement("iframe");
132008
132009 b.style.cssText = 'display: none; left: 0px; position: absolute; top: 0';
132010 b.src = 'javascript:false;';
132011 b.frameBorder = '0';
132012 b.scrolling = 'no';
132013
132014 d.body.appendChild(b);
132015 this.blockerElement = b;
132016 }
132017
132018 return this.blockerElement;
132019 },
132020
132021 getAbsPosition : function(n) {
132022 var p = {absLeft : 0, absTop : 0};
132023
132024 while (n) {
132025 p.absLeft += n.offsetLeft;
132026 p.absTop += n.offsetTop;
132027 n = n.offsetParent;
132028 }
132029
132030 return p;
132031 },
132032
132033 registerEventHandlers : function() {
132034 if (!this.events) {
132035 var d = document;
132036
132037 this.addEvent(d, 'mousedown', MCLayer.prototype.onMouseDown);
132038
132039 this.events = true;
132040 }
132041 },
132042
132043 addEvent : function(o, n, h) {
132044 if (o.attachEvent)
132045 o.attachEvent("on" + n, h);
132046 else
132047 o.addEventListener(n, h, false);
132048 },
132049
132050 onMouseDown : function(e) {
132051 e = typeof(e) == "undefined" ? window.event : e;
132052 var b = document.body;
132053 var l = MCLayer.visibleLayer;
132054
132055 if (l) {
132056 var mx = l.isMSIE ? e.clientX + b.scrollLeft : e.pageX;
132057 var my = l.isMSIE ? e.clientY + b.scrollTop : e.pageY;
132058 var el = l.getElement();
132059 var x = parseInt(el.style.left);
132060 var y = parseInt(el.style.top);
132061 var w = parseInt(el.offsetWidth);
132062 var h = parseInt(el.offsetHeight);
132063
132064 if (!(mx > x && mx < x + w && my > y && my < y + h)) {
132065 MCLayer.visibleLayer = null;
132066
132067 if (l.autoHideCallback && l.autoHideCallback(l, e, mx, my))
132068 return true;
132069
132070 l.hide();
132071 }
132072 }
132073 },
132074
132075 addCSSClass : function(e, c) {
132076 this.removeCSSClass(e, c);
132077 var a = this.explode(' ', e.className);
132078 a[a.length] = c;
132079 e.className = a.join(' ');
132080 },
132081
132082 removeCSSClass : function(e, c) {
132083 var a = this.explode(' ', e.className), i;
132084
132085 for (i=0; i<a.length; i++) {
132086 if (a[i] == c)
132087 a[i] = '';
132088 }
132089
132090 e.className = a.join(' ');
132091 },
132092
132093 explode : function(d, s) {
132094 var ar = s.split(d);
132095 var oar = new Array();
132096
132097 for (var i = 0; i<ar.length; i++) {
132098 if (ar[i] != "")
132099 oar[oar.length] = ar[i];
132100 }
132101
132102 return oar;
132103 },
132104
132105 parseInt : function(s) {
132106 if (s == null || s == '')
132107 return 0;
132108
132109 return parseInt(s);
132110 }
132111 }