

(function($){

$.fn.positionFooter = function(center){

var element = this;

var originalPosition = $(element).offset();
var originalTopPosition = originalPosition.top;

positionTheFooter();

$(window).bind("resize", function(){
    positionTheFooter();
});

function positionTheFooter(){

  var elementPosition = $(element).offset();
  var elementPaddingTop = $(element).css("padding-top");
  var elementPaddingBottom = $(element).css("padding-bottom");
  var elementPaddingleft = $(element).css("padding-left");
  var elementPaddingRight = $(element).css("padding-right");
  var elementHeight = $(element).height();
  var elementWidth = $(element).width();

  var windowHeight = $(window).height();
  var windowWidth = $(window).width();

  elementPaddingTop = elementPaddingTop.replace(/px/,"");
  elementPaddingBottom = elementPaddingBottom.replace(/px/,"");
  elementPaddingleft = elementPaddingleft.replace(/px/,"");
  elementPaddingRight = elementPaddingRight.replace(/px/,"");

  var newPosition = (parseInt(windowHeight) - (parseInt(elementHeight) + (parseInt(elementPaddingTop) + parseInt(elementPaddingBottom))));
  var currentPosition = elementPosition.top - (parseInt(elementHeight) + (parseInt(elementPaddingTop) + parseInt(elementPaddingBottom)));

  if(originalTopPosition < windowHeight){

    $(element).css({
      "position" : "absolute",
      "top" : newPosition
    });

    if(center == true){
      $(element).css({
        "left" : windowWidth / 2 - (((elementWidth + parseInt(elementPaddingleft) + parseInt(elementPaddingRight)) / 2))
      });
    }

  }

  if(newPosition <= originalTopPosition){

    $(element).css({
      "position" : "absolute",
      "top" : originalTopPosition
    });

    if(center == true){
      $(element).css({
        "left" : windowWidth / 2 - (((elementWidth + parseInt(elementPaddingleft) + parseInt(elementPaddingRight)) / 2))
      });
    }

  }

};

};

})(jQuery);
