jQuery(document).ready(function($) {


    $(window).scroll(function() {
        var dynamicSidebarHeight = $('#sidebar-left').height();

        if ($(window).height() > dynamicSidebarHeight) {
            var fixedFooterOffset = 150;
            var scrollTo = $(window).scrollTop()
            var calculatedMaxTop = $('#footer').offset().top - dynamicSidebarHeight - fixedFooterOffset;
            var fixedHeaderOffset = 150;

            if (scrollTo > calculatedMaxTop) {
                scrollTo = calculatedMaxTop;
            }
            else if (scrollTo < fixedHeaderOffset) {
                scrollTo = 280;
            }
            else {
                scrollTo -= fixedHeaderOffset - 280; //18 is for a top margin
            }

            $('#sidebar-left')
                    .animate(
                { top: scrollTo + 'px' },
                { queue: false, duration: 500, easing: 'easeInOutSine' }
                    );
        }
    });

});
