]>
git.wh0rd.org - tt-rss.git/blob - lib/dojo/_base/query.js
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
8 if(!dojo
._hasResource
["dojo._base.query"]){
9 dojo
._hasResource
["dojo._base.query"]=true;
10 if(typeof dojo
!="undefined"){
11 dojo
.provide("dojo._base.query");
12 dojo
.require("dojo._base.NodeList");
13 dojo
.require("dojo._base.lang");
18 var _3
=d
._NodeListCtor
=d
.NodeList
;
22 var _5
=((d
.isWebKit
||d
.isMozilla
)&&((_4().compatMode
)=="BackCompat"));
23 var _6
=!!_4().firstChild
["children"]?"children":"childNodes";
30 if(_7
.indexOf(_b
.slice(-1))>=0){
36 return _1(_b
.slice(s
,e
));
39 var _d
=-1,_e
=-1,_f
=-1,_10
=-1,_11
=-1,_12
=-1,_13
=-1,lc
="",cc
="",_14
;
40 var x
=0,ql
=_b
.length
,_15
=null,_16
=null;
43 var tv
=(_13
==x
)?null:ts(_13
,x
);
44 _15
[(_7
.indexOf(tv
)<0)?"tag":"oper"]=tv
;
50 _15
.id
=ts(_12
,x
).replace(/\\/g
,"");
56 _15
.classes
.push(ts(_11
+1,x
).replace(/\\/g
,""));
68 _15
.pseudos
.push({name
:ts(_10
+1,x
)});
70 _15
.loops
=(_15
.pseudos
.length
||_15
.attrs
.length
||_15
.classes
.length
);
71 _15
.oquery
=_15
.query
=ts(_14
,x
);
72 _15
.otag
=_15
.tag
=(_15
["oper"])?null:(_15
.tag
||"*");
74 _15
.tag
=_15
.tag
.toUpperCase();
76 if(_c
.length
&&(_c
[_c
.length
-1].oper
)){
77 _15
.infixOper
=_c
.pop();
78 _15
.query
=_15
.infixOper
.query
+" "+_15
.query
;
83 for(;lc
=cc
,cc
=_b
.charAt(x
),x
<ql
;x
++){
89 _15
={query
:null,pseudos
:[],attrs
:[],classes
:[],tag
:null,oper
:null,id
:null,getTag:function(){
90 return (_8
)?this.otag
:this.tag
;
99 _16
.matchFor
=ts((_f
||_d
+1),x
);
101 var cmf
=_16
.matchFor
;
103 if((cmf
.charAt(0)=="\"")||(cmf
.charAt(0)=="'")){
104 _16
.matchFor
=cmf
.slice(1,-1);
112 var _1c
=("|~^$*".indexOf(lc
)>=0)?lc
:"";
114 _16
.attr
=ts(_d
+1,x
-_1c
.length
);
122 _16
.value
=ts(_e
+1,x
);
146 _16
={name
:ts(_10
+1,x
),value
:null};
147 _15
.pseudos
.push(_16
);
151 if((cc
==" ")&&(lc
!=cc
)){
164 var _1d=function(_1e
,_1f
){
172 return _1e
.apply(window
,arguments
)&&_1f
.apply(window
,arguments
);
175 var _20=function(i
,arr
){
183 return (1==n
.nodeType
);
186 var _23=function(_24
,_25
){
191 return _24
.className
||_22
;
194 return _24
.htmlFor
||_22
;
197 return _24
.style
.cssText
||_22
;
199 return (_8
?_24
.getAttribute(_25
):_24
.getAttribute(_25
,2))||_22
;
201 var _26
={"*=":function(_27
,_28
){
202 return function(_29
){
203 return (_23(_29
,_27
).indexOf(_28
)>=0);
205 },"^=":function(_2a
,_2b
){
206 return function(_2c
){
207 return (_23(_2c
,_2a
).indexOf(_2b
)==0);
209 },"$=":function(_2d
,_2e
){
211 return function(_30
){
212 var ea
=" "+_23(_30
,_2d
);
213 return (ea
.lastIndexOf(_2e
)==(ea
.length
-_2e
.length
));
215 },"~=":function(_31
,_32
){
217 return function(_34
){
218 var ea
=" "+_23(_34
,_31
)+" ";
219 return (ea
.indexOf(_33
)>=0);
221 },"|=":function(_35
,_36
){
223 return function(_38
){
224 var ea
=" "+_23(_38
,_35
);
225 return ((ea
==_36
)||(ea
.indexOf(_37
)==0));
227 },"=":function(_39
,_3a
){
228 return function(_3b
){
229 return (_23(_3b
,_39
)==_3a
);
232 var _3c
=(typeof _4().firstChild
.nextElementSibling
=="undefined");
233 var _3d
=!_3c
?"nextElementSibling":"nextSibling";
234 var _3e
=!_3c
?"previousElementSibling":"previousSibling";
235 var _3f
=(_3c
?_21
:_9
);
236 var _40=function(_41
){
244 var _42=function(_43
){
252 var _44=function(_45
){
253 var _46
=_45
.parentNode
;
254 var i
=0,_47
=_46
[_6
],ci
=(_45
["_i"]||-1),cl
=(_46
["_l"]||-1);
259 if(cl
==l
&&ci
>=0&&cl
>=0){
264 for(var te
=_46
["firstElementChild"]||_46
["firstChild"];te
;te
=te
[_3d
]){
274 var _48=function(_49
){
275 return !((_44(_49
))%2);
277 var _4a=function(_4b
){
278 return ((_44(_4b
))%2);
280 var _4c
={"checked":function(_4d
,_4e
){
281 return function(_4f
){
282 return !!("checked" in _4f
?_4f
.checked
:_4f
.selected
);
284 },"first-child":function(){
286 },"last-child":function(){
288 },"only-child":function(_50
,_51
){
289 return function(_52
){
298 },"empty":function(_53
,_54
){
299 return function(_55
){
300 var cn
=_55
.childNodes
;
301 var cnl
=_55
.childNodes
.length
;
302 for(var x
=cnl
-1;x
>=0;x
--){
303 var nt
=cn
[x
].nodeType
;
304 if((nt
===1)||(nt
==3)){
310 },"contains":function(_56
,_57
){
311 var cz
=_57
.charAt(0);
312 if(cz
=="\""||cz
=="'"){
315 return function(_58
){
316 return (_58
.innerHTML
.indexOf(_57
)>=0);
318 },"not":function(_59
,_5a
){
324 if(!p
.classes
.length
){
328 return function(_5d
){
331 },"nth-child":function(_5e
,_5f
){
340 if(_5f
.indexOf("n")!=-1){
341 var _60
=_5f
.split("n",2);
342 var _61
=_60
[0]?((_60
[0]=="-")?-1:pi(_60
[0])):1;
343 var idx
=_60
[1]?pi(_60
[1]):0;
347 idx
=(idx
%_61
)&&(_61
+(idx
%_61
));
366 return function(_62
){
368 return (i
>=lb
)&&(ub
<0||i
<=ub
)&&((i
%_61
)==idx
);
375 return function(_64
){
376 return (_44(_64
)==_63
);
379 var _65
=(d
.isIE
)?function(_66
){
380 var clc
=_66
.toLowerCase();
384 return function(_67
){
385 return (_8
?_67
.getAttribute(_66
):_67
[_66
]||_67
[clc
]);
388 return function(_69
){
389 return (_69
&&_69
.getAttribute
&&_69
.hasAttribute(_68
));
392 var _5c=function(_6a
,_6b
){
403 ff
=_1d(ff
,function(_6c
){
404 return (_6c
&&(_6c
.tagName
==_6a
.getTag()));
408 if(!("classes" in _6b
)){
409 _2(_6a
.classes
,function(_6d
,idx
,arr
){
410 var re
=new RegExp("(?:^|\\s)"+_6d
+"(?:\\s|$)");
411 ff
=_1d(ff
,function(_6e
){
412 return re
.test(_6e
.className
);
417 if(!("pseudos" in _6b
)){
418 _2(_6a
.pseudos
,function(_6f
){
421 ff
=_1d(ff
,_4c
[pn
](pn
,_6f
.value
));
425 if(!("attrs" in _6b
)){
426 _2(_6a
.attrs
,function(_70
){
429 if(_70
.type
&&_26
[_70
.type
]){
430 _71
=_26
[_70
.type
](a
,_70
.matchFor
);
443 ff
=_1d(ff
,function(_72
){
444 return (!!_72
&&(_72
.id
==_6a
.id
));
449 if(!("default" in _6b
)){
455 var _73=function(_74
){
456 return function(_75
,ret
,bag
){
458 if(_3c
&&(!_21(_75
))){
461 if((!bag
||_76(_75
,bag
))&&_74(_75
)){
469 var _77=function(_78
){
470 return function(_79
,ret
,bag
){
474 if(bag
&&!_76(te
,bag
)){
486 var _7a=function(_7b
){
488 return function(_7c
,ret
,bag
){
489 var te
,x
=0,_7d
=_7c
[_6
];
491 if(_3f(te
)&&(!bag
||_76(te
,bag
))&&(_7b(te
,x
))){
498 var _7e=function(_7f
,_80
){
499 var pn
=_7f
.parentNode
;
509 var _82=function(_83
){
510 var _84
=_81
[_83
.query
];
514 var io
=_83
.infixOper
;
515 var _85
=(io
?io
.oper
:"");
516 var _86
=_5c(_83
,{el
:1});
519 var ecs
=_4()["getElementsByClassName"];
522 _86
=(!_83
.loops
&&_87
)?_9
:_5c(_83
,{el
:1,id
:1});
523 _84=function(_88
,arr
){
524 var te
=d
.byId(_83
.id
,(_88
.ownerDocument
||_88
));
537 if(ecs
&&/\{\s*\[native code\]\s*\}/.test(String(ecs
))&&_83
.classes
.length
&&!_5
){
538 _86
=_5c(_83
,{el
:1,classes
:1,id
:1});
539 var _89
=_83
.classes
.join(" ");
540 _84=function(_8a
,arr
,bag
){
541 var ret
=_20(0,arr
),te
,x
=0;
542 var _8b
=_8a
.getElementsByClassName(_89
);
543 while((te
=_8b
[x
++])){
544 if(_86(te
,_8a
)&&_76(te
,bag
)){
551 if(!_87
&&!_83
.loops
){
552 _84=function(_8c
,arr
,bag
){
553 var ret
=_20(0,arr
),te
,x
=0;
554 var _8d
=_8c
.getElementsByTagName(_83
.getTag());
555 while((te
=_8d
[x
++])){
563 _86
=_5c(_83
,{el
:1,tag
:1,id
:1});
564 _84=function(_8e
,arr
,bag
){
565 var ret
=_20(0,arr
),te
,x
=0;
566 var _8f
=_8e
.getElementsByTagName(_83
.getTag());
567 while((te
=_8f
[x
++])){
568 if(_86(te
,_8e
)&&_76(te
,bag
)){
595 return _81
[_83
.query
]=_84
;
597 var _91=function(_92
,_93
){
598 var _94
=_20(_92
),qp
,x
,te
,qpl
=_93
.length
,bag
,ret
;
599 for(var i
=0;i
<qpl
;i
++){
608 for(var j
=0;(te
=_94
[j
]);j
++){
619 var _97=function(_98
){
623 return function(_9a
){
624 var r
=tef(_9a
,new _3());
631 return function(_9b
){
635 var nua
=navigator
.userAgent
;
637 var _9c
=(d
.isWebKit
&&(nua
.indexOf(wk
)>0)&&(parseFloat(nua
.split(wk
)[1])>528));
638 var _9d
=d
.isIE
?"commentStrip":"nozip";
639 var qsa
="querySelectorAll";
640 var _9e
=(!!_4()[qsa
]&&(!d
.isSafari
||(d
.isSafari
>3.1)||_9c
));
641 var _9f
=/n\+\d|([^ ])?([>~+])([^ =])?/g;
642 var _a0=function(_a1
,pre
,ch
,_a2
){
643 return ch
?(pre
?pre
+" ":"")+ch
+(_a2
?" "+_a2
:""):_a1
;
645 var _a3=function(_a4
,_a5
){
646 _a4
=_a4
.replace(_9f
,_a0
);
657 var qcz
=_a4
.charAt(0);
658 var _a8
=(-1==_a4
.indexOf(" "));
659 if((_a4
.indexOf("#")>=0)&&(_a8
)){
662 var _a9
=(_9e
&&(!_a5
)&&(_7
.indexOf(qcz
)==-1)&&(!d
.isIE
||(_a4
.indexOf(":")==-1))&&(!(_5
&&(_a4
.indexOf(".")>=0)))&&(_a4
.indexOf(":contains")==-1)&&(_a4
.indexOf(":checked")==-1)&&(_a4
.indexOf("|=")==-1));
664 var tq
=(_7
.indexOf(_a4
.charAt(_a4
.length
-1))>=0)?(_a4
+" *"):_a4
;
665 return _96
[_a4
]=function(_aa
){
667 if(!((9==_aa
.nodeType
)||_a8
)){
675 return _a3(_a4
,true)(_aa
);
679 var _ab
=_a4
.split(/\s*,\s*/);
680 return _95
[_a4
]=((_ab
.length
<2)?_97(_a4
):function(_ac
){
682 while((tp
=_ab
[_ad
++])){
683 ret
=ret
.concat(_97(tp
)(_ac
));
690 var _af
=d
.isIE
?function(_b0
){
692 return (_b0
.getAttribute("_uid")||_b0
.setAttribute("_uid",++_ae
)||_ae
);
697 return (_b1
._uid
||(_b1
._uid
=++_ae
));
699 var _76=function(_b2
,bag
){
710 var _b4=function(arr
){
712 return (_3
._wrap
)?_3
._wrap(arr
):arr
;
715 if(!arr
||!arr
.length
){
727 arr
[0].setAttribute(_b3
,_b5
);
728 for(var x
=1,te
;te
=arr
[x
];x
++){
729 if(arr
[x
].getAttribute(_b3
)!=_b5
){
732 te
.setAttribute(_b3
,_b5
);
735 if(d
.isIE
&&arr
.commentStrip
){
737 for(var x
=1,te
;te
=arr
[x
];x
++){
749 for(var x
=1,te
;te
=arr
[x
];x
++){
750 if(arr
[x
][_b3
]!=_ae
){
759 d
.query=function(_b6
,_b7
){
764 if(_b6
.constructor==_3
){
767 if(typeof _b6
!="string"){
770 if(typeof _b7
=="string"){
777 var od
=_b7
.ownerDocument
||_b7
.documentElement
;
778 _8
=(_b7
.contentType
&&_b7
.contentType
=="application/xml")||(d
.isOpera
&&(_b7
.doctype
||od
.toString()=="[object XMLDocument]"))||(!!od
)&&(d
.isIE
?od
.xml
:(_b7
.xmlVersion
||od
.xmlVersion
));
780 if(r
&&r
.nozip
&&!_3
._wrap
){
786 d
._filterQueryResult=function(_b8
,_b9
){
787 var _ba
=new d
._NodeListCtor();
788 var _bb
=_5c(_a(_b9
)[0]);
789 for(var x
=0,te
;te
=_b8
[x
];x
++){
796 })(this["queryPortability"]||this["acme"]||dojo
);