function CMouseWheel()
{
    this.el = false;
    this.func = false;
    this.step = true;
    this.ieJust = false;
    this.p = false;
    var me = this;

	this.main = function(event)
    {
        if(!me.func || !me.el) return;
        event = event ? event : window.event;
        if (event.preventDefault) event.preventDefault();
        event.returnValue = false;
        me.func(me.el, ((event.wheelDelta) ? event.wheelDelta/120 : event.detail/-3) || false);
        return false;
    };

    this.reg = function(el,func,p)
    {
        this.el = el;
        this.func = func;
        if(typeof(p)!='undefined') this.p = p;
    };

    this.unreg = function(el,func)
    {
        if(me.ieJust)
        {
            me.ieJust = false;
            return;
        }
        this.el = false;
        this.func = false;
        this.p = false;
    };

    this.dest = function()
    {
        if(!me.step)
        {
            me.step = true;
            return false;
        }
        me.step = false;
        return true;
    };

    this.selectChoose = function(el,d)
    {
        if(!me.dest()) return;
        if(d>0)
        {
            if(el.selectedIndex==0) return;
            el.selectedIndex -= 1;
        }
        else
        {
            if(el.selectedIndex>el.options.length-2) return;
            el.selectedIndex += 1;
        }
    };

    this.spin = function(el,d)
    {
        if(!me.dest()) return;
        var val = parseInt(el.value);
        var step = (me.p && typeof(me.p.step)!='undefined') ? parseInt(me.p.step) : 1;
        var min = (me.p && typeof(me.p.min)!='undefined') ? parseInt(me.p.min) : false;
        var max = (me.p && typeof(me.p.max)!='undefined') ? parseInt(me.p.max) : false;
        if(d>0) val += step; else val -= step;
        if(min!==false && val<min) val = min;
        if(max!==false && val>max) val = max;
        el.value = val;
    };

    if (window.addEventListener) window.addEventListener("DOMMouseScroll", this.main, false);
    window.onmousewheel = document.onmousewheel = this.main;
}
window.mWheel = new CMouseWheel();

