annotate client/digitallibrary/jquery/svg/jquery.svgdom.js @ 756:ccf67eaf97ee jquery

added jQuery ui and svg javascripts
author hertzhaft
date Sun, 06 Feb 2011 22:17:41 +0100
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
756
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
1 /* http://keith-wood.name/svg.html
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
2 SVG/jQuery DOM compatibility for jQuery v1.4.3.
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
3 Written by Keith Wood (kbwood{at}iinet.com.au) April 2009.
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
4 Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
5 MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses.
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
6 Please attribute the author if you use it. */
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
7
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
8 (function($) { // Hide scope, no $ conflict
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
9
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
10 /* Support adding class names to SVG nodes. */
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
11 $.fn.addClass = function(origAddClass) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
12 return function(classNames) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
13 classNames = classNames || '';
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
14 return this.each(function() {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
15 if (isSVGElem(this)) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
16 var node = this;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
17 $.each(classNames.split(/\s+/), function(i, className) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
18 var classes = (node.className ? node.className.baseVal : node.getAttribute('class'));
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
19 if ($.inArray(className, classes.split(/\s+/)) == -1) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
20 classes += (classes ? ' ' : '') + className;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
21 (node.className ? node.className.baseVal = classes :
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
22 node.setAttribute('class', classes));
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
23 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
24 });
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
25 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
26 else {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
27 origAddClass.apply($(this), [classNames]);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
28 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
29 });
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
30 };
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
31 }($.fn.addClass);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
32
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
33 /* Support removing class names from SVG nodes. */
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
34 $.fn.removeClass = function(origRemoveClass) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
35 return function(classNames) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
36 classNames = classNames || '';
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
37 return this.each(function() {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
38 if (isSVGElem(this)) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
39 var node = this;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
40 $.each(classNames.split(/\s+/), function(i, className) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
41 var classes = (node.className ? node.className.baseVal : node.getAttribute('class'));
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
42 classes = $.grep(classes.split(/\s+/), function(n, i) { return n != className; }).
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
43 join(' ');
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
44 (node.className ? node.className.baseVal = classes :
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
45 node.setAttribute('class', classes));
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
46 });
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
47 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
48 else {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
49 origRemoveClass.apply($(this), [classNames]);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
50 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
51 });
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
52 };
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
53 }($.fn.removeClass);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
54
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
55 /* Support toggling class names on SVG nodes. */
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
56 $.fn.toggleClass = function(origToggleClass) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
57 return function(className, state) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
58 return this.each(function() {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
59 if (isSVGElem(this)) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
60 if (typeof state !== 'boolean') {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
61 state = !$(this).hasClass(className);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
62 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
63 $(this)[(state ? 'add' : 'remove') + 'Class'](className);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
64 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
65 else {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
66 origToggleClass.apply($(this), [className, state]);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
67 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
68 });
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
69 };
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
70 }($.fn.toggleClass);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
71
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
72 /* Support checking class names on SVG nodes. */
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
73 $.fn.hasClass = function(origHasClass) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
74 return function(className) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
75 className = className || '';
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
76 var found = false;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
77 this.each(function() {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
78 if (isSVGElem(this)) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
79 var classes = (this.className ? this.className.baseVal :
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
80 this.getAttribute('class')).split(/\s+/);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
81 found = ($.inArray(className, classes) > -1);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
82 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
83 else {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
84 found = (origHasClass.apply($(this), [className]));
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
85 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
86 return !found;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
87 });
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
88 return found;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
89 };
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
90 }($.fn.hasClass);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
91
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
92 /* Support attributes on SVG nodes. */
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
93 $.fn.attr = function(origAttr) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
94 return function(name, value, type) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
95 if (typeof name === 'string' && value === undefined) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
96 var val = origAttr.apply(this, [name, value, type]);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
97 if (val && val.baseVal && val.baseVal.numberOfItems != null) { // Transform
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
98 value = '';
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
99 val = val.baseVal;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
100 for (var i = 0; i < val.numberOfItems; i++) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
101 var item = val.getItem(i);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
102 switch (item.type) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
103 case 1: value += ' matrix(' + item.matrix.a + ',' + item.matrix.b + ',' +
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
104 item.matrix.c + ',' + item.matrix.d + ',' +
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
105 item.matrix.e + ',' + item.matrix.f + ')';
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
106 break;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
107 case 2: value += ' translate(' + item.matrix.e + ',' + item.matrix.f + ')'; break;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
108 case 3: value += ' scale(' + item.matrix.a + ',' + item.matrix.d + ')'; break;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
109 case 4: value += ' rotate(' + item.angle + ')'; break; // Doesn't handle new origin
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
110 case 5: value += ' skewX(' + item.angle + ')'; break;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
111 case 6: value += ' skewY(' + item.angle + ')'; break;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
112 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
113 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
114 val = value.substring(1);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
115 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
116 return (val && val.baseVal ? val.baseVal.valueAsString : val);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
117 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
118 var options = name;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
119 if (typeof name === 'string') {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
120 options = {};
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
121 options[name] = value;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
122 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
123 return this.each(function() {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
124 if (isSVGElem(this)) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
125 for (var n in options) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
126 var val = ($.isFunction(options[n]) ? options[n]() : options[n]);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
127 (type ? this.style[n] = val : this.setAttribute(n, val));
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
128 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
129 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
130 else {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
131 origAttr.apply($(this), [name, value, type]);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
132 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
133 });
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
134 };
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
135 }($.fn.attr);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
136
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
137 /* Support removing attributes on SVG nodes. */
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
138 $.fn.removeAttr = function(origRemoveAttr) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
139 return function(name) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
140 return this.each(function() {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
141 if (isSVGElem(this)) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
142 (this[name] && this[name].baseVal ? this[name].baseVal.value = '' :
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
143 this.setAttribute(name, ''));
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
144 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
145 else {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
146 origRemoveAttr.apply($(this), [name]);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
147 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
148 });
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
149 };
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
150 }($.fn.removeAttr);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
151
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
152 /* Determine if any nodes are SVG nodes. */
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
153 function anySVG(checkSet) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
154 for (var i = 0; i < checkSet.length; i++) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
155 if (checkSet[i].nodeType == 1 && checkSet[i].namespaceURI == $.svg.svgNS) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
156 return true;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
157 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
158 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
159 return false;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
160 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
161
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
162 /* Update Sizzle selectors. */
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
163
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
164 $.expr.relative['+'] = function(origRelativeNext) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
165 return function(checkSet, part, isXML) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
166 origRelativeNext(checkSet, part, isXML || anySVG(checkSet));
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
167 };
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
168 }($.expr.relative['+']);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
169
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
170 $.expr.relative['>'] = function(origRelativeChild) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
171 return function(checkSet, part, isXML) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
172 origRelativeChild(checkSet, part, isXML || anySVG(checkSet));
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
173 };
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
174 }($.expr.relative['>']);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
175
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
176 $.expr.relative[''] = function(origRelativeDescendant) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
177 return function(checkSet, part, isXML) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
178 origRelativeDescendant(checkSet, part, isXML || anySVG(checkSet));
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
179 };
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
180 }($.expr.relative['']);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
181
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
182 $.expr.relative['~'] = function(origRelativeSiblings) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
183 return function(checkSet, part, isXML) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
184 origRelativeSiblings(checkSet, part, isXML || anySVG(checkSet));
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
185 };
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
186 }($.expr.relative['~']);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
187
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
188 $.expr.find.ID = function(origFindId) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
189 return function(match, context, isXML) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
190 return (isSVGElem(context) ?
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
191 [context.ownerDocument.getElementById(match[1])] :
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
192 origFindId(match, context, isXML));
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
193 };
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
194 }($.expr.find.ID);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
195
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
196 var div = document.createElement('div');
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
197 div.appendChild(document.createComment(''));
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
198 if (div.getElementsByTagName('*').length > 0) { // Make sure no comments are found
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
199 $.expr.find.TAG = function(match, context) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
200 var results = context.getElementsByTagName(match[1]);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
201 if (match[1] === '*') { // Filter out possible comments
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
202 var tmp = [];
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
203 for (var i = 0; results[i] || results.item(i); i++) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
204 if ((results[i] || results.item(i)).nodeType === 1) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
205 tmp.push(results[i] || results.item(i));
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
206 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
207 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
208 results = tmp;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
209 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
210 return results;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
211 };
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
212 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
213
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
214 $.expr.preFilter.CLASS = function(match, curLoop, inplace, result, not, isXML) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
215 match = ' ' + match[1].replace(/\\/g, '') + ' ';
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
216 if (isXML) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
217 return match;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
218 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
219 for (var i = 0, elem = {}; elem != null; i++) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
220 elem = curLoop[i];
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
221 if (!elem) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
222 try {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
223 elem = curLoop.item(i);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
224 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
225 catch (e) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
226 // Ignore
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
227 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
228 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
229 if (elem) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
230 var className = (!isSVGElem(elem) ? elem.className :
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
231 (elem.className ? elem.className.baseVal : '') || elem.getAttribute('class'));
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
232 if (not ^ (className && (' ' + className + ' ').indexOf(match) > -1)) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
233 if (!inplace)
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
234 result.push(elem);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
235 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
236 else if (inplace) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
237 curLoop[i] = false;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
238 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
239 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
240 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
241 return false;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
242 };
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
243
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
244 $.expr.filter.CLASS = function(elem, match) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
245 var className = (!isSVGElem(elem) ? elem.className :
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
246 (elem.className ? elem.className.baseVal : elem.getAttribute('class')));
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
247 return (' ' + className + ' ').indexOf(match) > -1;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
248 };
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
249
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
250 $.expr.filter.ATTR = function(origFilterAttr) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
251 return function(elem, match) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
252 var handler = null;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
253 if (isSVGElem(elem)) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
254 handler = match[1];
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
255 $.expr.attrHandle[handler] = function(elem){
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
256 var attr = elem.getAttribute(handler);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
257 return attr && attr.baseVal || attr;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
258 };
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
259 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
260 var filter = origFilterAttr(elem, match);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
261 if (handler) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
262 $.expr.attrHandle[handler] = null;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
263 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
264 return filter;
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
265 };
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
266 }($.expr.filter.ATTR);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
267
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
268 /*
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
269 Change Sizzle initialisation (line 1425) in jQuery v1.3.2 base code...
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
270
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
271 if ( toString.call(checkSet) === "[object Array]" ) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
272 if ( !prune ) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
273 results.push.apply( results, checkSet );
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
274 } else if ( context.nodeType === 1 ) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
275 for ( var i = 0; checkSet[i] != null; i++ ) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
276 if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && contains(context, checkSet[i])) ) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
277 results.push( set[i] || set.item(i) ); // Here
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
278 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
279 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
280 } else {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
281 for ( var i = 0; checkSet[i] != null; i++ ) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
282 if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
283 results.push( set[i] || set.item(i) ); // Here
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
284 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
285 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
286 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
287 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
288
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
289 Change fallback makeArray (line 2076) implementation in jQuery Sizzle...
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
290
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
291 if ( typeof array.length === "number" ) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
292 for ( var i = 0, l = array.length; i < l; i++ ) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
293 ret.push( array[i] || array.item(i) ); // Here
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
294 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
295 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
296 */
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
297
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
298 /*
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
299 Events management requires changes to jQuery v1.3.2 base code...
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
300
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
301 In $.event.add (line 2437)...
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
302
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
303 if ( !jQuery.event.special[type] || jQuery.event.special[type].setup.call(elem, data, namespaces) === false ) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
304 // Bind the global event handler to the element
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
305 try { // Here
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
306 elem.addEventListener(type, handle, false);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
307 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
308 catch(e) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
309 if (elem.attachEvent)
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
310 elem.attachEvent("on" + type, handle);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
311 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
312 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
313
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
314 In $.event.remove (line 2521)...
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
315
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
316 if ( !jQuery.event.special[type] || jQuery.event.special[type].teardown.call(elem, namespaces) === false ) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
317 try { // Here
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
318 elem.removeEventListener(type, jQuery.data(elem, "handle"), false);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
319 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
320 catch (e) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
321 if (elem.detachEvent)
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
322 elem.detachEvent("on" + type, jQuery.data(elem, "handle"));
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
323 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
324 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
325 */
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
326
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
327 /* Does this node belong to SVG? */
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
328 function isSVGElem(node) {
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
329 return (node.nodeType == 1 && node.namespaceURI == $.svg.svgNS);
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
330 }
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
331
ccf67eaf97ee added jQuery ui and svg javascripts
hertzhaft
parents:
diff changeset
332 })(jQuery);