/*
	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._Container"]],defineResource:function(_1){if(!_1._hasResource["dijit._Container"]){_1._hasResource["dijit._Container"]=true;_1.provide("dijit._Container");_1.declare("dijit._Contained",null,{getParent:function(){for(var p=this.domNode.parentNode;p;p=p.parentNode){var id=p.getAttribute&&p.getAttribute("widgetId");if(id){var _4=dijit.byId(id);return _4.isContainer?_4:null;}}return null;},_getSibling:function(_5){var _6=this.domNode;do{_6=_6[_5+"Sibling"];}while(_6&&_6.nodeType!=1);if(!_6){return null;}var id=_6.getAttribute("widgetId");return dijit.byId(id);},getPreviousSibling:function(){return this._getSibling("previous");},getNextSibling:function(){return this._getSibling("next");}});_1.declare("dijit._Container",null,{isContainer:true,addChild:function(_8,_9){if(_9===undefined){_9="last";}var _a=this.containerNode||this.domNode;if(_9&&typeof _9=="number"){var _b=_1.query("> [widgetid]",_a);if(_b&&_b.length>=_9){_a=_b[_9-1];_9="after";}}_1.place(_8.domNode,_a,_9);if(this._started&&!_8._started){_8.startup();}},removeChild:function(_c){var _d=_c.domNode;_d.parentNode.removeChild(_d);},_nextElement:function(_e){do{_e=_e.nextSibling;}while(_e&&_e.nodeType!=1);return _e;},_firstElement:function(_f){_f=_f.firstChild;if(_f&&_f.nodeType!=1){_f=this._nextElement(_f);}return _f;},getChildren:function(){return _1.query("> [widgetId]",this.containerNode||this.domNode).map(dijit.byNode);},hasChildren:function(){var cn=this.containerNode||this.domNode;return !!this._firstElement(cn);},_getSiblingOfChild:function(_11,dir){var _13=_11.domNode;var _14=(dir>0?"nextSibling":"previousSibling");do{_13=_13[_14];}while(_13&&(_13.nodeType!=1||!dijit.byNode(_13)));return _13?dijit.byNode(_13):null;}});_1.declare("dijit._KeyNavContainer",[dijit._Container],{_keyNavCodes:{},connectKeyNavHandlers:function(_15,_16){var _17=this._keyNavCodes={};var _18=_1.hitch(this,this.focusPrev);var _19=_1.hitch(this,this.focusNext);_1.forEach(_15,function(_1a){_17[_1a]=_18;});_1.forEach(_16,function(_1b){_17[_1b]=_19;});this.connect(this.domNode,"onkeypress","_onContainerKeypress");if(_1.isIE){this.connect(this.domNode,"onactivate","_onContainerFocus");this.connect(this.domNode,"ondeactivate","_onContainerBlur");}else{this.connect(this.domNode,"onfocus","_onContainerFocus");this.connect(this.domNode,"onblur","_onContainerBlur");}},startupKeyNavChildren:function(){_1.forEach(this.getChildren(),_1.hitch(this,"_setTabIndexMinusOne"));},addChild:function(_1c,_1d){dijit._KeyNavContainer.superclass.addChild.apply(this,arguments);this._setTabIndexMinusOne(_1c);},focus:function(){this.focusFirstChild();},focusFirstChild:function(){this.focusChild(this._getFirstFocusableChild());},focusNext:function(){if(this.focusedChild&&this.focusedChild.hasNextFocalNode&&this.focusedChild.hasNextFocalNode()){this.focusedChild.focusNext();return;}var _1e=this._getNextFocusableChild(this.focusedChild,1);if(_1e.getFocalNodes){this.focusChild(_1e,_1e.getFocalNodes()[0]);}else{this.focusChild(_1e);}},focusPrev:function(){if(this.focusedChild&&this.focusedChild.hasPrevFocalNode&&this.focusedChild.hasPrevFocalNode()){this.focusedChild.focusPrev();return;}var _1f=this._getNextFocusableChild(this.focusedChild,-1);if(_1f.getFocalNodes){var _20=_1f.getFocalNodes();this.focusChild(_1f,_20[_20.length-1]);}else{this.focusChild(_1f);}},focusChild:function(_21,_22){if(_21){if(this.focusedChild&&_21!==this.focusedChild){this._onChildBlur(this.focusedChild);}this.focusedChild=_21;if(_22&&_21.focusFocalNode){_21.focusFocalNode(_22);}else{_21.focus();}}},_setTabIndexMinusOne:function(_23){if(_23.getFocalNodes){_1.forEach(_23.getFocalNodes(),function(_24){_24.setAttribute("tabIndex",-1);});}else{(_23.focusNode||_23.domNode).setAttribute("tabIndex",-1);}},_onContainerFocus:function(evt){this.domNode.setAttribute("tabIndex",-1);if(evt.target===this.domNode){this.focusFirstChild();}else{var _26=dijit.getEnclosingWidget(evt.target);if(_26&&_26.isFocusable()){this.focusedChild=_26;}}},_onContainerBlur:function(evt){if(this.tabIndex){this.domNode.setAttribute("tabIndex",this.tabIndex);}},_onContainerKeypress:function(evt){if(evt.ctrlKey||evt.altKey){return;}var _29=this._keyNavCodes[evt.keyCode];if(_29){_29();_1.stopEvent(evt);}},_onChildBlur:function(_2a){},_getFirstFocusableChild:function(){return this._getNextFocusableChild(null,1);},_getNextFocusableChild:function(_2b,dir){if(_2b){_2b=this._getSiblingOfChild(_2b,dir);}var _2d=this.getChildren();for(var i=0;i<_2d.length;i++){if(!_2b){_2b=_2d[(dir>0)?0:(_2d.length-1)];}if(_2b.isFocusable()){return _2b;}_2b=this._getSiblingOfChild(_2b,dir);}}});}}});