/*
	Copyright (c) 2004-2007, The Dojo Foundation
	All Rights Reserved.

	Licensed under the Academic Free License version 2.1 or above OR the
	modified BSD license. For more information on Dojo licensing, see:

		http://dojotoolkit.org/book/dojo-book-0-9/introduction/licensing
*/


dojo._xdResourceLoaded({depends:[["provide","dijit._base.focus"]],defineResource:function(_1){if(!_1._hasResource["dijit._base.focus"]){_1._hasResource["dijit._base.focus"]=true;_1.provide("dijit._base.focus");_1.mixin(dijit,{_curFocus:null,_prevFocus:null,isCollapsed:function(){var _2=_1.global;var _3=_1.doc;if(_3.selection){return !_3.selection.createRange().text;}else{if(_2.getSelection){var _4=_2.getSelection();if(_1.isString(_4)){return !_4;}else{return _4.isCollapsed||!_4.toString();}}}},getBookmark:function(){var _5,_6=_1.doc.selection;if(_6){var _7=_6.createRange();if(_6.type.toUpperCase()=="CONTROL"){_5=_7.length?_1._toArray(_7):null;}else{_5=_7.getBookmark();}}else{if(_1.global.getSelection){_6=_1.global.getSelection();if(_6){var _7=_6.getRangeAt(0);_5=_7.cloneRange();}}else{console.debug("No idea how to store the current selection for this browser!");}}return _5;},moveToBookmark:function(_8){var _9=_1.doc;if(_9.selection){var _a;if(_1.isArray(_8)){_a=_9.body.createControlRange();_1.forEach(_8,_a.addElement);}else{_a=_9.selection.createRange();_a.moveToBookmark(_8);}_a.select();}else{var _b=_1.global.getSelection&&_1.global.getSelection();if(_b&&_b.removeAllRanges){_b.removeAllRanges();_b.addRange(_8);}else{console.debug("No idea how to restore selection for this browser!");}}},getFocus:function(_c,_d){return {node:_c&&_1.isDescendant(dijit._curFocus,_c.domNode)?dijit._prevFocus:dijit._curFocus,bookmark:!_1.withGlobal(_d||_1.global,dijit.isCollapsed)?_1.withGlobal(_d||_1.global,dijit.getBookmark):null,openedForWindow:_d};},focus:function(_e){if(!_e){return;}var _f="node" in _e?_e.node:_e,_10=_e.bookmark,_11=_e.openedForWindow;if(_f){var _12=(_f.tagName.toLowerCase()=="iframe")?_f.contentWindow:_f;if(_12&&_12.focus){try{_12.focus();}catch(e){}}dijit._onFocusNode(_f);}if(_10&&_1.withGlobal(_11||_1.global,dijit.isCollapsed)){if(_11){_11.focus();}try{_1.withGlobal(_11||_1.global,moveToBookmark,null,[_10]);}catch(e){}}},_activeStack:[],registerWin:function(_13){if(!_13){_13=window;}_1.connect(_13.document,"onmousedown",null,function(evt){dijit._justMouseDowned=true;setTimeout(function(){dijit._justMouseDowned=false;},0);dijit._onTouchNode(evt.target||evt.srcElement);});var _15=_13.document.body||_13.document.getElementsByTagName("body")[0];if(_15){if(_1.isIE){_15.attachEvent("onactivate",function(evt){if(evt.srcElement.tagName.toLowerCase()!="body"){dijit._onFocusNode(evt.srcElement);}});_15.attachEvent("ondeactivate",function(evt){dijit._onBlurNode(evt.srcElement);});}else{_15.addEventListener("focus",function(evt){dijit._onFocusNode(evt.target);},true);_15.addEventListener("blur",function(evt){dijit._onBlurNode(evt.target);},true);}}_15=null;},_onBlurNode:function(_1a){dijit._prevFocus=dijit._curFocus;dijit._curFocus=null;var w=dijit.getEnclosingWidget(_1a);if(w&&w._setStateClass){w._focused=false;w._setStateClass();}if(dijit._justMouseDowned){return;}if(dijit._clearActiveWidgetsTimer){clearTimeout(dijit._clearActiveWidgetsTimer);}dijit._clearActiveWidgetsTimer=setTimeout(function(){delete dijit._clearActiveWidgetsTimer;dijit._setStack([]);},100);},_onTouchNode:function(_1c){if(dijit._clearActiveWidgetsTimer){clearTimeout(dijit._clearActiveWidgetsTimer);delete dijit._clearActiveWidgetsTimer;}var _1d=[];try{while(_1c){if(_1c.dijitPopupParent){_1c=dijit.byId(_1c.dijitPopupParent).domNode;}else{if(_1c.tagName&&_1c.tagName.toLowerCase()=="body"){if(_1c===_1.body()){break;}_1c=_1.query("iframe").filter(function(_1e){return _1e.contentDocument.body===_1c;})[0];}else{var id=_1c.getAttribute&&_1c.getAttribute("widgetId");if(id){_1d.unshift(id);}_1c=_1c.parentNode;}}}}catch(e){}dijit._setStack(_1d);},_onFocusNode:function(_20){if(_20&&_20.tagName&&_20.tagName.toLowerCase()=="body"){return;}dijit._onTouchNode(_20);if(_20==dijit._curFocus){return;}dijit._prevFocus=dijit._curFocus;dijit._curFocus=_20;_1.publish("focusNode",[_20]);var w=dijit.getEnclosingWidget(_20);if(w&&w._setStateClass){w._focused=true;w._setStateClass();}},_setStack:function(_22){var _23=dijit._activeStack;dijit._activeStack=_22;for(var _24=0;_24<Math.min(_23.length,_22.length);_24++){if(_23[_24]!=_22[_24]){break;}}for(var i=_23.length-1;i>=_24;i--){var _26=dijit.byId(_23[i]);if(_26){_1.publish("widgetBlur",[_26]);if(_26._onBlur){_26._onBlur();}}}for(var i=_24;i<_22.length;i++){var _26=dijit.byId(_22[i]);if(_26){_1.publish("widgetFocus",[_26]);if(_26._onFocus){_26._onFocus();}}}}});_1.addOnLoad(dijit.registerWin);}}});