﻿/*
 * jquery.maxSize.js
 * Plugin qui permet d'appliquer une grandeur maximale au contenu d'un objet jQuery, tout en conservant les proportions
 * Usage: jQuery("#someElement").maxSize(100, 200);
 */
 
/// <reference path="jquery-1.4.1.min-vsdoc2.js" />
(function($)
{
    $.fn.extend(
    {
        maxSize: function(maxWidth, maxHeight)
        {
            return this.each(function()
            {
                var element = $(this);
                var width = element.width();
                var height = element.height();
                var isWider = width > height;

                var applyMaxWidth = function()
                {
                    if (width > maxWidth)
                    {
                        // Si c'est trop large, on redimensionne et on ajuste la hauteur pour conserver les proportions
                        element.css("width", maxWidth);
                        element.css("height", "auto");
                        height = element.height();
                    }
                }

                var applyMaxHeight = function()
                {
                    if (height > maxHeight)
                    {
                        // Si c'est trop haut, on redimensionne et on ajuste la largeur pour conserver les proportions
                        element.css("height", maxHeight);
                        element.css("width", "auto");
                        width = element.width();
                    }
                }

                if (isWider)
                {
                    applyMaxWidth();
                    applyMaxHeight();
                }
                else
                {
                    applyMaxHeight();
                    applyMaxWidth();
                }
            });
        }
    });
})(jQuery);
