// Global variables var isCSS, isW3C, isIE4, isNN4, isIE6CSS; // Initialize upon load to let all browsers establish content objects function start( ) { if (document.images) { isCSS = (document.body && document.body.style) ? true : false; isW3C = (isCSS && document.getElementById) ? true : false; isIE4 = (isCSS && document.all) ? true : false; isNN4 = (document.layers) ? true : false; isIE6CSS = (document.compatMode && document.compatMode.indexOf("CSS1") >= 0) ? true : false; } } // Set event handler to initialize API window.onload = start; // Seek nested NN4 layer from string name function seekLayer(doc, name) { var theObj; for (var i = 0; i < doc.layers.length; i++) { if (doc.layers[i].name == name) { theObj = doc.layers[i]; break; } // dive into nested layers if necessary if (doc.layers[i].document.layers.length > 0) { theObj = seekLayer(document.layers[i].document, name); } } return theObj; } // Convert object name string or object reference // into a valid element object reference function getRawObject(obj) { var theObj; if (typeof obj == "string") { if (isW3C) { theObj = document.getElementById(obj); } else if (isIE4) { theObj = document.all(obj); } else if (isNN4) { //theObj = seekLayer(document, obj); } } else { // pass through object reference theObj = obj; } return theObj; } // Convert object name string or object reference // into a valid style (or NN4 layer) reference function getObject(obj) { var theObj = getRawObject(obj); if (theObj && isCSS) { theObj = theObj.style; } return theObj; } // Position an object at a specific pixel coordinate function shiftTo(obj, x, y) { var theObj = getObject(obj); if (theObj) { if (isCSS) { // equalize incorrect numeric value type var units = (typeof theObj.left == "string") ? "px" : 0; theObj.left = x + units; theObj.top = y + units; } else if (isNN4) { theObj.moveTo(x,y) } } } // Move an object by x and/or y pixels function shiftBy(obj, deltaX, deltaY) { var theObj = getObject(obj); if (theObj) { if (isCSS) { // equalize incorrect numeric value type var units = (typeof theObj.left == "string") ? "px" : 0; theObj.left = getObjectLeft(obj) + deltaX + units; theObj.top = getObjectTop(obj) + deltaY + units; } else if (isNN4) { theObj.moveBy(deltaX, deltaY); } } } // Position an object at a specific pixel coordinate function sizeTo(obj, x, y) { var theObj = getObject(obj); if (theObj) { if (isCSS) { // equalize incorrect numeric value type var units = (typeof theObj.width == "string") ? "px" : 0; theObj.width = x + units; theObj.height = y + units; } else if (isNN4) { theObj.resizeTo(x,y) } } } // Resize an object by x and/or y pixels function sizeBy(obj, deltaX, deltaY) { var theObj = getObject(obj); if (theObj) { if (isCSS) { // equalize incorrect numeric value type var units = (typeof theObj.width == "string") ? "px" : 0; theObj.width = getObjectWidth(obj) + deltaX + units; theObj.height = getObjectHeight(obj) + deltaY + units; } else if (isNN4) { theObj.resizeBy(deltaX, deltaY); } } } // Set the z-order of an object function setZIndex(obj, zOrder) { var theObj = getObject(obj); if (theObj) { theObj.zIndex = zOrder; } } // Set the background color of an object function setBGColor(obj, color) { var theObj = getObject(obj); if (theObj) { if (isNN4) { theObj.bgColor = color; } else if (isCSS) { theObj.backgroundColor = color; } } } // Set the visibility of an object to visible function showObj(obj) { var theObj = getObject(obj); if (theObj) { theObj.visibility = "visible"; } } // Set the visibility of an object to hidden function hideObj(obj) { var theObj = getObject(obj); //alert(obj); if (theObj) { theObj.visibility = "hidden"; //alert(obj); } } // Retrieve the x coordinate of a positionable object function getObjectLeft(obj) { var elem = getRawObject(obj); var result = 0; if (document.defaultView) { var style = document.defaultView; var cssDecl = style.getComputedStyle(elem, ""); result = cssDecl.getPropertyValue("left"); } else if (elem.currentStyle) { result = elem.currentStyle.left; } else if (elem.style) { result = elem.style.left; } else if (isNN4) { result = elem.left; } return parseInt(result); } // Retrieve the y coordinate of a positionable object function getObjectTop(obj) { var elem = getRawObject(obj); var result = 0; if (document.defaultView) { var style = document.defaultView; var cssDecl = style.getComputedStyle(elem, ""); result = cssDecl.getPropertyValue("top"); } else if (elem.currentStyle) { result = elem.currentStyle.top; } else if (elem.style) { result = elem.style.top; } else if (isNN4) { result = elem.top; } return parseInt(result); } // Retrieve the rendered width of an element function getObjectWidth(obj) { var elem = getRawObject(obj); var result = 0; if (elem.offsetWidth) { result = elem.offsetWidth; } else if (elem.clip && elem.clip.width) { result = elem.clip.width; } else if (elem.style && elem.style.pixelWidth) { result = elem.style.pixelWidth; } return parseInt(result); } // Retrieve the rendered height of an element function getObjectHeight(obj) { var elem = getRawObject(obj); var result = 0; if (elem.offsetHeight) { result = elem.offsetHeight; } else if (elem.clip && elem.clip.height) { result = elem.clip.height; } else if (elem.style && elem.style.pixelHeight) { result = elem.style.pixelHeight; } return parseInt(result); } // Return the available content width space in browser window function getInsideWindowWidth( ) { if (window.innerWidth) { return window.innerWidth; } else if (isIE6CSS) { // measure the html element's clientWidth return document.body.parentElement.clientWidth; } else if (document.body && document.body.clientWidth) { return document.body.clientWidth; } return 0; } // Return the available content height space in browser window function getInsideWindowHeight( ) { if (window.innerHeight) { return window.innerHeight; } else if (isIE6CSS) { // measure the html element's clientHeight return document.body.parentElement.clientHeight; } else if (document.body && document.body.clientHeight) { return document.body.clientHeight; } return 0; } function centerOnWindow(elemID) { // 'obj' is the positionable object var obj = getRawObject(elemID); // window scroll factors var scrollX = 0, scrollY = 0; if (document.body && typeof document.body.scrollTop != "undefined") { scrollX += document.body.scrollLeft; scrollY += document.body.scrollTop; if (document.body.parentNode && typeof document.body.parentNode.scrollTop != "undefined") { scrollX += document.body.parentNode.scrollLeft; scrollY += document.body.parentNode.scrollTop; } } else if (typeof window.pageXOffset != "undefined") { scrollX += window.pageXOffset; scrollY += window.pageYOffset; } var x = Math.round((getInsideWindowWidth( )/2) - (getObjectWidth(obj)/2)) + scrollX; var y = Math.round((getInsideWindowHeight( )/2) - (getObjectHeight(obj)/2)) + scrollY; shiftTo(obj, x, y); showObj(obj); } function handleArrowKeys(evt,itm) { evt = (evt) ? evt : ((window.event) ? event : null); if (evt) { //var top = getElementStyle("moveableElem", "top", "top"); //var left = getElementStyle("moveableElem", "left", "left"); var elem = document.getElementById(itm); switch (evt.keyCode) { case 37: elem.style.left = (parseInt(left) - 5) + "px"; break; case 38: elem.style.top = (parseInt(top) - 5) + "px"; break; case 39: elem.style.left = (parseInt(left) + 5) + "px"; break; case 40: setBGColor(elem, "red"); //elem.style.top = (parseInt(top) + 5) + "px"; break; } } } function getPageEventCoords(evt) { var coords = {left:0, top:0}; if (evt.pageX) { coords.left = evt.pageX; coords.top = evt.pageY; } else if (evt.clientX) { coords.left = evt.clientX + document.body.scrollLeft - document.body.clientLeft; coords.top = evt.clientY + document.body.scrollTop - document.body.clientTop; // include html element space, if applicable if (document.body.parentElement && document.body.parentElement.clientLeft) { var bodParent = document.body.parentElement; coords.left += bodParent.scrollLeft - bodParent.clientLeft; coords.top += bodParent.scrollTop - bodParent.clientTop; } } return coords; } function mousexy(e,obj) { if( !e ) { if( window.event ) { //Internet Explorer e = window.event; } else { //total failure, we have no way of referencing the event return; } } var moz=0; if( typeof( e.pageX ) == 'number' ) { //most browsers var xcoord = e.pageX; var ycoord = e.pageY; moz=1; } else if( typeof( e.clientX ) == 'number' ) { //Internet Explorer and older browsers //other browsers provide this, but follow the pageX/Y branch var xcoord = e.clientX; var ycoord = e.clientY; var badOldBrowser = ( window.navigator.userAgent.indexOf( 'Opera' ) + 1 ) || ( window.ScriptEngine && ScriptEngine().indexOf( 'InScript' ) + 1 ) || ( navigator.vendor == 'KDE' ) if( !badOldBrowser ) { if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) { //IE 4, 5 & 6 (in non-standards compliant mode) xcoord += document.body.scrollLeft; ycoord += document.body.scrollTop; } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) { //IE 6 (in standards compliant mode) xcoord += document.documentElement.scrollLeft; ycoord += document.documentElement.scrollTop; } } } else { //total failure, we have no way of obtaining the mouse coordinates return; } oh=getObjectHeight(obj); if(obj=="Layer4") { ow=(getObjectWidth(obj)/2)+30; } else if(obj=="Layer5") { ow=15; //getObjectWidth(obj); } else if(obj=="pemp") { ow=getObjectWidth(obj)-30; if (moz==1) { oh=getObjectHeight(obj)+120; } else { oh=getObjectHeight(obj)+90; } } else { ow=getObjectWidth(obj)-10; } shiftTo(obj,xcoord-ow,ycoord-oh); showObj(obj); } /* shiftTo( obj,x,y) Moves an object to a coordinate point within its positioning context shiftBy( obj,deltaX,deltaY) Moves an object by the specified number of pixels along the x and y axes of the object's positioning context setZIndex( obj,zOrder) Sets the z-index value of the object showObj( obj) Makes the object visible hideObj( obj) Makes the object invisible */