function getObject(object)
        {
        if(document.getElementById && document.getElementById(object))
                {
                // W3C DOM
                return document.getElementById(object);
                }
        else if (document.all && document.all(object))
                {
                // MSIE 4 DOM
                return document.all(object);
                }
        else if (document.layers && document.layers[object])
                {
                // NN 4 DOM.. note: this won't find nested layers
                return document.layers[object];
                }
        else if (document.getElementById && document.getElementById[object])
                {
                // Mozilla NS6 by jer
                return document.getElementById[object];
                }
        else
                {
                return false;
                }
        }
function getStyleObject(object)
        {
        if(document.getElementById && document.getElementById(object))
                {
                // W3C DOM
                return document.getElementById(object).style;
                }
        else if (document.all && document.all(object))
                {
                // MSIE 4 DOM
                return document.all(object).style;
                }
        else if (document.layers && document.layers[object])
                {
                // NN 4 DOM.. note: this won't find nested layers
                return document.layers[object];
                }
        else if (document.getElementById && document.getElementById[object])
                {
                // Mozilla NS6 by jer
                return document.getElementById[object];
                }
        else
                {
                return false;
                }
        }
function changeObjectVisibility(object, newVisibility)
        {
        var styleObject = getStyleObject(object);
        if(styleObject)
                {
                styleObject.visibility = newVisibility;
                return true;
                }
        else
                {
                return false;
                }
        }
function moveObject(object, newXCoordinate, newYCoordinate)
        {
        var styleObject = getStyleObject(object);
        if(styleObject)
                {
                styleObject.left = newXCoordinate;
                styleObject.top = newYCoordinate;
                return true;
                }
        else
                {
                return false;
                }
        }
function swapBG(name,color)
        {
        if(getStyleObject(name))
                {
                getStyleObject(name).backgroundColor=color;
                return true;
                }
        else
                {
                return false;
                }
        }
function swapC(name,color)
        {
        if(getStyleObject(name))
                {
                getStyleObject(name).color=color;
                return true;
                }
        else
                {
                return false;
                }
        }
function rollOverImage(name,image)
        {
        if (document.images)
                {
                document.images[name].src=eval(image+".src");
                }
        return false;
        }
function setOpacity(object,opacityPercentage)
        {
        if(getStyleObject(object))
                {
                getStyleObject(object).opacity = opacityPercentage / 100; // FireFox, Safari - W3C?
                getStyleObject(object).MozOpacity = opacityPercentage / 100; // Mozilla
                getStyleObject(object).filter = 'Alpha(opacity=' + opacityPercentage + ')'; // IE
                getObject(object).poop = opacityPercentage ; // for storage?!
                if(opacityPercentage == 0)
                        {
                        changeObjectVisibility(object,'hidden');
                        }
                else
                        {
                        changeObjectVisibility(object,'visible');
                        }                        
                }
        else
                {
                return false;
                }
        }
// ------------------------------------------------------------------------
menuNameHide = null
subMenuNameHide = null
waitToCloseMenu = null
waitToCloseSubMenu = null
waitingToCloseMenu = false
waitingToCloseSubMenu = false
function showMenu(menuName)
        {
        if (waitingToCloseMenu = true) 
                {
                changeObjectVisibility('menu' + menuNameHide, 'hidden')
                }
        clearTimeout(waitToCloseMenu)
        changeObjectVisibility('menu' + menuName, 'visible')
        }
function waitBeforeCloseMenu()
        {
        changeObjectVisibility('menu' + menuNameHide, 'hidden')
        menuNameHide = null
        waitingToCloseMenu = false
        }
function hideMenu(menuName)
        {
        menuNameHide = menuName
        waitingToCloseMenu = true
        waitToCloseMenu = setTimeout('waitBeforeCloseMenu()',500)
        }
// ------------------------------------------------------------------------
function showSubMenu(menuName)
        {
        if (waitingToCloseSubMenu = true)
                {
                changeObjectVisibility('menu' + subMenuNameHide, 'hidden')
                }
        clearTimeout(waitToCloseMenu)
        clearTimeout(waitToCloseSubMenu)
        changeObjectVisibility('menu' + menuName, 'visible')
        }
function waitBeforeCloseSubMenu()
        {
        changeObjectVisibility('menu' + subMenuNameHide, 'hidden')
        subMenuNameHide = null
        waitingToCloseSubMenu = false
        }
function hideSubMenu(subMenuName)
        {
        subMenuNameHide = subMenuName
        waitingToCloseSubMenu = true
        waitToCloseSubMenu = setTimeout('waitBeforeCloseSubMenu()',333)
        }
// ------------------------------------------------------------------------
var objectOpacity, fadeTimer, crossFadeTimer, fadeOpacity, crossFadeOpacity;
function calculateOpacityPercentage(object,opacityStepDirection)
        {
        objectOpacity = (getObject(object).poop);
        objectOpacity += opacityStepDirection;

        if(objectOpacity < 0)
                {
                objectOpacity = 0;
                }
        if(objectOpacity > 99.99)
                {
                objectOpacity = 99.99;
                }
        //defaultStatus = objectOpacity;
        return objectOpacity;
        }

function fade(object, opacityStepDirection)
        {
        if(fadeTimer)
                {
                clearTimeout(fadeTimer);
                }

        fadeOpacity = calculateOpacityPercentage(object,opacityStepDirection);
        setOpacity(object, fadeOpacity);

        fadeTimer = setTimeout("fade('" + object + "'," + opacityStepDirection + ")",10);
        }
        
function crossFade(objectOut, objectIn, opacityStepDirection)
        {
        if(crossFadeTimer)
                {
                clearTimeout(crossFadeTimer);
                }

        crossFadeOpacity = calculateOpacityPercentage(objectOut,-opacityStepDirection);
        setOpacity(objectOut, crossFadeOpacity);   
        crossFadeOpacity = calculateOpacityPercentage(objectIn,opacityStepDirection);
        setOpacity(objectIn, crossFadeOpacity);

        crossFadeTimer = setTimeout("crossFade('" + objectOut + "','" + objectIn + "'," + opacityStepDirection + ")",10);
        }

// ------------------------------------------------------------------------
var marginX = 0;
var marginY = 0;

function adjust(object,sizeX,sizeY)
        {
        if (lastX==-1 )
                {
                lastX=window.pageXOffset + marginX;
                lastY=window.pageYOffset + marginY;
                }
        else
                {
                var dx=Math.abs(window.pageXOffset+marginX-lastX);
                var dy=Math.abs(window.pageYOffset+marginY-lastY);
                var d=Math.sqrt(dx*dx+dy*dy);
                var c=Math.round(d/10);
                if (window.pageXOffset+marginX>lastX) {lastX=lastX+1+c;}
                if (window.pageXOffset+marginX<lastX) {lastX=lastX-1-c;}
                if (window.pageYOffset+marginY>lastY) {lastY=lastY+1+c;}
                if (window.pageYOffset+marginY<lastY) {lastY=lastY-1-c;}
                }
        moveObject(object,lastX,lastY)
        setTimeout("adjust('"+object+"')",8);
        }

function define()
        {
        marginX = window.innerWidth - imarginX - 106-18
        marginY = window.innerHeight - imarginY - 33-2
        }

imarginX = marginX;
imarginY = marginY;
lastX = -1;
lastY = -1;