function getStyleObject(objectId) {
    if(document.getElementById && document.getElementById(objectId)) {
        return document.getElementById(objectId).style;
    } else if (document.all && document.all(objectId)) {
        return document.all(objectId).style;
    } else if (document.layers && document.layers[objectId]) {
        return document.layers[objectId];
    } else {
        return false;
    }
}

function changeObjectVisibility(objectId, newVisibility) {
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
        styleObject.visibility = newVisibility;
        return true;
    } else {
        return false;
    }
}

function moveObject(objectId, newXCoordinate, newYCoordinate) {
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
        styleObject.left = newXCoordinate;
        styleObject.top = newYCoordinate;
        return true;
    } else {
        return false;
    }
}

var xOffset = -150;
var yOffset = -50;

function showPopup (targetObjectId, eventObj, addyOffset) {

    if(eventObj) {
	hideCurrentPopup();
	eventObj.cancelBubble = true;

	var newXCoordinate = (eventObj.pageX) ? eventObj.pageX + xOffset : 
	    eventObj.x + xOffset + ((document.body.scrollLeft) ? document.body.scrollLeft : 0);
	var newYCoordinate = (eventObj.pageY) ? eventObj.pageY + yOffset :
	    eventObj.y + yOffset + ((document.body.scrollTop) ? document.body.scrollTop : 0);
	newYCoordinate += addyOffset;

	moveObject(targetObjectId, newXCoordinate, newYCoordinate);

	if( changeObjectVisibility(targetObjectId, 'visible') ) {
	    window.currentlyVisiblePopup = targetObjectId;
	    var form = document.forms['main'];
	    if(form) {
		for(var i = 0 ; i < form.elements.length ; i++) {
		    var elem = form.elements[i];
		    if (elem.id && (elem.type == "select-one" || elem.type == "select-multiple")) {
			changeObjectVisibility(elem.id, 'hidden');
		    }
		}
	    }
	    // changeObjectVisibility("form", 'hidden'); 
	    return true;
	} else {
	    return false;
	}
    } else {
	// there was no event object, so we won't be able to position anything, so give up
	return false;
    }
}

function hideCurrentPopup() {
    if(window.currentlyVisiblePopup) {
	changeObjectVisibility(window.currentlyVisiblePopup, 'hidden');
	window.currentlyVisiblePopup = false;
	var form = document.forms['main'];
	if(form) {
	    for(var i = 0 ; i < form.elements.length ; i++) {
		var elem = form.elements[i];
		if (elem.type == "select-one" || elem.type == "select-multiple") {
		    changeObjectVisibility(elem.id, 'visible');
		}
	    }
	}
        // changeObjectVisibility("form", 'visible'); 
   }
}

window.onload = initializeHacks;
document.onclick = hideCurrentPopup;

function initializeHacks() {
    if ((navigator.appVersion.indexOf('MSIE 5') != -1)
	&& (navigator.platform.indexOf('Mac') != -1)
	&& getStyleObject('blankDiv')) {
	window.onresize = explorerMacResizeFix;
    }
    resizeBlankDiv();
    createFakeEventObj();
}

function createFakeEventObj() {
    if (!window.event) {
	window.event = false;
    }
}

function resizeBlankDiv() {
    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);
}




