Convert mootools script to jQuery

Convert mootools script to jQuery

So there are a lot of 'conditional sticky sidebars'. But the best i have seen is being used by http://rockettheme.com/drupal. There sidebar scrolls, but stops at them bottom so it aligns with the main column. I love this but it's in Mootools and i use jQuery.

Anyone who could convert this to jQuery? Here's the script:

  1. window.addEvent('domready',function()
        {
        var H=$('sidebar'),mainbody=$('mainbody'),wrapper=$('mainbody-surround');
        var I=$('fader-container');
        if(H&&wrapper&&!Browser.Platform.ipod&&(!Browser.Engine.trident4||(Browser.Engine.trident5&&isIE8())))
            {
            (function()
                {
                var c=H.getCoordinates(),wCoords=mainbody.getCoordinates();
                window.addEvent('scroll',function()
                    {
                    if(I&&Browser.Engine.webkit)return;
                    wCoords=mainbody.getSize();
                    var a=window.getScroll().y,sizey=H.getSize().y;
                    var b=
                        {
                        'ref':(a+sizey),'bar':(mainbody.getCoordinates().top+wCoords.y)
                    };
                    if(sizey<wCoords.y)
                        {
                        if(a+12>c.top&&b.ref<b.bar)H.removeClass('top').removeClass('bottom').addClass('float');
                        else if(b.ref>=b.bar)H.removeClass('float').removeClass('top').addClass('bottom');
                        else H.removeClass('float').removeClass('bottom').addClass('top');
                        H.setStyle('margin-top',0);
                        if(Browser.Engine.webkit)H.inject(mainbody,'after')
                    }
                    else
                        {
                        H.removeClass('float').removeClass('bottom').removeClass('top').setStyle('margin-top',mainbody.getStyle('margin-top'))
                    }
                }
                );
                window.fireEvent('scroll')
            }
            ).delay(1)
        }
      }
    );