summaryrefslogtreecommitdiff
path: root/lib/dijit/_base
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2010-11-15 10:39:52 +0300
committerAndrew Dolgov <[email protected]>2010-11-15 10:39:52 +0300
commit2f01fe57a8d37767827d6db42850aef86a767c53 (patch)
tree516a95ffce2fc2435aed8d9976e444dbcba7dce3 /lib/dijit/_base
parent951906dcecb1d3c7bcf751976a03e0c196ca6db0 (diff)
add dijit/dojo stuff; initial ui mockup
Diffstat (limited to 'lib/dijit/_base')
-rw-r--r--lib/dijit/_base/focus.js299
-rw-r--r--lib/dijit/_base/manager.js245
-rw-r--r--lib/dijit/_base/place.js111
-rw-r--r--lib/dijit/_base/popup.js158
-rw-r--r--lib/dijit/_base/scroll.js15
-rw-r--r--lib/dijit/_base/sniff.js12
-rw-r--r--lib/dijit/_base/typematic.js87
-rw-r--r--lib/dijit/_base/wai.js64
-rw-r--r--lib/dijit/_base/window.js15
9 files changed, 1006 insertions, 0 deletions
diff --git a/lib/dijit/_base/focus.js b/lib/dijit/_base/focus.js
new file mode 100644
index 000000000..32be06aa7
--- /dev/null
+++ b/lib/dijit/_base/focus.js
@@ -0,0 +1,299 @@
+/*
+ Copyright (c) 2004-2010, 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._base.focus"]){
+dojo._hasResource["dijit._base.focus"]=true;
+dojo.provide("dijit._base.focus");
+dojo.require("dojo.window");
+dojo.require("dijit._base.manager");
+dojo.mixin(dijit,{_curFocus:null,_prevFocus:null,isCollapsed:function(){
+return dijit.getBookmark().isCollapsed;
+},getBookmark:function(){
+var bm,rg,tg,_1=dojo.doc.selection,cf=dijit._curFocus;
+if(dojo.global.getSelection){
+_1=dojo.global.getSelection();
+if(_1){
+if(_1.isCollapsed){
+tg=cf?cf.tagName:"";
+if(tg){
+tg=tg.toLowerCase();
+if(tg=="textarea"||(tg=="input"&&(!cf.type||cf.type.toLowerCase()=="text"))){
+_1={start:cf.selectionStart,end:cf.selectionEnd,node:cf,pRange:true};
+return {isCollapsed:(_1.end<=_1.start),mark:_1};
+}
+}
+bm={isCollapsed:true};
+}else{
+rg=_1.getRangeAt(0);
+bm={isCollapsed:false,mark:rg.cloneRange()};
+}
+}
+}else{
+if(_1){
+tg=cf?cf.tagName:"";
+tg=tg.toLowerCase();
+if(cf&&tg&&(tg=="button"||tg=="textarea"||tg=="input")){
+if(_1.type&&_1.type.toLowerCase()=="none"){
+return {isCollapsed:true,mark:null};
+}else{
+rg=_1.createRange();
+return {isCollapsed:rg.text&&rg.text.length?false:true,mark:{range:rg,pRange:true}};
+}
+}
+bm={};
+try{
+rg=_1.createRange();
+bm.isCollapsed=!(_1.type=="Text"?rg.htmlText.length:rg.length);
+}
+catch(e){
+bm.isCollapsed=true;
+return bm;
+}
+if(_1.type.toUpperCase()=="CONTROL"){
+if(rg.length){
+bm.mark=[];
+var i=0,_2=rg.length;
+while(i<_2){
+bm.mark.push(rg.item(i++));
+}
+}else{
+bm.isCollapsed=true;
+bm.mark=null;
+}
+}else{
+bm.mark=rg.getBookmark();
+}
+}else{
+console.warn("No idea how to store the current selection for this browser!");
+}
+}
+return bm;
+},moveToBookmark:function(_3){
+var _4=dojo.doc,_5=_3.mark;
+if(_5){
+if(dojo.global.getSelection){
+var _6=dojo.global.getSelection();
+if(_6&&_6.removeAllRanges){
+if(_5.pRange){
+var r=_5;
+var n=r.node;
+n.selectionStart=r.start;
+n.selectionEnd=r.end;
+}else{
+_6.removeAllRanges();
+_6.addRange(_5);
+}
+}else{
+console.warn("No idea how to restore selection for this browser!");
+}
+}else{
+if(_4.selection&&_5){
+var rg;
+if(_5.pRange){
+rg=_5.range;
+}else{
+if(dojo.isArray(_5)){
+rg=_4.body.createControlRange();
+dojo.forEach(_5,function(n){
+rg.addElement(n);
+});
+}else{
+rg=_4.body.createTextRange();
+rg.moveToBookmark(_5);
+}
+}
+rg.select();
+}
+}
+}
+},getFocus:function(_7,_8){
+var _9=!dijit._curFocus||(_7&&dojo.isDescendant(dijit._curFocus,_7.domNode))?dijit._prevFocus:dijit._curFocus;
+return {node:_9,bookmark:(_9==dijit._curFocus)&&dojo.withGlobal(_8||dojo.global,dijit.getBookmark),openedForWindow:_8};
+},focus:function(_a){
+if(!_a){
+return;
+}
+var _b="node" in _a?_a.node:_a,_c=_a.bookmark,_d=_a.openedForWindow,_e=_c?_c.isCollapsed:false;
+if(_b){
+var _f=(_b.tagName.toLowerCase()=="iframe")?_b.contentWindow:_b;
+if(_f&&_f.focus){
+try{
+_f.focus();
+}
+catch(e){
+}
+}
+dijit._onFocusNode(_b);
+}
+if(_c&&dojo.withGlobal(_d||dojo.global,dijit.isCollapsed)&&!_e){
+if(_d){
+_d.focus();
+}
+try{
+dojo.withGlobal(_d||dojo.global,dijit.moveToBookmark,null,[_c]);
+}
+catch(e2){
+}
+}
+},_activeStack:[],registerIframe:function(_10){
+return dijit.registerWin(_10.contentWindow,_10);
+},unregisterIframe:function(_11){
+dijit.unregisterWin(_11);
+},registerWin:function(_12,_13){
+var _14=function(evt){
+dijit._justMouseDowned=true;
+setTimeout(function(){
+dijit._justMouseDowned=false;
+},0);
+if(dojo.isIE&&evt&&evt.srcElement&&evt.srcElement.parentNode==null){
+return;
+}
+dijit._onTouchNode(_13||evt.target||evt.srcElement,"mouse");
+};
+var doc=dojo.isIE?_12.document.documentElement:_12.document;
+if(doc){
+if(dojo.isIE){
+doc.attachEvent("onmousedown",_14);
+var _15=function(evt){
+if(evt.srcElement.tagName.toLowerCase()!="#document"&&dijit.isTabNavigable(evt.srcElement)){
+dijit._onFocusNode(_13||evt.srcElement);
+}else{
+dijit._onTouchNode(_13||evt.srcElement);
+}
+};
+doc.attachEvent("onactivate",_15);
+var _16=function(evt){
+dijit._onBlurNode(_13||evt.srcElement);
+};
+doc.attachEvent("ondeactivate",_16);
+return function(){
+doc.detachEvent("onmousedown",_14);
+doc.detachEvent("onactivate",_15);
+doc.detachEvent("ondeactivate",_16);
+doc=null;
+};
+}else{
+doc.addEventListener("mousedown",_14,true);
+var _17=function(evt){
+dijit._onFocusNode(_13||evt.target);
+};
+doc.addEventListener("focus",_17,true);
+var _18=function(evt){
+dijit._onBlurNode(_13||evt.target);
+};
+doc.addEventListener("blur",_18,true);
+return function(){
+doc.removeEventListener("mousedown",_14,true);
+doc.removeEventListener("focus",_17,true);
+doc.removeEventListener("blur",_18,true);
+doc=null;
+};
+}
+}
+},unregisterWin:function(_19){
+_19&&_19();
+},_onBlurNode:function(_1a){
+dijit._prevFocus=dijit._curFocus;
+dijit._curFocus=null;
+if(dijit._justMouseDowned){
+return;
+}
+if(dijit._clearActiveWidgetsTimer){
+clearTimeout(dijit._clearActiveWidgetsTimer);
+}
+dijit._clearActiveWidgetsTimer=setTimeout(function(){
+delete dijit._clearActiveWidgetsTimer;
+dijit._setStack([]);
+dijit._prevFocus=null;
+},100);
+},_onTouchNode:function(_1b,by){
+if(dijit._clearActiveWidgetsTimer){
+clearTimeout(dijit._clearActiveWidgetsTimer);
+delete dijit._clearActiveWidgetsTimer;
+}
+var _1c=[];
+try{
+while(_1b){
+var _1d=dojo.attr(_1b,"dijitPopupParent");
+if(_1d){
+_1b=dijit.byId(_1d).domNode;
+}else{
+if(_1b.tagName&&_1b.tagName.toLowerCase()=="body"){
+if(_1b===dojo.body()){
+break;
+}
+_1b=dojo.window.get(_1b.ownerDocument).frameElement;
+}else{
+var id=_1b.getAttribute&&_1b.getAttribute("widgetId"),_1e=id&&dijit.byId(id);
+if(_1e&&!(by=="mouse"&&_1e.get("disabled"))){
+_1c.unshift(id);
+}
+_1b=_1b.parentNode;
+}
+}
+}
+}
+catch(e){
+}
+dijit._setStack(_1c,by);
+},_onFocusNode:function(_1f){
+if(!_1f){
+return;
+}
+if(_1f.nodeType==9){
+return;
+}
+dijit._onTouchNode(_1f);
+if(_1f==dijit._curFocus){
+return;
+}
+if(dijit._curFocus){
+dijit._prevFocus=dijit._curFocus;
+}
+dijit._curFocus=_1f;
+dojo.publish("focusNode",[_1f]);
+},_setStack:function(_20,by){
+var _21=dijit._activeStack;
+dijit._activeStack=_20;
+for(var _22=0;_22<Math.min(_21.length,_20.length);_22++){
+if(_21[_22]!=_20[_22]){
+break;
+}
+}
+var _23;
+for(var i=_21.length-1;i>=_22;i--){
+_23=dijit.byId(_21[i]);
+if(_23){
+_23._focused=false;
+_23._hasBeenBlurred=true;
+if(_23._onBlur){
+_23._onBlur(by);
+}
+dojo.publish("widgetBlur",[_23,by]);
+}
+}
+for(i=_22;i<_20.length;i++){
+_23=dijit.byId(_20[i]);
+if(_23){
+_23._focused=true;
+if(_23._onFocus){
+_23._onFocus(by);
+}
+dojo.publish("widgetFocus",[_23,by]);
+}
+}
+}});
+dojo.addOnLoad(function(){
+var _24=dijit.registerWin(window);
+if(dojo.isIE){
+dojo.addOnWindowUnload(function(){
+dijit.unregisterWin(_24);
+_24=null;
+});
+}
+});
+}
diff --git a/lib/dijit/_base/manager.js b/lib/dijit/_base/manager.js
new file mode 100644
index 000000000..d8d1cf6d5
--- /dev/null
+++ b/lib/dijit/_base/manager.js
@@ -0,0 +1,245 @@
+/*
+ Copyright (c) 2004-2010, 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._base.manager"]){
+dojo._hasResource["dijit._base.manager"]=true;
+dojo.provide("dijit._base.manager");
+dojo.declare("dijit.WidgetSet",null,{constructor:function(){
+this._hash={};
+this.length=0;
+},add:function(_1){
+if(this._hash[_1.id]){
+throw new Error("Tried to register widget with id=="+_1.id+" but that id is already registered");
+}
+this._hash[_1.id]=_1;
+this.length++;
+},remove:function(id){
+if(this._hash[id]){
+delete this._hash[id];
+this.length--;
+}
+},forEach:function(_2,_3){
+_3=_3||dojo.global;
+var i=0,id;
+for(id in this._hash){
+_2.call(_3,this._hash[id],i++,this._hash);
+}
+return this;
+},filter:function(_4,_5){
+_5=_5||dojo.global;
+var _6=new dijit.WidgetSet(),i=0,id;
+for(id in this._hash){
+var w=this._hash[id];
+if(_4.call(_5,w,i++,this._hash)){
+_6.add(w);
+}
+}
+return _6;
+},byId:function(id){
+return this._hash[id];
+},byClass:function(_7){
+var _8=new dijit.WidgetSet(),id,_9;
+for(id in this._hash){
+_9=this._hash[id];
+if(_9.declaredClass==_7){
+_8.add(_9);
+}
+}
+return _8;
+},toArray:function(){
+var ar=[];
+for(var id in this._hash){
+ar.push(this._hash[id]);
+}
+return ar;
+},map:function(_a,_b){
+return dojo.map(this.toArray(),_a,_b);
+},every:function(_c,_d){
+_d=_d||dojo.global;
+var x=0,i;
+for(i in this._hash){
+if(!_c.call(_d,this._hash[i],x++,this._hash)){
+return false;
+}
+}
+return true;
+},some:function(_e,_f){
+_f=_f||dojo.global;
+var x=0,i;
+for(i in this._hash){
+if(_e.call(_f,this._hash[i],x++,this._hash)){
+return true;
+}
+}
+return false;
+}});
+(function(){
+dijit.registry=new dijit.WidgetSet();
+var _10=dijit.registry._hash,_11=dojo.attr,_12=dojo.hasAttr,_13=dojo.style;
+dijit.byId=function(id){
+return typeof id=="string"?_10[id]:id;
+};
+var _14={};
+dijit.getUniqueId=function(_15){
+var id;
+do{
+id=_15+"_"+(_15 in _14?++_14[_15]:_14[_15]=0);
+}while(_10[id]);
+return dijit._scopeName=="dijit"?id:dijit._scopeName+"_"+id;
+};
+dijit.findWidgets=function(_16){
+var _17=[];
+function _18(_19){
+for(var _1a=_19.firstChild;_1a;_1a=_1a.nextSibling){
+if(_1a.nodeType==1){
+var _1b=_1a.getAttribute("widgetId");
+if(_1b){
+_17.push(_10[_1b]);
+}else{
+_18(_1a);
+}
+}
+}
+};
+_18(_16);
+return _17;
+};
+dijit._destroyAll=function(){
+dijit._curFocus=null;
+dijit._prevFocus=null;
+dijit._activeStack=[];
+dojo.forEach(dijit.findWidgets(dojo.body()),function(_1c){
+if(!_1c._destroyed){
+if(_1c.destroyRecursive){
+_1c.destroyRecursive();
+}else{
+if(_1c.destroy){
+_1c.destroy();
+}
+}
+}
+});
+};
+if(dojo.isIE){
+dojo.addOnWindowUnload(function(){
+dijit._destroyAll();
+});
+}
+dijit.byNode=function(_1d){
+return _10[_1d.getAttribute("widgetId")];
+};
+dijit.getEnclosingWidget=function(_1e){
+while(_1e){
+var id=_1e.getAttribute&&_1e.getAttribute("widgetId");
+if(id){
+return _10[id];
+}
+_1e=_1e.parentNode;
+}
+return null;
+};
+var _1f=(dijit._isElementShown=function(_20){
+var s=_13(_20);
+return (s.visibility!="hidden")&&(s.visibility!="collapsed")&&(s.display!="none")&&(_11(_20,"type")!="hidden");
+});
+dijit.hasDefaultTabStop=function(_21){
+switch(_21.nodeName.toLowerCase()){
+case "a":
+return _12(_21,"href");
+case "area":
+case "button":
+case "input":
+case "object":
+case "select":
+case "textarea":
+return true;
+case "iframe":
+if(dojo.isMoz){
+try{
+return _21.contentDocument.designMode=="on";
+}
+catch(err){
+return false;
+}
+}else{
+if(dojo.isWebKit){
+var doc=_21.contentDocument,_22=doc&&doc.body;
+return _22&&_22.contentEditable=="true";
+}else{
+try{
+doc=_21.contentWindow.document;
+_22=doc&&doc.body;
+return _22&&_22.firstChild&&_22.firstChild.contentEditable=="true";
+}
+catch(e){
+return false;
+}
+}
+}
+default:
+return _21.contentEditable=="true";
+}
+};
+var _23=(dijit.isTabNavigable=function(_24){
+if(_11(_24,"disabled")){
+return false;
+}else{
+if(_12(_24,"tabIndex")){
+return _11(_24,"tabIndex")>=0;
+}else{
+return dijit.hasDefaultTabStop(_24);
+}
+}
+});
+dijit._getTabNavigable=function(_25){
+var _26,_27,_28,_29,_2a,_2b;
+var _2c=function(_2d){
+dojo.query("> *",_2d).forEach(function(_2e){
+if((dojo.isIE&&_2e.scopeName!=="HTML")||!_1f(_2e)){
+return;
+}
+if(_23(_2e)){
+var _2f=_11(_2e,"tabIndex");
+if(!_12(_2e,"tabIndex")||_2f==0){
+if(!_26){
+_26=_2e;
+}
+_27=_2e;
+}else{
+if(_2f>0){
+if(!_28||_2f<_29){
+_29=_2f;
+_28=_2e;
+}
+if(!_2a||_2f>=_2b){
+_2b=_2f;
+_2a=_2e;
+}
+}
+}
+}
+if(_2e.nodeName.toUpperCase()!="SELECT"){
+_2c(_2e);
+}
+});
+};
+if(_1f(_25)){
+_2c(_25);
+}
+return {first:_26,last:_27,lowest:_28,highest:_2a};
+};
+dijit.getFirstInTabbingOrder=function(_30){
+var _31=dijit._getTabNavigable(dojo.byId(_30));
+return _31.lowest?_31.lowest:_31.first;
+};
+dijit.getLastInTabbingOrder=function(_32){
+var _33=dijit._getTabNavigable(dojo.byId(_32));
+return _33.last?_33.last:_33.highest;
+};
+dijit.defaultDuration=dojo.config["defaultDuration"]||200;
+})();
+}
diff --git a/lib/dijit/_base/place.js b/lib/dijit/_base/place.js
new file mode 100644
index 000000000..ddc38fd08
--- /dev/null
+++ b/lib/dijit/_base/place.js
@@ -0,0 +1,111 @@
+/*
+ Copyright (c) 2004-2010, 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._base.place"]){
+dojo._hasResource["dijit._base.place"]=true;
+dojo.provide("dijit._base.place");
+dojo.require("dojo.window");
+dojo.require("dojo.AdapterRegistry");
+dijit.getViewport=function(){
+return dojo.window.getBox();
+};
+dijit.placeOnScreen=function(_1,_2,_3,_4){
+var _5=dojo.map(_3,function(_6){
+var c={corner:_6,pos:{x:_2.x,y:_2.y}};
+if(_4){
+c.pos.x+=_6.charAt(1)=="L"?_4.x:-_4.x;
+c.pos.y+=_6.charAt(0)=="T"?_4.y:-_4.y;
+}
+return c;
+});
+return dijit._place(_1,_5);
+};
+dijit._place=function(_7,_8,_9){
+var _a=dojo.window.getBox();
+if(!_7.parentNode||String(_7.parentNode.tagName).toLowerCase()!="body"){
+dojo.body().appendChild(_7);
+}
+var _b=null;
+dojo.some(_8,function(_c){
+var _d=_c.corner;
+var _e=_c.pos;
+if(_9){
+_9(_7,_c.aroundCorner,_d);
+}
+var _f=_7.style;
+var _10=_f.display;
+var _11=_f.visibility;
+_f.visibility="hidden";
+_f.display="";
+var mb=dojo.marginBox(_7);
+_f.display=_10;
+_f.visibility=_11;
+var _12=Math.max(_a.l,_d.charAt(1)=="L"?_e.x:(_e.x-mb.w)),_13=Math.max(_a.t,_d.charAt(0)=="T"?_e.y:(_e.y-mb.h)),_14=Math.min(_a.l+_a.w,_d.charAt(1)=="L"?(_12+mb.w):_e.x),_15=Math.min(_a.t+_a.h,_d.charAt(0)=="T"?(_13+mb.h):_e.y),_16=_14-_12,_17=_15-_13,_18=(mb.w-_16)+(mb.h-_17);
+if(_b==null||_18<_b.overflow){
+_b={corner:_d,aroundCorner:_c.aroundCorner,x:_12,y:_13,w:_16,h:_17,overflow:_18};
+}
+return !_18;
+});
+_7.style.left=_b.x+"px";
+_7.style.top=_b.y+"px";
+if(_b.overflow&&_9){
+_9(_7,_b.aroundCorner,_b.corner);
+}
+return _b;
+};
+dijit.placeOnScreenAroundNode=function(_19,_1a,_1b,_1c){
+_1a=dojo.byId(_1a);
+var _1d=_1a.style.display;
+_1a.style.display="";
+var _1e=dojo.position(_1a,true);
+_1a.style.display=_1d;
+return dijit._placeOnScreenAroundRect(_19,_1e.x,_1e.y,_1e.w,_1e.h,_1b,_1c);
+};
+dijit.placeOnScreenAroundRectangle=function(_1f,_20,_21,_22){
+return dijit._placeOnScreenAroundRect(_1f,_20.x,_20.y,_20.width,_20.height,_21,_22);
+};
+dijit._placeOnScreenAroundRect=function(_23,x,y,_24,_25,_26,_27){
+var _28=[];
+for(var _29 in _26){
+_28.push({aroundCorner:_29,corner:_26[_29],pos:{x:x+(_29.charAt(1)=="L"?0:_24),y:y+(_29.charAt(0)=="T"?0:_25)}});
+}
+return dijit._place(_23,_28,_27);
+};
+dijit.placementRegistry=new dojo.AdapterRegistry();
+dijit.placementRegistry.register("node",function(n,x){
+return typeof x=="object"&&typeof x.offsetWidth!="undefined"&&typeof x.offsetHeight!="undefined";
+},dijit.placeOnScreenAroundNode);
+dijit.placementRegistry.register("rect",function(n,x){
+return typeof x=="object"&&"x" in x&&"y" in x&&"width" in x&&"height" in x;
+},dijit.placeOnScreenAroundRectangle);
+dijit.placeOnScreenAroundElement=function(_2a,_2b,_2c,_2d){
+return dijit.placementRegistry.match.apply(dijit.placementRegistry,arguments);
+};
+dijit.getPopupAroundAlignment=function(_2e,_2f){
+var _30={};
+dojo.forEach(_2e,function(pos){
+switch(pos){
+case "after":
+_30[_2f?"BR":"BL"]=_2f?"BL":"BR";
+break;
+case "before":
+_30[_2f?"BL":"BR"]=_2f?"BR":"BL";
+break;
+case "below":
+_30[_2f?"BL":"BR"]=_2f?"TL":"TR";
+_30[_2f?"BR":"BL"]=_2f?"TR":"TL";
+break;
+case "above":
+default:
+_30[_2f?"TL":"TR"]=_2f?"BL":"BR";
+_30[_2f?"TR":"TL"]=_2f?"BR":"BL";
+break;
+}
+});
+return _30;
+};
+}
diff --git a/lib/dijit/_base/popup.js b/lib/dijit/_base/popup.js
new file mode 100644
index 000000000..aed046489
--- /dev/null
+++ b/lib/dijit/_base/popup.js
@@ -0,0 +1,158 @@
+/*
+ Copyright (c) 2004-2010, 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._base.popup"]){
+dojo._hasResource["dijit._base.popup"]=true;
+dojo.provide("dijit._base.popup");
+dojo.require("dijit._base.focus");
+dojo.require("dijit._base.place");
+dojo.require("dijit._base.window");
+dijit.popup={_stack:[],_beginZIndex:1000,_idGen:1,moveOffScreen:function(_1){
+var _2=_1.parentNode;
+if(!_2||!dojo.hasClass(_2,"dijitPopup")){
+_2=dojo.create("div",{"class":"dijitPopup",style:{visibility:"hidden",top:"-9999px"}},dojo.body());
+dijit.setWaiRole(_2,"presentation");
+_2.appendChild(_1);
+}
+var s=_1.style;
+s.display="";
+s.visibility="";
+s.position="";
+s.top="0px";
+dojo.style(_2,{visibility:"hidden",top:"-9999px"});
+},getTopPopup:function(){
+var _3=this._stack;
+for(var pi=_3.length-1;pi>0&&_3[pi].parent===_3[pi-1].widget;pi--){
+}
+return _3[pi];
+},open:function(_4){
+var _5=this._stack,_6=_4.popup,_7=_4.orient||((_4.parent?_4.parent.isLeftToRight():dojo._isBodyLtr())?{"BL":"TL","BR":"TR","TL":"BL","TR":"BR"}:{"BR":"TR","BL":"TL","TR":"BR","TL":"BL"}),_8=_4.around,id=(_4.around&&_4.around.id)?(_4.around.id+"_dropdown"):("popup_"+this._idGen++);
+var _9=_6.domNode.parentNode;
+if(!_9||!dojo.hasClass(_9,"dijitPopup")){
+this.moveOffScreen(_6.domNode);
+_9=_6.domNode.parentNode;
+}
+dojo.attr(_9,{id:id,style:{zIndex:this._beginZIndex+_5.length},"class":"dijitPopup "+(_6.baseClass||_6["class"]||"").split(" ")[0]+"Popup",dijitPopupParent:_4.parent?_4.parent.id:""});
+if(dojo.isIE||dojo.isMoz){
+var _a=_9.childNodes[1];
+if(!_a){
+_a=new dijit.BackgroundIframe(_9);
+}
+}
+var _b=_8?dijit.placeOnScreenAroundElement(_9,_8,_7,_6.orient?dojo.hitch(_6,"orient"):null):dijit.placeOnScreen(_9,_4,_7=="R"?["TR","BR","TL","BL"]:["TL","BL","TR","BR"],_4.padding);
+_9.style.visibility="visible";
+_6.domNode.style.visibility="visible";
+var _c=[];
+_c.push(dojo.connect(_9,"onkeypress",this,function(_d){
+if(_d.charOrCode==dojo.keys.ESCAPE&&_4.onCancel){
+dojo.stopEvent(_d);
+_4.onCancel();
+}else{
+if(_d.charOrCode===dojo.keys.TAB){
+dojo.stopEvent(_d);
+var _e=this.getTopPopup();
+if(_e&&_e.onCancel){
+_e.onCancel();
+}
+}
+}
+}));
+if(_6.onCancel){
+_c.push(dojo.connect(_6,"onCancel",_4.onCancel));
+}
+_c.push(dojo.connect(_6,_6.onExecute?"onExecute":"onChange",this,function(){
+var _f=this.getTopPopup();
+if(_f&&_f.onExecute){
+_f.onExecute();
+}
+}));
+_5.push({wrapper:_9,iframe:_a,widget:_6,parent:_4.parent,onExecute:_4.onExecute,onCancel:_4.onCancel,onClose:_4.onClose,handlers:_c});
+if(_6.onOpen){
+_6.onOpen(_b);
+}
+return _b;
+},close:function(_10){
+var _11=this._stack;
+while(dojo.some(_11,function(_12){
+return _12.widget==_10;
+})){
+var top=_11.pop(),_13=top.wrapper,_14=top.iframe,_15=top.widget,_16=top.onClose;
+if(_15.onClose){
+_15.onClose();
+}
+dojo.forEach(top.handlers,dojo.disconnect);
+if(_15&&_15.domNode){
+this.moveOffScreen(_15.domNode);
+}else{
+dojo.destroy(_13);
+}
+if(_16){
+_16();
+}
+}
+}};
+dijit._frames=new function(){
+var _17=[];
+this.pop=function(){
+var _18;
+if(_17.length){
+_18=_17.pop();
+_18.style.display="";
+}else{
+if(dojo.isIE){
+var _19=dojo.config["dojoBlankHtmlUrl"]||(dojo.moduleUrl("dojo","resources/blank.html")+"")||"javascript:\"\"";
+var _1a="<iframe src='"+_19+"'"+" style='position: absolute; left: 0px; top: 0px;"+"z-index: -1; filter:Alpha(Opacity=\"0\");'>";
+_18=dojo.doc.createElement(_1a);
+}else{
+_18=dojo.create("iframe");
+_18.src="javascript:\"\"";
+_18.className="dijitBackgroundIframe";
+dojo.style(_18,"opacity",0.1);
+}
+_18.tabIndex=-1;
+dijit.setWaiRole(_18,"presentation");
+}
+return _18;
+};
+this.push=function(_1b){
+_1b.style.display="none";
+_17.push(_1b);
+};
+}();
+dijit.BackgroundIframe=function(_1c){
+if(!_1c.id){
+throw new Error("no id");
+}
+if(dojo.isIE||dojo.isMoz){
+var _1d=dijit._frames.pop();
+_1c.appendChild(_1d);
+if(dojo.isIE<7){
+this.resize(_1c);
+this._conn=dojo.connect(_1c,"onresize",this,function(){
+this.resize(_1c);
+});
+}else{
+dojo.style(_1d,{width:"100%",height:"100%"});
+}
+this.iframe=_1d;
+}
+};
+dojo.extend(dijit.BackgroundIframe,{resize:function(_1e){
+if(this.iframe&&dojo.isIE<7){
+dojo.style(this.iframe,{width:_1e.offsetWidth+"px",height:_1e.offsetHeight+"px"});
+}
+},destroy:function(){
+if(this._conn){
+dojo.disconnect(this._conn);
+this._conn=null;
+}
+if(this.iframe){
+dijit._frames.push(this.iframe);
+delete this.iframe;
+}
+}});
+}
diff --git a/lib/dijit/_base/scroll.js b/lib/dijit/_base/scroll.js
new file mode 100644
index 000000000..623cea392
--- /dev/null
+++ b/lib/dijit/_base/scroll.js
@@ -0,0 +1,15 @@
+/*
+ Copyright (c) 2004-2010, 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._base.scroll"]){
+dojo._hasResource["dijit._base.scroll"]=true;
+dojo.provide("dijit._base.scroll");
+dojo.require("dojo.window");
+dijit.scrollIntoView=function(_1,_2){
+dojo.window.scrollIntoView(_1,_2);
+};
+}
diff --git a/lib/dijit/_base/sniff.js b/lib/dijit/_base/sniff.js
new file mode 100644
index 000000000..bf5386cfb
--- /dev/null
+++ b/lib/dijit/_base/sniff.js
@@ -0,0 +1,12 @@
+/*
+ Copyright (c) 2004-2010, 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._base.sniff"]){
+dojo._hasResource["dijit._base.sniff"]=true;
+dojo.provide("dijit._base.sniff");
+dojo.require("dojo.uacss");
+}
diff --git a/lib/dijit/_base/typematic.js b/lib/dijit/_base/typematic.js
new file mode 100644
index 000000000..460e9db1a
--- /dev/null
+++ b/lib/dijit/_base/typematic.js
@@ -0,0 +1,87 @@
+/*
+ Copyright (c) 2004-2010, 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._base.typematic"]){
+dojo._hasResource["dijit._base.typematic"]=true;
+dojo.provide("dijit._base.typematic");
+dijit.typematic={_fireEventAndReload:function(){
+this._timer=null;
+this._callback(++this._count,this._node,this._evt);
+this._currentTimeout=Math.max(this._currentTimeout<0?this._initialDelay:(this._subsequentDelay>1?this._subsequentDelay:Math.round(this._currentTimeout*this._subsequentDelay)),this._minDelay);
+this._timer=setTimeout(dojo.hitch(this,"_fireEventAndReload"),this._currentTimeout);
+},trigger:function(_1,_2,_3,_4,_5,_6,_7,_8){
+if(_5!=this._obj){
+this.stop();
+this._initialDelay=_7||500;
+this._subsequentDelay=_6||0.9;
+this._minDelay=_8||10;
+this._obj=_5;
+this._evt=_1;
+this._node=_3;
+this._currentTimeout=-1;
+this._count=-1;
+this._callback=dojo.hitch(_2,_4);
+this._fireEventAndReload();
+this._evt=dojo.mixin({faux:true},_1);
+}
+},stop:function(){
+if(this._timer){
+clearTimeout(this._timer);
+this._timer=null;
+}
+if(this._obj){
+this._callback(-1,this._node,this._evt);
+this._obj=null;
+}
+},addKeyListener:function(_9,_a,_b,_c,_d,_e,_f){
+if(_a.keyCode){
+_a.charOrCode=_a.keyCode;
+dojo.deprecated("keyCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.","","2.0");
+}else{
+if(_a.charCode){
+_a.charOrCode=String.fromCharCode(_a.charCode);
+dojo.deprecated("charCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.","","2.0");
+}
+}
+return [dojo.connect(_9,"onkeypress",this,function(evt){
+if(evt.charOrCode==_a.charOrCode&&(_a.ctrlKey===undefined||_a.ctrlKey==evt.ctrlKey)&&(_a.altKey===undefined||_a.altKey==evt.altKey)&&(_a.metaKey===undefined||_a.metaKey==(evt.metaKey||false))&&(_a.shiftKey===undefined||_a.shiftKey==evt.shiftKey)){
+dojo.stopEvent(evt);
+dijit.typematic.trigger(evt,_b,_9,_c,_a,_d,_e,_f);
+}else{
+if(dijit.typematic._obj==_a){
+dijit.typematic.stop();
+}
+}
+}),dojo.connect(_9,"onkeyup",this,function(evt){
+if(dijit.typematic._obj==_a){
+dijit.typematic.stop();
+}
+})];
+},addMouseListener:function(_10,_11,_12,_13,_14,_15){
+var dc=dojo.connect;
+return [dc(_10,"mousedown",this,function(evt){
+dojo.stopEvent(evt);
+dijit.typematic.trigger(evt,_11,_10,_12,_10,_13,_14,_15);
+}),dc(_10,"mouseup",this,function(evt){
+dojo.stopEvent(evt);
+dijit.typematic.stop();
+}),dc(_10,"mouseout",this,function(evt){
+dojo.stopEvent(evt);
+dijit.typematic.stop();
+}),dc(_10,"mousemove",this,function(evt){
+evt.preventDefault();
+}),dc(_10,"dblclick",this,function(evt){
+dojo.stopEvent(evt);
+if(dojo.isIE){
+dijit.typematic.trigger(evt,_11,_10,_12,_10,_13,_14,_15);
+setTimeout(dojo.hitch(this,dijit.typematic.stop),50);
+}
+})];
+},addListener:function(_16,_17,_18,_19,_1a,_1b,_1c,_1d){
+return this.addKeyListener(_17,_18,_19,_1a,_1b,_1c,_1d).concat(this.addMouseListener(_16,_19,_1a,_1b,_1c,_1d));
+}};
+}
diff --git a/lib/dijit/_base/wai.js b/lib/dijit/_base/wai.js
new file mode 100644
index 000000000..de67ad17a
--- /dev/null
+++ b/lib/dijit/_base/wai.js
@@ -0,0 +1,64 @@
+/*
+ Copyright (c) 2004-2010, 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._base.wai"]){
+dojo._hasResource["dijit._base.wai"]=true;
+dojo.provide("dijit._base.wai");
+dijit.wai={onload:function(){
+var _1=dojo.create("div",{id:"a11yTestNode",style:{cssText:"border: 1px solid;"+"border-color:red green;"+"position: absolute;"+"height: 5px;"+"top: -999px;"+"background-image: url(\""+(dojo.config.blankGif||dojo.moduleUrl("dojo","resources/blank.gif"))+"\");"}},dojo.body());
+var cs=dojo.getComputedStyle(_1);
+if(cs){
+var _2=cs.backgroundImage;
+var _3=(cs.borderTopColor==cs.borderRightColor)||(_2!=null&&(_2=="none"||_2=="url(invalid-url:)"));
+dojo[_3?"addClass":"removeClass"](dojo.body(),"dijit_a11y");
+if(dojo.isIE){
+_1.outerHTML="";
+}else{
+dojo.body().removeChild(_1);
+}
+}
+}};
+if(dojo.isIE||dojo.isMoz){
+dojo._loaders.unshift(dijit.wai.onload);
+}
+dojo.mixin(dijit,{_XhtmlRoles:/banner|contentinfo|definition|main|navigation|search|note|secondary|seealso/,hasWaiRole:function(_4,_5){
+var _6=this.getWaiRole(_4);
+return _5?(_6.indexOf(_5)>-1):(_6.length>0);
+},getWaiRole:function(_7){
+return dojo.trim((dojo.attr(_7,"role")||"").replace(this._XhtmlRoles,"").replace("wairole:",""));
+},setWaiRole:function(_8,_9){
+var _a=dojo.attr(_8,"role")||"";
+if(!this._XhtmlRoles.test(_a)){
+dojo.attr(_8,"role",_9);
+}else{
+if((" "+_a+" ").indexOf(" "+_9+" ")<0){
+var _b=dojo.trim(_a.replace(this._XhtmlRoles,""));
+var _c=dojo.trim(_a.replace(_b,""));
+dojo.attr(_8,"role",_c+(_c?" ":"")+_9);
+}
+}
+},removeWaiRole:function(_d,_e){
+var _f=dojo.attr(_d,"role");
+if(!_f){
+return;
+}
+if(_e){
+var t=dojo.trim((" "+_f+" ").replace(" "+_e+" "," "));
+dojo.attr(_d,"role",t);
+}else{
+_d.removeAttribute("role");
+}
+},hasWaiState:function(_10,_11){
+return _10.hasAttribute?_10.hasAttribute("aria-"+_11):!!_10.getAttribute("aria-"+_11);
+},getWaiState:function(_12,_13){
+return _12.getAttribute("aria-"+_13)||"";
+},setWaiState:function(_14,_15,_16){
+_14.setAttribute("aria-"+_15,_16);
+},removeWaiState:function(_17,_18){
+_17.removeAttribute("aria-"+_18);
+}});
+}
diff --git a/lib/dijit/_base/window.js b/lib/dijit/_base/window.js
new file mode 100644
index 000000000..57a691436
--- /dev/null
+++ b/lib/dijit/_base/window.js
@@ -0,0 +1,15 @@
+/*
+ Copyright (c) 2004-2010, 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._base.window"]){
+dojo._hasResource["dijit._base.window"]=true;
+dojo.provide("dijit._base.window");
+dojo.require("dojo.window");
+dijit.getDocumentWindow=function(_1){
+return dojo.window.get(_1);
+};
+}