// initialize hacks whenever the page loads window.onload = initializeHacks; // setup an event handler to hide popups for generic clicks on the document function initializeHacks() { // this ugly little hack resizes a blank div to make sure you can click // anywhere in the window for Mac MSIE 5 if ((navigator.appVersion.indexOf('MSIE 5') != -1) && (navigator.platform.indexOf('Mac') != -1) && getStyleObject('blankDiv')) { window.onresize = explorerMacResizeFix; } resizeBlankDiv(); // this next function creates a placeholder object for older browsers createFakeEventObj(); } function createFakeEventObj() { // create a fake event object for older browsers to avoid errors in function call // when we need to pass the event object to functions if (!window.event) { window.event = false; } } // createFakeEventObj function resizeBlankDiv() { // resize blank placeholder div so IE 5 on mac will get all clicks in window if ((navigator.appVersion.indexOf('MSIE 5') != -1) && (navigator.platform.indexOf('Mac') != -1) && getStyleObject('blankDiv')) { getStyleObject('blankDiv').width = document.body.clientWidth - 20; getStyleObject('blankDiv').height = document.body.clientHeight - 20; } } function explorerMacResizeFix () { location.reload(false); } // ****************************** // end of hacks and workarounds * // ****************************** function getStyleObject(objectId, doc) { // cross-browser function to get an object's style object given its id if(document.getElementById && document.getElementById(objectId)) { // W3C DOM return document.getElementById(objectId).style; } else if (document.all && document.all(objectId)) { // MSIE 4 DOM return document.all(objectId).style; } else if (document.layers && document.layers[objectId]) { // NN 4 DOM.. note: this won't find nested layers return getObjNN4(document,objectId); } else { return false; } } // getStyleObject function changeObjectVisibility(objectId, newVisibility) { // get a reference to the cross-browser style object and make sure the object exists var styleObject = getStyleObject(objectId, document); if(styleObject) { styleObject.visibility = newVisibility; return true; } else { //we couldn't find the object, so we can't change its visibility return false; } } // changeObjectVisibility function getElementLeft(Elem) { var elem; if(document.getElementById) { //msie5+ and dom var elem = document.getElementById(Elem); } else if (document.all){ // msie4 var elem = document.all[Elem]; } xPos = elem.offsetLeft; tempEl = elem.offsetParent; while (tempEl != null) { xPos += tempEl.offsetLeft; tempEl = tempEl.offsetParent; } return xPos; } function getElementTop(Elem) { if(document.getElementById) { // MSIE5+ AND DOM var elem = document.getElementById(Elem); } else if (document.all) { //MSIE4 var elem = document.all[Elem]; } yPos = elem.offsetTop; tempEl = elem.offsetParent; while (tempEl != null) { yPos += tempEl.offsetTop; tempEl = tempEl.offsetParent; } return yPos; } function findImage(name, doc) { // For NS4.x var i, img; // loop through all images in document or layer for (i = 0; i < doc.images.length; i++) { // is this the image we're looking for? if (doc.images[i].name == name) { // if so return value return doc.images[i]; } } // loop thropugh all layers in the document or layer for (i = 0; i < doc.layers.length; i++) { // recurse function to search this layer if ((img = findImage(name, doc.layers[i].document)) != null) { // if the image is there, return it img.container = doc.layers[i]; return img; } } // return failure return null; } function getImage(name) { // For NS4.x if (document.layers) { //use the function above to find an image and return a value... return findImage(name, document); } // ... or return failure return null; } function getImagePageLeft(img) { // For NS4.x var x, obj; if (document.layers) { if (img.container != null) return img.container.pageX + img.x; else return img.x; } return -1; } function getImagePageTop(img) { // For NS4.x var y, obj; if (document.layers) { if (img.container != null) return img.container.pageY + img.y; else return img.y; } return -1; } function getObjNN4(obj,name) { var x = obj.layers; var foundLayer; for (var i=0;i