// Global variables
xMousePos = 0;
yMousePos = 0;
xMousePosMax = 0;
yMousePosMax = 0;
zPos = 0;

if (ns4) {
        /*
                function to capture the event of the mouse moving
                for each of the different browsers
        */
            document.captureEvents(Event.MOUSEMOVE);
            document.onmousemove = captureMousePosition;
} else if ((ie4) || (dom)) {
            document.onmousemove = captureMousePosition;
}


function captureMousePosition(e) {
        /*
                function to actually capture the mouse position
                based on the type of browser sets the global
                variables
        */
        if (ns4) {
                xMousePos = e.pageX;
                yMousePos = e.pageY;
                xMousePosMax = window.innerWidth+window.pageXOffset;
                yMousePosMax = window.innerHeight+window.pageYOffset;
        } else if (ie4) {
                xMousePos = window.event.x+document.body.scrollLeft;
                yMousePos = window.event.y+document.body.scrollTop;
                xMousePosMax = document.body.clientWidth+document.body.scrollLeft;
                yMousePosMax = document.body.clientHeight+document.body.scrollTop;
        } else if (dom) {
                xMousePos = e.pageX;
                yMousePos = e.pageY;
                xMousePosMax = window.innerWidth+window.pageXOffset;
                yMousePosMax = window.innerHeight+window.pageYOffset;
        }
}


function toggleSelectboxes(selectboxes,mode) {
        //alert(selectboxes);
        splitboxes = selectboxes.split("|");
        for(x=0; x < splitboxes.length; x++){
         obj = getObject(splitboxes[x]);
         if(!obj){return;}
     if(mode=='hide'){obj.style.visibility = "hidden";}
         else{obj.style.visibility = "visible";}
        }
        return;
}

function closeInfo(iID, selectboxes) {
        toggleInfo(iID);
        toggleSelectboxes(selectboxes,'show');
}

function toggleInfo(iID, width, height, position, selectboxes) {
        /*
                function for the info boxes
                        call it with the width and height of the layer
                        and the position if you want to position it
                        left, right, top, bottom,
                        topleft, topright, bottomleft, bottomright

                there is no way of placing it over select boxes
                so position and use with care
        */

        var leftSub = 8, topSub = 8,
        leftBuffer = 8, topBuffer = 8,
        defaultWidth = 220, defaultHeight = 140;





        obj = getObject(iID);
        if (!obj)
                return;

        zPos++;


        if (!width)
                width = defaultWidth;

        if (!height)
                height = defaultHeight;

        width = width / 2;
        height = height / 2;

        if (position) {
                switch(position) {
                        case "left" :
                                leftSub = - width + leftSub;
                                break;
                        case "right" :
                                leftSub = width - leftSub;
                                break;
                        case "top" :
                                topSub = - height + topSub;
                                break;
                        case "bottom" :
                                topSub = height - topSub;
                                break;
                        case "topleft" :
                                leftSub = - width + leftSub;
                                topSub = - height + topSub;
                                break;
                        case "topright" :
                                leftSub = width - leftSub;
                                topSub = - height + topSub;
                                break;
                        case "bottomleft" :
                                leftSub = - width + leftSub;
                                topSub = height - topSub;
                                break;
                        case "bottomright" :
                                leftSub = width - leftSub;
                                topSub = height - topSub;
                                break;
                }
        } else {
                leftSub = width - leftSub;
                topSub = - height + topSub;
        }

        newLeft = ((xMousePos - width) + leftSub);
        newTop = ((yMousePos - height) + topSub);

        obj.style.left = newLeft;
        obj.style.top = newTop;

        if (obj.style.display == "block") {
                obj.style.display = "none";
                obj.style.zIndex = 0;
                if (selectboxes) {
                        if(ie4)
                                toggleSelectboxes(selectboxes,'show');
                }
                //toggleSelectboxes(selectboxes,'show');
        } else {
                obj.style.display = "block";
                obj.style.zIndex = zPos;
                if (selectboxes) {
                        if(ie4)
                                toggleSelectboxes(selectboxes,'hide');
                }
                //toggleSelectboxes(selectboxes,'hide');
        }
        //alert(obj.style.left + " " +obj.style.top);

}


function showCoords() {
        /*
                for debugging shows all of the mouse position
                variables
        */
        alert("xMousePos=" + xMousePos + ", yMousePos=" + yMousePos + " xMousePosMax=" + xMousePosMax + ", yMousePosMax=" + yMousePosMax)
}
