﻿(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); 
