//>>built
define("dojox/widget/Toaster",["dojo/_base/declare","dojo/_base/lang","dojo/_base/connect","dojo/_base/fx","dojo/dom-style","dojo/dom-class","dojo/dom-geometry","dijit/registry","dijit/_WidgetBase","dijit/_TemplatedMixin","dijit/BackgroundIframe","dojo/fx","dojo/has","dojo/_base/window","dojo/window"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f){
_2.getObject("dojox.widget",true);
var _10=function(w){
return w.substring(0,1).toUpperCase()+w.substring(1);
};
return _1("dojox.widget.Toaster",[_9,_a],{templateString:"
",messageTopic:"",messageTypes:{MESSAGE:"message",WARNING:"warning",ERROR:"error",FATAL:"fatal"},defaultType:"message",positionDirection:"br-up",positionDirectionTypes:["br-up","br-left","bl-up","bl-right","tr-down","tr-left","tl-down","tl-right"],duration:2000,slideDuration:500,separator:"
",postCreate:function(){
this.inherited(arguments);
this.hide();
_e.body().appendChild(this.domNode);
if(this.messageTopic){
_3.subscribe(this.messageTopic,this,"_handleMessage");
}
},_handleMessage:function(_11){
if(_2.isString(_11)){
this.setContent(_11);
}else{
this.setContent(_11.message,_11.type,_11.duration);
}
},setContent:function(_12,_13,_14){
_14=_14||this.duration;
if(this.slideAnim){
if(this.slideAnim.status()!="playing"){
this.slideAnim.stop();
}
if(this.slideAnim.status()=="playing"||(this.fadeAnim&&this.fadeAnim.status()=="playing")){
setTimeout(_2.hitch(this,function(){
this.setContent(_12,_13,_14);
}),50);
return;
}
}
for(var _15 in this.messageTypes){
_6.remove(this.containerNode,"dijitToaster"+_10(this.messageTypes[_15]));
}
_5.set(this.containerNode,"opacity",1);
this._setContent(_12);
_6.add(this.containerNode,"dijitToaster"+_10(_13||this.defaultType));
this.show();
var _16=_7.getMarginBox(this.containerNode);
this._cancelHideTimer();
if(this.isVisible){
this._placeClip();
if(!this._stickyMessage){
this._setHideTimer(_14);
}
}else{
var _17=this.containerNode.style;
var pd=this.positionDirection;
if(pd.indexOf("-up")>=0){
_17.left=0+"px";
_17.top=_16.h+10+"px";
}else{
if(pd.indexOf("-left")>=0){
_17.left=_16.w+10+"px";
_17.top=0+"px";
}else{
if(pd.indexOf("-right")>=0){
_17.left=0-_16.w-10+"px";
_17.top=0+"px";
}else{
if(pd.indexOf("-down")>=0){
_17.left=0+"px";
_17.top=0-_16.h-10+"px";
}else{
throw new Error(this.id+".positionDirection is invalid: "+pd);
}
}
}
}
this.slideAnim=_c.slideTo({node:this.containerNode,top:0,left:0,duration:this.slideDuration});
this.connect(this.slideAnim,"onEnd",function(_18,_19){
this.fadeAnim=_4.fadeOut({node:this.containerNode,duration:1000});
this.connect(this.fadeAnim,"onEnd",function(evt){
this.isVisible=false;
this.hide();
});
this._setHideTimer(_14);
this.connect(this,"onSelect",function(evt){
this._cancelHideTimer();
this._stickyMessage=false;
this.fadeAnim.play();
});
this.isVisible=true;
});
this.slideAnim.play();
}
},_setContent:function(_1a){
if(_2.isFunction(_1a)){
_1a(this);
return;
}
if(_1a&&this.isVisible){
_1a=this.contentNode.innerHTML+this.separator+_1a;
}
this.contentNode.innerHTML=_1a;
},_cancelHideTimer:function(){
if(this._hideTimer){
clearTimeout(this._hideTimer);
this._hideTimer=null;
}
},_setHideTimer:function(_1b){
this._cancelHideTimer();
if(_1b>0){
this._cancelHideTimer();
this._hideTimer=setTimeout(_2.hitch(this,function(evt){
if(this.bgIframe&&this.bgIframe.iframe){
this.bgIframe.iframe.style.display="none";
}
this._hideTimer=null;
this._stickyMessage=false;
this.fadeAnim.play();
}),_1b);
}else{
this._stickyMessage=true;
}
},_placeClip:function(){
var _1c=_f.getBox();
var _1d=_7.getMarginBox(this.containerNode);
var _1e=this.clipNode.style;
_1e.height=_1d.h+"px";
_1e.width=_1d.w+"px";
var pd=this.positionDirection;
if(pd.match(/^t/)){
_1e.top=_1c.t+"px";
}else{
if(pd.match(/^b/)){
_1e.top=(_1c.h-_1d.h-2+_1c.t)+"px";
}
}
if(pd.match(/^[tb]r-/)){
_1e.left=(_1c.w-_1d.w-1-_1c.l)+"px";
}else{
if(pd.match(/^[tb]l-/)){
_1e.left=0+"px";
}
}
_1e.clip="rect(0px, "+_1d.w+"px, "+_1d.h+"px, 0px)";
if(_d("ie")){
if(!this.bgIframe){
this.clipNode.id=_8.getUniqueId("dojox_widget_Toaster_clipNode");
this.bgIframe=new _b(this.clipNode);
}
var _1f=this.bgIframe.iframe;
if(_1f){
_1f.style.display="block";
}
}
},onSelect:function(e){
},show:function(){
_5.set(this.domNode,"display","block");
this._placeClip();
if(!this._scrollConnected){
this._scrollConnected=_3.connect(_f,"onscroll",this,this._placeClip);
}
},hide:function(){
_5.set(this.domNode,"display","none");
if(this._scrollConnected){
_3.disconnect(this._scrollConnected);
this._scrollConnected=false;
}
_5.set(this.containerNode,"opacity",1);
}});
});