﻿/// <reference name="MicrosoftAjax.js"/>

Type.registerNamespace("BandSite");

BandSite.MenuPanel = function(element) {
    BandSite.MenuPanel.initializeBase(this, [element]);
}

BandSite.MenuPanel.prototype = {
    initialize: function() {
        BandSite.MenuPanel.callBaseMethod(this, 'initialize');
        
        // Add custom initialization here
        var that = this;
        
        for (var i = 0; i < this._sitePageIDs.length; i++) {
            var pageID = this._sitePageIDs[i];  // Need to do this here to avoid closure problems
            var pageName = this._sitePageNames[i];
            this._setupPageSelectedEvent(pageID, this._buttonImageIDs[i], pageName);
        }
        
    },
    dispose: function() {        
        //Add custom dispose actions here
        BandSite.MenuPanel.callBaseMethod(this, 'dispose');
    },
    
    _setupPageSelectedEvent: function(pageID, buttonID, pageName) {
        var that = this;
        $find(buttonID).add_imageClicked(
            function(sender, e) {
                that._raiseEvent("pageSelected", {pageID: pageID, pageName: pageName});
             
                that.unselectMenuButtons();
                sender.set_selected(true);
            }
        );
    },
    
    selectPage: function(pageName) {
        var pageID = null;
        var buttonID = null;
        for (var i = 0; i < this._sitePageNames.length; i++) {
            if (this._sitePageNames[i] == pageName) {
                pageID = this._sitePageIDs[i];
                buttonID = this._buttonImageIDs[i];
            }
        }
        if (pageID > 0) {
            this._raiseEvent("pageSelected", {pageID: pageID, pageName: pageName});
        } else {
            programError("Page name " + pageName + " not recognised");
        }
        this.unselectMenuButtons();
        $find(buttonID).set_selected(true);
    },
    
    unselectMenuButtons: function() {
        for (var i = 0; i < this._buttonImageIDs.length; i++) {
            $find(this._buttonImageIDs[i]).set_selected(false);
        }    
    }
    
}
BandSite.MenuPanel.createProperty("sitePageIDs");
BandSite.MenuPanel.createProperty("buttonImageIDs");
BandSite.MenuPanel.createProperty("sitePageNames");
BandSite.MenuPanel.createEvent("pageSelected");
BandSite.MenuPanel.registerClass('BandSite.MenuPanel', Sys.UI.Control);

if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
