]> git.wh0rd.org - tt-rss.git/blob - lib/dojo/_base/query.js
add dijit/dojo stuff; initial ui mockup
[tt-rss.git] / lib / dojo / _base / query.js
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
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");
14 }
15 (function(d){
16 var _1=d.trim;
17 var _2=d.forEach;
18 var _3=d._NodeListCtor=d.NodeList;
19 var _4=function(){
20 return d.doc;
21 };
22 var _5=((d.isWebKit||d.isMozilla)&&((_4().compatMode)=="BackCompat"));
23 var _6=!!_4().firstChild["children"]?"children":"childNodes";
24 var _7=">~+";
25 var _8=false;
26 var _9=function(){
27 return true;
28 };
29 var _a=function(_b){
30 if(_7.indexOf(_b.slice(-1))>=0){
31 _b+=" * ";
32 }else{
33 _b+=" ";
34 }
35 var ts=function(s,e){
36 return _1(_b.slice(s,e));
37 };
38 var _c=[];
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;
41 var _17=function(){
42 if(_13>=0){
43 var tv=(_13==x)?null:ts(_13,x);
44 _15[(_7.indexOf(tv)<0)?"tag":"oper"]=tv;
45 _13=-1;
46 }
47 };
48 var _18=function(){
49 if(_12>=0){
50 _15.id=ts(_12,x).replace(/\\/g,"");
51 _12=-1;
52 }
53 };
54 var _19=function(){
55 if(_11>=0){
56 _15.classes.push(ts(_11+1,x).replace(/\\/g,""));
57 _11=-1;
58 }
59 };
60 var _1a=function(){
61 _18();
62 _17();
63 _19();
64 };
65 var _1b=function(){
66 _1a();
67 if(_10>=0){
68 _15.pseudos.push({name:ts(_10+1,x)});
69 }
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||"*");
73 if(_15.tag){
74 _15.tag=_15.tag.toUpperCase();
75 }
76 if(_c.length&&(_c[_c.length-1].oper)){
77 _15.infixOper=_c.pop();
78 _15.query=_15.infixOper.query+" "+_15.query;
79 }
80 _c.push(_15);
81 _15=null;
82 };
83 for(;lc=cc,cc=_b.charAt(x),x<ql;x++){
84 if(lc=="\\"){
85 continue;
86 }
87 if(!_15){
88 _14=x;
89 _15={query:null,pseudos:[],attrs:[],classes:[],tag:null,oper:null,id:null,getTag:function(){
90 return (_8)?this.otag:this.tag;
91 }};
92 _13=x;
93 }
94 if(_d>=0){
95 if(cc=="]"){
96 if(!_16.attr){
97 _16.attr=ts(_d+1,x);
98 }else{
99 _16.matchFor=ts((_f||_d+1),x);
100 }
101 var cmf=_16.matchFor;
102 if(cmf){
103 if((cmf.charAt(0)=="\"")||(cmf.charAt(0)=="'")){
104 _16.matchFor=cmf.slice(1,-1);
105 }
106 }
107 _15.attrs.push(_16);
108 _16=null;
109 _d=_f=-1;
110 }else{
111 if(cc=="="){
112 var _1c=("|~^$*".indexOf(lc)>=0)?lc:"";
113 _16.type=_1c+cc;
114 _16.attr=ts(_d+1,x-_1c.length);
115 _f=x+1;
116 }
117 }
118 }else{
119 if(_e>=0){
120 if(cc==")"){
121 if(_10>=0){
122 _16.value=ts(_e+1,x);
123 }
124 _10=_e=-1;
125 }
126 }else{
127 if(cc=="#"){
128 _1a();
129 _12=x+1;
130 }else{
131 if(cc=="."){
132 _1a();
133 _11=x;
134 }else{
135 if(cc==":"){
136 _1a();
137 _10=x;
138 }else{
139 if(cc=="["){
140 _1a();
141 _d=x;
142 _16={};
143 }else{
144 if(cc=="("){
145 if(_10>=0){
146 _16={name:ts(_10+1,x),value:null};
147 _15.pseudos.push(_16);
148 }
149 _e=x;
150 }else{
151 if((cc==" ")&&(lc!=cc)){
152 _1b();
153 }
154 }
155 }
156 }
157 }
158 }
159 }
160 }
161 }
162 return _c;
163 };
164 var _1d=function(_1e,_1f){
165 if(!_1e){
166 return _1f;
167 }
168 if(!_1f){
169 return _1e;
170 }
171 return function(){
172 return _1e.apply(window,arguments)&&_1f.apply(window,arguments);
173 };
174 };
175 var _20=function(i,arr){
176 var r=arr||[];
177 if(i){
178 r.push(i);
179 }
180 return r;
181 };
182 var _21=function(n){
183 return (1==n.nodeType);
184 };
185 var _22="";
186 var _23=function(_24,_25){
187 if(!_24){
188 return _22;
189 }
190 if(_25=="class"){
191 return _24.className||_22;
192 }
193 if(_25=="for"){
194 return _24.htmlFor||_22;
195 }
196 if(_25=="style"){
197 return _24.style.cssText||_22;
198 }
199 return (_8?_24.getAttribute(_25):_24.getAttribute(_25,2))||_22;
200 };
201 var _26={"*=":function(_27,_28){
202 return function(_29){
203 return (_23(_29,_27).indexOf(_28)>=0);
204 };
205 },"^=":function(_2a,_2b){
206 return function(_2c){
207 return (_23(_2c,_2a).indexOf(_2b)==0);
208 };
209 },"$=":function(_2d,_2e){
210 var _2f=" "+_2e;
211 return function(_30){
212 var ea=" "+_23(_30,_2d);
213 return (ea.lastIndexOf(_2e)==(ea.length-_2e.length));
214 };
215 },"~=":function(_31,_32){
216 var _33=" "+_32+" ";
217 return function(_34){
218 var ea=" "+_23(_34,_31)+" ";
219 return (ea.indexOf(_33)>=0);
220 };
221 },"|=":function(_35,_36){
222 var _37=" "+_36+"-";
223 return function(_38){
224 var ea=" "+_23(_38,_35);
225 return ((ea==_36)||(ea.indexOf(_37)==0));
226 };
227 },"=":function(_39,_3a){
228 return function(_3b){
229 return (_23(_3b,_39)==_3a);
230 };
231 }};
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){
237 while(_41=_41[_3e]){
238 if(_3f(_41)){
239 return false;
240 }
241 }
242 return true;
243 };
244 var _42=function(_43){
245 while(_43=_43[_3d]){
246 if(_3f(_43)){
247 return false;
248 }
249 }
250 return true;
251 };
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);
255 if(!_47){
256 return -1;
257 }
258 var l=_47.length;
259 if(cl==l&&ci>=0&&cl>=0){
260 return ci;
261 }
262 _46["_l"]=l;
263 ci=-1;
264 for(var te=_46["firstElementChild"]||_46["firstChild"];te;te=te[_3d]){
265 if(_3f(te)){
266 te["_i"]=++i;
267 if(_45===te){
268 ci=i;
269 }
270 }
271 }
272 return ci;
273 };
274 var _48=function(_49){
275 return !((_44(_49))%2);
276 };
277 var _4a=function(_4b){
278 return ((_44(_4b))%2);
279 };
280 var _4c={"checked":function(_4d,_4e){
281 return function(_4f){
282 return !!("checked" in _4f?_4f.checked:_4f.selected);
283 };
284 },"first-child":function(){
285 return _40;
286 },"last-child":function(){
287 return _42;
288 },"only-child":function(_50,_51){
289 return function(_52){
290 if(!_40(_52)){
291 return false;
292 }
293 if(!_42(_52)){
294 return false;
295 }
296 return true;
297 };
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)){
305 return false;
306 }
307 }
308 return true;
309 };
310 },"contains":function(_56,_57){
311 var cz=_57.charAt(0);
312 if(cz=="\""||cz=="'"){
313 _57=_57.slice(1,-1);
314 }
315 return function(_58){
316 return (_58.innerHTML.indexOf(_57)>=0);
317 };
318 },"not":function(_59,_5a){
319 var p=_a(_5a)[0];
320 var _5b={el:1};
321 if(p.tag!="*"){
322 _5b.tag=1;
323 }
324 if(!p.classes.length){
325 _5b.classes=1;
326 }
327 var ntf=_5c(p,_5b);
328 return function(_5d){
329 return (!ntf(_5d));
330 };
331 },"nth-child":function(_5e,_5f){
332 var pi=parseInt;
333 if(_5f=="odd"){
334 return _4a;
335 }else{
336 if(_5f=="even"){
337 return _48;
338 }
339 }
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;
344 var lb=0,ub=-1;
345 if(_61>0){
346 if(idx<0){
347 idx=(idx%_61)&&(_61+(idx%_61));
348 }else{
349 if(idx>0){
350 if(idx>=_61){
351 lb=idx-idx%_61;
352 }
353 idx=idx%_61;
354 }
355 }
356 }else{
357 if(_61<0){
358 _61*=-1;
359 if(idx>0){
360 ub=idx;
361 idx=idx%_61;
362 }
363 }
364 }
365 if(_61>0){
366 return function(_62){
367 var i=_44(_62);
368 return (i>=lb)&&(ub<0||i<=ub)&&((i%_61)==idx);
369 };
370 }else{
371 _5f=idx;
372 }
373 }
374 var _63=pi(_5f);
375 return function(_64){
376 return (_44(_64)==_63);
377 };
378 }};
379 var _65=(d.isIE)?function(_66){
380 var clc=_66.toLowerCase();
381 if(clc=="class"){
382 _66="className";
383 }
384 return function(_67){
385 return (_8?_67.getAttribute(_66):_67[_66]||_67[clc]);
386 };
387 }:function(_68){
388 return function(_69){
389 return (_69&&_69.getAttribute&&_69.hasAttribute(_68));
390 };
391 };
392 var _5c=function(_6a,_6b){
393 if(!_6a){
394 return _9;
395 }
396 _6b=_6b||{};
397 var ff=null;
398 if(!("el" in _6b)){
399 ff=_1d(ff,_21);
400 }
401 if(!("tag" in _6b)){
402 if(_6a.tag!="*"){
403 ff=_1d(ff,function(_6c){
404 return (_6c&&(_6c.tagName==_6a.getTag()));
405 });
406 }
407 }
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);
413 });
414 ff.count=idx;
415 });
416 }
417 if(!("pseudos" in _6b)){
418 _2(_6a.pseudos,function(_6f){
419 var pn=_6f.name;
420 if(_4c[pn]){
421 ff=_1d(ff,_4c[pn](pn,_6f.value));
422 }
423 });
424 }
425 if(!("attrs" in _6b)){
426 _2(_6a.attrs,function(_70){
427 var _71;
428 var a=_70.attr;
429 if(_70.type&&_26[_70.type]){
430 _71=_26[_70.type](a,_70.matchFor);
431 }else{
432 if(a.length){
433 _71=_65(a);
434 }
435 }
436 if(_71){
437 ff=_1d(ff,_71);
438 }
439 });
440 }
441 if(!("id" in _6b)){
442 if(_6a.id){
443 ff=_1d(ff,function(_72){
444 return (!!_72&&(_72.id==_6a.id));
445 });
446 }
447 }
448 if(!ff){
449 if(!("default" in _6b)){
450 ff=_9;
451 }
452 }
453 return ff;
454 };
455 var _73=function(_74){
456 return function(_75,ret,bag){
457 while(_75=_75[_3d]){
458 if(_3c&&(!_21(_75))){
459 continue;
460 }
461 if((!bag||_76(_75,bag))&&_74(_75)){
462 ret.push(_75);
463 }
464 break;
465 }
466 return ret;
467 };
468 };
469 var _77=function(_78){
470 return function(_79,ret,bag){
471 var te=_79[_3d];
472 while(te){
473 if(_3f(te)){
474 if(bag&&!_76(te,bag)){
475 break;
476 }
477 if(_78(te)){
478 ret.push(te);
479 }
480 }
481 te=te[_3d];
482 }
483 return ret;
484 };
485 };
486 var _7a=function(_7b){
487 _7b=_7b||_9;
488 return function(_7c,ret,bag){
489 var te,x=0,_7d=_7c[_6];
490 while(te=_7d[x++]){
491 if(_3f(te)&&(!bag||_76(te,bag))&&(_7b(te,x))){
492 ret.push(te);
493 }
494 }
495 return ret;
496 };
497 };
498 var _7e=function(_7f,_80){
499 var pn=_7f.parentNode;
500 while(pn){
501 if(pn==_80){
502 break;
503 }
504 pn=pn.parentNode;
505 }
506 return !!pn;
507 };
508 var _81={};
509 var _82=function(_83){
510 var _84=_81[_83.query];
511 if(_84){
512 return _84;
513 }
514 var io=_83.infixOper;
515 var _85=(io?io.oper:"");
516 var _86=_5c(_83,{el:1});
517 var qt=_83.tag;
518 var _87=("*"==qt);
519 var ecs=_4()["getElementsByClassName"];
520 if(!_85){
521 if(_83.id){
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));
525 if(!te||!_86(te)){
526 return;
527 }
528 if(9==_88.nodeType){
529 return _20(te,arr);
530 }else{
531 if(_7e(te,_88)){
532 return _20(te,arr);
533 }
534 }
535 };
536 }else{
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)){
545 ret.push(te);
546 }
547 }
548 return ret;
549 };
550 }else{
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++])){
556 if(_76(te,bag)){
557 ret.push(te);
558 }
559 }
560 return ret;
561 };
562 }else{
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)){
569 ret.push(te);
570 }
571 }
572 return ret;
573 };
574 }
575 }
576 }
577 }else{
578 var _90={el:1};
579 if(_87){
580 _90.tag=1;
581 }
582 _86=_5c(_83,_90);
583 if("+"==_85){
584 _84=_73(_86);
585 }else{
586 if("~"==_85){
587 _84=_77(_86);
588 }else{
589 if(">"==_85){
590 _84=_7a(_86);
591 }
592 }
593 }
594 }
595 return _81[_83.query]=_84;
596 };
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++){
600 ret=[];
601 qp=_93[i];
602 x=_94.length-1;
603 if(x>0){
604 bag={};
605 ret.nozip=true;
606 }
607 var gef=_82(qp);
608 for(var j=0;(te=_94[j]);j++){
609 gef(te,ret,bag);
610 }
611 if(!ret.length){
612 break;
613 }
614 _94=ret;
615 }
616 return ret;
617 };
618 var _95={},_96={};
619 var _97=function(_98){
620 var _99=_a(_1(_98));
621 if(_99.length==1){
622 var tef=_82(_99[0]);
623 return function(_9a){
624 var r=tef(_9a,new _3());
625 if(r){
626 r.nozip=true;
627 }
628 return r;
629 };
630 }
631 return function(_9b){
632 return _91(_9b,_99);
633 };
634 };
635 var nua=navigator.userAgent;
636 var wk="WebKit/";
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;
644 };
645 var _a3=function(_a4,_a5){
646 _a4=_a4.replace(_9f,_a0);
647 if(_9e){
648 var _a6=_96[_a4];
649 if(_a6&&!_a5){
650 return _a6;
651 }
652 }
653 var _a7=_95[_a4];
654 if(_a7){
655 return _a7;
656 }
657 var qcz=_a4.charAt(0);
658 var _a8=(-1==_a4.indexOf(" "));
659 if((_a4.indexOf("#")>=0)&&(_a8)){
660 _a5=true;
661 }
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));
663 if(_a9){
664 var tq=(_7.indexOf(_a4.charAt(_a4.length-1))>=0)?(_a4+" *"):_a4;
665 return _96[_a4]=function(_aa){
666 try{
667 if(!((9==_aa.nodeType)||_a8)){
668 throw "";
669 }
670 var r=_aa[qsa](tq);
671 r[_9d]=true;
672 return r;
673 }
674 catch(e){
675 return _a3(_a4,true)(_aa);
676 }
677 };
678 }else{
679 var _ab=_a4.split(/\s*,\s*/);
680 return _95[_a4]=((_ab.length<2)?_97(_a4):function(_ac){
681 var _ad=0,ret=[],tp;
682 while((tp=_ab[_ad++])){
683 ret=ret.concat(_97(tp)(_ac));
684 }
685 return ret;
686 });
687 }
688 };
689 var _ae=0;
690 var _af=d.isIE?function(_b0){
691 if(_8){
692 return (_b0.getAttribute("_uid")||_b0.setAttribute("_uid",++_ae)||_ae);
693 }else{
694 return _b0.uniqueID;
695 }
696 }:function(_b1){
697 return (_b1._uid||(_b1._uid=++_ae));
698 };
699 var _76=function(_b2,bag){
700 if(!bag){
701 return 1;
702 }
703 var id=_af(_b2);
704 if(!bag[id]){
705 return bag[id]=1;
706 }
707 return 0;
708 };
709 var _b3="_zipIdx";
710 var _b4=function(arr){
711 if(arr&&arr.nozip){
712 return (_3._wrap)?_3._wrap(arr):arr;
713 }
714 var ret=new _3();
715 if(!arr||!arr.length){
716 return ret;
717 }
718 if(arr[0]){
719 ret.push(arr[0]);
720 }
721 if(arr.length<2){
722 return ret;
723 }
724 _ae++;
725 if(d.isIE&&_8){
726 var _b5=_ae+"";
727 arr[0].setAttribute(_b3,_b5);
728 for(var x=1,te;te=arr[x];x++){
729 if(arr[x].getAttribute(_b3)!=_b5){
730 ret.push(te);
731 }
732 te.setAttribute(_b3,_b5);
733 }
734 }else{
735 if(d.isIE&&arr.commentStrip){
736 try{
737 for(var x=1,te;te=arr[x];x++){
738 if(_21(te)){
739 ret.push(te);
740 }
741 }
742 }
743 catch(e){
744 }
745 }else{
746 if(arr[0]){
747 arr[0][_b3]=_ae;
748 }
749 for(var x=1,te;te=arr[x];x++){
750 if(arr[x][_b3]!=_ae){
751 ret.push(te);
752 }
753 te[_b3]=_ae;
754 }
755 }
756 }
757 return ret;
758 };
759 d.query=function(_b6,_b7){
760 _3=d._NodeListCtor;
761 if(!_b6){
762 return new _3();
763 }
764 if(_b6.constructor==_3){
765 return _b6;
766 }
767 if(typeof _b6!="string"){
768 return new _3(_b6);
769 }
770 if(typeof _b7=="string"){
771 _b7=d.byId(_b7);
772 if(!_b7){
773 return new _3();
774 }
775 }
776 _b7=_b7||_4();
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));
779 var r=_a3(_b6)(_b7);
780 if(r&&r.nozip&&!_3._wrap){
781 return r;
782 }
783 return _b4(r);
784 };
785 d.query.pseudos=_4c;
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++){
790 if(_bb(te)){
791 _ba.push(te);
792 }
793 }
794 return _ba;
795 };
796 })(this["queryPortability"]||this["acme"]||dojo);
797 }