pandorafms/pandora_console/include/styles/cb/lib/xintersection.js

46 lines
1.2 KiB
JavaScript

// xIntersection, Copyright 2001-2005 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL
function xIntersection(e1, e2, o)
{
var ix1, iy2, iw, ih, intersect = true;
var e1x1 = xPageX(e1);
var e1x2 = e1x1 + xWidth(e1);
var e1y1 = xPageY(e1);
var e1y2 = e1y1 + xHeight(e1);
var e2x1 = xPageX(e2);
var e2x2 = e2x1 + xWidth(e2);
var e2y1 = xPageY(e2);
var e2y2 = e2y1 + xHeight(e2);
// horizontal
if (e1x1 <= e2x1) {
ix1 = e2x1;
if (e1x2 < e2x1) intersect = false;
else iw = Math.min(e1x2, e2x2) - e2x1;
}
else {
ix1 = e1x1;
if (e2x2 < e1x1) intersect = false;
else iw = Math.min(e1x2, e2x2) - e1x1;
}
// vertical
if (e1y2 >= e2y2) {
iy2 = e2y2;
if (e1y1 > e2y2) intersect = false;
else ih = e2y2 - Math.max(e1y1, e2y1);
}
else {
iy2 = e1y2;
if (e2y1 > e1y2) intersect = false;
else ih = e1y2 - Math.max(e1y1, e2y1);
}
// intersected rectangle
if (intersect && typeof(o)=='object') {
o.x = ix1;
o.y = iy2 - ih;
o.w = iw;
o.h = ih;
}
return intersect;
}