﻿(function($) {
    $.fn.resize = function(options) {

        var settings = $.extend({
            scale: 1,
            maxWidth: null,
            maxHeight: null
        }, options);

        return this.each(function() {

            if (this.tagName.toLowerCase() != "img") {
                // Only images can be resized
                return $(this);
            }

            var width = this.naturalWidth;
            var height = this.naturalHeight;
            if (!width || !height) {
                // Ooops you are an IE user, let's fix it.
                var img = document.createElement('img');
                img.src = this.src;

                width = img.width;
                height = img.height;
            }

            if (settings.scale != 1) {
                width = width * settings.scale;
                height = height * settings.scale;
            }

            var pWidth = 1;
            if (settings.maxWidth != null) {
                pWidth = width / settings.maxWidth;
            }
            var pHeight = 1;
            if (settings.maxHeight != null) {
                pHeight = height / settings.maxHeight;
            }
            var reduce = 1;

            if (pWidth < pHeight) {
                reduce = pHeight;
            } else {
                reduce = pWidth;
            }

            if (reduce < 1) {
                reduce = 1;
            }

            var newWidth = width / reduce;
            var newHeight = height / reduce;

            return $(this)
				.attr("width", newWidth)
				.attr("height", newHeight);

        });
    }
})(jQuery);