Ext.namespace("Axi","Axi.UI");Axi.Messenger=function(){if(Axi.Messenger.instance){return Axi.Messenger.instance}Axi.Messenger.instance=this;this._messages=[]};Axi.Messenger.prototype={_msgid:0,_nextMessageId:null,_container:null,_messages:null,_slideInProgress:false,_template:new Ext.Template('<table class="x-axi-window-message x-axi-window-message-{type}" cellpadding="0" cellspacing="0">',"<tr>",'<td class="x-box-ml"></td><td class="x-box-mc">{message}</td>','<td class="x-box-mr"><a href="#" class="close"></a></td>',"</tr>","<tr>",'<td class="x-box-bl"></td>','<td class="x-box-bc"></td><td class="x-box-br"></td>',"</tr>","</table>"),_lock:function(){this._slideInProgress=true},_unlock:function(){this._slideInProgress=false},_isLocked:function(){return this._slideInProgress},_createContainer:function(){var B=Ext.DomHelper.insertFirst(document.body,{tag:"table",style:"z-index: 20000; width: 650px; left: 50%; margin-left: -325px; position: absolute;",html:'<tr><td id="x-message-container" align="center"></td></tr>'},true);
var A=Ext.DomQuery.selectNode("#x-message-container");return A?A:false},_showMessage:function(G,C,H,F){if(this._isLocked()){return this._showMessage.defer(10,this,arguments)}var B,A;if(!this._container){this._container=this._createContainer()}B=this._template.apply({type:C,message:G});var E=Ext.DomQuery.select(".x-axi-window-message");if(!E.length){A=Ext.DomHelper.insertFirst(this._container,{html:B},true)}else{if(this._messages[this._messages.length-1].fxQueue.length===3){F=F||++this._msgid;if(!this._nextMessageId){this._nextMessageId=F}this._showMessage.defer(200,this,[G,C,H,F]);return true}else{if(F&&this._nextMessageId&&this._nextMessageId!=F){this._showMessage.defer(200,this,arguments);return true}}this._nextMessageId=null;A=Ext.DomHelper.insertAfter(E[E.length-1].parentNode,{html:B},true)}this._messages.push(A);this._applyFx(A,H);var D=new Ext.Element(Ext.DomQuery.selectNode("a.close",A.dom));D.on("click",function(){var J=D.findParentNode("div");for(var I=this._messages.length;I>0;--I){if(this._messages[I-1]&&this._messages[I-1].dom==J){this._messages[I-1].stopFx();
this._messages[I-1].remove();this._messages.remove(this._messages[I-1]);if(!this._messages.length){this._unlock()}break}}},this)},_applyFx:function(A,B){A.slideIn("t",{callback:function(){(function(){if(!this._messages.length){return this._unlock()}this._lock()}).defer(B*1000,this)},scope:this}).pause(B).slideOut("t",{callback:function(){this._unlock();this._messages.shift()},scope:this,remove:true})},info:function(A){this._showMessage(A,"info",5)},warn:function(A){this._showMessage(A,"warning",10)},error:function(A){this._showMessage(A,"error",10)},clearMessages:function(){for(var B=0,A=this._messages.length;B<A;++B){if(this._messages[B]){this._messages[B].stopFx()}if(this._messages[B]){this._messages[B].remove()}}this._messages=[]},getCounter:function(){return this._messages.length}};Axi.Messenger.instance;Axi.Messenger.getInstance=function(){return Axi.Messenger.instance};
