//>>built define("dojo/_base/array dojo/dom dojo/_base/lang dojo/topic dojo/_base/window ../focus ../selection ../main".split(" "),function(n,k,l,f,d,b,g,e){b.focus=function(a){if(a){var c="node"in a?a.node:a,h=a.bookmark;a=a.openedForWindow;var g=h?h.isCollapsed:!1;if(c){var f="iframe"==c.tagName.toLowerCase()?c.contentWindow:c;if(f&&f.focus)try{f.focus()}catch(m){}b._onFocusNode(c)}if(h&&d.withGlobal(a||d.global,e.isCollapsed)&&!g){a&&a.focus();try{d.withGlobal(a||d.global,e.moveToBookmark,null,[h])}catch(m){}}}}; b.watch("curNode",function(a,c,b){e._curFocus=b;e._prevFocus=c;b&&f.publish("focusNode",b)});b.watch("activeStack",function(a,c,b){e._activeStack=b});b.on("widget-blur",function(a,b){f.publish("widgetBlur",a,b)});b.on("widget-focus",function(a,b){f.publish("widgetFocus",a,b)});l.mixin(e,{_curFocus:null,_prevFocus:null,isCollapsed:function(){return e.getBookmark().isCollapsed},getBookmark:function(){return(d.global==window?g:new g.SelectionManager(d.global)).getBookmark()},moveToBookmark:function(a){return(d.global== window?g:new g.SelectionManager(d.global)).moveToBookmark(a)},getFocus:function(a,c){a=!b.curNode||a&&k.isDescendant(b.curNode,a.domNode)?e._prevFocus:b.curNode;return{node:a,bookmark:a&&a==b.curNode&&d.withGlobal(c||d.global,e.getBookmark),openedForWindow:c}},_activeStack:[],registerIframe:function(a){return b.registerIframe(a)},unregisterIframe:function(a){a&&a.remove()},registerWin:function(a,c){return b.registerWin(a,c)},unregisterWin:function(a){a&&a.remove()}});return e});