/*
 * @category Java Script Module Pattern
 * @version $Rev$
 * @author Joel Bair <joelb@baseltd.biz>
 *
 */

// reference local blank image
Ext.BLANK_IMAGE_URL = '../extjs/resources/images/default/s.gif';

// create namespace
Ext.namespace('content');

// create application
content = function() {
    // do NOT access DOM from here; elements don't exist yet

    // private variables

    // private functions
    var subnav = function() {
            var submenu = Ext.get("subnav-menu");

            if(submenu){
                var buttons = submenu.dom.childNodes;
                for (i = 0; i < buttons.length; i++){
                    if(buttons[i].id){
                        Ext.get(buttons[i].id).removeAllListeners();
                        Ext.get(buttons[i].id).on('click', function() {
                            myPage.name = this.id.replace(/subnav-/,"");
                            pageload();
                        });
                    }
                }
            }
        };

        var primnav = function() {
            var navmenu = Ext.get("nav-menu");

            if(navmenu){
                var buttons = navmenu.dom.childNodes;
                for (i = 0; i < buttons.length; i++){
                 if(buttons[i].id){
                    Ext.get(buttons[i].id).removeAllListeners();
                    Ext.get(buttons[i].id).on('click', function() {
                          myPage.name = this.id.replace(/nav-/,"");
                          pageload();
                    });
                 }
                }
                var button = Ext.get('btn-signon');
                button.removeAllListeners();
                button.on('click', function(){
                    login.render();
                });
              }
        };

        var pageload = function() {
            var cnt = Ext.get("contentframe");
            var cntmgr = cnt.getUpdater();

            var mask = new Ext.LoadMask(cnt, { removeMask: true });
            mask.show();

            cntmgr.update({
                url: '/content/'+myPage.name,
                timeout: 60,
                callback: function(el, success, response) {
                    if(success) {
                        myPage.tracker._trackPageview(myPage.name);
                        primnav();
                        subnav();
                        if(Ext.get("email_form")){
                            emailform.render();
                        }
                    } else {
                        Ext.MessageBox.alert('Error', "The server tool long to respond.\n Please try your request again later...\n");
                    }
                }
            });
        };

    // public space
    return {
        // public properties, e.g. strings to translate
        // methods and varibles defined in here always preface w/ "this."

        // public methods
        init: function() {
            pageload();
        },

        load: function() {
            pageload();
        }

    };
}();
