/**
 *  higewheel.js
 */
var HIGEWheel = function (targetId)
{
    var delta = 0,
        target = document.getElementById(targetId),
        browser = com.asual.util.Browser;

    if (browser.isMozilla()||browser.isFirefox()||browser.isCamino())
    {
        target.addEventListener("DOMMouseScroll", function (evt)
        {
            if (evt.target.externalMouseEvent)
            {
                // fixed wheel delta.
                delta = -evt.detail;
                // trigger mouse wheel event.
                evt.target.externalMouseEvent(delta);
            }
            // prevent browser scroll.
            evt.preventDefault();
        }, false);

    }
    else if (browser.isSafari())
    {
        target.parentNode.addEventListener("mousewheel", function (evt)
        {
            // ignore wrapper div.
            if (evt.target.nodeName.toLowerCase() != "embed") return;
            if (evt.target.externalMouseEvent)
            {
                // fixed wheel delta.
                delta = evt.wheelDelta / 120;
                // trigger mouse wheel event.
                evt.target.externalMouseEvent(delta);
            }
            // prevent browser scroll.
            // FIXME: browser still moved.
            evt.preventDefault();
            evt.returnValue = false;
        }, false);
    }
    else if (browser.isOpera())
    {
        target.addEventListener("mousewheel", function (evt)
        {
            if (evt.target.externalMouseEvent)
            {
                // fixed wheel delta.
                delta = evt.wheelDelta / 120;
                // trigger mouse wheel event.
                evt.target.externalMouseEvent(delta);
            }
            evt.preventDefault();
            //evt.returnValue = false;
        }, false);
    }
    else if (browser.isIE())
    {
        target.parentNode.attachEvent("onmousewheel", function ()
        {
            evt = window.event;
            if (evt.srcElement.nodeName.toLowerCase() != "object") return;
            evt.returnValue = false;
        });
    }
}
