var yndcMenuId = 'mmdiv';
var yndcMenu =

{

    targetX: -0,
	targetY:160,



    hasInner: typeof(window.innerWidth) == 'number',

    hasElement: document.documentElement

        && document.documentElement.clientWidth,



    menu:

        document.getElementById

        ? document.getElementById(yndcMenuId)

        : document.all

          ? document.all[yndcMenuId]

          : document.layers[yndcMenuId]

};



yndcMenu.move = function ()

{

    if (document.layers)

    {

        yndcMenu.menu.left = yndcMenu.nextX;

        yndcMenu.menu.top = yndcMenu.nextY;

    }

    else

    {

        yndcMenu.menu.style.left = yndcMenu.nextX + 'px';

        yndcMenu.menu.style.top = yndcMenu.nextY + 'px';

    }

}



yndcMenu.computeShifts = function ()

{

    var de = document.documentElement;



    yndcMenu.shiftX =

        yndcMenu.hasInner

        ? pageXOffset

        : yndcMenu.hasElement

          ? de.scrollLeft

          : document.body.scrollLeft;

    if (yndcMenu.targetX < 0)

    {

        if (yndcMenu.hasElement && yndcMenu.hasInner)

        {

            yndcMenu.shiftX +=

                de.clientWidth > window.innerWidth

                ? window.innerWidth

                : de.clientWidth

        }

        else

        {

            yndcMenu.shiftX +=

                yndcMenu.hasElement

                ? de.clientWidth

                : yndcMenu.hasInner

                  ? window.innerWidth

                  : document.body.clientWidth;

        }

    }



    yndcMenu.shiftY = 

        yndcMenu.hasInner

        ? pageYOffset

        : yndcMenu.hasElement

          ? de.scrollTop

          : document.body.scrollTop;

    if (yndcMenu.targetY < 0)

    {

        if (yndcMenu.hasElement && yndcMenu.hasInner)

        {

            yndcMenu.shiftY +=

                de.clientHeight > window.innerHeight

                ? window.innerHeight

                : de.clientHeight

        }

        else

        {

            yndcMenu.shiftY +=

                yndcMenu.hasElement

                ? document.documentElement.clientHeight

                : yndcMenu.hasInner

                  ? window.innerHeight

                  : document.body.clientHeight;

        }

    }

}



yndcMenu.doFloat = function()

{

    var stepX, stepY;



    yndcMenu.computeShifts();



    stepX = (yndcMenu.shiftX + 

        yndcMenu.targetX - yndcMenu.nextX) * .07;

    if (Math.abs(stepX) < .5)

    {

        stepX = yndcMenu.shiftX +

            yndcMenu.targetX - yndcMenu.nextX;

    }



    stepY = (yndcMenu.shiftY + 

        yndcMenu.targetY - yndcMenu.nextY) * .07;

    if (Math.abs(stepY) < .5)

    {

        stepY = yndcMenu.shiftY + 

            yndcMenu.targetY - yndcMenu.nextY;

    }



    if (Math.abs(stepX) > 0 ||

        Math.abs(stepY) > 0)

    {

        yndcMenu.nextX += stepX;

        yndcMenu.nextY += stepY;

        yndcMenu.move();

    }



    setTimeout('yndcMenu.doFloat()', 1);

};



yndcMenu.addEvent = function(element, listener, handler)

{

    if(typeof element[listener] != 'function' || 

       typeof element[listener + '_num'] == 'undefined')

    {
        element[listener + '_num'] = 0;
        if (typeof element[listener] == 'function')
        {
            element[listener + 0] = element[listener];
            element[listener + '_num']++;
        }
        element[listener] = function(e)
        {
            var r = true;
            e = (e) ? e : window.event;
            for(var i = element[listener + '_num'] -1; i >= 0; i--)
            {
                if(element[listener + i](e) == false)
                    r = false;
            }
            return r;
        }
    }

    for(var i = 0; i < element[listener + '_num']; i++)
        if(element[listener + i] == handler)
            return;
    element[listener + element[listener + '_num']] = handler;
    element[listener + '_num']++;
};

yndcMenu.init = function()
{
    yndcMenu.initSecondary();
    yndcMenu.doFloat();
};


yndcMenu.initSecondary = function()
{
    yndcMenu.computeShifts();
    yndcMenu.nextX = yndcMenu.shiftX +
        yndcMenu.targetX;
    yndcMenu.nextY = yndcMenu.shiftY +
        yndcMenu.targetY;
    yndcMenu.move();
}

if (document.layers)
    yndcMenu.addEvent(window, 'onload', yndcMenu.init);
else
{
    yndcMenu.init();
    yndcMenu.addEvent(window, 'onload',
        yndcMenu.initSecondary);
}
