/* ----------------------------------------------------------------------------------------------------

	TriplePanel

---------------------------------------------------------------------------------------------------- */

Type.registerNamespace("uSwitch.Web.UI.WebControls");

uSwitch.Web.UI.WebControls.TriplePanel = function(element) {
    uSwitch.Web.UI.WebControls.TriplePanel.initializeBase(this, [element]);

    this._divTriplePanel = null;
    this._divPanels = null;
    this._divPanelLeft = null;
    this._divPanelMiddle = null;
    this._divPanelRight = null;

    this._timerDelegate = null;
}

uSwitch.Web.UI.WebControls.TriplePanel.prototype = {
    initialize: function() {
        uSwitch.Web.UI.WebControls.TriplePanel.callBaseMethod(this, 'initialize');

        this._divTriplePanel = $(this.get_element());
        this._divPanels = new Array();

        var that = this;

        this._divTriplePanel.find("div[class*='us-panel']").each(function() {
            that._divPanels.push($(this));
        })

        if (this._divPanels.length < 2)
            return;

        this._divPanelLeft = this._divPanels[0].find("div[class='inner-content']");
        this._divPanelMiddle = this._divPanels[1].find("div[class='inner-content']");

        if (this._divPanels.length == 3)
            this._divPanelRight = this._divPanels[2].find("div[class='inner-content']");

        this._timerDelegate = Function.createDelegate(this, this.resetPanelHeights);

        $(window).load(this._timerDelegate);

        var that = this;

        var prm = Sys.WebForms.PageRequestManager.getInstance();
        if (prm != null) {
            prm.add_endRequest(function() {
                that.resetPanelHeights();
            });
        }
    },

    resetPanelHeights: function() {
        this._divPanelLeft.height('');
        this._divPanelMiddle.height('');        

        if (this._divPanels.length == 2) {
            if (this._divPanelLeft.height() < this._divPanelMiddle.height())
                this._divPanelLeft.height(this._divPanelMiddle.height());
            else
                this._divPanelMiddle.height(this._divPanelLeft.height());
        }
        else {
            this._divPanelRight.height('');
            if (this._divPanelLeft.height() < this._divPanelMiddle.height() || this._divPanelLeft.height() < this._divPanelRight.height()) {
                if (this._divPanelMiddle.height() < this._divPanelRight.height()) {
                    this._divPanelLeft.height(this._divPanelRight.height());
                    this._divPanelMiddle.height(this._divPanelRight.height());
                }
                else {
                    this._divPanelLeft.height(this._divPanelMiddle.height());
                    this._divPanelRight.height(this._divPanelMiddle.height());
                }
            }
            else {
                this._divPanelMiddle.height(this._divPanelLeft.height());
                this._divPanelRight.height(this._divPanelLeft.height());
            }
        }
    },

    dispose: function() {
        var element = this.get_element();

        delete this._timerDelegate;

        uSwitch.Web.UI.WebControls.TriplePanel.callBaseMethod(this, 'dispose');
    }
}

uSwitch.Web.UI.WebControls.TriplePanel.registerClass("uSwitch.Web.UI.WebControls.TriplePanel", Sys.UI.Control);
if (typeof (Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();