mapnik/scons/scons-local-4.8.0/SCons/Tool/docbook/docbook-xsl-1.76.1/slides/browser/overlay.js
2024-08-21 13:57:11 +01:00

142 lines
3.7 KiB
JavaScript
Vendored

// -*- Java -*-
//
// Overlay.js, adapted from Floating image II on dynamicdrive.com
/* Usage:
<html>
<head>
<script LANGUAGE="JavaScript1.2" src="overlay.js"></script>
...rest of head...
</head>
<body onload="overlaySetup(corner)">
<div id="overlayDiv" STYLE="position:absolute;visibility:visible;">
...body of overlay...
</div>
...rest of page...
*/
var overlayNS4 = document.layers ? 1 : 0;
var overlayIE = document.all ? 1 : 0;
var overlayNS6 = document.getElementById && !document.all ? 1 : 0;
var overlayPadX = 15;
var overlayPadY = 15;
var overlayDelay = 60;
var overlayCorner = 'ur'; // ul, ll, ur, lr, uc, lc, cl, cr
function overlayRefresh() {
var overlayLx = 0;
var overlayLy = 0;
var overlayX = 0;
var overlayY = 0;
var overlayW = 0;
var overlayH = 0;
var contentH = 0;
var links = document.getElementsByTagName("body")[0];
if (overlayIE) {
overlayLx = document.body.clientWidth;
overlayLy = document.body.clientHeight;
if (document.body.parentElement) {
// For IE6
overlayLx = document.body.parentElement.clientWidth;
overlayLy = document.body.parentElement.clientHeight;
}
overlayH = overlayDiv.offsetHeight;
overlayW = body.offsetWidth; // overlayDiv.offsetWidth;
contentH = body.offsetHeight;
} else if (overlayNS4) {
overlayLy = window.innerHeight;
overlayLx = window.innerWidth;
overlayH = document.overlayDiv.clip.height;
overlayW = body.clip.width; // document.overlayDiv.clip.width;
contentH = body.clip.height;
} else if (overlayNS6) {
var odiv = document.getElementById('overlayDiv');
overlayLy = window.innerHeight;
overlayLx = window.innerWidth;
overlayH = odiv.offsetHeight;
overlayW = odiv.offsetWidth; // body.offsetWidth;
contentH = odiv.offsetHeight;
}
if (overlayCorner == 'ul') {
overlayX = overlayPadX;
overlayY = overlayPadY;
} else if (overlayCorner == 'cl') {
overlayX = overlayPadX;
overlayY = (overlayLy - overlayH) / 2;
} else if (overlayCorner == 'll') {
overlayX = overlayPadX;
overlayY = (overlayLy - overlayH) - overlayPadY;
} else if (overlayCorner == 'ur') {
overlayX = (overlayLx - overlayW) - overlayPadX;
overlayY = overlayPadY;
} else if (overlayCorner == 'cr') {
overlayX = (overlayLx - overlayW) - overlayPadX;
overlayY = (overlayLy - overlayH) / 2;
} else if (overlayCorner == 'lr') {
overlayX = (overlayLx - overlayW) - overlayPadX;
overlayY = (overlayLy - overlayH) - overlayPadY;
} else if (overlayCorner == 'uc') {
overlayX = (overlayLx - overlayW) / 2;
overlayY = overlayPadY;
} else { // overlayCorner == 'lc'
overlayX = (overlayLx - overlayW) / 2;
overlayY = (overlayLy - overlayH) - overlayPadY;
}
if (overlayIE) {
overlayDiv.style.left=overlayX;
overlayDiv.style.top=overlayY+document.body.scrollTop;
if (contentH > overlayLy) {
overlayDiv.style.visibility = "hidden";
}
} else if (overlayNS4) {
document.overlayDiv.pageX=overlayX;
document.overlayDiv.pageY=overlayY+window.pageYOffset;
document.overlayDiv.visibility="visible";
if (contentH > overlayLy) {
document.overlayDiv.style.visibility = "hidden";
}
} else if (overlayNS6) {
var div = document.getElementById("overlayDiv");
var leftpx = overlayX;
var toppx = overlayY+window.pageYOffset;
var widthpx = overlayW;
div.style.left = leftpx + "px";
div.style.top = toppx + "px";
div.style.width = widthpx + "px";
if (contentH > overlayLy) {
div.style.visibility = "hidden";
} else {
div.style.visibility = "visible";
}
}
}
function onad() {
loopfunc();
}
function loopfunc() {
overlayRefresh();
setTimeout('loopfunc()',overlayDelay);
}
function overlaySetup(corner) {
overlayCorner = corner;
if (overlayIE || overlayNS4 || overlayNS6) {
onad();
}
}