Skip to content

Instantly share code, notes, and snippets.

@mariuz
Forked from anonymous/gist:9787363
Last active August 29, 2015 13:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mariuz/9787422 to your computer and use it in GitHub Desktop.
Save mariuz/9787422 to your computer and use it in GitHub Desktop.
<script language="JavaScript">
// Determine browser.
var isMinNS4 = 0;
var isMinIE4 = 0;
var NS6 = 1;
var origWidth; // Vars for NS resizing
var origHeight;
//-----------------------------------------------------------------------------
// Layer Visibility
//-----------------------------------------------------------------------------
function hideLayer(layer) {
if (isMinNS4)
layer.visibility = "hide";
if (isMinIE4 || NS6)
layer.style.visibility = "hidden";
}
function showLayer(layer) {
if (isMinNS4)
layer.visibility = "show";
if (isMinIE4 || NS6)
layer.style.visibility = "visible";
}
function isVisible (layer) {
if (isMinNS4) {
if (layer.visibility == "show") return true;
else return false;
}
if (isMinIE4 || NS6) {
if (layer.style.visibility == "visible") return true;
else return false;
}
}
//-----------------------------------------------------------------------------
// Layer positioning
//-----------------------------------------------------------------------------
function moveLayerTo(layer, x, y) {
if (isMinNS4)
layer.moveTo(x, y);
if (isMinIE4) {
layer.style.left = x;
layer.style.top = y;
}
if (NS6) {
layer.style.left = x + "px";
layer.style.top = y + "px";
}
}
function moveLayerBy(layer, dx, dy) {
if (isMinNS4)
layer.moveBy(dx, dy);
if (isMinIE4) {
layer.style.pixelLeft += dx;
layer.style.pixelTop += dy;
}
if (NS6) {
var nx = parseInt(layer.style.left) + dx;
var ny = parseInt(layer.style.top) + dy;
layer.style.left = nx + "px";
layer.style.top = ny + "px";
}
}
function getLeft(layer) {
if (isMinNS4)
return layer.left;
if (isMinIE4)
return layer.style.pixelLeft;
if (NS6)
return(parseInt(layer.style.left));
return -1;
}
function getTop(layer) {
if (isMinNS4)
return layer.top;
if (isMinIE4)
return layer.style.pixelTop;
if (NS6)
return(parseInt(layer.style.top));
return -1;
}
function getWidth(layer) {
if (isMinNS4) {
if (layer.document.width)
return layer.document.width;
else
return layer.clip.right - layer.clip.left;
}
if (isMinIE4) {
if (layer.style.pixelWidth)
return layer.style.pixelWidth;
else
return layer.clientWidth;
}
if (NS6) {
return layer.offsetWidth;
}
return -1;
}
function getHeight(layer) {
if (isMinNS4) {
if (layer.document.height)
return layer.document.height;
else
return layer.clip.bottom - layer.clip.top;
}
if (isMinIE4) {
if (layer.style.pixelHeight)
return layer.style.pixelHeight;
else
return layer.clientHeight;
}
if (NS6) {
return layer.offsetHeight;
}
return -1;
}
//-----------------------------------------------------------------------------
// Layer utilities.
//-----------------------------------------------------------------------------
function getLayer(name) {
if (isMinNS4)
return findLayer(name, document);
if (isMinIE4)
return eval('document.all.' + name);
if (NS6)
return document.getElementById(name);
return null;
}
function findLayer(name, doc) {
var i, layer;
for (i = 0; i < doc.layers.length; i++) {
layer = doc.layers[i];
if (layer.name == name)
return layer;
if (layer.document.layers.length > 0)
if ((layer = findLayer(name, layer.document)) != null)
return layer;
}
return null;
}
//-----------------------------------------------------------------------------
// Window and page properties.
//-----------------------------------------------------------------------------
function getWindowWidth() {
if (isMinNS4 || NS6)
return window.innerWidth;
if (isMinIE4)
return document.body.clientWidth;
return -1;
}
function getWindowHeight() {
if (isMinNS4 || NS6)
return window.innerHeight;
if (isMinIE4)
return document.body.clientHeight;
return -1;
}
function getPageScrollX() {
if (isMinNS4 || NS6)
return window.pageXOffset;
if (isMinIE4)
return document.body.scrollLeft;
return -1;
}
function getPageScrollY() {
if (isMinNS4 || NS6)
return window.pageYOffset;
if (isMinIE4)
return document.body.scrollTop;
return -1;
}
//-----------------------------------------------------------------------------
// Event Handling
//-----------------------------------------------------------------------------
// These variables will hold the current mouse pointer position.
var mouseX = 0;
var mouseY = 0;
// Set up event capturing.
if (isMinNS4) {
document.captureEvents(Event.MOUSEMOVE);
document.captureEvents(Event.CLICK);
}
if (NS6) {
window.onmousemove = getMousePosition;
window.onclick = onMouseClick;
} else {
document.onmousemove = getMousePosition;
document.onclick = onMouseClick;
}
function getMousePosition(e) {
// Save cursor position using browser-specific code.
if (isMinNS4) {
mouseX = e.pageX;
mouseY = e.pageY;
}
if (isMinIE4) {
mouseX = event.clientX + document.body.scrollLeft;
mouseY = event.clientY + document.body.scrollTop;
}
if (NS6) {
mouseX = e.clientX;
mouseY = e.clientY;
}
return true;
}
function onMouseClick(e) {
// When you click the mouse, make the ants scatter away
gRule1Scale = -10;
return true;
}
// Handle the NS4 resizing bug
if (isMinNS4) {
window.captureEvents(Event.RESIZE);
window.onresize = handleResize;
}
function handleResize() {
// First check if the window size has changed. If it hasn't we
// want to leave it alone.
if (innerWidth==origWidth && innerHeight==origHeight) return false;
// If the size has changed, want to reload so things get laid out in
// a nice manner.
location.reload();
return false;
}
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment