summaryrefslogtreecommitdiff
path: root/program/js/tiny_mce/utils/mclayer.js
diff options
context:
space:
mode:
Diffstat (limited to 'program/js/tiny_mce/utils/mclayer.js')
-rw-r--r--program/js/tiny_mce/utils/mclayer.js420
1 files changed, 210 insertions, 210 deletions
diff --git a/program/js/tiny_mce/utils/mclayer.js b/program/js/tiny_mce/utils/mclayer.js
index 1b347f75c..23982db19 100644
--- a/program/js/tiny_mce/utils/mclayer.js
+++ b/program/js/tiny_mce/utils/mclayer.js
@@ -1,210 +1,210 @@
-/**
- * $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(re, p, a) {
- var rep = this.getAbsPosition(re);
- var w = parseInt(re.offsetWidth);
- var h = parseInt(re.offsetHeight);
- var x, y;
-
- switch (p) {
- case "tl":
- break;
-
- case "tr":
- x = rep.absLeft + w;
- y = rep.absTop;
- break;
-
- case "bl":
- break;
-
- case "br":
- break;
- }
-
- this.moveTo(x, y);
- },
-
- moveBy : function(dx, dy) {
- var e = this.getElement();
- var x = parseInt(e.style.left);
- var y = parseInt(e.style.top);
-
- e.style.left = (x + dx) + "px";
- e.style.top = (y + dy) + "px";
-
- this.updateBlocker();
- },
-
- moveTo : function(x, y) {
- var e = this.getElement();
-
- e.style.left = x + "px";
- e.style.top = y + "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(s, cb) {
- this.autoHideCallback = cb;
- this.registerEventHandlers();
- },
-
- getElement : function() {
- return document.getElementById(this.id);
- },
-
- updateBlocker : function() {
- if (!this.isMSIE)
- return;
-
- var e = this.getElement();
- var b = this.getBlocker();
- var x = this.parseInt(e.style.left);
- var y = this.parseInt(e.style.top);
- var w = this.parseInt(e.offsetWidth);
- var h = this.parseInt(e.offsetHeight);
-
- b.style.left = x + 'px';
- b.style.top = y + 'px';
- b.style.width = w + 'px';
- b.style.height = h + 'px';
- b.style.display = e.style.display;
- },
-
- getBlocker : function() {
- if (!this.blockerElement) {
- var d = document, b = d.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 p = {absLeft : 0, absTop : 0};
-
- while (n) {
- p.absLeft += n.offsetLeft;
- p.absTop += n.offsetTop;
- n = n.offsetParent;
- }
-
- return p;
- },
-
- registerEventHandlers : function() {
- if (!this.events) {
- var d = document;
-
- this.addEvent(d, 'mousedown', MCLayer.prototype.onMouseDown);
-
- this.events = true;
- }
- },
-
- addEvent : function(o, n, h) {
- if (o.attachEvent)
- o.attachEvent("on" + n, h);
- else
- o.addEventListener(n, h, false);
- },
-
- onMouseDown : function(e) {
- e = typeof(e) == "undefined" ? window.event : e;
- var b = document.body;
- var l = 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 x = parseInt(el.style.left);
- var y = parseInt(el.style.top);
- var w = parseInt(el.offsetWidth);
- var h = parseInt(el.offsetHeight);
-
- if (!(mx > x && mx < x + w && my > y && my < y + h)) {
- MCLayer.visibleLayer = null;
-
- if (l.autoHideCallback && l.autoHideCallback(l, e, mx, my))
- return true;
-
- l.hide();
- }
- }
- },
-
- addCSSClass : function(e, c) {
- this.removeCSSClass(e, c);
- var a = this.explode(' ', e.className);
- a[a.length] = c;
- e.className = a.join(' ');
- },
-
- removeCSSClass : function(e, c) {
- var a = this.explode(' ', e.className), i;
-
- for (i=0; i<a.length; i++) {
- if (a[i] == c)
- a[i] = '';
- }
-
- e.className = a.join(' ');
- },
-
- explode : function(d, s) {
- var ar = s.split(d);
- var oar = new Array();
-
- for (var i = 0; i<ar.length; i++) {
- if (ar[i] != "")
- oar[oar.length] = ar[i];
- }
-
- return oar;
- },
-
- parseInt : function(s) {
- if (s == null || s == '')
- return 0;
-
- return parseInt(s);
- }
-}
+/**
+ * $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(re, p, a) {
+ var rep = this.getAbsPosition(re);
+ var w = parseInt(re.offsetWidth);
+ var h = parseInt(re.offsetHeight);
+ var x, y;
+
+ switch (p) {
+ case "tl":
+ break;
+
+ case "tr":
+ x = rep.absLeft + w;
+ y = rep.absTop;
+ break;
+
+ case "bl":
+ break;
+
+ case "br":
+ break;
+ }
+
+ this.moveTo(x, y);
+ },
+
+ moveBy : function(dx, dy) {
+ var e = this.getElement();
+ var x = parseInt(e.style.left);
+ var y = parseInt(e.style.top);
+
+ e.style.left = (x + dx) + "px";
+ e.style.top = (y + dy) + "px";
+
+ this.updateBlocker();
+ },
+
+ moveTo : function(x, y) {
+ var e = this.getElement();
+
+ e.style.left = x + "px";
+ e.style.top = y + "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(s, cb) {
+ this.autoHideCallback = cb;
+ this.registerEventHandlers();
+ },
+
+ getElement : function() {
+ return document.getElementById(this.id);
+ },
+
+ updateBlocker : function() {
+ if (!this.isMSIE)
+ return;
+
+ var e = this.getElement();
+ var b = this.getBlocker();
+ var x = this.parseInt(e.style.left);
+ var y = this.parseInt(e.style.top);
+ var w = this.parseInt(e.offsetWidth);
+ var h = this.parseInt(e.offsetHeight);
+
+ b.style.left = x + 'px';
+ b.style.top = y + 'px';
+ b.style.width = w + 'px';
+ b.style.height = h + 'px';
+ b.style.display = e.style.display;
+ },
+
+ getBlocker : function() {
+ if (!this.blockerElement) {
+ var d = document, b = d.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 p = {absLeft : 0, absTop : 0};
+
+ while (n) {
+ p.absLeft += n.offsetLeft;
+ p.absTop += n.offsetTop;
+ n = n.offsetParent;
+ }
+
+ return p;
+ },
+
+ registerEventHandlers : function() {
+ if (!this.events) {
+ var d = document;
+
+ this.addEvent(d, 'mousedown', MCLayer.prototype.onMouseDown);
+
+ this.events = true;
+ }
+ },
+
+ addEvent : function(o, n, h) {
+ if (o.attachEvent)
+ o.attachEvent("on" + n, h);
+ else
+ o.addEventListener(n, h, false);
+ },
+
+ onMouseDown : function(e) {
+ e = typeof(e) == "undefined" ? window.event : e;
+ var b = document.body;
+ var l = 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 x = parseInt(el.style.left);
+ var y = parseInt(el.style.top);
+ var w = parseInt(el.offsetWidth);
+ var h = parseInt(el.offsetHeight);
+
+ if (!(mx > x && mx < x + w && my > y && my < y + h)) {
+ MCLayer.visibleLayer = null;
+
+ if (l.autoHideCallback && l.autoHideCallback(l, e, mx, my))
+ return true;
+
+ l.hide();
+ }
+ }
+ },
+
+ addCSSClass : function(e, c) {
+ this.removeCSSClass(e, c);
+ var a = this.explode(' ', e.className);
+ a[a.length] = c;
+ e.className = a.join(' ');
+ },
+
+ removeCSSClass : function(e, c) {
+ var a = this.explode(' ', e.className), i;
+
+ for (i=0; i<a.length; i++) {
+ if (a[i] == c)
+ a[i] = '';
+ }
+
+ e.className = a.join(' ');
+ },
+
+ explode : function(d, s) {
+ var ar = s.split(d);
+ var oar = new Array();
+
+ for (var i = 0; i<ar.length; i++) {
+ if (ar[i] != "")
+ oar[oar.length] = ar[i];
+ }
+
+ return oar;
+ },
+
+ parseInt : function(s) {
+ if (s == null || s == '')
+ return 0;
+
+ return parseInt(s);
+ }
+}