html5forms-rails 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +5 -0
- data/Gemfile +11 -0
- data/README.md +208 -0
- data/Rakefile +49 -0
- data/VERSION +1 -0
- data/demos/html5-form-demo.html +79 -0
- data/html5forms-rails.gemspec +142 -0
- data/lib/html5forms.rb +6 -0
- data/vendor/assets/images/colorpicker/blank.gif +0 -0
- data/vendor/assets/images/colorpicker/colorpicker_background.png +0 -0
- data/vendor/assets/images/colorpicker/colorpicker_hex.png +0 -0
- data/vendor/assets/images/colorpicker/colorpicker_hsb_b.png +0 -0
- data/vendor/assets/images/colorpicker/colorpicker_hsb_h.png +0 -0
- data/vendor/assets/images/colorpicker/colorpicker_hsb_s.png +0 -0
- data/vendor/assets/images/colorpicker/colorpicker_indic.gif +0 -0
- data/vendor/assets/images/colorpicker/colorpicker_overlay.png +0 -0
- data/vendor/assets/images/colorpicker/colorpicker_rgb_b.png +0 -0
- data/vendor/assets/images/colorpicker/colorpicker_rgb_g.png +0 -0
- data/vendor/assets/images/colorpicker/colorpicker_rgb_r.png +0 -0
- data/vendor/assets/images/colorpicker/colorpicker_select.gif +0 -0
- data/vendor/assets/images/colorpicker/colorpicker_submit.png +0 -0
- data/vendor/assets/images/colorpicker/custom_background.png +0 -0
- data/vendor/assets/images/colorpicker/custom_hex.png +0 -0
- data/vendor/assets/images/colorpicker/custom_hsb_b.png +0 -0
- data/vendor/assets/images/colorpicker/custom_hsb_h.png +0 -0
- data/vendor/assets/images/colorpicker/custom_hsb_s.png +0 -0
- data/vendor/assets/images/colorpicker/custom_indic.gif +0 -0
- data/vendor/assets/images/colorpicker/custom_rgb_b.png +0 -0
- data/vendor/assets/images/colorpicker/custom_rgb_g.png +0 -0
- data/vendor/assets/images/colorpicker/custom_rgb_r.png +0 -0
- data/vendor/assets/images/colorpicker/custom_submit.png +0 -0
- data/vendor/assets/images/colorpicker/select.png +0 -0
- data/vendor/assets/images/colorpicker/select2.png +0 -0
- data/vendor/assets/images/colorpicker/slider.png +0 -0
- data/vendor/assets/images/h5f/form_validation.png +0 -0
- data/vendor/assets/images/html5form-shim/asterisk.png +0 -0
- data/vendor/assets/images/html5form-shim/down.png +0 -0
- data/vendor/assets/images/html5form-shim/fail.png +0 -0
- data/vendor/assets/images/html5form-shim/ok.png +0 -0
- data/vendor/assets/images/html5forms/jscolor/arrow.gif +0 -0
- data/vendor/assets/images/html5forms/jscolor/cross.gif +0 -0
- data/vendor/assets/images/html5forms/jscolor/hs.png +0 -0
- data/vendor/assets/images/html5forms/jscolor/hv.png +0 -0
- data/vendor/assets/images/html5forms/slider/slider-1.png +0 -0
- data/vendor/assets/images/html5forms/slider/slider-disabled-1.png +0 -0
- data/vendor/assets/images/html5forms/slider/slider-disabled.png +0 -0
- data/vendor/assets/images/html5forms/slider/slider.png +0 -0
- data/vendor/assets/javascripts/colorpicker.js +484 -0
- data/vendor/assets/javascripts/colorpicker.min.js +9 -0
- data/vendor/assets/javascripts/h5f.js +328 -0
- data/vendor/assets/javascripts/h5f.min.js +4 -0
- data/vendor/assets/javascripts/html5forms/EventHelpers.min.js +15 -0
- data/vendor/assets/javascripts/html5forms/autocomplete.min.js +1 -0
- data/vendor/assets/javascripts/html5forms/cssQuery-p.min.js +6 -0
- data/vendor/assets/javascripts/html5forms/dev/EventHelpers.js +486 -0
- data/vendor/assets/javascripts/html5forms/dev/autocomplete.js +387 -0
- data/vendor/assets/javascripts/html5forms/dev/cssQuery-p.js +6 -0
- data/vendor/assets/javascripts/html5forms/dev/html5.js +121 -0
- data/vendor/assets/javascripts/html5forms/dev/html5Forms.js +892 -0
- data/vendor/assets/javascripts/html5forms/dev/html5Widgets.js +1417 -0
- data/vendor/assets/javascripts/html5forms/dev/jscolor.js +840 -0
- data/vendor/assets/javascripts/html5forms/dev/slider.js +797 -0
- data/vendor/assets/javascripts/html5forms/dev/timer.js +137 -0
- data/vendor/assets/javascripts/html5forms/dev/visibleIf.js +1100 -0
- data/vendor/assets/javascripts/html5forms/html5.min.js +2 -0
- data/vendor/assets/javascripts/html5forms/html5Forms.min.js +1 -0
- data/vendor/assets/javascripts/html5forms/html5Widgets.min.js +20 -0
- data/vendor/assets/javascripts/html5forms/jscolor.min.js +10 -0
- data/vendor/assets/javascripts/html5forms/slider.min.js +25 -0
- data/vendor/assets/javascripts/html5forms/timer.min.js +1 -0
- data/vendor/assets/javascripts/html5forms/visibleIf.min.js +19 -0
- data/vendor/assets/javascripts/html5forms.fallback.js +115 -0
- data/vendor/assets/javascripts/html5forms.fallback.min.js +11 -0
- data/vendor/assets/javascripts/jquery.html5form-shim.js +402 -0
- data/vendor/assets/javascripts/jquery.html5form.min.js +4 -0
- data/vendor/assets/javascripts/jquery.placehold.min.js +7 -0
- data/vendor/assets/javascripts/ui.spinner.js +649 -0
- data/vendor/assets/javascripts/ui.spinner.min.js +7 -0
- data/vendor/assets/javascripts/webforms2/webforms2-msie.js +1 -0
- data/vendor/assets/javascripts/webforms2/webforms2-p.js +14 -0
- data/vendor/assets/javascripts/webforms2/webforms2.js +14 -0
- data/vendor/assets/javascripts/webforms2/webforms2_src.js +3195 -0
- data/vendor/assets/stylesheets/colorpicker.css +161 -0
- data/vendor/assets/stylesheets/h5f.css +86 -0
- data/vendor/assets/stylesheets/html5form-shim.css +109 -0
- data/vendor/assets/stylesheets/html5forms/number.css +35 -0
- data/vendor/assets/stylesheets/html5forms/slider.css +169 -0
- data/vendor/assets/stylesheets/html5forms/slider_ie.css +41 -0
- data/vendor/assets/stylesheets/html5forms/visibleIf.css +23 -0
- data/vendor/assets/stylesheets/html5forms.layout.css +116 -0
- data/vendor/assets/stylesheets/ui.spinner.css +3 -0
- data/vendor/assets/stylesheets/webforms2.css +42 -0
- metadata +221 -0
@@ -0,0 +1,328 @@
|
|
1
|
+
/*! H5F - v1.0.0 - 2012-07-18
|
2
|
+
* https://github.com/ryanseddon/H5F/
|
3
|
+
* Copyright (c) 2012 Ryan Seddon; Licensed MIT */
|
4
|
+
|
5
|
+
var H5F = H5F || {};
|
6
|
+
|
7
|
+
(function(d){
|
8
|
+
|
9
|
+
var field = d.createElement("input"),
|
10
|
+
emailPatt = /^[a-zA-Z0-9.!#$%&'*+-\/=?\^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/,
|
11
|
+
urlPatt = /[a-z][\-\.+a-z]*:\/\//i,
|
12
|
+
nodes = /^(input|select|textarea)$/i,
|
13
|
+
isSubmit, usrPatt, curEvt, args, custMsg = "",
|
14
|
+
// Methods
|
15
|
+
setup, validation, validity, checkField, checkValidity, setCustomValidity, support, pattern, placeholder, range, required, valueMissing, listen, unlisten, preventActions, getTarget, addClass, removeClass, isHostMethod;
|
16
|
+
|
17
|
+
setup = function(form,settings) {
|
18
|
+
var isCollection = !form.nodeType || false;
|
19
|
+
|
20
|
+
var opts = {
|
21
|
+
validClass : "valid",
|
22
|
+
invalidClass : "error",
|
23
|
+
requiredClass : "required",
|
24
|
+
placeholderClass : "placeholder"
|
25
|
+
};
|
26
|
+
|
27
|
+
if(typeof settings === "object") {
|
28
|
+
for (var i in opts) {
|
29
|
+
if(typeof settings[i] === "undefined") { settings[i] = opts[i]; }
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
args = settings || opts;
|
34
|
+
|
35
|
+
if(isCollection) {
|
36
|
+
for(var k=0,len=form.length;k<len;k++) {
|
37
|
+
validation(form[k]);
|
38
|
+
}
|
39
|
+
} else {
|
40
|
+
validation(form);
|
41
|
+
}
|
42
|
+
};
|
43
|
+
|
44
|
+
validation = function(form) {
|
45
|
+
var f = form.elements,
|
46
|
+
flen = f.length,
|
47
|
+
isRequired, noValidate = !!(form.attributes["novalidate"]);
|
48
|
+
|
49
|
+
listen(form,"invalid",checkField,true);
|
50
|
+
listen(form,"blur",checkField,true);
|
51
|
+
listen(form,"input",checkField,true);
|
52
|
+
listen(form,"keyup",checkField,true);
|
53
|
+
listen(form,"focus",checkField,true);
|
54
|
+
|
55
|
+
listen(form,"submit",function(e){
|
56
|
+
isSubmit = true;
|
57
|
+
if(!noValidate && !form.checkValidity()) {
|
58
|
+
preventActions(e);
|
59
|
+
}
|
60
|
+
},false);
|
61
|
+
|
62
|
+
if(!support()) {
|
63
|
+
form.checkValidity = function() { return checkValidity(form); };
|
64
|
+
|
65
|
+
while(flen--) {
|
66
|
+
isRequired = !!(f[flen].attributes["required"]);
|
67
|
+
// Firefox includes fieldsets inside elements nodelist so we filter it out.
|
68
|
+
if(f[flen].nodeName.toLowerCase() !== "fieldset") {
|
69
|
+
validity(f[flen]); // Add validity object to field
|
70
|
+
}
|
71
|
+
}
|
72
|
+
}
|
73
|
+
};
|
74
|
+
validity = function(el) {
|
75
|
+
var elem = el,
|
76
|
+
missing = valueMissing(elem),
|
77
|
+
attrs = {
|
78
|
+
type: elem.getAttribute("type"),
|
79
|
+
pattern: elem.getAttribute("pattern"),
|
80
|
+
placeholder: elem.getAttribute("placeholder")
|
81
|
+
},
|
82
|
+
isType = /^(email|url)$/i,
|
83
|
+
evt = /^(input|keyup)$/i,
|
84
|
+
fType = ((isType.test(attrs.type)) ? attrs.type : ((attrs.pattern) ? attrs.pattern : false)),
|
85
|
+
patt = pattern(elem,fType),
|
86
|
+
step = range(elem,"step"),
|
87
|
+
min = range(elem,"min"),
|
88
|
+
max = range(elem,"max"),
|
89
|
+
customError = (custMsg !== "");
|
90
|
+
|
91
|
+
elem.checkValidity = function() { return checkValidity.call(this,elem); };
|
92
|
+
elem.setCustomValidity = function(msg) { setCustomValidity.call(elem,msg); };
|
93
|
+
elem.validationMessage = custMsg;
|
94
|
+
|
95
|
+
elem.validity = {
|
96
|
+
valueMissing: missing,
|
97
|
+
patternMismatch: patt,
|
98
|
+
rangeUnderflow: min,
|
99
|
+
rangeOverflow: max,
|
100
|
+
stepMismatch: step,
|
101
|
+
customError: customError,
|
102
|
+
valid: (!missing && !patt && !step && !min && !max && !customError)
|
103
|
+
};
|
104
|
+
|
105
|
+
if(attrs.placeholder && !evt.test(curEvt)) { placeholder(elem); }
|
106
|
+
};
|
107
|
+
checkField = function (e) {
|
108
|
+
var el = getTarget(e) || e, // checkValidity method passes element not event
|
109
|
+
events = /^(input|keyup|focusin|focus)$/i,
|
110
|
+
ignoredTypes = /^(submit|image|button|reset)$/i,
|
111
|
+
checkForm = true;
|
112
|
+
|
113
|
+
if(nodes.test(el.nodeName) && !(ignoredTypes.test(el.type) || ignoredTypes.test(el.nodeName))) {
|
114
|
+
curEvt = e.type;
|
115
|
+
if(!support()) { validity(el); }
|
116
|
+
|
117
|
+
if(el.validity.valid && el.value !== "" || el.value !== el.getAttribute("placeholder") && el.validity.valid) {
|
118
|
+
removeClass(el,[args.invalidClass,args.requiredClass]);
|
119
|
+
addClass(el,args.validClass);
|
120
|
+
} else if(!events.test(curEvt)) {
|
121
|
+
if(el.validity.valueMissing) {
|
122
|
+
removeClass(el,[args.invalidClass,args.validClass]);
|
123
|
+
addClass(el,args.requiredClass);
|
124
|
+
} else if(!el.validity.valid) {
|
125
|
+
removeClass(el,[args.validClass,args.requiredClass]);
|
126
|
+
addClass(el,args.invalidClass);
|
127
|
+
}
|
128
|
+
} else if(el.validity.valueMissing) {
|
129
|
+
removeClass(el,[args.requiredClass,args.invalidClass,args.validClass]);
|
130
|
+
}
|
131
|
+
if(curEvt === "input" && checkForm) {
|
132
|
+
// If input is triggered remove the keyup event
|
133
|
+
unlisten(el.form,"keyup",checkField,true);
|
134
|
+
checkForm = false;
|
135
|
+
}
|
136
|
+
}
|
137
|
+
};
|
138
|
+
checkValidity = function (el) {
|
139
|
+
var f, ff, isRequired, hasPattern, invalid = false;
|
140
|
+
|
141
|
+
if(el.nodeName.toLowerCase() === "form") {
|
142
|
+
f = el.elements;
|
143
|
+
|
144
|
+
for(var i = 0,len = f.length;i < len;i++) {
|
145
|
+
ff = f[i];
|
146
|
+
|
147
|
+
isRequired = !!(ff.attributes["required"]);
|
148
|
+
hasPattern = !!(ff.attributes["pattern"]);
|
149
|
+
|
150
|
+
if(ff.nodeName.toLowerCase() !== "fieldset" && (isRequired || hasPattern && isRequired)) {
|
151
|
+
checkField(ff);
|
152
|
+
if(!ff.validity.valid && !invalid) {
|
153
|
+
if(isSubmit) { // If it's not a submit event the field shouldn't be focused
|
154
|
+
ff.focus();
|
155
|
+
}
|
156
|
+
invalid = true;
|
157
|
+
}
|
158
|
+
}
|
159
|
+
}
|
160
|
+
return !invalid;
|
161
|
+
} else {
|
162
|
+
checkField(el);
|
163
|
+
return el.validity.valid;
|
164
|
+
}
|
165
|
+
};
|
166
|
+
setCustomValidity = function (msg) {
|
167
|
+
var el = this;
|
168
|
+
custMsg = msg;
|
169
|
+
|
170
|
+
el.validationMessage = custMsg;
|
171
|
+
};
|
172
|
+
|
173
|
+
support = function() {
|
174
|
+
return (isHostMethod(field,"validity") && isHostMethod(field,"checkValidity"));
|
175
|
+
};
|
176
|
+
|
177
|
+
// Create helper methods to emulate attributes in older browsers
|
178
|
+
pattern = function(el, type) {
|
179
|
+
if(type === "email") {
|
180
|
+
return !emailPatt.test(el.value);
|
181
|
+
} else if(type === "url") {
|
182
|
+
return !urlPatt.test(el.value);
|
183
|
+
} else if(!type) {
|
184
|
+
return false;
|
185
|
+
} else {
|
186
|
+
var placeholder = el.getAttribute("placeholder"),
|
187
|
+
val = el.value;
|
188
|
+
|
189
|
+
usrPatt = new RegExp('^(?:' + type + ')$');
|
190
|
+
|
191
|
+
if(val === placeholder) {
|
192
|
+
return true;
|
193
|
+
} else if(val === "") {
|
194
|
+
return false;
|
195
|
+
} else {
|
196
|
+
return !usrPatt.test(el.value);
|
197
|
+
}
|
198
|
+
}
|
199
|
+
};
|
200
|
+
placeholder = function(el) {
|
201
|
+
var attrs = { placeholder: el.getAttribute("placeholder") },
|
202
|
+
focus = /^(focus|focusin|submit)$/i,
|
203
|
+
node = /^(input|textarea)$/i,
|
204
|
+
ignoredType = /^password$/i,
|
205
|
+
isNative = !!("placeholder" in field);
|
206
|
+
|
207
|
+
if(!isNative && node.test(el.nodeName) && !ignoredType.test(el.type)) {
|
208
|
+
if(el.value === "" && !focus.test(curEvt)) {
|
209
|
+
el.value = attrs.placeholder;
|
210
|
+
listen(el.form,'submit', function () {
|
211
|
+
curEvt = 'submit';
|
212
|
+
placeholder(el);
|
213
|
+
}, true);
|
214
|
+
addClass(el,args.placeholderClass);
|
215
|
+
} else if(el.value === attrs.placeholder && focus.test(curEvt)) {
|
216
|
+
el.value = "";
|
217
|
+
removeClass(el,args.placeholderClass);
|
218
|
+
}
|
219
|
+
}
|
220
|
+
};
|
221
|
+
range = function(el,type) {
|
222
|
+
// Emulate min, max and step
|
223
|
+
var min = parseInt(el.getAttribute("min"),10) || 0,
|
224
|
+
max = parseInt(el.getAttribute("max"),10) || false,
|
225
|
+
step = parseInt(el.getAttribute("step"),10) || 1,
|
226
|
+
val = parseInt(el.value,10),
|
227
|
+
mismatch = (val-min)%step;
|
228
|
+
|
229
|
+
if(!valueMissing(el) && !isNaN(val)) {
|
230
|
+
if(type === "step") {
|
231
|
+
return (el.getAttribute("step")) ? (mismatch !== 0) : false;
|
232
|
+
} else if(type === "min") {
|
233
|
+
return (el.getAttribute("min")) ? (val < min) : false;
|
234
|
+
} else if(type === "max") {
|
235
|
+
return (el.getAttribute("max")) ? (val > max) : false;
|
236
|
+
}
|
237
|
+
} else if(el.getAttribute("type") === "number") {
|
238
|
+
return true;
|
239
|
+
} else {
|
240
|
+
return false;
|
241
|
+
}
|
242
|
+
};
|
243
|
+
required = function(el) {
|
244
|
+
var required = !!(el.attributes["required"]);
|
245
|
+
|
246
|
+
return (required) ? valueMissing(el) : false;
|
247
|
+
};
|
248
|
+
valueMissing = function(el) {
|
249
|
+
var placeholder = el.getAttribute("placeholder"),
|
250
|
+
isRequired = !!(el.attributes["required"]);
|
251
|
+
return !!(isRequired && (el.value === "" || el.value === placeholder));
|
252
|
+
};
|
253
|
+
|
254
|
+
/* Util methods */
|
255
|
+
listen = function (node,type,fn,capture) {
|
256
|
+
if(isHostMethod(window,"addEventListener")) {
|
257
|
+
/* FF & Other Browsers */
|
258
|
+
node.addEventListener( type, fn, capture );
|
259
|
+
} else if(isHostMethod(window,"attachEvent") && typeof window.event !== "undefined") {
|
260
|
+
/* Internet Explorer way */
|
261
|
+
if(type === "blur") {
|
262
|
+
type = "focusout";
|
263
|
+
} else if(type === "focus") {
|
264
|
+
type = "focusin";
|
265
|
+
}
|
266
|
+
node.attachEvent( "on" + type, fn );
|
267
|
+
}
|
268
|
+
};
|
269
|
+
unlisten = function (node,type,fn,capture) {
|
270
|
+
if(isHostMethod(window,"removeEventListener")) {
|
271
|
+
/* FF & Other Browsers */
|
272
|
+
node.removeEventListener( type, fn, capture );
|
273
|
+
} else if(isHostMethod(window,"detachEvent") && typeof window.event !== "undefined") {
|
274
|
+
/* Internet Explorer way */
|
275
|
+
node.detachEvent( "on" + type, fn );
|
276
|
+
}
|
277
|
+
};
|
278
|
+
preventActions = function (evt) {
|
279
|
+
evt = evt || window.event;
|
280
|
+
|
281
|
+
if(evt.stopPropagation && evt.preventDefault) {
|
282
|
+
evt.stopPropagation();
|
283
|
+
evt.preventDefault();
|
284
|
+
} else {
|
285
|
+
evt.cancelBubble = true;
|
286
|
+
evt.returnValue = false;
|
287
|
+
}
|
288
|
+
};
|
289
|
+
getTarget = function (evt) {
|
290
|
+
evt = evt || window.event;
|
291
|
+
return evt.target || evt.srcElement;
|
292
|
+
};
|
293
|
+
addClass = function (e,c) {
|
294
|
+
var re;
|
295
|
+
if (!e.className) {
|
296
|
+
e.className = c;
|
297
|
+
}
|
298
|
+
else {
|
299
|
+
re = new RegExp('(^|\\s)' + c + '(\\s|$)');
|
300
|
+
if (!re.test(e.className)) { e.className += ' ' + c; }
|
301
|
+
}
|
302
|
+
};
|
303
|
+
removeClass = function (e,c) {
|
304
|
+
var re, m, arr = (typeof c === "object") ? c.length : 1, len = arr;
|
305
|
+
if (e.className) {
|
306
|
+
if (e.className === c) {
|
307
|
+
e.className = '';
|
308
|
+
}
|
309
|
+
else {
|
310
|
+
while(arr--) {
|
311
|
+
re = new RegExp('(^|\\s)' + ((len > 1) ? c[arr] : c) + '(\\s|$)');
|
312
|
+
m = e.className.match(re);
|
313
|
+
if (m && m.length === 3) { e.className = e.className.replace(re, (m[1] && m[2])?' ':''); }
|
314
|
+
}
|
315
|
+
}
|
316
|
+
}
|
317
|
+
};
|
318
|
+
isHostMethod = function(o, m) {
|
319
|
+
var t = typeof o[m], reFeaturedMethod = new RegExp('^function|object$', 'i');
|
320
|
+
return !!((reFeaturedMethod.test(t) && o[m]) || t === 'unknown');
|
321
|
+
};
|
322
|
+
|
323
|
+
// Since all methods are only used internally no need to expose globally
|
324
|
+
window["H5F"] = {
|
325
|
+
setup: setup
|
326
|
+
};
|
327
|
+
|
328
|
+
}(document));
|
@@ -0,0 +1,4 @@
|
|
1
|
+
/*! H5F - v1.0.0 - 2012-07-18
|
2
|
+
* https://github.com/ryanseddon/H5F/
|
3
|
+
* Copyright (c) 2012 Ryan Seddon; Licensed MIT */
|
4
|
+
var H5F=H5F||{};(function(a){var b=a.createElement("input"),c=/^[a-zA-Z0-9.!#$%&'*+-\/=?\^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/,d=/[a-z][\-\.+a-z]*:\/\//i,e=/^(input|select|textarea)$/i,f,g,h,i,j="",k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C;k=function(a,b){var c=!a.nodeType||!1,d={validClass:"valid",invalidClass:"error",requiredClass:"required",placeholderClass:"placeholder"};if(typeof b=="object")for(var e in d)typeof b[e]=="undefined"&&(b[e]=d[e]);i=b||d;if(c)for(var f=0,g=a.length;f<g;f++)l(a[f]);else l(a)},l=function(a){var b=a.elements,c=b.length,d,e=!!a.attributes.novalidate;w(a,"invalid",n,!0),w(a,"blur",n,!0),w(a,"input",n,!0),w(a,"keyup",n,!0),w(a,"focus",n,!0),w(a,"submit",function(b){f=!0,!e&&!a.checkValidity()&&y(b)},!1);if(!q()){a.checkValidity=function(){return o(a)};while(c--)d=!!b[c].attributes.required,b[c].nodeName.toLowerCase()!=="fieldset"&&m(b[c])}},m=function(a){var b=a,c=v(b),d={type:b.getAttribute("type"),pattern:b.getAttribute("pattern"),placeholder:b.getAttribute("placeholder")},e=/^(email|url)$/i,f=/^(input|keyup)$/i,g=e.test(d.type)?d.type:d.pattern?d.pattern:!1,i=r(b,g),k=t(b,"step"),l=t(b,"min"),m=t(b,"max"),n=j!=="";b.checkValidity=function(){return o.call(this,b)},b.setCustomValidity=function(a){p.call(b,a)},b.validationMessage=j,b.validity={valueMissing:c,patternMismatch:i,rangeUnderflow:l,rangeOverflow:m,stepMismatch:k,customError:n,valid:!c&&!i&&!k&&!l&&!m&&!n},d.placeholder&&!f.test(h)&&s(b)},n=function(a){var b=z(a)||a,c=/^(input|keyup|focusin|focus)$/i,d=/^(submit|image|button|reset)$/i,f=!0;e.test(b.nodeName)&&!d.test(b.type)&&!d.test(b.nodeName)&&(h=a.type,q()||m(b),b.validity.valid&&b.value!==""||b.value!==b.getAttribute("placeholder")&&b.validity.valid?(B(b,[i.invalidClass,i.requiredClass]),A(b,i.validClass)):c.test(h)?b.validity.valueMissing&&B(b,[i.requiredClass,i.invalidClass,i.validClass]):b.validity.valueMissing?(B(b,[i.invalidClass,i.validClass]),A(b,i.requiredClass)):b.validity.valid||(B(b,[i.validClass,i.requiredClass]),A(b,i.invalidClass)),h==="input"&&f&&(x(b.form,"keyup",n,!0),f=!1))},o=function(a){var b,c,d,e,g=!1;if(a.nodeName.toLowerCase()==="form"){b=a.elements;for(var h=0,i=b.length;h<i;h++)c=b[h],d=!!c.attributes.required,e=!!c.attributes.pattern,c.nodeName.toLowerCase()!=="fieldset"&&(d||e&&d)&&(n(c),!c.validity.valid&&!g&&(f&&c.focus(),g=!0));return!g}return n(a),a.validity.valid},p=function(a){var b=this;j=a,b.validationMessage=j},q=function(){return C(b,"validity")&&C(b,"checkValidity")},r=function(a,b){if(b==="email")return!c.test(a.value);if(b==="url")return!d.test(a.value);if(!b)return!1;var e=a.getAttribute("placeholder"),f=a.value;return g=new RegExp("^(?:"+b+")$"),f===e?!0:f===""?!1:!g.test(a.value)},s=function(a){var c={placeholder:a.getAttribute("placeholder")},d=/^(focus|focusin|submit)$/i,e=/^(input|textarea)$/i,f=/^password$/i,g="placeholder"in b;!g&&e.test(a.nodeName)&&!f.test(a.type)&&(a.value===""&&!d.test(h)?(a.value=c.placeholder,w(a.form,"submit",function(){h="submit",s(a)},!0),A(a,i.placeholderClass)):a.value===c.placeholder&&d.test(h)&&(a.value="",B(a,i.placeholderClass)))},t=function(a,b){var c=parseInt(a.getAttribute("min"),10)||0,d=parseInt(a.getAttribute("max"),10)||!1,e=parseInt(a.getAttribute("step"),10)||1,f=parseInt(a.value,10),g=(f-c)%e;if(!!v(a)||!!isNaN(f))return a.getAttribute("type")==="number"?!0:!1;if(b==="step")return a.getAttribute("step")?g!==0:!1;if(b==="min")return a.getAttribute("min")?f<c:!1;if(b==="max")return a.getAttribute("max")?f>d:!1},u=function(a){var b=!!a.attributes.required;return b?v(a):!1},v=function(a){var b=a.getAttribute("placeholder"),c=!!a.attributes.required;return!(!c||a.value!==""&&a.value!==b)},w=function(a,b,c,d){C(window,"addEventListener")?a.addEventListener(b,c,d):C(window,"attachEvent")&&typeof window.event!="undefined"&&(b==="blur"?b="focusout":b==="focus"&&(b="focusin"),a.attachEvent("on"+b,c))},x=function(a,b,c,d){C(window,"removeEventListener")?a.removeEventListener(b,c,d):C(window,"detachEvent")&&typeof window.event!="undefined"&&a.detachEvent("on"+b,c)},y=function(a){a=a||window.event,a.stopPropagation&&a.preventDefault?(a.stopPropagation(),a.preventDefault()):(a.cancelBubble=!0,a.returnValue=!1)},z=function(a){return a=a||window.event,a.target||a.srcElement},A=function(a,b){var c;a.className?(c=new RegExp("(^|\\s)"+b+"(\\s|$)"),c.test(a.className)||(a.className+=" "+b)):a.className=b},B=function(a,b){var c,d,e=typeof b=="object"?b.length:1,f=e;if(a.className)if(a.className===b)a.className="";else while(e--)c=new RegExp("(^|\\s)"+(f>1?b[e]:b)+"(\\s|$)"),d=a.className.match(c),d&&d.length===3&&(a.className=a.className.replace(c,d[1]&&d[2]?" ":""))},C=function(a,b){var c=typeof a[b],d=new RegExp("^function|object$","i");return!!(d.test(c)&&a[b]||c==="unknown")},window.H5F={setup:k}})(document);
|
@@ -0,0 +1,15 @@
|
|
1
|
+
/*******************************************************************************
|
2
|
+
* This notice must be untouched at all times.
|
3
|
+
*
|
4
|
+
* This javascript library contains helper routines to assist with event
|
5
|
+
* handling consinstently among browsers
|
6
|
+
*
|
7
|
+
* EventHelpers.js v.1.4 available at http://www.useragentman.com/
|
8
|
+
*
|
9
|
+
* released under the MIT License:
|
10
|
+
* http://www.opensource.org/licenses/mit-license.php
|
11
|
+
*
|
12
|
+
* Chagelog: 1.4: fix fireEvent to work correctly for IE9.
|
13
|
+
*
|
14
|
+
*******************************************************************************/
|
15
|
+
var EventHelpers=new function(){var me=this;var safariTimer;var isSafari=/WebKit/i.test(navigator.userAgent);var globalEvent;me.init=function(){if(me.hasPageLoadHappened(arguments)){return}if(document.createEvent){globalEvent=document.createEvent("HTMLEvents")}else if(document.createEventObject){globalEvent=document.createEventObject()}me.docIsLoaded=true}me.addEvent=function(obj,evType,fn){if(obj.addEventListener){obj.addEventListener(evType,fn,false)}else if(obj.attachEvent){obj['e'+evType+fn]=fn;obj[evType+fn]=function(){obj["e"+evType+fn](self.event)}obj.attachEvent("on"+evType,obj[evType+fn])}}me.removeEvent=function(obj,evType,fn){if(obj.removeEventListener){obj.removeEventListener(evType,fn,false)}else if(obj.detachEvent){try{obj.detachEvent("on"+evType,obj[evType+fn]);obj[evType+fn]=null;obj["e"+evType+fn]=null}catch(ex){}}}function removeEventAttribute(obj,beginName){var attributes=obj.attributes;for(var i=0;i<attributes.length;i++){var attribute=attributes[i]var name=attribute.name if(name.indexOf(beginName)==0){attribute.specified=false}}}me.addScrollWheelEvent=function(obj,fn){if(obj.addEventListener){obj.addEventListener('DOMMouseScroll',fn,true)}if(obj.attachEvent){obj.attachEvent("onmousewheel",fn)}}me.removeScrollWheelEvent=function(obj,fn){if(obj.removeEventListener){obj.removeEventListener('DOMMouseScroll',fn,true)}if(obj.detachEvent){obj.detatchEvent("onmousewheel",fn)}}me.getMouseCoords=function(e){if(!e){return}if(e.clientX!=null){return{x:e.clientX,y:e.clientY}}else if(e.pageX!=null){return{x:e.pageX,y:e.pageY}}else if(window.event!=null&&window.event.clientX!=null&&document.body!=null&&document.body.scrollLeft!=null){return{x:window.event.clientX+document.body.scrollLeft,y:window.event.clientY+document.body.scrollTop}}else{return null}}me.getMouseX=function(e){if(!e){return}if(e.pageX!=null){return e.pageX}else if(window.event!=null&&window.event.clientX!=null&&document.body!=null&&document.body.scrollLeft!=null)return window.event.clientX+document.body.scrollLeft;else if(e.clientX!=null)return e.clientX;else return null}me.getMouseY=function(e){if(e.pageY!=null)return e.pageY;else if(window.event!=null&&window.event.clientY!=null&&document.body!=null&&document.body.scrollTop!=null)return window.event.clientY+document.body.scrollTop;else if(e.clientY!=null){return e.clientY}}me.getScrollWheelDelta=function(e){var delta=0;if(!e)e=window.event;if(e.wheelDelta){delta=e.wheelDelta/120;if(window.opera){delta=-delta}}else if(e.detail){delta=-e.detail/3}return delta}me.addMouseEvent=function(func){if(document.captureEvents){document.captureEvents(Event.MOUSEMOVE)}document.onmousemove=func;window.onmousemove=func;window.onmouseover=func}me.getEventTarget=function(e){if(e.toElement){return e.toElement}else if(e.currentTarget){return e.currentTarget}else if(e.srcElement){return e.srcElement}else{return null}}me.getKey=function(e){if(e.keyCode){return e.keyCode}else if(e.event&&e.event.keyCode){return window.event.keyCode}else if(e.which){return e.which}}me.addPageLoadEvent=function(funcName){var func=eval(funcName);if(isSafari){pageLoadEventArray.push(func);if(!safariTimer){safariTimer=setInterval(function(){if(/loaded|complete/.test(document.readyState)){clearInterval(safariTimer);me.runPageLoadEvents();return}set=true},10)}}else if(document.addEventListener){var x=document.addEventListener("DOMContentLoaded",func,null)}else{me.addEvent(window,'load',func)}}var pageLoadEventArray=new Array();me.runPageLoadEvents=function(e){if(isSafari||e.srcElement.readyState=="complete"){for(var i=0;i<pageLoadEventArray.length;i++){pageLoadEventArray[i]()}}}me.hasPageLoadHappened=function(funcArgs){if(funcArgs.callee.done)return true;funcArgs.callee.done=true}me.preventDefault=function(e){if(e.preventDefault){e.preventDefault()}try{e.returnValue=false}catch(ex){}}me.cancelBubble=function(e){if(e.stopPropagation){e.stopPropagation()}try{e.cancelBubble=true}catch(ex){}}me.fireEvent=function(element,event,options){if(!element){return}if(element.dispatchEvent){globalEvent.initEvent(event,true,true);return!element.dispatchEvent(globalEvent)}else if(document.createEventObject){return element.fireEvent('on'+event,globalEvent)}else{return false}}me.isSupported=function(eventName,nodeName){var el=document.createElement(nodeName);eventName='on'+eventName;var isSupported=(eventName in el);if(!isSupported){el.setAttribute(eventName,'return;');isSupported=typeof el[eventName]=='function'}el=null;return isSupported}function init(){}init()}EventHelpers.addPageLoadEvent('EventHelpers.init');
|
@@ -0,0 +1 @@
|
|
1
|
+
var autocomplete=new function(){var me=this;var inputNodes;var listContainerNode;var bodyNode;var minLength;var req;var currentLookupString="";var currentFocusedInputNode=null;var numberCurrentValues;var lastLookupString="",lastLookupValues;me.values=null;me.x=-1;me.y=-1;me.init=function(){if(EventHelpers.hasPageLoadHappened(arguments))return;bodyNode=document.getElementsByTagName('body')[0];minLength=config.getIntegerValue('autocomplete.values.minLength',0);createListContainerNode();setInitialEvents()}function createListContainerNode(){listContainerNode=document.createElement('div');listContainerNode.style.display='none';listContainerNode.style.position='absolute';listContainerNode.id='autocomplete-selection'bodyNode.appendChild(listContainerNode)}function setInitialEvents(){inputNodes=CSSHelpers.getElementsByClassName(document,'autocomplete_input');for(var i=0;i<inputNodes.length;i++){EventHelpers.addEvent(inputNodes[i],'keyup',keyUpEvent);EventHelpers.addEvent(inputNodes[i],'keypress',keyPressEvent);formNode=DOMHelpers.getAncestorByTagName(inputNodes[i],'form');turnOffNativeAutocomplete(formNode)}EventHelpers.addEvent(bodyNode,'click',hideAutocompleteBox);EventHelpers.addEvent(document,'click',hideAutocompleteBox)}function keyUpEvent(e){var key=EventHelpers.getKey(e);currentFocusedInputNode=EventHelpers.getEventTarget(e);switch(key){case CharCode.DOWN:moveFocusOnListEvent(e);break;case CharCode.ESC:break;case CharCode.ENTER:EventHelpers.preventDefault(e);break;default:getListEvent(e)}}function keyPressEvent(e){var key=EventHelpers.getKey(e);switch(key){case CharCode.DOWN:moveFocusOnListEvent(e);EventHelpers.preventDefault(e);break;case CharCode.ENTER:EventHelpers.preventDefault(e);break}}function moveFocusOnListEvent(e){activeInputNode=EventHelpers.getEventTarget(e);activeInputNode.blur();var listNode=getListNode();var listItemNodes=getListItemNodes();var firstListItemNode;if(listItemNodes.length>0){firstListItemNode=listItemNodes[0]}else{firstListItemNode=listItemNodes}jslog.debug('firstListItemNode: '+firstListItemNode.nodeName)if(firstListItemNode){switch(firstListItemNode.nodeName){case"OPTION":firstListItemNode.selected='selected';replaceValue(firstListItemNode);listNode.focus();break}}}function getListEvent(e){activeInputNode=EventHelpers.getEventTarget(e);currentLookupString=activeInputNode.value;if(currentLookupString.length<minLength){listContainerNode.innerHTML="";return}me.x=CSSHelpers.getAbsoluteLeft(activeInputNode);me.y=CSSHelpers.getAbsoluteTop(activeInputNode)+CSSHelpers.getHeight(activeInputNode);var id=activeInputNode.name.replace(/ /g,'_');var URL=config.getScriptedValue('autocomplete.urls.'+id,{inputID:id,inputValue:currentLookupString});listContainerNode.innerHTML=config.getValue('autocomplete.templates.pleaseWait');showAutocompleteBox();if(lastLookupString!=""&¤tLookupString.toLowerCase().indexOf(lastLookupString.toLowerCase())==0){showDropDown(lastLookupValues)}else{if(req){req.abort()}req=XMLHelpers.getXMLHttpRequest(URL,getListRequest)}}function getListRequest(){if(!req){return}if(req.readyState==ReadyState.COMPLETED){if(req.status==HttpCode.OK){var values=req.responseText.split('\n');showDropDown(values);lastLookupString=currentLookupString;lastLookupValues=values}}}function showDropDown(values){removeAutocompleteBoxEvents();me.setValues(values);jslog.debug(numberCurrentValues)if(numberCurrentValues==0){hideAutocompleteBox()}else{jslog.debug('not zeri')setAutocompleteBoxEvents();showAutocompleteBox()}}me.setValues=function(values){me.values=values;var lastElement=me.values.pop();if(lastElement.trim()!=""){me.values.push(lastElement)}if(me.values.length==0){listContainerNode.innerHTML=""}else{var valuesHTMLSb=new StringBuffer();numberCurrentValues=0;for(var i=0;i<me.values.length;i++){var value=me.values[i].trim();if(value!=""&&value.toLowerCase().indexOf(currentLookupString.toLowerCase())==0){numberCurrentValues++;valuesHTMLSb.append(config.getScriptedValue('autocomplete.templates.listItem',{listItem:me.values[i]}))}}listContainerNode.innerHTML=config.getScriptedValue('autocomplete.templates.list',{listItemsHTML:valuesHTMLSb.toString()})}}function selectKeyEvent(e){var key=EventHelpers.getKey(e);switch(key){case CharCode.ESC:case CharCode.ENTER:hideAutocompleteBox(e);currentFocusedInputNode.focus();break;case CharCode.TAB:focusOnInputField(e);break;case CharCode.BACKSPACE:currentFocusedInputNode.value="";hideAutocompleteBox(e);currentFocusedInputNode.focus();EventHelpers.preventDefault(e);break}}function focusOnInputField(e){currentFocusedInputNode.focus();if(BrowserDetect.browser=="Explorer"){EventHelpers.preventDefault(e)}}function showAutocompleteBox(){CSSHelpers.moveTo(listContainerNode,me.x,me.y)listContainerNode.style.display='block'}function hideAutocompleteBox(e){listContainerNode.style.display='none';removeAutocompleteBoxEvents();listContainerNode.innerHTML=''}function getListItemNodes(){var valueNodes=cssQuery(config.getValue('autocomplete.selectors.listItem'),listContainerNode);return valueNodes}function getListNode(){var listNodes=cssQuery(config.getValue('autocomplete.selectors.list'),listContainerNode);if(listNodes&&listNodes.length>0){return listNodes[0]}else{return null}}function setAutocompleteBoxEvents(){var valueNodes=getListItemNodes();var listNode=getListNode();if(listNode){EventHelpers.addEvent(listNode,'change',replaceValueEvent);EventHelpers.addEvent(listNode,'blur',hideAutocompleteBox);EventHelpers.addEvent(listNode,'keyup',selectKeyEvent);EventHelpers.addEvent(listNode,'keydown',selectKeyEvent);EventHelpers.addEvent(listNode,'blur',focusOnInputField)}if(valueNodes){for(var i=0;i<valueNodes.length;i++){EventHelpers.addEvent(valueNodes[i],'click',replaceValueEvent)}}}function removeAutocompleteBoxEvents(){var valueNodes=getListItemNodes();var listNode=getListNode();if(listNode){EventHelpers.removeEvent(listNode,'change',replaceValueEvent);EventHelpers.removeEvent(listNode,'blur',hideAutocompleteBox)}if(valueNodes){for(var i=0;i<valueNodes.length;i++){EventHelpers.removeEvent(valueNodes[i],'click',replaceValueEvent)}}}function replaceValueEvent(e){var valueNode=EventHelpers.getEventTarget(e);replaceValue(valueNode)}function replaceValue(valueNode){var value=valueNode.value;jslog.debug(valueNode.value);if(!value){value=valueNode.innerHTML}activeInputNode.value=value}function turnOffNativeAutocomplete(formNode){formNode.setAttribute('autocomplete','off')}}EventHelpers.addPageLoadEvent('autocomplete.init');
|
@@ -0,0 +1,6 @@
|
|
1
|
+
/*
|
2
|
+
cssQuery, version 2.0.2 (2005-08-19)
|
3
|
+
Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)
|
4
|
+
License: http://creativecommons.org/licenses/LGPL/2.1/
|
5
|
+
*/
|
6
|
+
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('7 x=6(){7 1D="2.0.2";7 C=/\\s*,\\s*/;7 x=6(s,A){33{7 m=[];7 u=1z.32.2c&&!A;7 b=(A)?(A.31==22)?A:[A]:[1g];7 1E=18(s).1l(C),i;9(i=0;i<1E.y;i++){s=1y(1E[i]);8(U&&s.Z(0,3).2b("")==" *#"){s=s.Z(2);A=24([],b,s[1])}1A A=b;7 j=0,t,f,a,c="";H(j<s.y){t=s[j++];f=s[j++];c+=t+f;a="";8(s[j]=="("){H(s[j++]!=")")a+=s[j];a=a.Z(0,-1);c+="("+a+")"}A=(u&&V[c])?V[c]:21(A,t,f,a);8(u)V[c]=A}m=m.30(A)}2a x.2d;5 m}2Z(e){x.2d=e;5[]}};x.1Z=6(){5"6 x() {\\n [1D "+1D+"]\\n}"};7 V={};x.2c=L;x.2Y=6(s){8(s){s=1y(s).2b("");2a V[s]}1A V={}};7 29={};7 19=L;x.15=6(n,s){8(19)1i("s="+1U(s));29[n]=12 s()};x.2X=6(c){5 c?1i(c):o};7 D={};7 h={};7 q={P:/\\[([\\w-]+(\\|[\\w-]+)?)\\s*(\\W?=)?\\s*([^\\]]*)\\]/};7 T=[];D[" "]=6(r,f,t,n){7 e,i,j;9(i=0;i<f.y;i++){7 s=X(f[i],t,n);9(j=0;(e=s[j]);j++){8(M(e)&&14(e,n))r.z(e)}}};D["#"]=6(r,f,i){7 e,j;9(j=0;(e=f[j]);j++)8(e.B==i)r.z(e)};D["."]=6(r,f,c){c=12 1t("(^|\\\\s)"+c+"(\\\\s|$)");7 e,i;9(i=0;(e=f[i]);i++)8(c.l(e.1V))r.z(e)};D[":"]=6(r,f,p,a){7 t=h[p],e,i;8(t)9(i=0;(e=f[i]);i++)8(t(e,a))r.z(e)};h["2W"]=6(e){7 d=Q(e);8(d.1C)9(7 i=0;i<d.1C.y;i++){8(d.1C[i]==e)5 K}};h["2V"]=6(e){};7 M=6(e){5(e&&e.1c==1&&e.1f!="!")?e:23};7 16=6(e){H(e&&(e=e.2U)&&!M(e))28;5 e};7 G=6(e){H(e&&(e=e.2T)&&!M(e))28;5 e};7 1r=6(e){5 M(e.27)||G(e.27)};7 1P=6(e){5 M(e.26)||16(e.26)};7 1o=6(e){7 c=[];e=1r(e);H(e){c.z(e);e=G(e)}5 c};7 U=K;7 1h=6(e){7 d=Q(e);5(2S d.25=="2R")?/\\.1J$/i.l(d.2Q):2P(d.25=="2O 2N")};7 Q=6(e){5 e.2M||e.1g};7 X=6(e,t){5(t=="*"&&e.1B)?e.1B:e.X(t)};7 17=6(e,t,n){8(t=="*")5 M(e);8(!14(e,n))5 L;8(!1h(e))t=t.2L();5 e.1f==t};7 14=6(e,n){5!n||(n=="*")||(e.2K==n)};7 1e=6(e){5 e.1G};6 24(r,f,B){7 m,i,j;9(i=0;i<f.y;i++){8(m=f[i].1B.2J(B)){8(m.B==B)r.z(m);1A 8(m.y!=23){9(j=0;j<m.y;j++){8(m[j].B==B)r.z(m[j])}}}}5 r};8(![].z)22.2I.z=6(){9(7 i=0;i<1z.y;i++){o[o.y]=1z[i]}5 o.y};7 N=/\\|/;6 21(A,t,f,a){8(N.l(f)){f=f.1l(N);a=f[0];f=f[1]}7 r=[];8(D[t]){D[t](r,A,f,a)}5 r};7 S=/^[^\\s>+~]/;7 20=/[\\s#.:>+~()@]|[^\\s#.:>+~()@]+/g;6 1y(s){8(S.l(s))s=" "+s;5 s.P(20)||[]};7 W=/\\s*([\\s>+~(),]|^|$)\\s*/g;7 I=/([\\s>+~,]|[^(]\\+|^)([#.:@])/g;7 18=6(s){5 s.O(W,"$1").O(I,"$1*$2")};7 1u={1Z:6(){5"\'"},P:/^(\'[^\']*\')|("[^"]*")$/,l:6(s){5 o.P.l(s)},1S:6(s){5 o.l(s)?s:o+s+o},1Y:6(s){5 o.l(s)?s.Z(1,-1):s}};7 1s=6(t){5 1u.1Y(t)};7 E=/([\\/()[\\]?{}|*+-])/g;6 R(s){5 s.O(E,"\\\\$1")};x.15("1j-2H",6(){D[">"]=6(r,f,t,n){7 e,i,j;9(i=0;i<f.y;i++){7 s=1o(f[i]);9(j=0;(e=s[j]);j++)8(17(e,t,n))r.z(e)}};D["+"]=6(r,f,t,n){9(7 i=0;i<f.y;i++){7 e=G(f[i]);8(e&&17(e,t,n))r.z(e)}};D["@"]=6(r,f,a){7 t=T[a].l;7 e,i;9(i=0;(e=f[i]);i++)8(t(e))r.z(e)};h["2G-10"]=6(e){5!16(e)};h["1x"]=6(e,c){c=12 1t("^"+c,"i");H(e&&!e.13("1x"))e=e.1n;5 e&&c.l(e.13("1x"))};q.1X=/\\\\:/g;q.1w="@";q.J={};q.O=6(m,a,n,c,v){7 k=o.1w+m;8(!T[k]){a=o.1W(a,c||"",v||"");T[k]=a;T.z(a)}5 T[k].B};q.1Q=6(s){s=s.O(o.1X,"|");7 m;H(m=s.P(o.P)){7 r=o.O(m[0],m[1],m[2],m[3],m[4]);s=s.O(o.P,r)}5 s};q.1W=6(p,t,v){7 a={};a.B=o.1w+T.y;a.2F=p;t=o.J[t];t=t?t(o.13(p),1s(v)):L;a.l=12 2E("e","5 "+t);5 a};q.13=6(n){1d(n.2D()){F"B":5"e.B";F"2C":5"e.1V";F"9":5"e.2B";F"1T":8(U){5"1U((e.2A.P(/1T=\\\\1v?([^\\\\s\\\\1v]*)\\\\1v?/)||[])[1]||\'\')"}}5"e.13(\'"+n.O(N,":")+"\')"};q.J[""]=6(a){5 a};q.J["="]=6(a,v){5 a+"=="+1u.1S(v)};q.J["~="]=6(a,v){5"/(^| )"+R(v)+"( |$)/.l("+a+")"};q.J["|="]=6(a,v){5"/^"+R(v)+"(-|$)/.l("+a+")"};7 1R=18;18=6(s){5 1R(q.1Q(s))}});x.15("1j-2z",6(){D["~"]=6(r,f,t,n){7 e,i;9(i=0;(e=f[i]);i++){H(e=G(e)){8(17(e,t,n))r.z(e)}}};h["2y"]=6(e,t){t=12 1t(R(1s(t)));5 t.l(1e(e))};h["2x"]=6(e){5 e==Q(e).1H};h["2w"]=6(e){7 n,i;9(i=0;(n=e.1F[i]);i++){8(M(n)||n.1c==3)5 L}5 K};h["1N-10"]=6(e){5!G(e)};h["2v-10"]=6(e){e=e.1n;5 1r(e)==1P(e)};h["2u"]=6(e,s){7 n=x(s,Q(e));9(7 i=0;i<n.y;i++){8(n[i]==e)5 L}5 K};h["1O-10"]=6(e,a){5 1p(e,a,16)};h["1O-1N-10"]=6(e,a){5 1p(e,a,G)};h["2t"]=6(e){5 e.B==2s.2r.Z(1)};h["1M"]=6(e){5 e.1M};h["2q"]=6(e){5 e.1q===L};h["1q"]=6(e){5 e.1q};h["1L"]=6(e){5 e.1L};q.J["^="]=6(a,v){5"/^"+R(v)+"/.l("+a+")"};q.J["$="]=6(a,v){5"/"+R(v)+"$/.l("+a+")"};q.J["*="]=6(a,v){5"/"+R(v)+"/.l("+a+")"};6 1p(e,a,t){1d(a){F"n":5 K;F"2p":a="2n";1a;F"2o":a="2n+1"}7 1m=1o(e.1n);6 1k(i){7 i=(t==G)?1m.y-i:i-1;5 1m[i]==e};8(!Y(a))5 1k(a);a=a.1l("n");7 m=1K(a[0]);7 s=1K(a[1]);8((Y(m)||m==1)&&s==0)5 K;8(m==0&&!Y(s))5 1k(s);8(Y(s))s=0;7 c=1;H(e=t(e))c++;8(Y(m)||m==1)5(t==G)?(c<=s):(s>=c);5(c%m)==s}});x.15("1j-2m",6(){U=1i("L;/*@2l@8(@\\2k)U=K@2j@*/");8(!U){X=6(e,t,n){5 n?e.2i("*",t):e.X(t)};14=6(e,n){5!n||(n=="*")||(e.2h==n)};1h=1g.1I?6(e){5/1J/i.l(Q(e).1I)}:6(e){5 Q(e).1H.1f!="2g"};1e=6(e){5 e.2f||e.1G||1b(e)};6 1b(e){7 t="",n,i;9(i=0;(n=e.1F[i]);i++){1d(n.1c){F 11:F 1:t+=1b(n);1a;F 3:t+=n.2e;1a}}5 t}}});19=K;5 x}();',62,190,'|||||return|function|var|if|for||||||||pseudoClasses||||test|||this||AttributeSelector|||||||cssQuery|length|push|fr|id||selectors||case|nextElementSibling|while||tests|true|false|thisElement||replace|match|getDocument|regEscape||attributeSelectors|isMSIE|cache||getElementsByTagName|isNaN|slice|child||new|getAttribute|compareNamespace|addModule|previousElementSibling|compareTagName|parseSelector|loaded|break|_0|nodeType|switch|getTextContent|tagName|document|isXML|eval|css|_1|split|ch|parentNode|childElements|nthChild|disabled|firstElementChild|getText|RegExp|Quote|x22|PREFIX|lang|_2|arguments|else|all|links|version|se|childNodes|innerText|documentElement|contentType|xml|parseInt|indeterminate|checked|last|nth|lastElementChild|parse|_3|add|href|String|className|create|NS_IE|remove|toString|ST|select|Array|null|_4|mimeType|lastChild|firstChild|continue|modules|delete|join|caching|error|nodeValue|textContent|HTML|prefix|getElementsByTagNameNS|end|x5fwin32|cc_on|standard||odd|even|enabled|hash|location|target|not|only|empty|root|contains|level3|outerHTML|htmlFor|class|toLowerCase|Function|name|first|level2|prototype|item|scopeName|toUpperCase|ownerDocument|Document|XML|Boolean|URL|unknown|typeof|nextSibling|previousSibling|visited|link|valueOf|clearCache|catch|concat|constructor|callee|try'.split('|'),0,{}))
|