/* Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. Available via Academic Free License >= 2.1 OR the modified BSD license. see: http://dojotoolkit.org/license for details */ if(!dojo._hasResource["dijit.Dialog"]){ dojo._hasResource["dijit.Dialog"]=true; dojo.provide("dijit.Dialog"); dojo.require("dojo.dnd.move"); dojo.require("dojo.dnd.TimedMoveable"); dojo.require("dojo.fx"); dojo.require("dojo.window"); dojo.require("dijit._Widget"); dojo.require("dijit._Templated"); dojo.require("dijit._CssStateMixin"); dojo.require("dijit.form._FormMixin"); dojo.require("dijit._DialogMixin"); dojo.require("dijit.DialogUnderlay"); dojo.require("dijit.layout.ContentPane"); dojo.requireLocalization("dijit","common",null,"ROOT,ar,ca,cs,da,de,el,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ro,ru,sk,sl,sv,th,tr,zh,zh-tw"); dojo.declare("dijit._DialogBase",[dijit._Templated,dijit.form._FormMixin,dijit._DialogMixin,dijit._CssStateMixin],{templateString:dojo.cache("dijit","templates/Dialog.html","
\n\t
\n\t\n\t\n\t\tx\n\t\n\t
\n\t\t
\n
\n"),baseClass:"dijitDialog",cssStateNodes:{closeButtonNode:"dijitDialogCloseIcon"},attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{title:[{node:"titleNode",type:"innerHTML"},{node:"titleBar",type:"attribute"}],"aria-describedby":""}),open:false,duration:dijit.defaultDuration,refocus:true,autofocus:true,_firstFocusItem:null,_lastFocusItem:null,doLayout:false,draggable:true,"aria-describedby":"",postMixInProperties:function(){ var _1=dojo.i18n.getLocalization("dijit","common"); dojo.mixin(this,_1); this.inherited(arguments); },postCreate:function(){ dojo.style(this.domNode,{display:"none",position:"absolute"}); dojo.body().appendChild(this.domNode); this.inherited(arguments); this.connect(this,"onExecute","hide"); this.connect(this,"onCancel","hide"); this._modalconnects=[]; },onLoad:function(){ this._position(); if(this.autofocus){ this._getFocusItems(this.domNode); dijit.focus(this._firstFocusItem); } this.inherited(arguments); },_endDrag:function(e){ if(e&&e.node&&e.node===this.domNode){ this._relativePosition=dojo.position(e.node); } },_setup:function(){ var _2=this.domNode; if(this.titleBar&&this.draggable){ this._moveable=(dojo.isIE==6)?new dojo.dnd.TimedMoveable(_2,{handle:this.titleBar}):new dojo.dnd.Moveable(_2,{handle:this.titleBar,timeout:0}); dojo.subscribe("/dnd/move/stop",this,"_endDrag"); }else{ dojo.addClass(_2,"dijitDialogFixed"); } this.underlayAttrs={dialogId:this.id,"class":dojo.map(this["class"].split(/\s/),function(s){ return s+"_underlay"; }).join(" ")}; this._fadeIn=dojo.fadeIn({node:_2,duration:this.duration,beforeBegin:dojo.hitch(this,function(){ var _3=dijit._underlay; if(!_3){ _3=dijit._underlay=new dijit.DialogUnderlay(this.underlayAttrs); }else{ _3.set(this.underlayAttrs); } var ds=dijit._dialogStack,_4=948+ds.length*2; if(ds.length==1){ _3.show(); } dojo.style(dijit._underlay.domNode,"zIndex",_4); dojo.style(this.domNode,"zIndex",_4+1); }),onEnd:dojo.hitch(this,function(){ if(this.autofocus){ this._getFocusItems(this.domNode); dijit.focus(this._firstFocusItem); } })}); this._fadeOut=dojo.fadeOut({node:_2,duration:this.duration,onEnd:dojo.hitch(this,function(){ _2.style.display="none"; var ds=dijit._dialogStack; if(ds.length==0){ dijit._underlay.hide(); }else{ dojo.style(dijit._underlay.domNode,"zIndex",948+ds.length*2); dijit._underlay.set(ds[ds.length-1].underlayAttrs); } if(this.refocus){ var _5=this._savedFocus; if(ds.length>0){ var pd=ds[ds.length-1]; if(!dojo.isDescendant(_5.node,pd.domNode)){ pd._getFocusItems(pd.domNode); _5=pd._firstFocusItem; } } dijit.focus(_5); } })}); },uninitialize:function(){ var _6=false; if(this._fadeIn&&this._fadeIn.status()=="playing"){ _6=true; this._fadeIn.stop(); } if(this._fadeOut&&this._fadeOut.status()=="playing"){ _6=true; this._fadeOut.stop(); } if((this.open||_6)&&!dijit._underlay._destroyed){ dijit._underlay.hide(); } if(this._moveable){ this._moveable.destroy(); } this.inherited(arguments); },_size:function(){ this._checkIfSingleChild(); if(this._singleChild){ if(this._singleChildOriginalStyle){ this._singleChild.domNode.style.cssText=this._singleChildOriginalStyle; } delete this._singleChildOriginalStyle; }else{ dojo.style(this.containerNode,{width:"auto",height:"auto"}); } var mb=dojo.marginBox(this.domNode); var _7=dojo.window.getBox(); if(mb.w>=_7.w||mb.h>=_7.h){ var w=Math.min(mb.w,Math.floor(_7.w*0.75)),h=Math.min(mb.h,Math.floor(_7.h*0.75)); if(this._singleChild&&this._singleChild.resize){ this._singleChildOriginalStyle=this._singleChild.domNode.style.cssText; this._singleChild.resize({w:w,h:h}); }else{ dojo.style(this.containerNode,{width:w+"px",height:h+"px",overflow:"auto",position:"relative"}); } }else{ if(this._singleChild&&this._singleChild.resize){ this._singleChild.resize(); } } },_position:function(){ if(!dojo.hasClass(dojo.body(),"dojoMove")){ var _8=this.domNode,_9=dojo.window.getBox(),p=this._relativePosition,bb=p?null:dojo._getBorderBox(_8),l=Math.floor(_9.l+(p?p.x:(_9.w-bb.w)/2)),t=Math.floor(_9.t+(p?p.y:(_9.h-bb.h)/2)); dojo.style(_8,{left:l+"px",top:t+"px"}); } },_onKey:function(_a){ var ds=dijit._dialogStack; if(ds[ds.length-1]!=this){ return; } if(_a.charOrCode){ var dk=dojo.keys; var _b=_a.target; if(_a.charOrCode===dk.TAB){ this._getFocusItems(this.domNode); } var _c=(this._firstFocusItem==this._lastFocusItem); if(_b==this._firstFocusItem&&_a.shiftKey&&_a.charOrCode===dk.TAB){ if(!_c){ dijit.focus(this._lastFocusItem); } dojo.stopEvent(_a); }else{ if(_b==this._lastFocusItem&&_a.charOrCode===dk.TAB&&!_a.shiftKey){ if(!_c){ dijit.focus(this._firstFocusItem); } dojo.stopEvent(_a); }else{ while(_b){ if(_b==this.domNode||dojo.hasClass(_b,"dijitPopup")){ if(_a.charOrCode==dk.ESCAPE){ this.onCancel(); }else{ return; } } _b=_b.parentNode; } if(_a.charOrCode!==dk.TAB){ dojo.stopEvent(_a); }else{ if(!dojo.isOpera){ try{ this._firstFocusItem.focus(); } catch(e){ } } } } } } },show:function(){ if(this.open){ return; } if(!this._alreadyInitialized){ this._setup(); this._alreadyInitialized=true; } if(this._fadeOut.status()=="playing"){ this._fadeOut.stop(); } this._modalconnects.push(dojo.connect(window,"onscroll",this,"layout")); this._modalconnects.push(dojo.connect(window,"onresize",this,function(){ var _d=dojo.window.getBox(); if(!this._oldViewport||_d.h!=this._oldViewport.h||_d.w!=this._oldViewport.w){ this.layout(); this._oldViewport=_d; } })); this._modalconnects.push(dojo.connect(dojo.doc.documentElement,"onkeypress",this,"_onKey")); dojo.style(this.domNode,{opacity:0,display:""}); this.open=true; this._onShow(); this._size(); this._position(); dijit._dialogStack.push(this); this._fadeIn.play(); this._savedFocus=dijit.getFocus(this); },hide:function(){ var ds=dijit._dialogStack; if(!this._alreadyInitialized||this!=ds[ds.length-1]){ return; } if(this._fadeIn.status()=="playing"){ this._fadeIn.stop(); } ds.pop(); this._fadeOut.play(); if(this._scrollConnected){ this._scrollConnected=false; } dojo.forEach(this._modalconnects,dojo.disconnect); this._modalconnects=[]; if(this._relativePosition){ delete this._relativePosition; } this.open=false; this.onHide(); },layout:function(){ if(this.domNode.style.display!="none"){ if(dijit._underlay){ dijit._underlay.layout(); } this._position(); } },destroy:function(){ dojo.forEach(this._modalconnects,dojo.disconnect); if(this.refocus&&this.open){ setTimeout(dojo.hitch(dijit,"focus",this._savedFocus),25); } this.inherited(arguments); }}); dojo.declare("dijit.Dialog",[dijit.layout.ContentPane,dijit._DialogBase],{}); dijit._dialogStack=[]; dojo.require("dijit.TooltipDialog"); }