Diffstat (limited to 'frontend/gamma/js/Clipperz/YUI/DomQuery.js') (more/less context) (ignore whitespace changes)
-rw-r--r-- | frontend/gamma/js/Clipperz/YUI/DomQuery.js | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/frontend/gamma/js/Clipperz/YUI/DomQuery.js b/frontend/gamma/js/Clipperz/YUI/DomQuery.js index 76d0fae..c1af0ca 100644 --- a/frontend/gamma/js/Clipperz/YUI/DomQuery.js +++ b/frontend/gamma/js/Clipperz/YUI/DomQuery.js | |||
@@ -1,118 +1,116 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2013 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz Community Edition. | 5 | This file is part of Clipperz, the online password manager. |
6 | Clipperz Community Edition is an online password manager. | ||
7 | For further information about its features and functionalities please | 6 | For further information about its features and functionalities please |
8 | refer to http://www.clipperz.com. | 7 | refer to http://www.clipperz.com. |
9 | 8 | ||
10 | * Clipperz Community Edition is free software: you can redistribute | 9 | * Clipperz is free software: you can redistribute it and/or modify it |
11 | it and/or modify it under the terms of the GNU Affero General Public | 10 | under the terms of the GNU Affero General Public License as published |
12 | License as published by the Free Software Foundation, either version | 11 | by the Free Software Foundation, either version 3 of the License, or |
13 | 3 of the License, or (at your option) any later version. | 12 | (at your option) any later version. |
14 | 13 | ||
15 | * Clipperz Community Edition is distributed in the hope that it will | 14 | * Clipperz is distributed in the hope that it will be useful, but |
16 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 15 | WITHOUT ANY WARRANTY; without even the implied warranty of |
17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
18 | See the GNU Affero General Public License for more details. | 17 | See the GNU Affero General Public License for more details. |
19 | 18 | ||
20 | * You should have received a copy of the GNU Affero General Public | 19 | * You should have received a copy of the GNU Affero General Public |
21 | License along with Clipperz Community Edition. If not, see | 20 | License along with Clipperz. If not, see http://www.gnu.org/licenses/. |
22 | <http://www.gnu.org/licenses/>. | ||
23 | 21 | ||
24 | */ | 22 | */ |
25 | 23 | ||
26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 24 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
27 | if (typeof(Clipperz.YUI) == 'undefined') { Clipperz.YUI = {}; } | 25 | if (typeof(Clipperz.YUI) == 'undefined') { Clipperz.YUI = {}; } |
28 | 26 | ||
29 | 27 | ||
30 | /* | 28 | /* |
31 | * yui-ext 0.40 | 29 | * yui-ext 0.40 |
32 | * Copyright(c) 2006, Jack Slocum. | 30 | * Copyright(c) 2006, Jack Slocum. |
33 | */ | 31 | */ |
34 | 32 | ||
35 | /** | 33 | /** |
36 | * @class Clipperz.YUI.DomQuery | 34 | * @class Clipperz.YUI.DomQuery |
37 | * Provides high performance selector/xpath processing by compiling queries into reusable functions. | 35 | * Provides high performance selector/xpath processing by compiling queries into reusable functions. |
38 | * New pseudo classes and matchers can be plugged. It works on HTML and XML documents (if a content node is passed in). | 36 | * New pseudo classes and matchers can be plugged. It works on HTML and XML documents (if a content node is passed in). |
39 | * @singleton | 37 | * @singleton |
40 | */ | 38 | */ |
41 | Clipperz.YUI.DomQuery = function(){ | 39 | Clipperz.YUI.DomQuery = function(){ |
42 | var cache = {}, simpleCache = {}, valueCache = {}; | 40 | var cache = {}, simpleCache = {}, valueCache = {}; |
43 | var nonSpace = /\S/; | 41 | var nonSpace = /\S/; |
44 | var trimRe = /^\s*(.*?)\s*$/; | 42 | var trimRe = /^\s*(.*?)\s*$/; |
45 | var tplRe = /\{(\d+)\}/g; | 43 | var tplRe = /\{(\d+)\}/g; |
46 | var modeRe = /^(\s?[\/>]\s?|\s|$)/; | 44 | var modeRe = /^(\s?[\/>]\s?|\s|$)/; |
47 | var clsRes = {}; | 45 | var clsRes = {}; |
48 | 46 | ||
49 | function child(p, index){ | 47 | function child(p, index){ |
50 | var i = 0; | 48 | var i = 0; |
51 | var n = p.firstChild; | 49 | var n = p.firstChild; |
52 | while(n){ | 50 | while(n){ |
53 | if(n.nodeType == 1){ | 51 | if(n.nodeType == 1){ |
54 | i++; | 52 | i++; |
55 | if(i == index){ | 53 | if(i == index){ |
56 | return n; | 54 | return n; |
57 | } | 55 | } |
58 | } | 56 | } |
59 | n = n.nextSibling; | 57 | n = n.nextSibling; |
60 | } | 58 | } |
61 | return null; | 59 | return null; |
62 | }; | 60 | }; |
63 | 61 | ||
64 | function next(d){ | 62 | function next(d){ |
65 | var n = d.nextSibling; | 63 | var n = d.nextSibling; |
66 | while(n && n.nodeType != 1){ | 64 | while(n && n.nodeType != 1){ |
67 | n = n.nextSibling; | 65 | n = n.nextSibling; |
68 | } | 66 | } |
69 | return n; | 67 | return n; |
70 | }; | 68 | }; |
71 | 69 | ||
72 | function prev(d){ | 70 | function prev(d){ |
73 | var n = d.previousSibling; | 71 | var n = d.previousSibling; |
74 | while(n && n.nodeType != 1){ | 72 | while(n && n.nodeType != 1){ |
75 | n = n.previousSibling; | 73 | n = n.previousSibling; |
76 | } | 74 | } |
77 | return n; | 75 | return n; |
78 | }; | 76 | }; |
79 | 77 | ||
80 | function clean(d){ | 78 | function clean(d){ |
81 | var n = d.firstChild, ni = -1; | 79 | var n = d.firstChild, ni = -1; |
82 | while(n){ | 80 | while(n){ |
83 | var nx = n.nextSibling; | 81 | var nx = n.nextSibling; |
84 | if(n.nodeType == 3 && !nonSpace.test(n.nodeValue)){ | 82 | if(n.nodeType == 3 && !nonSpace.test(n.nodeValue)){ |
85 | d.removeChild(n); | 83 | d.removeChild(n); |
86 | }else{ | 84 | }else{ |
87 | n.nodeIndex = ++ni; | 85 | n.nodeIndex = ++ni; |
88 | } | 86 | } |
89 | n = nx; | 87 | n = nx; |
90 | } | 88 | } |
91 | return this; | 89 | return this; |
92 | }; | 90 | }; |
93 | 91 | ||
94 | function byClassName(c, a, v){ | 92 | function byClassName(c, a, v){ |
95 | if(!v){ | 93 | if(!v){ |
96 | return c; | 94 | return c; |
97 | } | 95 | } |
98 | var re = clsRes[v]; | 96 | var re = clsRes[v]; |
99 | if(!re){ | 97 | if(!re){ |
100 | re = new RegExp('(?:^|\\s)(?:' + v + ')(?:\\s|$)'); | 98 | re = new RegExp('(?:^|\\s)(?:' + v + ')(?:\\s|$)'); |
101 | clsRes[v] = re; | 99 | clsRes[v] = re; |
102 | } | 100 | } |
103 | var r = []; | 101 | var r = []; |
104 | for(var i = 0, ci; ci = c[i]; i++){ | 102 | for(var i = 0, ci; ci = c[i]; i++){ |
105 | if(re.test(ci.className)){ | 103 | if(re.test(ci.className)){ |
106 | r[r.length] = ci; | 104 | r[r.length] = ci; |
107 | } | 105 | } |
108 | } | 106 | } |
109 | return r; | 107 | return r; |
110 | }; | 108 | }; |
111 | 109 | ||
112 | function convert(c){ | 110 | function convert(c){ |
113 | if(c.slice){ | 111 | if(c.slice){ |
114 | return c; | 112 | return c; |
115 | } | 113 | } |
116 | var r = []; | 114 | var r = []; |
117 | for(var i = 0, l = c.length; i < l; i++){ | 115 | for(var i = 0, l = c.length; i < l; i++){ |
118 | r[r.length] = c[i]; | 116 | r[r.length] = c[i]; |