﻿/**
* function onmousewheel,
*	onmousewheel(element:Object [, callback:Function]):Void
* @param	Object		window, document or DOM.element to use with callback
* @param	Function	callback function with element scope (.call(...)) and delta wheel value as single parameter
* @return	Void
*/
function onmousewheel(element, callback) {

    // @author	Andrea Giammarchi		[http://www.devpro.it/]
    // @license	MIT 				[http://www.opensource.org/licenses/mit-license.php]
    // @credits	Adomas Paltanavicius 		[http://adomas.org/javascript-mouse-wheel/]

    function __onwheel(event) {
        var delta = 0;
        if (event.wheelDelta) {
            delta = event.wheelDelta / 120;
            if (window.opera)
                delta = -delta;
        }
        else if (event.detail)
            delta = -event.detail / 3;
        if (delta)
            callback.call(element, delta);
        if (event.preventDefault)
            event.preventDefault();
        event.returnValue = false;
        return false;
    };

    if (element.addEventListener && !window.opera)
        element.addEventListener("DOMMouseScroll", __onwheel, false);
    else
        element.onmousewheel = (function(base) {
            return function(evt) {
                if (!evt) evt = window.event;
                if (base) base.call(element, evt);
                return __onwheel(evt);
            } 
        })(element.onmousewheel);
};
