Здравствуйте, помогите разобраться и решить следующую проблему. 
Реализовываю фиксацию боковой колонки на сайте при помощи следующего кода:
var rightcolumnTop = rightcolumn.offset().top;
var columnPosition = contentWidth - rightcolumnWidth + contentLeftMargin;
var rightcolumnStop = headerHeight + popularPostHeight + contentHeight - rightcolumnHeight;
var columnPositionDown = contentWidth - rightcolumnWidth;
$(window).scroll(function(){
   if ( $(this).scrollTop() > rightcolumnTop ) 
      {
        rightcolumn.addClass("columnfixed");
        rightcolumn.css({"top":"0px", "left": columnPosition - 2 +"px", "width": rightcolumnWidth+"px", });
       }
   if($(this).scrollTop() >= rightcolumnStop && rightcolumn.hasClass("columnfixed"))
       {   
          rightcolumn.removeClass("columnfixed");
          rightcolumn.addClass("columnabsolute");
          rightcolumn.css({"top": contentHeight - rightcolumnHeight+"px", "left": columnPositionDown - 2 +"px", "width": rightcolumnWidth+"px", });  
        }
   if($(this).scrollTop() < rightcolumnStop && rightcolumn.hasClass("columnabsolute"))
        {
           rightcolumn.removeClass("columnabsolute");
           rightcolumn.addClass("columnfixed");
           rightcolumn.css({"top":"0px", "left": columnPosition - 2 +"px", "width": rightcolumnWidth+"px", });
         }
                 
      if($(this).scrollTop() <= rightcolumnTop && rightcolumn.hasClass("columnfixed"))
         {
             rightcolumn.removeClass("columnfixed");
          }
});
Наверно идея очень не верно реализована (хоть и получается закрепить колонку когда нужно), но при изменении размеров окна браузера, колонка остаётся на том месте, которое на данный момент было определено в стилях. И проблема решается только при обновлении страницы. 
Подскажите как правильно реализовать фиксацию и открепление колонки, чтобы не возникало таких проблем.