/*
	Copyright (c) 2004-2011, 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._KeyNavContainer"]){dojo._hasResource["dijit._KeyNavContainer"]=true;dojo.provide("dijit._KeyNavContainer");dojo.require("dijit._Container");dojo.declare("dijit._KeyNavContainer",dijit._Container,{tabIndex:"0",_keyNavCodes:{},connectKeyNavHandlers:function(_1,_2){var _3=(this._keyNavCodes={});var _4=dojo.hitch(this,this.focusPrev);var _5=dojo.hitch(this,this.focusNext);dojo.forEach(_1,function(_6){_3[_6]=_4;});dojo.forEach(_2,function(_7){_3[_7]=_5;});_3[dojo.keys.HOME]=dojo.hitch(this,"focusFirstChild");_3[dojo.keys.END]=dojo.hitch(this,"focusLastChild");this.connect(this.domNode,"onkeypress","_onContainerKeypress");this.connect(this.domNode,"onfocus","_onContainerFocus");},startupKeyNavChildren:function(){dojo.forEach(this.getChildren(),dojo.hitch(this,"_startupChild"));},addChild:function(_8,_9){dijit._KeyNavContainer.superclass.addChild.apply(this,arguments);this._startupChild(_8);},focus:function(){this.focusFirstChild();},focusFirstChild:function(){var _a=this._getFirstFocusableChild();if(_a){this.focusChild(_a);}},focusLastChild:function(){var _b=this._getLastFocusableChild();if(_b){this.focusChild(_b);}},focusNext:function(){var _c=this._getNextFocusableChild(this.focusedChild,1);this.focusChild(_c);},focusPrev:function(){var _d=this._getNextFocusableChild(this.focusedChild,-1);this.focusChild(_d,true);},focusChild:function(_e,_f){if(this.focusedChild&&_e!==this.focusedChild){this._onChildBlur(this.focusedChild);}_e.set("tabIndex",this.tabIndex);_e.focus(_f?"end":"start");this._set("focusedChild",_e);},_startupChild:function(_10){_10.set("tabIndex","-1");this.connect(_10,"_onFocus",function(){_10.set("tabIndex",this.tabIndex);});this.connect(_10,"_onBlur",function(){_10.set("tabIndex","-1");});},_onContainerFocus:function(evt){if(evt.target!==this.domNode){return;}this.focusFirstChild();dojo.attr(this.domNode,"tabIndex","-1");},_onBlur:function(evt){if(this.tabIndex){dojo.attr(this.domNode,"tabIndex",this.tabIndex);}this.inherited(arguments);},_onContainerKeypress:function(evt){if(evt.ctrlKey||evt.altKey){return;}var _11=this._keyNavCodes[evt.charOrCode];if(_11){_11();dojo.stopEvent(evt);}},_onChildBlur:function(_12){},_getFirstFocusableChild:function(){return this._getNextFocusableChild(null,1);},_getLastFocusableChild:function(){return this._getNextFocusableChild(null,-1);},_getNextFocusableChild:function(_13,dir){if(_13){_13=this._getSiblingOfChild(_13,dir);}var _14=this.getChildren();for(var i=0;i<_14.length;i++){if(!_13){_13=_14[(dir>0)?0:(_14.length-1)];}if(_13.isFocusable()){return _13;}_13=this._getSiblingOfChild(_13,dir);}return null;}});}