Ext.ns("Ext.a11y");
Ext.util.Observable.observeClass(Ext.Component);
Ext.Component.on("render",function(A){A.initARIA()
});
Ext.override(Ext.Component,{initARIA:Ext.emptyFn});
Ext.a11y.ARIA=Ext.apply(new Ext.util.Observable(),function(){return{setRole:function(A,B){A=Ext.getDom(A);
if(A&&A.setAttribute){A.setAttribute("role",B.toString())
}},setProperty:function(B,A,C){B=Ext.getDom(B);
if(B&&B.setAttribute){B.setAttribute(A.toString(),C.toString())
}}}
}());
var ARIA=Ext.a11y.ARIA;
Ext.override(Ext.Window,{initARIA:function(){Ext.Window.superclass.initARIA.call(this);
var I=this.el;
ARIA.setRole(I,"dialog");
ARIA.setProperty(I,"aria-labelledby",this.header.id);
var N=I.down(".x-window-tl");
var K=N.down(".x-window-tr");
var D=K.down(".x-window-tc");
ARIA.setRole(N,"presentation");
ARIA.setRole(K,"presentation");
ARIA.setRole(D,"presentation");
var F=this.header.down(".x-window-header-text");
var B=this.header.down(".x-tool-close");
ARIA.setRole(F,"heading");
ARIA.setRole(B,"button");
ARIA.setProperty(B,"title","Close");
var H=I.down(".x-window-bwrap");
var E=H.down(".x-window-ml");
var A=E.down(".x-window-mr");
var L=A.down(".x-window-mc");
ARIA.setRole(H,"presentation");
ARIA.setRole(E,"presentation");
ARIA.setRole(A,"presentation");
ARIA.setRole(L,"presentation");
var C=H.down(".x-window-bl");
var M=C.down(".x-window-br");
var G=M.down(".x-window-bc");
ARIA.setRole(C,"presentation");
ARIA.setRole(M,"presentation");
ARIA.setRole(G,"presentation");
if(this.footer){var J=this.footer.down(".x-panel-btns");
ARIA.setRole(J,"presentation")
}}});
Ext.override(Ext.Button,{initARIA:function(){Ext.Toolbar.superclass.initARIA.call(this);
var A=this.el;
var C=A.first();
var E=Ext.getDom(C).childNodes;
ARIA.setRole(A,"presentation");
ARIA.setRole(C,"presentation");
for(var D=0;
D<E.length;
D++){var F=E[D];
ARIA.setRole(F,"presentation");
for(var B=0;
B<F.childNodes.length;
B++){var G=F.childNodes[B];
ARIA.setRole(G,"presentation")
}}}});
Ext.override(Ext.Toolbar,{initARIA:function(){Ext.Toolbar.superclass.initARIA.call(this);
this.on("afterLayout",this.afterLayout,this);
var A=this.el;
ARIA.setRole(A,"toolbar")
},afterLayout:function(B,E){var A=B.el.down(".x-toolbar-ct");
var D=A.first();
var G=D.first();
var F=G.down(".x-toolbar-left");
var I=G.down(".x-toolbar-right");
var H=F.query(".x-toolbar-cell");
ARIA.setRole(A,"presentation");
ARIA.setRole(D,"presentation");
ARIA.setRole(G,"presentation");
ARIA.setRole(F,"presentation");
ARIA.setRole(F.first(),"presentation");
ARIA.setRole(I,"presentation");
ARIA.setRole(I.first(),"presentation");
for(var C=0;
C<H.length;
C++){var J=H[C];
ARIA.setRole(J,"presentation")
}}});
Ext.override(Ext.grid.GridPanel,{initARIA:function(){Ext.grid.GridPanel.superclass.initARIA.call(this);
var B=this.getStore();
B.on("datachanged",this.onStoreLoad,this);
B.on("load",this.onStoreLoad,this);
if(B.getTotalCount()>0){this.onStoreLoad()
}var Q=this.getTopToolbar();
var G=this.getBottomToolbar();
if(Q){Q.on("afterlayout",this.setToolbarControls,this)
}if(G){G.on("afterlayout",this.setToolbarControls,this)
}var I=this.getSelectionModel();
I.on("rowselect",this.onRowSelect,this);
I.on("rowdeselect",this.onRowDeselect,this);
var M=this.gridPanel=this.el;
this.headerCells=M.query(".x-grid3-hd");
for(var P=0;
P<this.headerCells.length;
P++){var K=this.headerCells[P];
ARIA.setRole(K,"columnheader")
}ARIA.setRole(M,"grid");
var S=M.down(".x-panel-bwrap");
var L=S.down(".x-panel-body");
if(!L){L=S.child(".x-panel-body")
}ARIA.setRole(L,"presentation");
var H=L.down(".x-grid3");
var F=H.down(".x-grid3-viewport");
var N=H.down(".x-grid3-resize-marker");
var D=H.down(".x-grid3-resize-proxy");
var J=F.down(".x-grid3-header");
var R=J.down(".x-grid3-header-inner");
var A=R.down(".x-grid3-header-offset");
var O=A.first();
ARIA.setRole(J,"presentation");
ARIA.setRole(R,"presentation");
ARIA.setRole(A,"presentation");
ARIA.setRole(O,"presentation");
var E=F.down(".x-grid3-scroller");
var C=this.gridBody=E.down(".x-grid3-body");
ARIA.setRole(E,"presentation");
ARIA.setRole(C,"presentation")
},initStore:function(){var A=this.getStore();
A.on("load",this.onStoreLoad,this);
A.on("datachanged",this.onStoreLoad,this)
},setToolbarControls:function(B,A){ARIA.setProperty(B.el,"aria-controls",Ext.id(this.gridPanel))
},onStoreLoad:function(F){var J=this.getView().getRows();
if(J){for(var E=0;
E<J.length;
E++){var I=J[E];
ARIA.setRole(I,"row");
ARIA.setProperty(I,"aria-selected",false);
var B=Ext.fly(I).down(".x-grid3-row-table");
ARIA.setRole(B,"presentation");
var H=B.query(".x-grid3-cell");
for(var C=0;
C<H.length;
C++){var G=H[C];
var A=Ext.fly(G).down(".x-grid3-cell-inner");
ARIA.setRole(G,"gridcell");
ARIA.setProperty(G,"aria-labelledby",Ext.id(A));
var D=this.headerCells[C];
if(D){ARIA.setProperty(G,"described-by",Ext.id(D))
}}}}},onRowSelect:function(E,B,A){var C=Ext.getDom(this.gridBody);
var D=C.childNodes[B];
ARIA.setProperty(D,"aria-selected",true)
},onRowDeselect:function(E,B,A){var C=Ext.getDom(this.gridBody);
var D=C.childNodes[B];
ARIA.setProperty(D,"aria-selected",false)
}});
Ext.override(Ext.tree.TreeNode,{render:function(A){this.ui.render(A);
if(!this.rendered){this.getOwnerTree().registerNode(this);
this.rendered=true;
this.fireEvent("noderender",this);
if(this.expanded){this.expanded=false;
this.expand(false,false)
}}}});
Ext.override(Ext.tree.TreePanel,{initARIA:function(){Ext.tree.TreePanel.superclass.initARIA.call(this);
this.getSelectionModel().on("beforeselect",this.onBeforeSelect,this);
this.ariaTreeEl=this.body.down(".x-tree-root-ct");
this.on("collapsenode",this.onNodeCollapse,this);
this.on("expandnode",this.onNodeExpand,this)
},registerNode:function(A){if(this.nodeHash[A.id]===undefined){A.on("noderender",this.onNodeRender,this)
}this.nodeHash[A.id]=A
},unregisterNode:function(A){A.un("noderender",this.onNodeRender,this);
delete this.nodeHash[A.id]
},onNodeRender:function(B){var A=B.ui.anchor,D=this.rootVisible?1:0,C=B;
if(B.isRoot){ARIA.setRole(this.ariaTreeEl,"tree");
ARIA.setProperty(this.ariaTreeEl,"aria-labelledby",Ext.id(B.ui.textNode));
ARIA.setProperty(this.ariaTreeEl,"aria-activedescendant","false");
if(!this.rootVisible){return 
}}ARIA.setRole(B.ui.wrap,"treeitem");
ARIA.setProperty(B.ui.wrap,"aria-labelledby",Ext.id(B.ui.textNode));
ARIA.setProperty(B.ui.wrap,"aria-expanded","false");
ARIA.setProperty(B.ui.wrap,"aria-selected","false");
while(C.parentNode){D++;
C=C.parentNode
}ARIA.setProperty(B.ui.wrap,"aria-level",D);
if(!B.isLeaf()){ARIA.setRole(B.ui.ctNode,"group");
ARIA.setProperty(B.ui.wrap,"aria-expanded",B.isExpanded())
}},onBeforeSelect:function(C,A,B){if(B){ARIA.setProperty(B.ui.wrap,"aria-selected","false")
}if(A){ARIA.setProperty(A.ui.wrap,"aria-selected","true");
ARIA.setProperty(this.ariaTreeEl,"aria-activedescendant",Ext.id(A.ui.wrap))
}else{ARIA.setProperty(this.ariaTreeEl,"aria-activedescendant","")
}},onNodeCollapse:function(A){ARIA.setProperty(A.ui.wrap,"aria-expanded","false")
},onNodeExpand:function(A){ARIA.setProperty(A.ui.wrap,"aria-expanded","true")
}});
Ext.override(Ext.menu.Menu,{initARIA:function(){var A=this.el;
A.on("beforeshow",this.setItemRoles,this);
ARIA.setRole(A,"menu")
},setItemRoles:function(D,C){for(var A=0;
A<D.items.length;
A++){var B=D.items[A];
ARIA.setRole(B,"menuitem")
}}});

