Viewing File: /usr/local/cpanel/base/frontend/jupiter/js/expander.js
/* ***** BEGIN LICENSE BLOCK *****
# cpanel12 - expander.js Copyright(c) 1997-2020 cPanel, L.L.C.
# All rights reserved.
# copyright@cpanel.net http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited
* ***** END LICENSE BLOCK *****
* ***** BEGIN APPLICABLE CODE BLOCK ***** */
var expanded = {};
var expanding = {};
var tracker = {};
var expc = [];
var expander_active = 0;
var expander_on = 0;
function getTime() {
var d = new Date();
return (d.getTime());
}
function unshadow(DivId) {
if (!expander_on) {
return;
}
var SplitDivId = DivId.split("_");
if (SplitDivId[SplitDivId.length - 1] == "0") {
SplitDivId.pop();
} else {
return DivId;
}
return SplitDivId.join("_");
}
function shadow(DivId) {
return DivId + "_0";
}
/* when the mouse leave the div we need to collapse it */
function runAnimOut_single(originalDivEl) {
if (!expander_on || !originalDivEl) {
return;
}
var originalDivId = originalDivEl.id;
if (!expanded[originalDivId]) {
return;
}
if (expanding[originalDivId]) {
tracker[originalDivId] = getTime();
return;
}
var shadowDivId = shadow(originalDivEl.id);
var shadowDivEl = YAHOO.util.Dom.get(shadowDivId);
var shadowImgEl = (shadowDivEl.getElementsByTagName("img"))[0];
var originalImgEl = (originalDivEl.getElementsByTagName("img"))[0];
var originalDivXY = YAHOO.util.Dom.getXY(originalDivEl);
var ShadowDivCollapseAttributes = {
width: {
to: originalDivEl.offsetWidth
},
height: {
to: originalDivEl.offsetHeight
},
points: {
to: [originalDivXY[0], originalDivXY[1]]
},
fontSize: {
from: 11,
to: 7,
unit: "px"
}
};
var cleanupEvent = function() {
expanded[originalDivId] = 0;
if (!shadowDivEl || !shadowDivEl.parentNode) {
return;
}
shadowDivEl.parentNode.removeChild(shadowDivEl);
};
if (originalImgEl) {
var ShadowImgCollapseAttributes = {
width: {
to: originalImgEl.offsetWidth
},
height: {
to: originalImgEl.offsetHeight
}
};
var ShadowImgCollapseAnimation = new YAHOO.util.Motion(shadowImgEl, ShadowImgCollapseAttributes, 0.4, YAHOO.util.Easing.easeOut);
ShadowImgCollapseAnimation.animate();
}
var ShadowDivCollapseAnimation = new YAHOO.util.Motion(shadowDivEl, ShadowDivCollapseAttributes, 0.4, YAHOO.util.Easing.easeOut);
if (!expanded[originalDivId]) {
return;
}
ShadowDivCollapseAnimation.onComplete.subscribe(cleanupEvent);
ShadowDivCollapseAnimation.animate();
}
function trackAnim(originalDivEl) {
if (!originalDivEl) {
return;
}
delete tracker[originalDivEl.id];
return false;
}
function runAnimOut(originalDivEl) {
if (!expander_on || !originalDivEl) {
return;
}
var originalDivId = originalDivEl.id;
if (!expanded[originalDivId]) {
tracker[originalDivId] = 0;
return;
}
tracker[originalDivId] = getTime();
}
var handleOuts = function(force) {
if (!expander_on) {
return;
}
var now = getTime();
for (var killer in tracker) {
if (tracker.hasOwnProperty(killer)) {
if (force || (tracker[killer] > 0 && (tracker[killer] + 300) < now)) {
if (expanding[killer]) {
tracker[killer] = getTime();
continue;
}
delete tracker[killer];
runAnimOut_single(YAHOO.util.Dom.get(killer));
}
}
}
};
function trackAnim_wrapper(e) {
if (!expander_on) {
return;
}
trackAnim(YAHOO.util.Dom.get(unshadow(this.id)));
}
function runAnimOut_wrapper(e) {
if (!expander_on) {
return;
}
runAnimOut(YAHOO.util.Dom.get(unshadow(this.id)));
}
function handleOuts_wrapper() {
if (!expander_on) {
return;
}
handleOuts(1);
}
function pop_start() {
if (!expander_on) {
return;
}
if (!YAHOO) {
return;
}
for (var i = 0; i < expc.length; i++) {
var expele = YAHOO.util.Dom.get(expc[i]);
var elelist = expele.getElementsByTagName("td");
for (var j = 0; j < elelist.length; j++) {
if (YAHOO.util.Dom.hasClass(elelist[j], "exptextboxpre")) {
elelist[j].className = "exptxtbox";
} else if (YAHOO.util.Dom.hasClass(elelist[j], "maindisp")) {
elelist[j].className = "mainhide";
} else if (YAHOO.util.Dom.hasClass(elelist[j], "mainhide")) {
elelist[j].className = "maindisp";
}
}
}
expander_active = 1;
setInterval(handleOuts, 250);
YAHOO.util.Event.addListener(document, "mousemove", handleOuts_wrapper);
}
function register_expander_container(objn) {
expander_on = 1;
expc.push(objn);
}
function register_expander_obj(objn) {
expander_on = 1;
}
function runAnimOver_single(originalDivEl, isimg) {
if (!expander_on || !originalDivEl) {
return;
}
var originalDivId = originalDivEl.id;
if (expanded[originalDivId] || expanding[originalDivId]) {
return;
}
expanding[originalDivId] = 1;
var originalDivXY = YAHOO.util.Dom.getXY(originalDivEl);
var shadowDivEl = document.createElement("div");
var newid = originalDivEl.id + "_0";
shadowDivEl.id = newid;
shadowDivEl.className = "expbox";
shadowDivEl.innerHTML = originalDivEl.innerHTML;
YAHOO.util.Dom.get("divgen_expand").appendChild(shadowDivEl);
YAHOO.util.Event.addListener(shadowDivEl, "mousemove", trackAnim_wrapper, this);
YAHOO.util.Event.addListener(shadowDivEl, "mouseout", runAnimOut_wrapper, this);
// collapse all others
handleOuts(1);
shadowDivEl.style.border = "solid 1px";
shadowDivEl.style.background = "#fff";
shadowDivEl.style.position = "absolute";
shadowDivEl.style.zIndex = 30;
shadowDivEl.style.left = originalDivXY[0] + "px";
shadowDivEl.style.top = originalDivXY[1] + "px";
var newtop = (originalDivXY[1] - originalDivEl.offsetHeight / 2);
var newleft = (originalDivXY[0] - originalDivEl.offsetWidth / 2);
var ShadowDivExpandAttributes = {
width: {
to: (originalDivEl.offsetWidth * 2)
},
height: {
to: (originalDivEl.offsetHeight * 2)
},
points: {
to: [newleft, newtop]
},
fontSize: {
from: 7,
to: 11,
unit: "px"
}
};
var shadowImgEl = (shadowDivEl.getElementsByTagName("img"))[0];
var originalImgEl = (originalDivEl.getElementsByTagName("img"))[0];
var setupEvent = function() {
if (tracker[originalDivId] === null) {
tracker[originalDivId] = 0;
}
expanded[originalDivId] = 1;
expanding[originalDivId] = 0;
};
var ShadowDivExpandAnimation = new YAHOO.util.Motion(shadowDivEl, ShadowDivExpandAttributes, 0.4);
ShadowDivExpandAnimation.onComplete.subscribe(setupEvent);
ShadowDivExpandAnimation.animate();
if (shadowImgEl && originalImgEl) {
var ShadowImgExpandAttributes = {
width: {
to: (originalImgEl.offsetWidth * 2)
},
height: {
to: (originalImgEl.offsetHeight * 2)
}
};
var ShadowImgExpandAnimation = new YAHOO.util.Motion(shadowImgEl, ShadowImgExpandAttributes, 0.4);
ShadowImgExpandAnimation.animate();
}
}
function runAnimOver(originalDivEl) {
if (!expander_on || !originalDivEl) {
return;
}
runAnimOver_single(YAHOO.util.Dom.get(unshadow(originalDivEl.id)));
}
YAHOO.util.Event.onDOMReady(pop_start);
Back to Directory
File Manager