Ext.BLANK_IMAGE_URL = 'images/default/s.gif';

var hitems, fi, fi_msg, hdialog;
var Help = function () {
    return {
        init: function () {
            new Ajax.Request('Helper?action=b', {
                method:'get',
                onSuccess: function(transport){
                    hitems = transport.responseText.evalJSON();
                //hitems = hitems.help;
                //console.log(hitems);
                }
            });

            // get any "span" tags of class "help" and automatically
            // set the onclick event
            Ext.addBehaviors({
                'span.help@click' : function(){
                    Help.displayHelp(this.title); 
                }
            });

        }, // end init
        displayHelp: function (hid) {
            hitems.help.find(function(h){
                if (h.hid == hid) {
                    fi = h;
                    return true;
                } 
            });

            fi_msg = Ext.Msg.show({
                title:"Help",
                msg: '<div style="text-align: left">' + fi.hsdesc + '</div>', // + "\n<br /><br /><a href='#' onclick='Help.getMoreHelp()'>More info...</a>"
                //height: 200,
                width: 300,
                buttons: {
                    ok:'More info',
                    cancel: 'Close'
                },
                fn: this.processHelp
            });
			if (fi.hldesc == "") {
				fi_msg.getDialog().buttons[0].disable();
			} else {
				fi_msg.getDialog().buttons[0].enable();
			}

        }, // end displayHelp
        processHelp: function (btn, txt) {
            if (btn == "ok") {
                Help.getMoreHelp();
            }
        },
        getMoreHelp: function () {
            //fi_msg.updateText(fi.hldesc);
            
            if(!hdialog){ // lazy initialize the dialog and only create it once
                hdialog = new Ext.BasicDialog("help-dlg", {
                    modal:true,
                    autoTabs:true,
                    width:500,
                    height:300,
                    shadow:true,
                    minWidth:300,
                    minHeight:300
                });
                hdialog.addKeyListener(27, hdialog.hide, hdialog);
                hdialog.addButton('Close', hdialog.hide, hdialog);
            }
            
			hdialog.getTabs().items[0].bodyEl.dom.innerHTML = '<div class="inner-tab" style="text-align: left">' + fi.hldesc + '</div>';
            hdialog.show();
            hdialog.getTabs().items[0].setText(fi.hname);
            
            return false;

        } // end getMoreHelp
    };  // end return
}();  // end Help
Ext.onReady(Help.init, Help, true);
