Ext.namespace("trellios.ext");

trellios.ext.Status = function()
{
	var msgCt;
	
    function createBox(t, s){
        return ['<div class="msg">',
                '<div class="x-box-tl"><div class="x-box-tr"><div class="x-box-tc"></div></div></div>',
                '<div class="x-box-ml"><div class="x-box-mr"><div class="x-box-mc"><h3>', t, '</h3>', s, '</div></div></div>',
                '<div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div>',
                '</div>'].join('');
    }	
	
	return {	
		msg : function(title, format)
		{
		    if(!msgCt){
		        msgCt = Ext.DomHelper.insertFirst(document.body, {id:'msg-div'}, true);
		    }
		    msgCt.alignTo(document, 't-t');
		    var s = String.format.apply(String, Array.prototype.slice.call(arguments, 1));
		    var m = Ext.DomHelper.append(msgCt, {html:createBox(title, s)}, true);
		    m.slideIn('t').pause(5).ghost("t", {remove:true});
		},
		
		showStatus : function(statusMsg)
		{
			if (!statusMsg || !statusMsg.message)
			{
				this.msg('No message!', '');
				return;
			}
			
			this.msg(statusMsg.message, '');
		}
	}	
}();

dojo.event.topic.subscribe("info", trellios.ext.Status, "showStatus");