]> git.wh0rd.org - tt-rss.git/blame - lib/dojo/OpenAjax.js
add dijit/dojo stuff; initial ui mockup
[tt-rss.git] / lib / dojo / OpenAjax.js
CommitLineData
2f01fe57
AD
1/*
2 Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
3 Available via Academic Free License >= 2.1 OR the modified BSD license.
4 see: http://dojotoolkit.org/license for details
5*/
6
7
8if(!window["OpenAjax"]){
9OpenAjax=new function(){
10var t=true;
11var f=false;
12var g=window;
13var _1;
14var _2="org.openajax.hub.";
15var h={};
16this.hub=h;
17h.implementer="http://openajax.org";
18h.implVersion="0.6";
19h.specVersion="0.6";
20h.implExtraData={};
21var _1={};
22h.libraries=_1;
23h.registerLibrary=function(_3,_4,_5,_6){
24_1[_3]={prefix:_3,namespaceURI:_4,version:_5,extraData:_6};
25this.publish(_2+"registerLibrary",_1[_3]);
26};
27h.unregisterLibrary=function(_7){
28this.publish(_2+"unregisterLibrary",_1[_7]);
29delete _1[_7];
30};
31h._subscriptions={c:{},s:[]};
32h._cleanup=[];
33h._subIndex=0;
34h._pubDepth=0;
35h.subscribe=function(_8,_9,_a,_b,_c){
36if(!_a){
37_a=window;
38}
39var _d=_8+"."+this._subIndex;
40var _e={scope:_a,cb:_9,fcb:_c,data:_b,sid:this._subIndex++,hdl:_d};
41var _f=_8.split(".");
42this._subscribe(this._subscriptions,_f,0,_e);
43return _d;
44};
45h.publish=function(_10,_11){
46var _12=_10.split(".");
47this._pubDepth++;
48this._publish(this._subscriptions,_12,0,_10,_11);
49this._pubDepth--;
50if((this._cleanup.length>0)&&(this._pubDepth==0)){
51for(var i=0;i<this._cleanup.length;i++){
52this.unsubscribe(this._cleanup[i].hdl);
53}
54delete (this._cleanup);
55this._cleanup=[];
56}
57};
58h.unsubscribe=function(sub){
59var _13=sub.split(".");
60var sid=_13.pop();
61this._unsubscribe(this._subscriptions,_13,0,sid);
62};
63h._subscribe=function(_14,_15,_16,sub){
64var _17=_15[_16];
65if(_16==_15.length){
66_14.s.push(sub);
67}else{
68if(typeof _14.c=="undefined"){
69_14.c={};
70}
71if(typeof _14.c[_17]=="undefined"){
72_14.c[_17]={c:{},s:[]};
73this._subscribe(_14.c[_17],_15,_16+1,sub);
74}else{
75this._subscribe(_14.c[_17],_15,_16+1,sub);
76}
77}
78};
79h._publish=function(_18,_19,_1a,_1b,msg){
80if(typeof _18!="undefined"){
81var _1c;
82if(_1a==_19.length){
83_1c=_18;
84}else{
85this._publish(_18.c[_19[_1a]],_19,_1a+1,_1b,msg);
86this._publish(_18.c["*"],_19,_1a+1,_1b,msg);
87_1c=_18.c["**"];
88}
89if(typeof _1c!="undefined"){
90var _1d=_1c.s;
91var max=_1d.length;
92for(var i=0;i<max;i++){
93if(_1d[i].cb){
94var sc=_1d[i].scope;
95var cb=_1d[i].cb;
96var fcb=_1d[i].fcb;
97var d=_1d[i].data;
98if(typeof cb=="string"){
99cb=sc[cb];
100}
101if(typeof fcb=="string"){
102fcb=sc[fcb];
103}
104if((!fcb)||(fcb.call(sc,_1b,msg,d))){
105cb.call(sc,_1b,msg,d);
106}
107}
108}
109}
110}
111};
112h._unsubscribe=function(_1e,_1f,_20,sid){
113if(typeof _1e!="undefined"){
114if(_20<_1f.length){
115var _21=_1e.c[_1f[_20]];
116this._unsubscribe(_21,_1f,_20+1,sid);
117if(_21.s.length==0){
118for(var x in _21.c){
119return;
120}
121delete _1e.c[_1f[_20]];
122}
123return;
124}else{
125var _22=_1e.s;
126var max=_22.length;
127for(var i=0;i<max;i++){
128if(sid==_22[i].sid){
129if(this._pubDepth>0){
130_22[i].cb=null;
131this._cleanup.push(_22[i]);
132}else{
133_22.splice(i,1);
134}
135return;
136}
137}
138}
139}
140};
141h.reinit=function(){
142for(var lib in OpenAjax.hub.libraries){
143delete OpenAjax.hub.libraries[lib];
144}
145OpenAjax.hub.registerLibrary("OpenAjax","http://openajax.org/hub","0.6",{});
146delete OpenAjax._subscriptions;
147OpenAjax._subscriptions={c:{},s:[]};
148delete OpenAjax._cleanup;
149OpenAjax._cleanup=[];
150OpenAjax._subIndex=0;
151OpenAjax._pubDepth=0;
152};
153};
154OpenAjax.hub.registerLibrary("OpenAjax","http://openajax.org/hub","0.6",{});
155}