﻿/**
 * Copyright (c) 2009 Blue Acacia, http://www.blueacacia.com/
 * $Author Emilien TREHET
 * $Date: 2009-03-16 
 */
 
function Resizer(toListen, toResize, minWidth, maxWidth, minHeight, maxHeight) {
    this._toListen = toListen;
    this._toResize = toResize;
    this._minWidth = minWidth;
    this._maxWidth = maxWidth;
    this._minHeight = minHeight
    this._maxHeight = maxHeight;

    var scopeHelper = this;
    //Lance la méthode de vérification une fois la page finie de chargée
    //et la méthode qui va écouter le resize de l'objet à écouter.
    $(document).ready(function() {
        scopeHelper.check();
        scopeHelper.listen();
    });
}
Resizer.prototype = {
    listen: function() {
        var scopeHelper = this;
        $(this._toListen).bind("resize", function() { scopeHelper.check(); });
    },
    resize: function(width, height) {
        $(this._toResize).css("width", width);
        $(this._toResize).css("height", height);
    },
    check: function() {
        if ($(this._toListen).width() < this._minWidth)
            $(this._toResize).css("width", this._minWidth + "px");
        else if ($(this._toListen).width() > this._maxWidth)
            $(this._toResize).css("width", this._maxWidth + "px");
        else
            $(this._toResize).css("width", "100%");

        if ($(this._toListen).height() < this._minHeight)
            $(this._toResize).css("height", this._minHeight + "px");
        else if ($(this._toListen).height() > this._maxHeight)
            $(this._toResize).css("height", this._maxHeight + "px");
        else
            $(this._toResize).css("height", "100%");
    }
}